<div dir="ltr">So I thought I'd compile clang, llvm, compiler-rt, libc++ ... everything but openmp.<div><br></div><div>I then compiled my main.cpp in dynamically and all was well:</div><div><br></div><div><div>$ PATH=/home/wink/prgs/llvm/dist/bin:$PATH clang++ -std=c++17 -v -fuse-ld=lld -stdlib=libc++ -lc++abi -pthread main.cpp -o main</div><div>clang version 7.0.0 (git@github.com:llvm-mirror/clang.git 833ad29a88de7d88bd69234b5069bbfaea0235d1) (git@github.com:llvm-mirror/llvm c55ef4741ac75872f0e692c87eac70745b3ce167)</div><div>Target: x86_64-unknown-linux-gnu</div><div>Thread model: posix</div><div>InstalledDir: /home/wink/prgs/llvm/dist/bin</div><div>Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/8.1.1</div><div>Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1</div><div>Selected GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1</div><div>Candidate multilib: .;@m64</div><div>Candidate multilib: 32;@m32</div><div>Selected multilib: .;@m64</div><div> "/home/wink/prgs/llvm/dist/bin/clang-7" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name main.cpp -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -resource-dir /home/wink/prgs/llvm/dist/lib/clang/7.0.0 -internal-isystem /home/wink/prgs/llvm/dist/bin/../include/c++/v1 -internal-isystem /usr/local/include -internal-isystem /home/wink/prgs/llvm/dist/lib/clang/7.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++17 -fdeprecated-macro -fdebug-compilation-dir /home/wink/prgs/explore-cpp-static-linking -ferror-limit 19 -fmessage-length 114 -pthread -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/main-09ff4c.o -x c++ main.cpp</div><div>clang -cc1 version 7.0.0 based upon LLVM 7.0.0svn default target x86_64-unknown-linux-gnu</div><div>ignoring nonexistent directory "/include"</div><div>#include "..." search starts here:</div><div>#include <...> search starts here:</div><div> /home/wink/prgs/llvm/dist/bin/../include/c++/v1</div><div> /usr/local/include</div><div> /home/wink/prgs/llvm/dist/lib/clang/7.0.0/include</div><div> /usr/include</div><div>End of search list.</div><div> "/home/wink/prgs/llvm/dist/bin/ld.lld" --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o main /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../../../lib64/crt1.o /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/crtbegin.o -L/usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1 -L/usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../.. -L/home/wink/prgs/llvm/dist/bin/../lib -L/lib -L/usr/lib -lc++abi /tmp/main-09ff4c.o -lc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/crtend.o /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../../../lib64/crtn.o</div><div><br></div><div>wink@wink-desktop:~/prgs/explore-cpp-static-linking (master)</div><div>$ ldd ./main</div><div><span style="white-space:pre">   </span>linux-vdso.so.1 (0x00007fffb3f27000)</div><div><span style="white-space:pre">  </span>libc++abi.so.1 => not found</div><div><span style="white-space:pre">        </span>libc++.so.1 => not found</div><div><span style="white-space:pre">   </span>libm.so.6 => /usr/lib/libm.so.6 (0x00007f2b3e244000)</div><div><span style="white-space:pre">       </span>libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f2b3e02c000)</div><div><span style="white-space:pre">       </span>libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f2b3de0e000)</div><div><span style="white-space:pre">   </span>libc.so.6 => /usr/lib/libc.so.6 (0x00007f2b3da52000)</div><div><span style="white-space:pre">       </span>/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f2b3e5d9000)</div><div><br></div><div>wink@wink-desktop:~/prgs/explore-cpp-static-linking (master)</div><div>$ LD_LIBRARY_PATH=/home/wink/prgs/llvm/dist/lib ./main 1 2 3</div><div>argv[0]: ./main</div><div>argv[1]: 1</div><div>argv[2]: 2</div><div>argv[3]: 3</div></div><div><br></div><div><br></div><div><br></div><div>I then statically linked it and added --reproduce as it fails the same as before:</div><div><br></div><div><div>wink@wink-desktop:~/prgs/explore-cpp-static-linking (master)</div><div>$ PATH=/home/wink/prgs/llvm/dist/bin:$PATH clang++ -std=c++17 -v -fuse-ld=lld -stdlib=libc++ -lc++abi -pthread main.cpp -o main -static -Wl,--reproduce=repro.tar</div><div>clang version 7.0.0 (git@github.com:llvm-mirror/clang.git 833ad29a88de7d88bd69234b5069bbfaea0235d1) (git@github.com:llvm-mirror/llvm c55ef4741ac75872f0e692c87eac70745b3ce167)</div><div>Target: x86_64-unknown-linux-gnu</div><div>Thread model: posix</div><div>InstalledDir: /home/wink/prgs/llvm/dist/bin</div><div>Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/8.1.1</div><div>Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1</div><div>Selected GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1</div><div>Candidate multilib: .;@m64</div><div>Candidate multilib: 32;@m32</div><div>Selected multilib: .;@m64</div><div> "/home/wink/prgs/llvm/dist/bin/clang-7" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name main.cpp -static-define -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -resource-dir /home/wink/prgs/llvm/dist/lib/clang/7.0.0 -internal-isystem /home/wink/prgs/llvm/dist/bin/../include/c++/v1 -internal-isystem /usr/local/include -internal-isystem /home/wink/prgs/llvm/dist/lib/clang/7.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++17 -fdeprecated-macro -fdebug-compilation-dir /home/wink/prgs/explore-cpp-static-linking -ferror-limit 19 -fmessage-length 114 -pthread -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/main-35f7e5.o -x c++ main.cpp</div><div>clang -cc1 version 7.0.0 based upon LLVM 7.0.0svn default target x86_64-unknown-linux-gnu</div><div>ignoring nonexistent directory "/include"</div><div>#include "..." search starts here:</div><div>#include <...> search starts here:</div><div> /home/wink/prgs/llvm/dist/bin/../include/c++/v1</div><div> /usr/local/include</div><div> /home/wink/prgs/llvm/dist/lib/clang/7.0.0/include</div><div> /usr/include</div><div>End of search list.</div><div> "/home/wink/prgs/llvm/dist/bin/ld.lld" --eh-frame-hdr -m elf_x86_64 -static -o main /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../../../lib64/crt1.o /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/crtbeginT.o -L/usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1 -L/usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../.. -L/home/wink/prgs/llvm/dist/bin/../lib -L/lib -L/usr/lib -lc++abi /tmp/main-35f7e5.o --reproduce=repro.tar -lc++ -lm --start-group -lgcc -lgcc_eh -lpthread -lc --end-group /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/crtend.o /usr/lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../../../lib64/crtn.o</div></div><div><br></div><div><div>wink@wink-desktop:~/prgs/explore-cpp-static-linking (master)</div><div>$ ldd ./main</div><div><span style="white-space:pre">     </span>not a dynamic executable</div><div><br></div><div>wink@wink-desktop:~/prgs/explore-cpp-static-linking (master)</div><div>$ ./main 1 2 3</div><div>Segmentation fault (core dumped)</div><div><br></div><div>wink@wink-desktop:~/prgs/explore-cpp-static-linking (master)</div><div>$ coredumpctl gdb</div><div>           PID: 30644 (main)</div><div>           UID: 1000 (wink)</div><div>           GID: 100 (users)</div><div>        Signal: 11 (SEGV)</div><div>     Timestamp: Tue 2018-07-03 09:31:18 PDT (4s ago)</div><div>  Command Line: ./main 1 2 3</div><div>    Executable: /home/wink/prgs/explore-cpp-static-linking/main</div><div> Control Group: /user.slice/user-1000.slice/session-c2.scope</div><div>          Unit: session-c2.scope</div><div>         Slice: user-1000.slice</div><div>       Session: c2</div><div>     Owner UID: 1000 (wink)</div><div>       Boot ID: a39916a44af64ce3836e760848efaaac</div><div>    Machine ID: 8f80fd742eae4659baed812cd07a9439</div><div>      Hostname: wink-desktop</div><div>       Storage: /var/lib/systemd/coredump/core.main.1000.a39916a44af64ce3836e760848efaaac.30644.1530635478000000.lz4</div><div>       Message: Process 30644 (main) of user 1000 dumped core.</div><div>                </div><div>                Stack trace of thread 30644:</div><div>                #0  0x0000000000376736 n/a (/home/wink/prgs/explore-cpp-static-linking/main)</div><div><br></div><div>GNU gdb (GDB) 8.1</div><div>Copyright (C) 2018 Free Software Foundation, Inc.</div><div>License GPLv3+: GNU GPL version 3 or later <<a href="http://gnu.org/licenses/gpl.html">http://gnu.org/licenses/gpl.html</a>></div><div>This is free software: you are free to change and redistribute it.</div><div>There is NO WARRANTY, to the extent permitted by law.  Type "show copying"</div><div>and "show warranty" for details.</div><div>This GDB was configured as "x86_64-pc-linux-gnu".</div><div>Type "show configuration" for configuration details.</div><div>For bug reporting instructions, please see:</div><div><<a href="http://www.gnu.org/software/gdb/bugs/">http://www.gnu.org/software/gdb/bugs/</a>>.</div><div>Find the GDB manual and other documentation resources online at:</div><div><<a href="http://www.gnu.org/software/gdb/documentation/">http://www.gnu.org/software/gdb/documentation/</a>>.</div><div>For help, type "help".</div><div>Type "apropos word" to search for commands related to "word"...</div><div>Reading symbols from /home/wink/prgs/explore-cpp-static-linking/main...done.</div><div>[New LWP 30644]</div><div>[Thread debugging using libthread_db enabled]</div><div>Using host libthread_db library "/usr/lib/libthread_db.so.1".</div><div>Core was generated by `./main 1 2 3'.</div><div>Program terminated with signal SIGSEGV, Segmentation fault.</div><div>#0  0x0000000000376736 in _dl_get_origin ()</div><div>(gdb) bt</div><div>#0  0x0000000000376736 in _dl_get_origin ()</div><div>#1  0x000000000037846f in _dl_non_dynamic_init ()</div><div>#2  0x00000000002cd7e1 in __libc_init_first ()</div><div>#3  0x00000000002cd4d7 in __libc_start_main ()</div><div>#4  0x000000000025302a in _start ()</div><div>(gdb)</div></div><div><br></div><div><br></div><div>I've attached repo-master.tar.bzip2, let me know what else</div><div>I might be able to do to diagnose the problem.</div></div>