[Bug 1796858] [NEW] Building process fails with hidden symbol `pthread_atfork'
Madars Vitolins
1796858 at bugs.launchpad.net
Tue Oct 9 10:55:40 UTC 2018
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 at 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
Foundations Bugs, which is subscribed to gcc-defaults in Ubuntu.
https://bugs.launchpad.net/bugs/1796858
Title:
Building process fails with hidden symbol `pthread_atfork'
Status in gcc-defaults package in Ubuntu:
New
Bug description:
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 at 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)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1796858/+subscriptions
More information about the foundations-bugs
mailing list