www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 22556] New: Invalid GOT load reloc with -O on MacOS

https://issues.dlang.org/show_bug.cgi?id=22556

          Issue ID: 22556
           Summary: Invalid GOT load reloc with -O on MacOS
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Mac OS X
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: moonlightsentinel disroot.org

The test runnable_cxx/test7925.d consistently fails on MacOS 10.15 (run by
GitHub Actions, see e.g. [1]).
The invalid codegen occurs for the first permutation that includes -O.

Maybe another incarnation of https://issues.dlang.org/show_bug.cgi?id=14814.

 ... runnable_cxx/test7925.d         -fPIC -L-lstdc++ -L--no-demangle (-inline
-release -g -O)

========== Symbols for C++ object file:
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o
==========
0000000000000370 T __Z11runCPPTestsv
0000000000000310 T __Z8createC1v
                 U __Z8createC2v
0000000000000060 T __ZN2C12f0Ev
0000000000000080 T __ZN2C12f1Ei
00000000000000a0 T __ZN2C12f2Eii
00000000000000c0 T __ZN2C12f3Eii
00000000000000e0 T __ZN2C12f4Eiz
0000000000000350 T __ZN2C1C1Ev
0000000000000900 T __ZN2C1C2Ev
0000000000000030 T __ZN2C1D0Ev
0000000000000010 T __ZN2C1D1Ev
0000000000000000 T __ZN2C1D2Ev
                 U __ZN2C22f0Ev
                 U __ZN2C22f1Ei
                 U __ZN2C22f2Eii
                 U __ZN2C22f4Eiz
0000000000000a60 S __ZTI2C1
0000000000000a70 S __ZTS2C1
0000000000000a38 S __ZTV2C1
                 U __ZTVN10__cxxabiv117__class_type_infoE
                 U __ZdlPv
                 U __Znwm
                 U ___assert_rtn
                 U ___stack_chk_fail
                 U ___stack_chk_guard
                 U _memset

==============================
Test 'runnable_cxx/test7925.d' failed. The logged output:
/Users/runner/work/dmd/dmd/clang+llvm-9.0.0-x86_64-darwin-apple/bin/clang-wrapper
-m64 -c runnable_cxx/extra-files/cpp7925.cpp -o
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o
/Users/runner/work/dmd/dmd/dmd/generated/osx/release/64/dmd -conf= -m64
-Irunnable_cxx  -fPIC -L-lstdc++ -L--no-demangle 
-od/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx
-of/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_0 
runnable_cxx/test7925.d
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o 
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_0 
--DRT-testmode=run-main

/Users/runner/work/dmd/dmd/dmd/generated/osx/release/64/dmd -conf= -m64
-Irunnable_cxx  -fPIC -L-lstdc++ -L--no-demangle -inline
-od/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx
-of/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_1 
runnable_cxx/test7925.d
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o 
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_1 
--DRT-testmode=run-main

/Users/runner/work/dmd/dmd/dmd/generated/osx/release/64/dmd -conf= -m64
-Irunnable_cxx  -fPIC -L-lstdc++ -L--no-demangle -release
-od/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx
-of/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_2 
runnable_cxx/test7925.d
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o 
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_2 
--DRT-testmode=run-main

/Users/runner/work/dmd/dmd/dmd/generated/osx/release/64/dmd -conf= -m64
-Irunnable_cxx  -fPIC -L-lstdc++ -L--no-demangle -inline -release
-od/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx
-of/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_3 
runnable_cxx/test7925.d
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o 
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_3 
--DRT-testmode=run-main

/Users/runner/work/dmd/dmd/dmd/generated/osx/release/64/dmd -conf= -m64
-Irunnable_cxx  -fPIC -L-lstdc++ -L--no-demangle -g
-od/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx
-of/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_4 
runnable_cxx/test7925.d
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o 
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_4 
--DRT-testmode=run-main

/Users/runner/work/dmd/dmd/dmd/generated/osx/release/64/dmd -conf= -m64
-Irunnable_cxx  -fPIC -L-lstdc++ -L--no-demangle -inline -g
-od/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx
-of/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_5 
runnable_cxx/test7925.d
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o 
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_5 
--DRT-testmode=run-main

/Users/runner/work/dmd/dmd/dmd/generated/osx/release/64/dmd -conf= -m64
-Irunnable_cxx  -fPIC -L-lstdc++ -L--no-demangle -release -g
-od/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx
-of/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_6 
runnable_cxx/test7925.d
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o 
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_6 
--DRT-testmode=run-main

/Users/runner/work/dmd/dmd/dmd/generated/osx/release/64/dmd -conf= -m64
-Irunnable_cxx  -fPIC -L-lstdc++ -L--no-demangle -inline -release -g
-od/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx
-of/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_7 
runnable_cxx/test7925.d
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o 
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_7 
--DRT-testmode=run-main

/Users/runner/work/dmd/dmd/dmd/generated/osx/release/64/dmd -conf= -m64
-Irunnable_cxx  -fPIC -L-lstdc++ -L--no-demangle -O
-od/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx
-of/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_8 
runnable_cxx/test7925.d
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/cpp7925.cpp.o 
ld: GOT load reloc does not point to a movq instruction in '__Dmain' from
/Users/runner/work/dmd/dmd/dmd/test/test_results/runnable_cxx/test7925_8.o for
architecture x86_64
clang-9: error: linker command failed with exit code 1 (use -v to see
invocation)
Error: linker exited with status 1

==============================
Test 'runnable_cxx/test7925.d' failed: Expected rc == 0, but exited with rc ==
1


[1] https://github.com/dlang/dmd/runs/4368201262?check_suite_focus=true

--
Dec 01 2021