On Fri, Nov 29, 2024 at 08:04:18PM -0500, Christos Zoulas wrote:
> Module Name: src
> Committed By: christos
> Date: Sat Nov 30 01:04:16 UTC 2024
...
> Log Message:
> Create a new header lwp_private.h to contain _lwp_getprivate_fast,
> _lwp_gettcb_fast, _lwp_settcb and remove them from mcontext.h, so that:
> 1. we don't need special hacks to hide them
> 2. we can include <lwp.h> where needed to get the necessary prototypes
> without redefining them locally.
I think this commit broke the compilation of lang/compiler-rt, which
now shows:
FAILED:
lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_linux_libcdep.cpp.o
/scratch/lang/compiler-rt/work/.cwrapper/bin/c++ -DHAVE_RPC_XDR_H=0
-I/scratch/lang/compiler-rt/work/compiler-rt-18.1.8.src/lib/sanitizer_common/..
-O2 -g -fstack-clash-protection -I/usr/pkg/include -I/usr/include
-I/usr/pkg/include/python3.13 -Wall -Wno-unused-parameter -DNDEBUG -std=c++17
-m64 -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables
-fno-stack-protector -fvisibility=hidden -fno-lto -O3 -g -Wno-variadic-macros
-nostdinc++ -Wno-format -fno-rtti -Wframe-larger-than=570 -MD -MT
lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_linux_libcdep.cpp.o
-MF
lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_linux_libcdep.cpp.o.d
-o
lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_linux_libcdep.cpp.o
-c
/scratch/lang/compiler-rt/work/compiler-rt-18.1.8.src/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
/scratch/lang/compiler-rt/work/compiler-rt-18.1.8.src/lib/sanitizer_common/sanitizer_linux_libcdep.cpp:
In function 'tls_tcb* __sanitizer::ThreadSelfTlsTcb()':
/scratch/lang/compiler-rt/work/compiler-rt-18.1.8.src/lib/sanitizer_common/sanitizer_linux_libcdep.cpp:452:27:
error: '__lwp_getprivate_fast' was not declared in this scope; did you mean
'_lwp_getprivate'?
452 | tcb = (struct tls_tcb *)__lwp_getprivate_fast();
| ^~~~~~~~~~~~~~~~~~~~~
| _lwp_getprivate
Adding an <lwp.h> include is not sufficient, build fails the same way
(I had misunderstood the commit message that that should work).
What is the proper fix for compiler-rt?
Thomas