Talk:Embedded Handbook/Tuples

From Gentoo Wiki
Jump to:navigation Jump to:search
This is a Talk page - please see the documentation about using talk pages. Add newer comments below older ones, sign comments using four tildes (~~~~), and indent successive comments with colons (:). Add new sections at the bottom of the page, under a heading (== ==). Please remember to mark sections as "open for discussion" using {{talk|open}}, so they will show up in the list of open discussions.

What is a "softfloat toolchain"?

Talk status
This discussion is still ongoing.

Footnote 1 states:

    Remember that part where we said the vendor field was completely arbitrary? That's almost completely true. In the Gentoo world, we've allocated the field softfloat to indicate softfloat toolchains. If you need a softfloat toolchain, make sure to set the vendor field in your tuple with this in it.

I'm having problems setting up a cross compiler on an amd64 for an arm64 (Raspberry Pi 4/Pi [Cortex-A72 (ARMv8.0-A)] Zero 2 W [Cortex A53 (ARMv8.0-A)]) using "crossdev --binutils '~2.37' --gcc '~11.2.1' --kernel '~5.15' --libc '~2.33' -t aarch64-unknown-linux-gnu --ov-output /var/db/repos/crossdev" I received the error line " error: binutils failed :(" and the error log file states "emerge: there are no ebuilds to satisfy "cross-aarch64-unknown-linux-gnu/binutils". I also replaced "unknown" with "gentoo" and received the same type of error.

So I come to this page, Embedded Handbook/Tuples, hoping to get some clarification about tuples as I think my problem is I am using a tuple that will not work right from the start. I used to cross compile (amd64 host) for the arm chip back in 2013 for the Sheeva Plug computer (ARM 9e) and the term "softloat" seems familiar. From a quick search, softfloat for an older chip is likely as I do not think arm . Yet, current documentation on lead me to using "unknown" for the vendor. I'd really like to have an explanation or a link to something that explains what a "softfloat toolchain" is vs. a non-softfloat toolchain.

An answer on StackOverflow

    Hard floats use an on-chip floating point unit. Soft floats emulate one in software. The difference is speed. It's strange to see both used on the same target architecture, since the chip either has an FPU or doesn't."  

A subsequent answer suggests "soft - this is pure software", "softfp - this supports a hardware FPU, but the ABI is soft compatible." and "hard - the ABI uses float or VFP registers."

This looks interesting, too:

My understanding is that the Cortex A72 and A53 would support hardfloat. I can't believe that the three other components of the tuple would be anything different, so that causes me to conclude the "vendor" field is what is tripping meup.

Update: I see the terms are defined at Embedded_Handbook/General/Full#More_terminology_and_variables which is after the link to this page. --Jlpoole (talk) 04:21, 26 March 2022 (UTC)