This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PING: Re: [PATCHv2 0/2] Add initial arc nps400 support
- From: Andrew Burgess <andrew dot burgess at embecosm dot com>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: binutils at sourceware dot org, noamca at mellanox dot com, Claudiu dot Zissulescu at synopsys dot com, Cupertino dot Miranda at synopsys dot com
- Date: Tue, 15 Mar 2016 13:40:44 +0000
- Subject: Re: PING: Re: [PATCHv2 0/2] Add initial arc nps400 support
- Authentication-results: sourceware.org; auth=none
- References: <20160302193711 dot GB9275 at embecosm dot com> <cover dot 1456947552 dot git dot andrew dot burgess at embecosm dot com> <20160311201339 dot GB14100 at embecosm dot com> <56E7EEA4 dot 8010709 at redhat dot com> <20160315113739 dot GI14100 at embecosm dot com> <56E804B0 dot 8000701 at redhat dot com>
* Nick Clifton <nickc@redhat.com> [2016-03-15 12:48:48 +0000]:
> Hi Andrew,
>
> >> #target: arc*-mellanox-*
> >>
> >> What is "mellanox"
>
> > Patch #2 adds this name to the opcodes/configure script. I
> > deliberately tried to minimise the number of configure scripts I
> > changed.
>
> Would it be possible to use an underscore rather than a hyphen for the
> mellenox extension ? Ie:
>
> arc_mellanox-*
>
> No other CPU name includes a hyphen character, and this character is
> traditionally used to separate the three fields of a target configuration.
> (See the top level config.sub file for more information on this).
Maybe I'm miss-understanding the target triplet system. My intention was
that mellanox was a vendor name, which I thought got its own space
within the triplet. This page, for example, led me to think this:
https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html
though as this page also says, cpu-vendor-os, can also become
cpu-vendor-kernel-system.
For arc it's possible to configure for both little-endian and
big-endian toolchains, with the default being little-endian, while the
mellanox system is most commonly big-endian but can also be configured
little-endian, so for configuration, I normally use:
--target=arceb-mellanox-linux-uclibc
though the -linux-uclibc part is really about GCC and makes no
difference to binutils, I suspect -elf would be fine too (I _think_
I've tried that).
[ It's worth noting though that parts of binutils are broken for
big-endian arc. I posted and merged a patch recently that fixed the
assembler, as that's where I'm currently working for mellanox, and I
plan to fix the linker soon. ]
So, mellanox is definitely not the cpu name, the cpu name is nps400,
but as it's an arc700 with extension instructions to support their SoC
I would rather not create a whole new cpu type. If I did then I'd end
up having to patch a lot of configure scripts, plus a lot of test
files.
If I'm not understanding the purpose of the vendor field in the target
triplet, please can you help me understand. After reading all I can
find, I still think arc-mellanox-* is the right fit.
Thanks,
Andrew