Defining a Super Specific uArch

squirvel voxbox via crossgcc <[email protected]> Tue, 12 Jan 2021 17:45:13 -0500
Newsgroups gmane.comp.gcc.cross-compiling
Message-ID <CAMdB7Vb0XH4zqTpgdWdR6aCcEymCij5Dbi_dX6L-T3GHiBN2Hg@mail.gmail.com>
Hi All,

I asked a fairly similar question over on the irc channel, and didn't get a
response, so I'm trying here.

Let's say I'm attempting to target a super specific CPU, (in this case a
RK3328, which is a 64bit armv8-a+crypto cpu). What would be the proper way
to define the cpu?

I am currently defining:
    target architecture: arm
    suffix to the arch-part: v8-a+crypto (according to gcc, the dash is
required to define v8-a)
    emit assembly for CPU: cortex-a53
    other items are set based on the sample aarch64-rpi3 configuration

But ct-ng build fails due to:
    "Invalid configuration `aarch64v8-a+crypto-RK3328-linux-gnu': more than
four components" (so more than 4 dashes according to the script source code)
or if I disable the vendor string (set to RK3328)
    "Invalid configuration `aarch64v8-a+crypto-linux-gnu': machine
`aarch64v8-a+crypto' not recognized"

In theory I could just add all the specific uarch flags to CFLAGS/LDFLAGS
such as -march=, but that feels rather hacky especially since there is an
arch suffix field.

Is the hacky way the way I should be defining this cpu, or am I just
specifying this incorrectly? If the latter, what is the proper way to
specify a super specific uarch?

Thanks,
squirvel
--
For unsubscribe information see http://sourceware.org/lists.html#faq