[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