Public bug reported: Hi Folks,
I am building software package (Enduro/X Middleware, from 5.4 github branch with System V queues support, particularly this file https://github.com/endurox-dev/endurox/blob/5.4/libnstd/sys_svqevent.c in question) with using Ubuntu standard build tools (GCC, etc..) and I get error: =============================================== ... [ 3%] Building C object libnstd/CMakeFiles/nstd.dir/sys_svqevent.c.o cd /home/user1/endurox/libnstd && /usr/bin/cc -Dnstd_EXPORTS -I/home/user1/endurox/libnstd/. -I/home/user1/endurox/libnstd/../include -Wno-format-truncation -Wstringop-overflow=0 -D_DEFAULT_SOURCE=1 -g -fPIC -o CMakeFiles/nstd.dir/sys_svqevent.c.o -c /home/user1/endurox/libnstd/sys_svqevent.c [ 3%] Building C object libnstd/CMakeFiles/nstd.dir/nstd_sem.c.o cd /home/user1/endurox/libnstd && /usr/bin/cc -Dnstd_EXPORTS -I/home/user1/endurox/libnstd/. -I/home/user1/endurox/libnstd/../include -Wno-format-truncation -Wstringop-overflow=0 -D_DEFAULT_SOURCE=1 -g -fPIC -o CMakeFiles/nstd.dir/nstd_sem.c.o -c /home/user1/endurox/libnstd/nstd_sem.c [ 3%] Building C object libnstd/CMakeFiles/nstd.dir/sys_svqadmin.c.o cd /home/user1/endurox/libnstd && /usr/bin/cc -Dnstd_EXPORTS -I/home/user1/endurox/libnstd/. -I/home/user1/endurox/libnstd/../include -Wno-format-truncation -Wstringop-overflow=0 -D_DEFAULT_SOURCE=1 -g -fPIC -o CMakeFiles/nstd.dir/sys_svqadmin.c.o -c /home/user1/endurox/libnstd/sys_svqadmin.c [ 3%] Linking C shared library libnstd.so cd /home/user1/endurox/libnstd && /usr/bin/cmake -E cmake_link_script CMakeFiles/nstd.dir/link.txt --verbose=1 /usr/bin/cc -fPIC -Wno-format-truncation -Wstringop-overflow=0 -D_DEFAULT_SOURCE=1 -g -shared -Wl,-soname,libnstd.so -o libnstd.so CMakeFiles/nstd.dir/ndebug.c.o CMakeFiles/nstd.dir/nstdutil.c.o CMakeFiles/nstd.dir/nstopwatch.c.o CMakeFiles/nstd.dir/nclopt.c.o CMakeFiles/nstd.dir/benchmark.c.o CMakeFiles/nstd.dir/ini.c.o CMakeFiles/nstd.dir/inicfg.c.o CMakeFiles/nstd.dir/cconfig.c.o CMakeFiles/nstd.dir/nerror.c.o CMakeFiles/nstd.dir/nstd_tls.c.o CMakeFiles/nstd.dir/ulog.c.o CMakeFiles/nstd.dir/sys_genunix.c.o CMakeFiles/nstd.dir/sys_svqpoll.c.o CMakeFiles/nstd.dir/sys_linux.c.o CMakeFiles/nstd.dir/sys_common.c.o CMakeFiles/nstd.dir/sys_posixq.c.o CMakeFiles/nstd.dir/sys_svq.c.o CMakeFiles/nstd.dir/tplog.c.o CMakeFiles/nstd.dir/exregex.c.o CMakeFiles/nstd.dir/platform.c.o CMakeFiles/nstd.dir/msgsizemax.c.o CMakeFiles/nstd.dir/exaes.c.o CMakeFiles/nstd.dir/exsha1.c.o CMakeFiles/nstd.dir/exbase64.c.o CMakeFiles/nstd.dir/crypto.c.o CMakeFiles/nstd.dir/expluginbase.c.o CMakeFiles/nstd.dir/lmdb/eidl.c.o CMakeFiles/nstd.dir/lmdb/edb.c.o CMakeFiles/nstd.dir/edbutil.c.o CMakeFiles/nstd.dir/crc32.c.o CMakeFiles/nstd.dir/nstd_shm.c.o CMakeFiles/nstd.dir/sys_svqshm.c.o CMakeFiles/nstd.dir/sys_svqevent.c.o CMakeFiles/nstd.dir/nstd_sem.c.o CMakeFiles/nstd.dir/sys_svqadmin.c.o make[2]: Leaving directory '/home/user1/endurox' ... [ 8%] Building C object ubftest/CMakeFiles/testedbsync.dir/test_nstd_msync.c.o cd /home/user1/endurox/ubftest && /usr/bin/cc -I/home/user1/endurox/libubf -I/home/user1/endurox/include -I/home/user1/endurox/libnstd -Wno-format-truncation -Wstringop-overflow=0 -D_DEFAULT_SOURCE=1 -g -D UBF_DEBUG -o CMakeFiles/testedbsync.dir/test_nstd_msync.c.o -c /home/user1/endurox/ubftest/test_nstd_msync.c [ 9%] Linking C executable testedbsync cd /home/user1/endurox/ubftest && /usr/bin/cmake -E cmake_link_script CMakeFiles/testedbsync.dir/link.txt --verbose=1 /usr/bin/cc -Wno-format-truncation -Wstringop-overflow=0 -D_DEFAULT_SOURCE=1 -g -rdynamic CMakeFiles/testedbsync.dir/test_nstd_msync.c.o -o testedbsync -L/home/user1/endurox/libubf -Wl,-rpath,/home/user1/endurox/libubf:/home/user1/endurox/libnstd ../libubf/libubf.so ../libcgreen/libcgreen.a -lm ../libnstd/libnstd.so -lrt -ldl -pthread -lpthread /usr/bin/x86_64-linux-gnu-ld: testedbsync: hidden symbol `pthread_atfork' in /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a(pthread_atfork.oS) is referenced by DSO /usr/bin/x86_64-linux-gnu-ld: final link failed: Bad value collect2: error: ld returned 1 exit status ubftest/CMakeFiles/testedbsync.dir/build.make:97: recipe for target 'ubftest/testedbsync' failed make[2]: *** [ubftest/testedbsync] Error 1 make[2]: Leaving directory '/home/user1/endurox' CMakeFiles/Makefile2:538: recipe for target 'ubftest/CMakeFiles/testedbsync.dir/all' failed make[1]: *** [ubftest/CMakeFiles/testedbsync.dir/all] Error 2 make[1]: Leaving directory '/home/user1/endurox' Makefile:151: recipe for target 'all' failed make: *** [all] Error 2 user1@ubuntu18:~/endurox$ =============================================== So basically binary links against shared library which uses pthread_atfork(). On Ubuntu 14.04 it is building fine. So seems some kind of issue with Posix threads library. As I read in manpage there is no specific use or limitations of the function. Also I tried to build on IBM AIX, there are no issues too with this code. Thus I consider it is bug in the Ubuntu operating system. ProblemType: Bug DistroRelease: Ubuntu 18.04 Package: gcc 4:7.3.0-3ubuntu2 ProcVersionSignature: Ubuntu 4.15.0-34.37-generic 4.15.18 Uname: Linux 4.15.0-34-generic x86_64 ApportVersion: 2.20.9-0ubuntu7.1 Architecture: amd64 Date: Tue Oct 9 10:35:20 2018 ProcEnviron: TERM=xterm PATH=(custom, no user) LANG=en_US.UTF-8 SHELL=/bin/sh SourcePackage: gcc-defaults UpgradeStatus: No upgrade log present (probably fresh install) ** Affects: gcc-defaults (Ubuntu) Importance: Undecided Status: New ** Tags: amd64 apport-bug bionic uec-images -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1796858 Title: Building process fails with hidden symbol `pthread_atfork' To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1796858/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs