Comments (15)
The x86-64 bootlin toolchain is built with -march=corei7. For now the list of -march values that Buildroot handles is:
config BR2_GCC_TARGET_ARCH
default "i486" if BR2_x86_i486
default "i586" if BR2_x86_i586
default "i586" if BR2_x86_x1000
default "pentium-mmx" if BR2_x86_pentium_mmx
default "i686" if BR2_x86_i686
default "pentiumpro" if BR2_x86_pentiumpro
default "pentium-m" if BR2_x86_pentium_m
default "pentium2" if BR2_x86_pentium2
default "pentium3" if BR2_x86_pentium3
default "pentium4" if BR2_x86_pentium4
default "prescott" if BR2_x86_prescott
default "nocona" if BR2_x86_nocona
default "core2" if BR2_x86_core2
default "corei7" if BR2_x86_corei7
default "corei7-avx" if BR2_x86_corei7_avx
default "core-avx2" if BR2_x86_core_avx2
default "atom" if BR2_x86_atom
default "westmere" if BR2_x86_westmere
default "silvermont" if BR2_x86_silvermont
default "k8" if BR2_x86_opteron
default "k8-sse3" if BR2_x86_opteron_sse3
default "barcelona" if BR2_x86_barcelona
default "btver2" if BR2_x86_jaguar
default "bdver3" if BR2_x86_steamroller
default "k6" if BR2_x86_k6
default "k6-2" if BR2_x86_k6_2
default "athlon" if BR2_x86_athlon
default "athlon-4" if BR2_x86_athlon_4
default "winchip-c6" if BR2_x86_winchip_c6
default "winchip2" if BR2_x86_winchip2
default "c3" if BR2_x86_c3
default "c3-2" if BR2_x86_c32
default "geode" if BR2_x86_geode
So it seems like what we would need is add support for -march=x86-64 itself. What is your exact AMD CPU ?
from toolchains-builder.
model name : AMD Phenom(tm) II X4 955 Processor
But I am not quite sure what
you mean: buildroot itself supports
my CPU very well. bootlin tool-chain
is a problem.
from toolchains-builder.
Which Buildroot configuration are you using ?
from toolchains-builder.
I customized pc_x86_64_efi_defconfig.
My customized config has
BR2_x86_opteron=y
.
I think its probably compatible
with Phenom. :)
from toolchains-builder.
My understanding if that your Phenom II processor is a Family 10h core, so you could use BR2_x86_barcelona instead of BR2_x86_opteron.
Regarding the bootlin toolchain, I guess we need to find a good configuration that will work for a large number of people. That's why I was tempted to use:
'x86-64'
A generic CPU with 64-bit extensions.
from gcc -march. But there is no option in Buildroot currently that allows to use that.
from toolchains-builder.
Maybe you don't need the
exact version or "generic"
version, but can just always
keep it available in
"Toolchain type" sub-menu?
Currently if some "unsupported"
CPU is selected, the bootlin
toolchain option is hidden, which
is very bad, because then people
do not even know it exists at all.
But with generic bootlin variant,
such choice will always be presented.
from toolchains-builder.
Also you can still depend it
on a particular SSE version
for example. It is probably
even better to depend on a
needed CPU features, rather
than to add a separate option
with "uncertain" CPU features,
no?
from toolchains-builder.
Well, we want to hide the pre-built external toolchain if it's unsuitable for the particular CPU type that the user has selected in Buildroot's Target Architecture menu. Right now the toolchain x86-64-core-i7 is visible under the following conditions:
config BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_BLEEDING_EDGE
bool "x86-64-core-i7 glibc bleeding-edge 2020.08-1"
depends on BR2_x86_64
depends on BR2_X86_CPU_HAS_MMX
depends on BR2_X86_CPU_HAS_SSE
depends on BR2_X86_CPU_HAS_SSE2
depends on BR2_X86_CPU_HAS_SSE3
depends on BR2_X86_CPU_HAS_SSSE3
depends on BR2_X86_CPU_HAS_SSE4
depends on BR2_X86_CPU_HAS_SSE42
To me, this seems about right.
from toolchains-builder.
Yes, this is right.
What is not right is that
you never know it ever existed,
if you selected an AMD cpu.
I myself have found it out
just occasionally.
So if you add the generic
bootlin toolchain, why not
to always show it, or maybe
depend on the smaller set
of an SSE/MMX caps?
You probably don't need a
new CPU option, or do you?
from toolchains-builder.
I'm sorry, I'm not sure to follow you here. The current x86-64-core-i7 toolchain is only visible for CPUs that can handle code produced by this toolchain, this makes sense. Of course, if a more generic x86-64 toolchain is added to toolchains.bootlin.com, it will be made accessible to a broader set of x86-64 configurations.
Also, why are you wrapping your lines after 5 words? It makes it quite difficult to read your replies.
from toolchains-builder.
The current x86-64-core-i7 toolchain is only visible for CPUs that can handle code produced by this toolchain,
this makes sense.
There is a possibility to produce the unselectable
menu items, I believe. At least the user then can
see that such option is available, and see its help
page, but he won't be able to select it.
But this is cosmetic.
Of course, if a more generic x86-64 toolchain is added to toolchains.bootlin.com, it will be made accessible to a
broader set of x86-64 configurations.
I am just referring to this:
from gcc -march. But there is no option in Buildroot currently that allows to use that.
Maybe I misunderstood.
I assumed you are saying that there is no option for
generic x86-64 CPU in buildroot, so adding the generic
toochain is therefore problematic.
Also, why are you wrapping your lines after 5 words?
Ok, tried 10 words now.
from toolchains-builder.
There is a possibility to produce the unselectable menu items, I believe. At least the user then can see that such option is available, and see its help page, but he won't be able to select it. But this is cosmetic.
We do that for packages when a toolchain feature is missing, but for toolchains, I'm not sure it makes sense. If the user has selected CPU XYZ, and it really means that the hardware the user has, the user typically cannot change the hardware he owns. So for this sort of architecture dependencies, Buildroot typically doesn't display a Config.in comment.
Of course, if a more generic x86-64 toolchain is added to toolchains.bootlin.com, it will be made accessible to a
broader set of x86-64 configurations.I am just referring to this:
from gcc -march. But there is no option in Buildroot currently that allows to use that.
Maybe I misunderstood. I assumed you are saying that there is no option for generic x86-64 CPU in buildroot, so adding the generic toochain is therefore problematic.
That's indeed what I said, there is no such option today. Though I'm working on a patch for that.
Also, why are you wrapping your lines after 5 words?
Ok, tried 10 words now.
Why wrapping after 10 words? Why do that manually?
from toolchains-builder.
There is no option for that, but why not to just depend on fewer SSE variants instead?
from toolchains-builder.
This has been addressed since the release of Bootlin toolchains 2022.02: we now have x86-64, x86-64-v2, x86-64-v3 and x86-64-v4 toolchains, that allow to match all levels of x86-64 architectures.
from toolchains-builder.
That works, thanks!
from toolchains-builder.
Related Issues (20)
- musl 1.2.2 builds HOT 1
- The aarch64 toolchain (gcc 10.2) isn't working HOT 6
- aclocal is broken for sparc64--glibc--stable-2021.11-1 HOT 3
- Toolchain platform name HOT 1
- Binutils 2.37 issue with bleeding-edge toolchain 2021.11-1 HOT 1
- Please support older kernels HOT 6
- GCC D cross-compiler HOT 1
- Builds for arm64 hosts
- gold linker from binutils HOT 6
- 2021.11-1: mips64-n32 issues with glibc > 34 HOT 1
- why not have mips64-n64 HOT 2
- build-toolchain.sh doesn't flag all supported options HOT 1
- invalid options persist in fragments HOT 5
- loongarch64: New architecture support needed HOT 1
- Newest toolchains build broken OpenBIOS firmwares HOT 1
- How can I reproduce a build locally? HOT 3
- No LLVM? No Zig? No Clang? HOT 1
- Missing mpc.h in half(?) of the toolchains HOT 1
- Support for loongarch64?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from toolchains-builder.