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
