I was playing a bit with threads in C++ and all was going well. For the final compile I wanted a static binary (don’t judge me, I have my reasons ;)). Compile passed as expected but executing program resulted in
Segmentation fault (core dumped) error:
g++ -pthread -static test.cpp
Segmentation fault (core dumped)
Well, these were definitely not the droids I was looking for.
Strangely enough, issue was with my
thread.join() statement. Something that shouldn’t cause any issues.
g++ -static -pthread -D_GLIBCXX_GTHREAD_USE_WEAK=0 -std=c++0x \
-Wl,--whole-archive -lpthread -Wl,--no-whole-archive test.cpp
And now my static binary worked happily ever after.