compiling with ports llvm11 breaks on mman.h: struct shm_larg epage_conf

Dimitry Andric dim at FreeBSD.org
Sat Sep 12 16:28:15 UTC 2020


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.
> 
> Setup a jail with 13-CURRENT. Compilation of the installed version went fine.
> Today I svn up'd and compiled and compilation broke.
> 
> /lib/clang/11.0.0/include -fstack-protector-strong -Wsystem-headers -Werror -Wall -[29/1822]
> t-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-unused-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/li
> b/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
> /usr/src/lib/libc/sys/shm_open.c:64:28: error: variable has incomplete type 'struct shm_larg
> epage_conf'
>        struct shm_largepage_conf slc;
>                                  ^
> /usr/src/lib/libc/sys/shm_open.c:64:9: note: forward declaration of 'struct shm_largepage_co
> nf'
>        struct shm_largepage_conf slc;
> 
> 
> I can see the difference between /usr/include/sys/mman.h and /usr/src/sys/sys/mman.h is exactly about these symbols.
> Why is the base compiler using the latter and ports llvm11 the former?
> 
> Configuration of my src.conf and make.conf is described in https://blog.klop.ws/2020/08/waiting-for-clang-forever-and-ever.html .
> 
> 
> Do I miss some directive about system header files?

During what stage is this, and is it an incremental (e.g. -DNO_CLEAN)
build? With this kind of failure, it is usually required to be able to
inspect the full buildworld log, and the exact command line you used to
invoke make. If you can, upload that somewhere so it can be viewed.

That said, it looks like something is messing up your include order,
as during a very early stage in buildword, the sys/sys/ headers are
symlinked to objdir/tmp/legacy/usr/include/sys/. This should include
the mman.h header.

-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/20200912/7b9cb0eb/attachment.sig>


More information about the freebsd-current mailing list