On Nov 5, 2021, at 5:00 PM, Christian Weisgerber <[email protected]> wrote:
>
> I ran another amd64 bulk build with base clang updated to LLVM 13.
> I also put in a tentative fix for security/nss.
>
> Failure logs:
> http://build-failures.rhaalovely.net/amd64-clang/2021-11-04/
>
> Some very basic triage below. The single biggest problem is linker
> failures of this kind:
> ld: error: /usr/local/lib/libintl.so.7.0: undefined reference to
> pthread_mutexattr_init [--no-allow-shlib-undefined]
libintl has some weak references to pthread’s functions:
llvm13$ nm /usr/local/lib/libintl.so.7.0 | grep pthread
00003f80 t pthread_atfork
W pthread_cond_broadcast
W pthread_cond_destroy
W pthread_cond_init
W pthread_cond_signal
W pthread_cond_wait
W pthread_mutex_destroy
W pthread_mutex_init
W pthread_mutex_lock
W pthread_mutex_unlock
W pthread_mutexattr_destroy
W pthread_mutexattr_gettype
W pthread_mutexattr_init
W pthread_mutexattr_settype
pthread_cond_* and pthread_mutex_* were moved into libc a while ago:
https://github.com/openbsd/src/commit/a5511fa9f431600dbd6dc2b46fc4e6b73e7d239c
However, pthread_mutexattr_* was not and requires -pthread to pick it up.
These ports that are failing will need to link with -pthread or alternatively
we need to move pthread_mutexattr_* from libpthread to libc. That does
make some sense as pthread_condattr_* was moved over with
pthread_cond_*, but pthread_mutexattr_* was not moved over with
pthread_mutex_*.
>
> The most criticial individual port failure is security/pinentry,
> which takes out security/gnupg, which prevents hundreds of ports
> from being built.
>
> audio/mpd C++
> audio/scmpc libintl.so.7.0: undefined reference
> cad/pcb libintl.so.7.0: undefined reference
> chinese/c2t address of register variable requested
> devel/libdsm -Werror breaks pthread autoconf test
> devel/libgtop2 libintl.so.7.0: undefined reference
> devel/qbs qbs segfault
> devel/xtensa-lx106-elf/binutils -Werror,-Wunused-but-set-variable
> editors/vim,gtk3,lua libintl.so.7.0: undefined reference
> games/dopewars libintl.so.7.0: undefined reference
> games/eduke32 LLVM ERROR: out of memory
> games/lwjgl3 java segfault
> games/multimc -Werror,-Wunused-but-set-variable
> games/nblood LLVM ERROR: out of memory
> graphics/gimp/stable missing dependency glib >= 2.56.2
> graphics/vulkan-validation-layers -Werror,-Wdeprecated-copy
> inputmethods/fcitx libintl.so.7.0: undefined reference
> lang/dmd can't load library 'libc++abi.so.5.0'
> lang/gambit killed: build stuck for 60mn
> lang/libv8 mksnapshot segfault
> mail/neomutt Unable to find KyotoCabinet
> misc/posixtestsuite packaging: <foo>.test does not exist
> net/gtk-gnutella Cannot compile against GLib
> security/encfs C++
> security/pinentry libintl.so.7.0: undefined reference
> sysutils/curlftpfs use of undeclared identifier
> sysutils/login_oath -Werror,-Wunused-but-set-variable
> textproc/apertium C++
> www/libwebsockets -Werror,-Wunused-but-set-variable
> www/tor-browser/browser -Werror,-Wunused-but-set-variable
> x11/awesome libexecinfo.so.3.0: undefined reference
> x11/fvwm2 libintl.so.7.0: undefined reference
> x11/jwm libintl.so.7.0: undefined reference
> x11/mate/panel libintl.so.7.0: undefined reference
> x11/parcellite packaging: parcellite.mo does not exist
> x11/qt5/qtlocation C++
>
> --
> Christian "naddy" Weisgerber [email protected]
>