compiling with ports llvm11 breaks on mman.h: struct shm_larg epage_conf
Dimitry Andric
dim at FreeBSD.org
Sun Sep 13 18:56:37 UTC 2020
On 12 Sep 2020, at 23:00, Ronald Klop <ronald-lists at klop.ws> wrote:
>
> On Sat, 12 Sep 2020 18:28:03 +0200, Dimitry Andric <dim at freebsd.org> wrote:
>> On 12 Sep 2020, at 17:43, Ronald Klop <ronald-lists at klop.ws> wrote:
>>>
>>> Because I'm tired of hours of compilation of llvm/clang I'm testing compiling FreeBSD with llvm11 from a pkg.
...
It is during the building world stage and happens with and without NO_CLEAN.
> Full command:
> /usr/local/bin/clang11 -O2 -pipe -fno-common -DNO__SCCSID -DNO__RCSID -I/usr/src/lib/libc
> /include -I/usr/src/include -I/usr/src/lib/libc/amd64 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/
> src/contrib/gdtoa -I/usr/src/contrib/libc-vis -DINET6 -I/usr/obj/usr/src/amd64.amd64/lib/lib
> c -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libmd -I/usr/src/
> contrib/jemalloc/include -DMALLOC_PRODUCTION -I/usr/src/contrib/tzcode/stdtime -I/usr/src/li
> b/libc/stdtime -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/li
> b/libc/rpc -DWANT_HYPERV -DYP -DNS_CACHING -DSYMBOL_VERSIONING -g -MD -MF.depend.shm_open.o
> -MTshm_open.o -std=gnu99 -Wno-format-zero-length -nobuiltininc -idirafter /usr/local/llvm11
> /lib/clang/11.0.0/include -fstack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-unused-
> const-variable -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-un
> used-function -Wno-enum-conversion -Wno-unused-local-typedef -Wno-address-of-packed-member -
> Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter -Qunused-arguments -I/usr/src/lib/libutil -I/usr/src/lib/msun/amd64 -I/usr/src/lib/msun/x86 -I/usr/src/lib/msun/src -c /usr/
> src/lib/libc/sys/shm_open.c -o shm_open.o
After a pretty long build of the llvm11 port, I can at least reproduce your error. It looks like the problem is that clang11 does not get any --sysroot parameter passed.
If I install the devel/xtoolchain-llvm90 port and use that, I get a slightly different command line. Here's both of them, in diff --side-by-side format:
/usr/local/bin/clang11 | /usr/local/bin/clang90
> -target x86_64-unknown-freebsd13.0
> --sysroot=/usr/obj/usr/src/amd64.amd64/tmp
> -B/var/empty
-O2 -O2
-pipe -pipe
-fno-common -fno-common
-DNO__SCCSID -DNO__SCCSID
-DNO__RCSID -DNO__RCSID
-I/usr/src/lib/libc/include -I/usr/src/lib/libc/include
-I/usr/src/include -I/usr/src/include
-I/usr/src/lib/libc/amd64 -I/usr/src/lib/libc/amd64
-DNLS -DNLS
-D__DBINTERFACE_PRIVATE -D__DBINTERFACE_PRIVATE
-I/usr/src/contrib/gdtoa -I/usr/src/contrib/gdtoa
-I/usr/src/contrib/libc-vis -I/usr/src/contrib/libc-vis
-DINET6 -DINET6
-I/usr/obj/usr/src/amd64.amd64/lib/libc -I/usr/obj/usr/src/amd64.amd64/lib/libc
-I/usr/src/lib/libc/resolv -I/usr/src/lib/libc/resolv
-D_ACL_PRIVATE -D_ACL_PRIVATE
-DPOSIX_MISTAKE -DPOSIX_MISTAKE
-I/usr/src/lib/libmd -I/usr/src/lib/libmd
-I/usr/src/contrib/jemalloc/include -I/usr/src/contrib/jemalloc/include
-I/usr/src/contrib/tzcode/stdtime -I/usr/src/contrib/tzcode/stdtime
-I/usr/src/lib/libc/stdtime -I/usr/src/lib/libc/stdtime
-I/usr/src/lib/libc/locale -I/usr/src/lib/libc/locale
-DBROKEN_DES -DBROKEN_DES
-DPORTMAP -DPORTMAP
-DDES_BUILTIN -DDES_BUILTIN
-I/usr/src/lib/libc/rpc -I/usr/src/lib/libc/rpc
-DWANT_HYPERV -DWANT_HYPERV
-DYP -DYP
-DNS_CACHING -DNS_CACHING
-DSYMBOL_VERSIONING -DSYMBOL_VERSIONING
-g -g
-MD -MD
-MF.depend.shm_open.o -MF.depend.shm_open.o
-MTshm_open.o -MTshm_open.o
-std=gnu99 -std=gnu99
-Wno-format-zero-length -Wno-format-zero-length
-nobuiltininc -nobuiltininc
-idirafter /usr/local/llvm11/lib/clang/11.0.0/include | -idirafter /usr/local/llvm90/lib/clang/9.0.1/include
-fstack-protector-strong -fstack-protector-strong
-Wsystem-headers -Wsystem-headers
-Werror -Werror
-Wall -Wall
-Wno-format-y2k -Wno-format-y2k
-Wno-uninitialized -Wno-uninitialized
-Wno-pointer-sign -Wno-pointer-sign
-Wno-empty-body -Wno-empty-body
-Wno-string-plus-int -Wno-string-plus-int
-Wno-unused-const-variable -Wno-unused-const-variable
-Wno-tautological-compare -Wno-tautological-compare
-Wno-unused-value -Wno-unused-value
-Wno-parentheses-equality -Wno-parentheses-equality
-Wno-unused-function -Wno-unused-function
-Wno-enum-conversion -Wno-enum-conversion
-Wno-unused-local-typedef -Wno-unused-local-typedef
-Wno-address-of-packed-member -Wno-address-of-packed-member
-Wno-switch -Wno-switch
-Wno-switch-enum -Wno-switch-enum
-Wno-knr-promoted-parameter -Wno-knr-promoted-parameter
-Qunused-arguments -Qunused-arguments
-I/usr/src/lib/libutil -I/usr/src/lib/libutil
-I/usr/src/lib/msun/amd64 -I/usr/src/lib/msun/amd64
-I/usr/src/lib/msun/x86 -I/usr/src/lib/msun/x86
-I/usr/src/lib/msun/src -I/usr/src/lib/msun/src
-c /usr/src/lib/libc/sys/shm_open.c -c /usr/src/lib/libc/sys/shm_open.c
-o shm_open.o -o shm_open.o
So except for the expected difference in the -idirafter option that points to the clang internal headers, the main problem is that for some reason, clang11 does not get the -target and --sysroot options passed.
-Dimitry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 223 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20200913/c438b829/attachment.sig>
More information about the freebsd-current
mailing list