Skip to content

ThinLTO lit tests fail with bfd linker #2278

@Fatmice

Description

@Fatmice

I built and install llvm 4.0.1 with
cmake -DCMAKE_INSTALL_PREFIX=../llvm-test -DLLVM_TARGETS_TO_BUILD="X86;AArch64;ARM;PowerPC" -DLLVM_BINUTILS_INCDIR=/usr/include -DCMAKE_BUILD_TYPE=Release -DLLVM_LIBDIR_SUFFIX=64 ../llvm
Then built and test ldc origin/master with
cmake -DCMAKE_INSTALL_PREFIX=../ldc-test -DINCLUDE_PATH=import -DCMAKE_BUILD_TYPE=Release -DLIB_SUFFIX=64 -DLDC_INSTALL_LTOPLUGIN=ON -DLDC_INSTALL_LLVM_RUNTIME_LIBS=ON -DLLVM_ROOT_DIR=../llvm-test -DD_COMPILER=../install/ldc-0.17.4-bootstrap/bin/ldmd2 ../ldc

All tests passed except for two of the lit tests.
linking/thinlto_modulecdtors.d (134 of 153)
linking/thinlto_modulecdtors_2.d (144 of 153)
Here's complete log

The relevant portions

FAIL: LDC :: linking/thinlto_modulecdtors.d (134 of 153)
******************** TEST 'LDC :: linking/thinlto_modulecdtors.d' FAILED ********************
Script:
--
/home/quyen/D/ldc-build/bin/ldc2 -flto=thin -O3 -run /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors.d | FileCheck /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors.d
--
Exit Code: 2

Command Output (stdout):
--
$ "/home/quyen/D/ldc-build/bin/ldc2" "-flto=thin" "-O3" "-run" "/home/quyen/D/ldc/tests/linking/thinlto_modulecdtors.d"
# command stderr:
Error: /tmp/thinlto_modulecdtors-93a9e0a-1f491d failed with status: -2
Error: message: Illegal instruction (core dumped)
Error: program received signal 2 (Interrupt)

error: command failed with exit status: 2
$ "FileCheck" "/home/quyen/D/ldc/tests/linking/thinlto_modulecdtors.d"
# command stderr:
FileCheck error: '-' is empty.
FileCheck command line:  FileCheck /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors.d

error: command failed with exit status: 2

--

********************
UNSUPPORTED: LDC :: sanitizers/asan_dynalloc.d (135 of 153)
UNSUPPORTED: LDC :: sanitizers/asan_interface.d (136 of 153)
UNSUPPORTED: LDC :: sanitizers/asan_stackoverflow.d (137 of 153)
PASS: LDC :: sanitizers/fsanitize_address.d (138 of 153)
PASS: LDC :: linking/thinlto_pgo.d (139 of 153)
PASS: LDC :: sanitizers/fsanitize_blacklist.d (140 of 153)
PASS: LDC :: sanitizers/fsanitize_error_diagnostic.d (141 of 153)
PASS: LDC :: sanitizers/fsanitize_coverage.d (142 of 153)
PASS: LDC :: sanitizers/fsanitize_thread.d (143 of 153)
FAIL: LDC :: linking/thinlto_modulecdtors_2.d (144 of 153)
******************** TEST 'LDC :: linking/thinlto_modulecdtors_2.d' FAILED ********************
Script:
--
/home/quyen/D/ldc-build/bin/ldc2 -flto=thin -O3 /home/quyen/D/ldc/tests/linking/inputs/thinlto_ctor.d -run /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors_2.d | FileCheck --check-prefix=EXECUTE /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors_2.d
--
Exit Code: 2

Command Output (stdout):
--
$ "/home/quyen/D/ldc-build/bin/ldc2" "-flto=thin" "-O3" "/home/quyen/D/ldc/tests/linking/inputs/thinlto_ctor.d" "-run" "/home/quyen/D/ldc/tests/linking/thinlto_modulecdtors_2.d"
# command stderr:
Error: /tmp/thinlto_modulecdtors_2-939d98e-2558f3 failed with status: -2
Error: message: Illegal instruction (core dumped)
Error: program received signal 2 (Interrupt)

error: command failed with exit status: 2
$ "FileCheck" "--check-prefix=EXECUTE" "/home/quyen/D/ldc/tests/linking/thinlto_modulecdtors_2.d"
# command stderr:
FileCheck error: '-' is empty.
FileCheck command line:  FileCheck --check-prefix=EXECUTE /home/quyen/D/ldc/tests/linking/thinlto_modulecdtors_2.d

error: command failed with exit status: 2

--

********************
UNSUPPORTED: LDC :: sanitizers/fuzz_basic.d (145 of 153)
UNSUPPORTED: LDC :: sanitizers/fuzz_asan.d (146 of 153)
UNSUPPORTED: LDC :: sanitizers/link_fuzzer.d (147 of 153)
PASS: LDC :: sanitizers/fsanitize_fuzzer.d (148 of 153)
PASS: LDC :: semantic/target_traits_diag.d (149 of 153)
PASS: LDC :: semantic/dcompute.d (150 of 153)
PASS: LDC :: semantic/target_traits.d (151 of 153)
PASS: LDC :: linking/ir2obj_cache_pruning2.d (152 of 153)
PASS: LDC :: tools/ldc_prune_cache_1.d (153 of 153)
Testing Time: 20.31s
********************
Failing Tests (2):
    LDC :: linking/thinlto_modulecdtors.d
    LDC :: linking/thinlto_modulecdtors_2.d

  Expected Passes    : 128
  Unsupported Tests  : 23
  Unexpected Failures: 2
<end of output>
Test time =  20.59 sec
----------------------------------------------------------
Test Failed.
"lit-tests" end time: Aug 16 16:24 CDT
"lit-tests" time elapsed: 00:00:20
----------------------------------------------------------

End testing: Aug 16 16:24 CDT

I then make install the ldc build and try to repeat those two tests
linking/thinlto_modulecdtors.d
linking/thinlto_modulecdtors_2.d
Running the executables from these two always resulted in Illegal instruction (core dumped) when -flto=thin is used but -flto=full will run without problem.
linking/thinlto_modulecdtors.d
linking/thinlto_modulecdtors_2.d

What is the issue here? @JohanEngelen ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions