Giter Site home page Giter Site logo

Comments (15)

tpetazzoni avatar tpetazzoni commented on June 16, 2024

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.

stsp avatar stsp commented on June 16, 2024

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.

tpetazzoni avatar tpetazzoni commented on June 16, 2024

Which Buildroot configuration are you using ?

from toolchains-builder.

stsp avatar stsp commented on June 16, 2024

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.

tpetazzoni avatar tpetazzoni commented on June 16, 2024

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.

stsp avatar stsp commented on June 16, 2024

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.

stsp avatar stsp commented on June 16, 2024

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.

tpetazzoni avatar tpetazzoni commented on June 16, 2024

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.

stsp avatar stsp commented on June 16, 2024

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.

tpetazzoni avatar tpetazzoni commented on June 16, 2024

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.

stsp avatar stsp commented on June 16, 2024

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.

tpetazzoni avatar tpetazzoni commented on June 16, 2024

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.

stsp avatar stsp commented on June 16, 2024

There is no option for that, but why not to just depend on fewer SSE variants instead?

from toolchains-builder.

tpetazzoni avatar tpetazzoni commented on June 16, 2024

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.

stsp avatar stsp commented on June 16, 2024

That works, thanks!

from toolchains-builder.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.