Date: Mon, 17 Oct 2022 18:39:16 +0000 From: bugzilla-noreply@freebsd.org To: ports-bugs@FreeBSD.org Subject: [Bug 267156] databases/db5: fix build with clang 15 Message-ID: <bug-267156-7788@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D267156 Bug ID: 267156 Summary: databases/db5: fix build with clang 15 Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: Individual Port(s) Assignee: ports-bugs@FreeBSD.org Reporter: dim@FreeBSD.org During an exp-run for llvm 15 (see bug 265425), it turned out that databases/db5 failed to build with clang 15. This is caused by db5's configure script attempting to detect TLS but encountering internal compiler errors while compiling its test cases, and t= hen concluding TLS does not work at all: ... checking whether C++ supports the wstring class... checking for thread local storage (TLS) class... none ... in config.log it shows what is happening: configure:19128: checking for thread local storage (TLS) class configure:19164: c++ -c -O2 -pipe -Wall -Wextra -fstack-protector-strong -fno-strict-aliasing -D_THREAD_SAFE conftest.cpp >&5 conftest.cpp:30:72: error: use of undeclared identifier 'NULL' template<typename T> __thread T* TLSClass<T>::tlsvar =3D NU= LL; ^ Assertion failed: (!isValueDependent() && "Expression evaluator can't be ca= lled on a dependent expression."), function isConstantInitializer, file /share/dim/src/freebsd/llvm-15-update/contrib/llvm-project/clang/lib/AST/Ex= pr.cpp, line 3184. PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include = the crash backtrace, preprocessed source, and associated run script. Stack dump: 0. Program arguments: c++ -c -O2 -pipe -Wall -Wextra -fstack-protector-strong -fno-strict-aliasing -D_THREAD_SAFE conftest.cpp 1. conftest.cpp:30:76: current parser token ';' #0 0x00000000053fec51 PrintStackTrace /share/dim/src/freebsd/llvm-15-update/contrib/llvm-project/llvm/lib/Support= /Unix/Signals.inc:569:13 #1 0x00000000053fcf35 RunSignalHandlers /share/dim/src/freebsd/llvm-15-update/contrib/llvm-project/llvm/lib/Support= /Signals.cpp:104:18 #2 0x00000000053a591e HandleCrash /share/dim/src/freebsd/llvm-15-update/contrib/llvm-project/llvm/lib/Support= /CrashRecoveryContext.cpp:76:5 #3 0x00000000053a5ae3 CrashRecoverySignalHandler /share/dim/src/freebsd/llvm-15-update/contrib/llvm-project/llvm/lib/Support= /CrashRecoveryContext.cpp:0:51 #4 0x0000000006a1b05e handle_signal /share/dim/src/freebsd/llvm-15-update/lib/libthr/thread/thr_sig.c:0:3 c++: error: clang frontend command failed with exit code 134 (use -v to see invocation) Interestingly enough this compilation error with a fatal crash exists for a very long time, even back to clang 10 and earlier! But for various reasons = the configure script has always ignored these errors and found some workaround = way to enable TLS anyway. For now the problem can be fixed by including <stddef.h> at the top of conftest.cpp, which will allow the TLS test to succeed normally, without crashing, and the correct result will then be: configure:19128: checking for thread local storage (TLS) class configure:19165: c++ -c -O2 -pipe -Wall -Wextra -fstack-protector-strong -fno-strict-aliasing -D_THREAD_SAFE conftest.cpp >&5 conftest.cpp:33:35: warning: unused variable 'x' [-Wunused-variable] static __thread int x =3D 0; ^ 1 warning generated. configure:19165: $? =3D 0 configure:19220: result: modifier --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-267156-7788>