[OE-core] ARC: machine dictionary - ARCompact vs ARCv2

Alexey Brodkin alexey.brodkin at synopsys.com
Tue Sep 25 11:57:23 UTC 2018


Hello,

While upstreaming ARC bits in OE core I faced one interesting challenge.

As of today we have 2 binary-incompatible 32-bit ISAs (Instruction Set Arch):
 1. ARCompact (AKA ARCv1) and
 2. ARCv2

In Binutils they have 2 separate machine numbers: EM_ARC_COMPACT=93 for ARCompact,
see [1] and EM_ARC_COMPACT2=195 for ARCv2, see [2].

Still we call them both "arc" and so I'm not sure what would be the right way
of handling that mess in OE's machine dictionary.

For now I just have separate instances of "arc_machine_dict" for ARCompact [3]
and ARCv2 [4] and depending on what a given OE "machine" includes as "tune-arcX.inc"
build system uses one or another dictionary entry.

Even though it works fine it doesn't fit into common dictionary in meta/lib/oe/elf.py.

Any suggestions on how ARC machine dictionary might be upstreamed?

-Alexey

[1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=include/elf/common.h;h=e194274305663f565c6beee5ec21dbed70cdac46;hb=HEAD#l202
[2] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=include/elf/common.h;h=e194274305663f565c6beee5ec21dbed70cdac46;hb=HEAD#l309
[3] 
https://github.com/foss-for-synopsys-dwc-arc-processors/meta-synopsys/blob/083958dedbd60c022432a17e952638a41e37c3dc/conf/machine/include/tune-arcompact.inc#L25
[4] 
https://github.com/foss-for-synopsys-dwc-arc-processors/meta-synopsys/blob/083958dedbd60c022432a17e952638a41e37c3dc/conf/machine/include/tune-arcv2.inc#L38


More information about the Openembedded-core mailing list