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