Hello good people
I'm packaging for CentOS 7 a piece of proprietary software. The software is
written in C++14, so I need to use the devtoolset to run it.
Unfortunately I'm having some issues with linking of pthreads. First off I'm
getting this warning:
In file included from /opt/rh/devtoolset-6/root/usr/include/c++/6.3.1/x86_64-redhat-linux/bits/gthr.h:148:0,
from /opt/rh/devtoolset-6/root/usr/include/c++/6.3.1/ext/atomicity.h:35,
from /opt/rh/devtoolset-6/root/usr/include/c++/6.3.1/bits/ios_base.h:39,
from /opt/rh/devtoolset-6/root/usr/include/c++/6.3.1/ios:42,
from /opt/rh/devtoolset-6/root/usr/include/c++/6.3.1/ostream:38,
from /opt/rh/devtoolset-6/root/usr/include/c++/6.3.1/iostream:39,
from src/logd-main.cpp:23:
/opt/rh/devtoolset-6/root/usr/include/c++/6.3.1/x86_64-redhat-linux/bits/gthr-default.h:236:10: warning: 'int __gthrw___pthread_key_create(pthread_key_t*, void (*)(void*)) throw ()' used but never defined
__gthrw2(__gthrw_(__pthread_key_create),
…Where the problematic line is a `#include <iostream>`.
Then of course it gets problematic upon linking time
objs/intel-debug/src/logd-main.o:(.rodata+0x8): undefined reference to `__gthrw___pthread_key_create(unsigned int*, void (*)(void*))'
collect2: error: ld returned 1 exit status
I searched around on the Web: the classic suggestion (from stackoverflow and
such) will be to check for the `-pthread` flag to be present at compilation.
This is of course tackled already.
Since the compilation is working in other contexts, I started to wonder if
this is some known problem in CentOS + Devtoolset: did someone have similar
issues?
Perhaps there's something wrong in how I do the build. Is there in CentOS
some software which is using Devtoolset which I could take as example for my
build?
Thanks in advance for any suggestion :)