Re: Weird bug (maybe in clang - inetd.c does not compile without INET6)

Dimitry Andric <[email protected]>
Newsgroups gmane.os.freebsd.stable
Message-ID <[email protected]>
On 17 Aug 2026, at 10:21, Milan Obuch <[email protected]> wrote:
> 
> I am building my systems from source and usually with WITHOUT_INET6
> knob among others. Partly inertia, partly minimalisation, partly
> speedup. At the moment, my boxes are at 15-STABLE, last working build
> is from May 30, 2026, git hash cfbe04310e254890c471f97f03dc7c3c5e9af01c
> - that's with compiler
> 
> # cc -v
> FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)
> 
> Then new LLVM is being imported, builds do not work with error
> 
> ---- 8< ------------------------------------------------------------
> 
> ===> usr.bin/clang/llvm-min-tblgen (obj,all,install)
> make[3]: don't know how to make TableGen.cpp. Stop
> 
> make[3]: stopped making "all" in /usr/src/usr.bin/clang/llvm-min-tblgen
> *** Error code 2
> 
> Stop.
> make[2]: stopped making "bootstrap-tools" in /usr/src
>        0.40 real         0.16 user         0.04 sys
> *** Error code 1
> 
> Stop.
> make[1]: stopped making "buildworld" in /usr/src
> *** Error code 1
> 
> Stop.
> make: stopped making "buildworld" in /usr/src
> 
> ---- 8< ------------------------------------------------------------
> 
> for commits 0008bdb8bd28d1c15670084ca63015b551a33f76,
> c76ec29427955975909939e41052e19d000cf008,
> 85298a854720b7e712d4500b8d6ca340f6c39dd8,
> 4575fcccafed03e93f306ddd287229c4568e7280 - import was divided into more
> commits.
> 
> Next commits does not build as well, with different error:
> 
> ---- 8< ------------------------------------------------------------
> 
> In file included from
> /usr/src/contrib/llvm-project/libcxx/src/algorithm.cpp:9: In file
> included from
> /usr/src/contrib/llvm-project/libcxx/include/algorithm:1865: In file
> included from
> /usr/src/contrib/llvm-project/libcxx/include/__algorithm/inplace_merge.h:27:
> In file included from
> /usr/src/contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:48:
> /usr/src/contrib/llvm-project/libcxx/include/__type_traits/remove_extent.h:9:2:
> error: unterminated conditional directive 9 | #ifndef
> _LIBCPP___TYPE_TRAITS_REMOVE_EXTENT_H |  ^ 3 errors generated. ***
> Error code 1
> 
> Stop.
> make[4]: stopped making "all" in /usr/src/lib/libc++
> *** Error code 1
> 
> Stop.
> make[3]: stopped making "_prebuild_libs" in /usr/src
> *** Error code 1
> 
> Stop.
> make[2]: stopped making "libraries" in /usr/src
>        8.67 real         6.56 user         0.65 sys
> *** Error code 1
> 
> Stop.
> make[1]: stopped making "buildworld" in /usr/src
> *** Error code 1
> 
> Stop.
> make: stopped making "buildworld" in /usr/src
> 
> ---- 8< ------------------------------------------------------------
> 
> Commits were fe97aeb6c4fb57f9cd3ae834e66d85bcb36b91ee,
> cf7d88e89f1dcc1b66c3e8f327e16122d42d6a6c,
> d08fb64ae2157d3bc65777589728e880e6409d72,
> c1db7ad65d704e4ae81bbfe7bdaf049120d324a2 - I think with those import of
> new LLVM is being finished.

Yeah, don't try to build the intermediate commits. I was not able to test all possible combinations, while wrestling with git.


> Now, one could expect things going back to normal, but for me, with
> WITHOUT_INET6 knob in action, did not work, the error is
> 
> ---- 8< ------------------------------------------------------------
> 
> ===> usr.sbin/inetd (all)
> cc -target x86_64-unknown-freebsd15.1
> --sysroot=/usr/obj/usr/src/amd64.amd64/tmp
> -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -fpie -DPIC   -O2 -pipe
> -fno-common   -DLOGIN_CAP -DLIBWRAP -DIPSEC -fPIE
> -ffile-prefix-map=/usr/src=/usr/src
> -ffile-prefix-map=/usr/obj/usr/src=/usr/obj -MD  -MF.depend.inetd.pieo
> -MTinetd.pieo -std=gnu17 -Wno-format-zero-length
> -fstack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k
> -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes
> -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch
> -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts
> -Wnested-externs -Wold-style-definition -Wno-pointer-sign -Wdate-time
> -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body
> -Wno-string-plus-int -Wno-unused-const-variable
> -Wno-error=unused-but-set-parameter
> -Wno-error=cast-function-type-mismatch  -Qunused-arguments      -c
> /usr/src/usr.sbin/inetd/inetd.c -o inetd.pieo
> /usr/src/usr.sbin/inetd/inetd.c:737:26: warning: cast from 'struct
> servtab *(*)(int)' to 'bi_fn_t *' (aka 'void (*)(int, struct servtab
> *)') converts to incompatible function type
> [-Wcast-function-type-mismatch] 737 |
> sep->se_bi->bi_fn == (bi_fn_t *) tcpmux) { |
>                          ^~~~~~~~~~~~~~~~~~
> /usr/src/usr.sbin/inetd/inetd.c:1365:44: error: variable 'nbuf2' is
> uninitialized when passed as a const pointer argument here
> [-Werror,-Wuninitialized-const-pointer] 1365 |
>       rpcb_set(sep->se_rpc_prog, i, netid2, &nbuf2); |
>                                                       ^~~~~ 1 warning

This just looks like a warning which is only produced when INET6 is off. I don't know much about inetd, but with #ifdef mazes something always goes wrong. :)

-Dimitry
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.