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

From: Ronald Klop <ronald-lists_at_klop.ws>
Date: Sat, 12 Sep 2020 23:00:19 +0200
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.
>>
>> 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.


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



> 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
>



I just added CROSS_TOOLCHAIN=llvm11 to make.conf and src.conf, but no  
difference. I think I need something with --sysroot, but am not sure if  
this is something I should set or which the build framework should set.

Any advice on this? Or a pointer to the right documentation?


Regards,

Ronald.
Received on Sat Sep 12 2020 - 19:00:29 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:25 UTC