Bug 22556 – Invalid GOT load reloc with -O on MacOS

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P3
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Mac OS X
Creation time
2021-12-01T09:32:17Z
Last change time
2024-03-01T23:56:56Z
Keywords
backend, pull
Assigned to
No Owner
Creator
moonlightsentinel

Comments

Comment #0 by moonlightsentinel — 2021-12-01T09:32:17Z
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
Comment #1 by dlang-bot — 2024-02-22T20:38:11Z
@ibuclaw updated dlang/dmd pull request #16227 "Fix Bugzilla 24401 - OSX: Linker error: GOT load reloc does not point to a movq instruction" fixing this issue: - Fix Bugzilla 22556 - Invalid GOT load reloc with -O on MacOS https://github.com/dlang/dmd/pull/16227
Comment #2 by dlang-bot — 2024-02-23T04:55:10Z
dlang/dmd pull request #16227 "Fix Bugzilla 24401 - OSX: Linker error: GOT load reloc does not point to a movq instruction" was merged into stable: - a093a2ff0e8808de76e85bf91b4d407f9c405fed by Iain Buclaw: Fix Bugzilla 22556 - Invalid GOT load reloc with -O on MacOS https://github.com/dlang/dmd/pull/16227
Comment #3 by dlang-bot — 2024-03-01T23:56:56Z
dlang/dmd pull request #16276 "merge stable" was merged into master: - 582bf08cb09ffe8f9c3c71953566a363b1caa6a3 by Iain Buclaw: Fix Bugzilla 22556 - Invalid GOT load reloc with -O on MacOS https://github.com/dlang/dmd/pull/16276