digitalmars.D.learn - undefined reference to `const const(char)[] object.Throwable.message()
- kdevel (23/23) May 17 2022 I am compiling some test code which dmd v2.100.and linking
- rikki cattermole (5/5) May 17 2022 As far as I know, no D compiler guarantees compatibility between objects...
I am compiling some test code which dmd v2.100.and linking
against a libdecimal.a compiled in March, probably compiled with
dmd v2.099.0.
```
$ dmd -g mytest.d decimal.git/libdecimal.a
```
Now the linker complains:
```
decimal.git/libdecimal.a(decimal_4f_a27.o):(.data._D7decimalQi25InvalidOperationExce
tion6__vtblZ+0x48): undefined reference to `_D6object9Throwable7messageMxFZAxa'
decimal.git/libdecimal.a(decimal_50_94f.o):(.data._D7decimalQi23DivisionByZeroExce
tion6__vtblZ+0x48): undefined reference to `_D6object9Throwable7messageMxFZAxa'
decimal.git/libdecimal.a(decimal_51_703.o):(.data._D7decimalQi17OverflowExce
tion6__vtblZ+0x48): undefined reference to `_D6object9Throwable7messageMxFZAxa'
decimal.git/libdecimal.a(decimal_52_765.o):(.data._D7decimalQi18UnderflowExce
tion6__vtblZ+0x48): undefined reference to `_D6object9Throwable7messageMxFZAxa'
decimal.git/libdecimal.a(decimal_53_67b.o):(.data._D7decimalQi16InexactExce
tion6__vtblZ+0x48): undefined reference to `_D6object9Throwable7messageMxFZAxa'
decimal.git/libdecimal.a(decimal_4e_65e.o):(.data._D7decimalQi16DecimalExce
tion6__vtblZ+0x48): more undefined references to
`_D6object9Throwable7messageMxFZAxa' follow
collect2: ld returned 1 exit status
Error: linker exited with status 1
```
which demangles to
```
decimal.git/libdecimal.a(decimal_4e_65e.o):(.data.decimal.decimal.DecimalExc
ption.__vtbl+0x48): more undefined references to `const const(char)[]
object.Throwable.message()' follow
```
When switching back to dmd v2.099.1 linking succeeds. Could not
find any hint in https://dlang.org/changelog/2.100.0.html.
May 17 2022
As far as I know, no D compiler guarantees compatibility between objects built on different version of itself. The change would have been[0]. [0] https://github.com/dlang/druntime/commit/c6762914682d4fa894e2b746bf4bd9ce3ec9f7cb
May 17 2022








rikki cattermole <rikki cattermole.co.nz>