Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
January 10, 2014 [Binutils support] Add demangling to libiberty | ||||
---|---|---|---|---|
| ||||
One of the binutils devs suggested this, to move D demangling into libiberty, that way binutils programs (and any other program that uses libiberty in a similar manner) will gain D support. For binutils, this would include D demangling support for (via the -C or --demangle= switch). - nm - addr2line - objdump - ld https://github.com/ibuclaw/gdb/commit/0ba7ac2f91f45b24bcfba2d1ecedb10580fac152 I have named the specified demangle style as 'dlang', if no one has objects, I'll go ahead and write it up. Regards Iain. |
January 10, 2014 Re: [Binutils support] Add demangling to libiberty | ||||
---|---|---|---|---|
| ||||
Posted in reply to Iain Buclaw | On Fri, Jan 10, 2014 at 05:51:17PM +0000, Iain Buclaw wrote: > One of the binutils devs suggested this, to move D demangling into libiberty, that way binutils programs (and any other program that uses libiberty in a similar manner) will gain D support. [...] Yes! Please do!! This will go a long way in helping D get stronger tool support, at least on GNU platforms. T -- Freedom: (n.) Man's self-given right to be enslaved by his own depravity. |
January 11, 2014 Re: [Binutils support] Add demangling to libiberty | ||||
---|---|---|---|---|
| ||||
On 10 January 2014 20:05, H. S. Teoh <hsteoh@quickfur.ath.cx> wrote: > On Fri, Jan 10, 2014 at 05:51:17PM +0000, Iain Buclaw wrote: >> One of the binutils devs suggested this, to move D demangling into libiberty, that way binutils programs (and any other program that uses libiberty in a similar manner) will gain D support. > [...] > > Yes! Please do!! This will go a long way in helping D get stronger tool support, at least on GNU platforms. > This is a start. Unfortunately through testing, it becomes more apparently that the ability to demangle templates is absolute key here to the success of this. Without demangling: $ ./ld/ld-new test.o 2>&1 | grep -v "__T" ./ld/ld-new: warning: cannot find entry symbol _start; defaulting to 0000000000400120 test.o: In function `main': /opt/usr/include/d/4.9.0/__entrypoint.di:59: undefined reference to `_d_run_main' test.o: In function `_Dmain': /home/iain/src/gdc/gdb/objdir/test.d:5: undefined reference to `_D3std4math3tanFNaNbNeeZe' test.o: In function `test._D4test9__modinitFZv': /home/iain/src/gdc/gdb/objdir/test.d:5: undefined reference to `_Dmodule_ref' /home/iain/src/gdc/gdb/objdir/test.d:5: undefined reference to `_Dmodule_ref' test.o:(.data+0x10): undefined reference to `_D3std4math12__ModuleInfoZ' With demangling: $ ./ld/ld-new test.o --demangle=dlang 2>&1 | grep -v "__T" ./ld/ld-new: warning: cannot find entry symbol _start; defaulting to 0000000000400120 test.o: In function `main': /opt/usr/include/d/4.9.0/__entrypoint.di:59: undefined reference to `_d_run_main' test.o: In function `D main': /home/iain/src/gdc/gdb/objdir/test.d:5: undefined reference to `std.math.tan(real)' test.o: In function `test._D4test9__modinitFZv': /home/iain/src/gdc/gdb/objdir/test.d:5: undefined reference to `_Dmodule_ref' /home/iain/src/gdc/gdb/objdir/test.d:5: undefined reference to `_Dmodule_ref' test.o:(.data+0x10): undefined reference to `std.math.moduleinfo$' Anyway, here's the guts of the change. https://github.com/ibuclaw/gdb/commit/45c505dbc0eecb9fa7842dcbdf46894e450c9cbc Regards Iain. |
January 19, 2014 Re: [Binutils support] Add demangling to libiberty | ||||
---|---|---|---|---|
| ||||
On 10 January 2014 20:05, H. S. Teoh <hsteoh@quickfur.ath.cx> wrote: > On Fri, Jan 10, 2014 at 05:51:17PM +0000, Iain Buclaw wrote: >> One of the binutils devs suggested this, to move D demangling into libiberty, that way binutils programs (and any other program that uses libiberty in a similar manner) will gain D support. > [...] > > Yes! Please do!! This will go a long way in helping D get stronger tool support, at least on GNU platforms. > > Initial patches have been committed ! https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=log;h=50367cd2ada722ddf5bede594d8ed7631fcde5ab |
January 19, 2014 Re: [Binutils support] Add demangling to libiberty | ||||
---|---|---|---|---|
| ||||
Posted in reply to Iain Buclaw | On 1/18/14 10:34 AM, Iain Buclaw wrote:
> On 10 January 2014 20:05, H. S. Teoh <hsteoh@quickfur.ath.cx> wrote:
>> On Fri, Jan 10, 2014 at 05:51:17PM +0000, Iain Buclaw wrote:
>>> One of the binutils devs suggested this, to move D demangling into
>>> libiberty, that way binutils programs (and any other program that
>>> uses libiberty in a similar manner) will gain D support.
>> [...]
>>
>> Yes! Please do!! This will go a long way in helping D get stronger tool
>> support, at least on GNU platforms.
>>
>>
>
> Initial patches have been committed !
>
> https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=log;h=50367cd2ada722ddf5bede594d8ed7631fcde5ab
This is terrific. Congratulations!
Andrei
|
Copyright © 1999-2021 by the D Language Foundation