This is the mail archive of the
mailing list for the binutils project.
Re: [PATCH] ld: Override default linker emulation at configure time
* Alan Modra <firstname.lastname@example.org> [2017-01-20 11:37:28 +1030]:
> On Thu, Jan 19, 2017 at 04:38:31PM +0000, Andrew Burgess wrote:
> > This commit adds a new configure option for ld that allows the default
> > linker emulation to be selected at configure time. The new option is:
> > --with-default-linker-emulation=NAME
> > where NAME is the name of a linker emulation that would otherwise be
> > valid for this target (as you'd pass to ld -mNAME). The validity of
> > NAME is checked at configure time.
> > The effect of this configure option is to make NAME the new default
> > linker emulation. The old default is still available in the list of
> > alternative emulations and can be selected with the -m option to ld.
> Do you have an example where this would be useful, and wouldn't be
> better to configure for the correct target?
Sure, I'm currently support a customer Mellanox, to upstream support
for their arc700 based architecture. As part of this work we've added
an additional linker script.
So, when Mellanox configure binutils a bit like this:
thanks to the 'arc*-*-linux*' specialisation in configure.tgt we set
the default linker script to arclinux. However, Mellanox will
actually always want to use the arclinux_nps linker emulation, so
ideally this would be the default.
I could add more specialisation in configure.tgt, but in  I was led
to believe that using the vendor string of the configuration target for
specialisation was discouraged wherever possible, and so...
... the only idea I could come up with was adding a configure option.
I'm not tied to this implementation though, I'm happy to rework this
in a different direction if you have any hints / suggestions.