www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 18798] New: ld.gold: relocation R_386_GOTOFF against

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

          Issue ID: 18798
           Summary: ld.gold: relocation R_386_GOTOFF against preemptible
                    symbol cannot be used when making a shared object
           Product: D
           Version: D2
          Hardware: x86
                OS: Linux
            Status: NEW
          Keywords: dll
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: Marco.Leise gmx.de

When linking a 32-bit shared library with dmd and ld.gold on Linux the linker
bails out with:

/usr/x86_64-pc-linux-gnu/bin/ld: error: libgtkd-3.o: relocation R_386_GOTOFF
against preemptible symbol _D3gtk9UIManagerQk9getWidgetMFAyaZCQBh6WidgetQh
cannot be used when making a shared object
/usr/x86_64-pc-linux-gnu/bin/ld: error: libgtkd-3.o: relocation R_386_GOTOFF
against preemptible symbol
_D3std3uni__T21genericDecodeGraphemeVbi0Z__TQBfTAxaZQBnFNaNfKQnZv cannot be
used when making a shared object
/usr/x86_64-pc-linux-gnu/bin/ld: error: libgtkd-3.o: relocation R_386_GOTOFF
against preemptible symbol
_D3std3uni__T21genericDecodeGraphemeVbi0Z__TQBfTAxaZQBnFNaNfKQnZv cannot be
used when making a shared object

Using ldc2 or gdc as compilers it seems to work, so I assume it is a dmd
backend issue. Just the other day a bug in ld.gold got fixed that prevented
--ifc=safe to work (e.g. when self-hosting ldc2), --gc-sections got fixed in
dmd earlier and this is now the only remaining linker compatibility issue I see
on Linux.

--
Apr 25 2018