Skip to content

Instantly share code, notes, and snippets.

@Fatmice
Last active August 16, 2017 23:33
Show Gist options
  • Save Fatmice/37892dd004e4dc812017f9e028bea752 to your computer and use it in GitHub Desktop.
Save Fatmice/37892dd004e4dc812017f9e028bea752 to your computer and use it in GitHub Desktop.
With -flto=thin
[quyen@thinkpad lit-test]$ /home/quyen/D/ldc-test/bin/ldc2 -v -flto=thin -O3 -run /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors.d
binary /home/quyen/D/ldc-test/bin/ldc2
version 1.4.0git-1a3391e (DMD v2.074.1, LLVM 4.0.1)
config /home/quyen/D/ldc-test/etc/ldc2.conf (x86_64-unknown-linux-gnu)
predefs LDC all D_Version2 assert X86_64 D_InlineAsm_X86_64 D_HardFloat LittleEndian D_LP64 D_PIC linux Posix CRuntime_Glibc LDC_LLVM_400
parse thinlto_modulecdtors
importall thinlto_modulecdtors
import object (/home/quyen/D/ldc-test/bin/../import/ldc/object.d)
import core.stdc.stdio (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdio.d)
import core.stdc.stdint (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdint.d)
import core.stdc.stddef (/home/quyen/D/ldc-test/bin/../import/core/stdc/stddef.d)
import core.stdc.signal (/home/quyen/D/ldc-test/bin/../import/core/stdc/signal.d)
import core.stdc.wchar_ (/home/quyen/D/ldc-test/bin/../import/core/stdc/wchar_.d)
import core.stdc.config (/home/quyen/D/ldc-test/bin/../import/core/stdc/config.d)
import core.stdc.stdarg (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdarg.d)
import core.stdc.time (/home/quyen/D/ldc-test/bin/../import/core/stdc/time.d)
import core.sys.posix.sys.types (/home/quyen/D/ldc-test/bin/../import/core/sys/posix/sys/types.d)
import core.sys.posix.config (/home/quyen/D/ldc-test/bin/../import/core/sys/posix/config.d)
semantic thinlto_modulecdtors
entry main /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors.d
semantic2 thinlto_modulecdtors
semantic3 thinlto_modulecdtors
code thinlto_modulecdtors
/usr/bin/gcc thinlto_modulecdtors-0bb2093.o -o /tmp/thinlto_modulecdtors-0bb2093-6350bc -Wl,-plugin,/home/quyen/D/ldc-test/lib64/LLVMgold-ldc.so -Wl,-plugin-opt=thinlto -Wl,-plugin-opt=O3 -Wl,-plugin-opt=-function-sections -Wl,-plugin-opt=-data-sections -L/home/quyen/D/ldc-test/bin/../lib64 -lphobos2-ldc -ldruntime-ldc -Wl,--gc-sections -lrt -ldl -lpthread -lm -m64
/tmp/thinlto_modulecdtors-0bb2093-6350bc
Error: /tmp/thinlto_modulecdtors-0bb2093-6350bc failed with status: -2
Error: message: Illegal instruction (core dumped)
Error: program received signal 2 (Interrupt)
[quyen@thinkpad lit-test]$ /home/quyen/D/ldc-test/bin/ldc2 -v -flto=thin -O3 /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors.d
binary /home/quyen/D/ldc-test/bin/ldc2
version 1.4.0git-1a3391e (DMD v2.074.1, LLVM 4.0.1)
config /home/quyen/D/ldc-test/etc/ldc2.conf (x86_64-unknown-linux-gnu)
predefs LDC all D_Version2 assert X86_64 D_InlineAsm_X86_64 D_HardFloat LittleEndian D_LP64 D_PIC linux Posix CRuntime_Glibc LDC_LLVM_400
parse thinlto_modulecdtors
importall thinlto_modulecdtors
import object (/home/quyen/D/ldc-test/bin/../import/ldc/object.d)
import core.stdc.stdio (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdio.d)
import core.stdc.stdint (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdint.d)
import core.stdc.stddef (/home/quyen/D/ldc-test/bin/../import/core/stdc/stddef.d)
import core.stdc.signal (/home/quyen/D/ldc-test/bin/../import/core/stdc/signal.d)
import core.stdc.wchar_ (/home/quyen/D/ldc-test/bin/../import/core/stdc/wchar_.d)
import core.stdc.config (/home/quyen/D/ldc-test/bin/../import/core/stdc/config.d)
import core.stdc.stdarg (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdarg.d)
import core.stdc.time (/home/quyen/D/ldc-test/bin/../import/core/stdc/time.d)
import core.sys.posix.sys.types (/home/quyen/D/ldc-test/bin/../import/core/sys/posix/sys/types.d)
import core.sys.posix.config (/home/quyen/D/ldc-test/bin/../import/core/sys/posix/config.d)
semantic thinlto_modulecdtors
entry main /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors.d
semantic2 thinlto_modulecdtors
semantic3 thinlto_modulecdtors
code thinlto_modulecdtors
/usr/bin/gcc thinlto_modulecdtors.o -o thinlto_modulecdtors -Wl,-plugin,/home/quyen/D/ldc-test/lib64/LLVMgold-ldc.so -Wl,-plugin-opt=thinlto -Wl,-plugin-opt=O3 -Wl,-plugin-opt=-function-sections -Wl,-plugin-opt=-data-sections -L/home/quyen/D/ldc-test/bin/../lib64 -lphobos2-ldc -ldruntime-ldc -Wl,--gc-sections -lrt -ldl -lpthread -lm -m64
[quyen@thinkpad lit-test]$ env -i ldd ./thinlto_modulecdtors
linux-vdso.so.1 (0x00007ffc795d2000)
librt.so.1 => /lib64/librt.so.1 (0x00007f7006b38000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f7006934000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7006715000)
libm.so.6 => /lib64/libm.so.6 (0x00007f70063ff000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f70061e8000)
libc.so.6 => /lib64/libc.so.6 (0x00007f7005e17000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7006d40000)
[quyen@thinkpad lit-test]$ ./thinlto_modulecdtors
Illegal instruction (core dumped)
[quyen@thinkpad lit-test]$ /home/quyen/D/ldc-test/bin/ldc2 -v -flto=thin -O3 /home/quyen/D/ldc/tests/linking/inputs/thinlto_ctor.d -run /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors_2.d
binary /home/quyen/D/ldc-test/bin/ldc2
version 1.4.0git-1a3391e (DMD v2.074.1, LLVM 4.0.1)
config /home/quyen/D/ldc-test/etc/ldc2.conf (x86_64-unknown-linux-gnu)
predefs LDC all D_Version2 assert X86_64 D_InlineAsm_X86_64 D_HardFloat LittleEndian D_LP64 D_PIC linux Posix CRuntime_Glibc LDC_LLVM_400
parse thinlto_modulecdtors_2
parse thinlto_ctor
importall thinlto_modulecdtors_2
import object (/home/quyen/D/ldc-test/bin/../import/ldc/object.d)
import core.stdc.stdio (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdio.d)
import core.stdc.stdint (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdint.d)
import core.stdc.stddef (/home/quyen/D/ldc-test/bin/../import/core/stdc/stddef.d)
import core.stdc.signal (/home/quyen/D/ldc-test/bin/../import/core/stdc/signal.d)
import core.stdc.wchar_ (/home/quyen/D/ldc-test/bin/../import/core/stdc/wchar_.d)
import core.stdc.config (/home/quyen/D/ldc-test/bin/../import/core/stdc/config.d)
import core.stdc.stdarg (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdarg.d)
import core.stdc.time (/home/quyen/D/ldc-test/bin/../import/core/stdc/time.d)
import core.sys.posix.sys.types (/home/quyen/D/ldc-test/bin/../import/core/sys/posix/sys/types.d)
import core.sys.posix.config (/home/quyen/D/ldc-test/bin/../import/core/sys/posix/config.d)
importall thinlto_ctor
semantic thinlto_modulecdtors_2
entry main /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors_2.d
semantic thinlto_ctor
semantic2 thinlto_modulecdtors_2
semantic2 thinlto_ctor
semantic3 thinlto_modulecdtors_2
semantic3 thinlto_ctor
code thinlto_ctor
code thinlto_modulecdtors_2
/usr/bin/gcc thinlto_modulecdtors_2-239fea5.o -o /tmp/thinlto_modulecdtors_2-239fea5-593936 -Wl,-plugin,/home/quyen/D/ldc-test/lib64/LLVMgold-ldc.so -Wl,-plugin-opt=thinlto -Wl,-plugin-opt=O3 -Wl,-plugin-opt=-function-sections -Wl,-plugin-opt=-data-sections -L/home/quyen/D/ldc-test/bin/../lib64 -lphobos2-ldc -ldruntime-ldc -Wl,--gc-sections -lrt -ldl -lpthread -lm -m64
/tmp/thinlto_modulecdtors_2-239fea5-593936
Error: /tmp/thinlto_modulecdtors_2-239fea5-593936 failed with status: -2
Error: message: Illegal instruction (core dumped)
Error: program received signal 2 (Interrupt)
[quyen@thinkpad lit-test]$ /home/quyen/D/ldc-test/bin/ldc2 -v -flto=thin -O3 /home/quyen/D/ldc/tests/linking/inputs/thinlto_ctor.d /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors_2.d
binary /home/quyen/D/ldc-test/bin/ldc2
version 1.4.0git-1a3391e (DMD v2.074.1, LLVM 4.0.1)
config /home/quyen/D/ldc-test/etc/ldc2.conf (x86_64-unknown-linux-gnu)
predefs LDC all D_Version2 assert X86_64 D_InlineAsm_X86_64 D_HardFloat LittleEndian D_LP64 D_PIC linux Posix CRuntime_Glibc LDC_LLVM_400
parse thinlto_ctor
parse thinlto_modulecdtors_2
importall thinlto_ctor
import object (/home/quyen/D/ldc-test/bin/../import/ldc/object.d)
import core.stdc.stdio (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdio.d)
import core.stdc.stdint (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdint.d)
import core.stdc.stddef (/home/quyen/D/ldc-test/bin/../import/core/stdc/stddef.d)
import core.stdc.signal (/home/quyen/D/ldc-test/bin/../import/core/stdc/signal.d)
import core.stdc.wchar_ (/home/quyen/D/ldc-test/bin/../import/core/stdc/wchar_.d)
import core.stdc.config (/home/quyen/D/ldc-test/bin/../import/core/stdc/config.d)
import core.stdc.stdarg (/home/quyen/D/ldc-test/bin/../import/core/stdc/stdarg.d)
import core.stdc.time (/home/quyen/D/ldc-test/bin/../import/core/stdc/time.d)
import core.sys.posix.sys.types (/home/quyen/D/ldc-test/bin/../import/core/sys/posix/sys/types.d)
import core.sys.posix.config (/home/quyen/D/ldc-test/bin/../import/core/sys/posix/config.d)
importall thinlto_modulecdtors_2
semantic thinlto_ctor
semantic thinlto_modulecdtors_2
entry main /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors_2.d
semantic2 thinlto_ctor
semantic2 thinlto_modulecdtors_2
semantic3 thinlto_ctor
semantic3 thinlto_modulecdtors_2
code thinlto_modulecdtors_2
code thinlto_ctor
/usr/bin/gcc thinlto_ctor.o -o thinlto_ctor -Wl,-plugin,/home/quyen/D/ldc-test/lib64/LLVMgold-ldc.so -Wl,-plugin-opt=thinlto -Wl,-plugin-opt=O3 -Wl,-plugin-opt=-function-sections -Wl,-plugin-opt=-data-sections -L/home/quyen/D/ldc-test/bin/../lib64 -lphobos2-ldc -ldruntime-ldc -Wl,--gc-sections -lrt -ldl -lpthread -lm -m64
[quyen@thinkpad lit-test]$ ./thinlto_ctor
Illegal instruction (core dumped)
[quyen@thinkpad lit-test]$ env -i ldd ./thinlto_ctor
linux-vdso.so.1 (0x00007ffca758a000)
librt.so.1 => /lib64/librt.so.1 (0x00007f8f4d613000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f8f4d40f000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8f4d1f0000)
libm.so.6 => /lib64/libm.so.6 (0x00007f8f4ceda000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f8f4ccc3000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8f4c8f2000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8f4d81b000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment