David Coppa <[email protected]> writes:

> On Mon, Oct 2, 2017 at 8:17 AM, Timo Myyrä <[email protected]> wrote:
>
>> Hi,
>>
>> I'm trying to make port of zdoom but I can't get it to link.
>>
>> The error I got was:
>> CMakeFiles/zdoom.dir/scripting/vm/vmexec.cpp.o: In function 
>> `__cxx_global_var_init':
>> /home/tmy/tmp/gzdoom-g3.1.0/src/scripting/vm/vmexec.cpp:(.text+0x42): 
>> undefined reference to `__cxa_thread_atexit'
>> c++: error: linker command failed with exit code 1 (use -v to see invocation)
>> *** Error 1 in . (src/CMakeFiles/zdoom.dir/build.make:10917 'gzdoom')
>>
>> I got a bit of help in this and added following to Makefile:
>> CONFIGURE_ARGS+= -DCMAKE_EXE_LINKER_FLAGS="-lc++abi"
>>
>> That changed the above linking error to:
>> usr/bin/../lib/libc++abi.so.0.0: undefined reference to 
>> `pthread_rwlock_rdlock'
>> /usr/bin/../lib/libc++abi.so.0.0: undefined reference to 
>> `pthread_rwlock_unlock'
>> /usr/bin/../lib/libc++abi.so.0.0: undefined reference to 
>> `pthread_rwlock_wrlock'
>>
>>
>> I tried to change CONFIGURE_ARGS as follows:
>> CONFIGURE_ARGS+= -DCMAKE_EXE_LINKER_FLAGS="-lpthread -lc++abi"
>>
>> After compiling the linking failed with "undefined reference to
>> `__cxa_thread_atexit'" which seems odd as it should be in the c++abi library.
>>
>> Any idea whats going on?
>
> Unfortunately, our libc lacks __cxa_thread_atexit().
> It is required for C++ TLS, for registering cleanups to be run when a
> thread exits.
>
> Mark Kettenis posted a diff on tech@ some time ago[1] but, afaik, it
> has not yet been committed.
>
> [1] https://marc.info/?l=openbsd-tech&m=150246192013629
>
> Ciao!
> David

Well that explains the problems then. I'll look out for TLS support to land
then. Rooting for 6.3.

Timo

Reply via email to