Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
im currently trying to replicate a gcc-3.4.0 arm-elf build from an very old cross toolchain building with my script (https://pastebin.com/kAEK0S24) works but my -print-multi-lib returns only --- .; thumb;@mthumb --- the original builds -print-multi-lib returns --- .; thumb;@mthumb be;@mbig-endian fpu;@mhard-float interwork;@mthumb-interwork nofmult;@mcpu=arm7 fpu/interwork;@mhard-float@mthumb-interwork fpu/nofmult;@mhard-float@mcpu=arm7 be/fpu;@mbig-endian@mhard-float be/interwork;@mbig-endian@mthumb-interwork be/nofmult;@mbig-endian@mcpu=arm7 be/fpu/interwork;@mbig-endian@mhard-float@mthumb-interwork be/fpu/nofmult;@mbig-endian@mhard-float@mcpu=arm7 thumb/be;@mthumb@mbig-endian thumb/interwork;@mthumb@mthumb-interwork thumb/be/interwork;@mthumb@mbig-endian@mthumb-interwork --- and the configure lines getting with -v are the same i tried adding --with-float=hard --with-thumb-interwork --with-big-endian to ./configure but that doesn't changed my -print-multi-lib output is it needed that i directly change the content of my gcc-3.4.0\gcc\config\arm\t-arm-elf file to get the multi-lib options or is there a better way?
Re: Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
content of my gcc-3.4.0\gcc\config\arm\t-arm-elf https://pastebin.com/CivYHhRa Am 27.09.2024 um 09:23 schrieb Dennis Luehring via Gcc: im currently trying to replicate a gcc-3.4.0 arm-elf build from an very old cross toolchain building with my script (https://pastebin.com/kAEK0S24) works but my -print-multi-lib returns only --- .; thumb;@mthumb --- the original builds -print-multi-lib returns --- .; thumb;@mthumb be;@mbig-endian fpu;@mhard-float interwork;@mthumb-interwork nofmult;@mcpu=arm7 fpu/interwork;@mhard-float@mthumb-interwork fpu/nofmult;@mhard-float@mcpu=arm7 be/fpu;@mbig-endian@mhard-float be/interwork;@mbig-endian@mthumb-interwork be/nofmult;@mbig-endian@mcpu=arm7 be/fpu/interwork;@mbig-endian@mhard-float@mthumb-interwork be/fpu/nofmult;@mbig-endian@mhard-float@mcpu=arm7 thumb/be;@mthumb@mbig-endian thumb/interwork;@mthumb@mthumb-interwork thumb/be/interwork;@mthumb@mbig-endian@mthumb-interwork --- and the configure lines getting with -v are the same i tried adding --with-float=hard --with-thumb-interwork --with-big-endian to ./configure but that doesn't changed my -print-multi-lib output is it needed that i directly change the content of my gcc-3.4.0\gcc\config\arm\t-arm-elf file to get the multi-lib options or is there a better way?
Re: Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
On 27/09/2024 10:03, David Brown via Gcc wrote: > On 27/09/2024 10:13, Dennis Luehring via Gcc wrote: >> Am 27.09.2024 um 09:56 schrieb Jonathan Wakely: >>> On Fri, 27 Sept 2024, 08:39 Dennis Luehring, wrote: >>> >>> > Am 27.09.2024 um 09:34 schrieb Jonathan Wakely: >>> > >>> > >>> > > They might not have >>> > > been using the original gcc-3.4.0 sources. >>> > >>> > >>> > seems to be very possible >>> > >>> > >>> > >>> > > There should be no need to edit those files, but that doesn't mean that >>> > the >>> > > people who built your old toolchain didn't edit them. >>> > >>> > the other way would be using --with-multilib-list=list ? >>> > but that usage should be visible by using -v on the original build, or? >>> > >>> >>> I think so yes, but I'm not sure. If you said arm-elf in the mail Subject >>> you might get the attention of somebody who knows the details. >> >> so just repost with a changed subject? >> >>> >>> Have you tried to obtain the sources from whoever provided the original >>> compiler that you're trying to replicate? >>> >> >> so far not available - the original providing company (Microcross) is >> long defunct (over a decade now) >> but im still trying to reach someone >> > > It was very common at that time for suppliers to use slightly modified gcc > sources for microcontrollers (especially ARM, but also for other targets). > Typically manufacturers and some major third-party gcc builders were ahead of > mainline in support for some microcontroller cores and workarounds for known > hardware bugs, and they also often backported such changes from newer gcc > mainline to older gcc releases. So there is a very real chance that the > sources you have are not original. > > You could download the archived release from the gcc website and compare the > sources to get some idea if they have changed. > > And if you don't get hold of someone from Microcross, you might have luck > with someone from Code Sourcery. I believe they were doing a lot of the work > on ARM gcc on behalf of microcontroller manufacturers at that time. > > David > > The list of multilibs for Arm has become increadibly long as the architecture has migrated down the different (A, R, M) profiles. To handle this we now provide some canned rules to build a set of multilibs that will handle most of these profiles out of the box, but they can increase the overall build time significantly, and only work correctly if you don't try to override the default architecture flags, or change the default code generation from Arm to Thumb. You can enable all this if you add --with-multilib-list= where can be any of "aprofile", "rmprofile" or "aprofile,rmprofile". You can also see the code that supports all this (and how complex it is :) ) in gcc/config/arm/{t-multilib,t-aprofile,t-rmprofile). All this is with the latest sources, but this code dates back several releases now. HTH, R.
Re: Christophe Lyon as MVE reviewer for the AArch32 (arm) port.
Hi Ramana, On 9/26/24 19:22, Ramana Radhakrishnan wrote: I am pleased to announce that the GCC Steering Committee has appointed Christophe Lyon as a MVE Reviewer for the AArch32 port. Please join me in congratulating Christophe on his new role. Christophe, please update your listings in the MAINTAINERS file. Regards, Ramana Thanks for your trust! Christophe
Re: Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
On 27/09/2024 10:13, Dennis Luehring via Gcc wrote: Am 27.09.2024 um 09:56 schrieb Jonathan Wakely: On Fri, 27 Sept 2024, 08:39 Dennis Luehring, wrote: > Am 27.09.2024 um 09:34 schrieb Jonathan Wakely: > > > > They might not have > > been using the original gcc-3.4.0 sources. > > > seems to be very possible > > > > > There should be no need to edit those files, but that doesn't mean that > the > > people who built your old toolchain didn't edit them. > > the other way would be using --with-multilib-list=list ? > but that usage should be visible by using -v on the original build, or? > I think so yes, but I'm not sure. If you said arm-elf in the mail Subject you might get the attention of somebody who knows the details. so just repost with a changed subject? Have you tried to obtain the sources from whoever provided the original compiler that you're trying to replicate? so far not available - the original providing company (Microcross) is long defunct (over a decade now) but im still trying to reach someone It was very common at that time for suppliers to use slightly modified gcc sources for microcontrollers (especially ARM, but also for other targets). Typically manufacturers and some major third-party gcc builders were ahead of mainline in support for some microcontroller cores and workarounds for known hardware bugs, and they also often backported such changes from newer gcc mainline to older gcc releases. So there is a very real chance that the sources you have are not original. You could download the archived release from the gcc website and compare the sources to get some idea if they have changed. And if you don't get hold of someone from Microcross, you might have luck with someone from Code Sourcery. I believe they were doing a lot of the work on ARM gcc on behalf of microcontroller manufacturers at that time. David
Re: Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
Am 27.09.2024 um 09:34 schrieb Jonathan Wakely: They might not have been using the original gcc-3.4.0 sources. seems to be very possible There should be no need to edit those files, but that doesn't mean that the people who built your old toolchain didn't edit them. the other way would be using --with-multilib-list=list ? but that usage should be visible by using -v on the original build, or?
Re: Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
On Fri, 27 Sept 2024, 08:39 Dennis Luehring, wrote: > Am 27.09.2024 um 09:34 schrieb Jonathan Wakely: > > > > They might not have > > been using the original gcc-3.4.0 sources. > > > seems to be very possible > > > > > There should be no need to edit those files, but that doesn't mean that > the > > people who built your old toolchain didn't edit them. > > the other way would be using --with-multilib-list=list ? > but that usage should be visible by using -v on the original build, or? > I think so yes, but I'm not sure. If you said arm-elf in the mail Subject you might get the attention of somebody who knows the details. Have you tried to obtain the sources from whoever provided the original compiler that you're trying to replicate?
Re: Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
On Fri, 27 Sept 2024, 08:24 Dennis Luehring via Gcc, wrote: > im currently trying to replicate a gcc-3.4.0 arm-elf build from an very > old cross toolchain > building with my script (https://pastebin.com/kAEK0S24) works > but my -print-multi-lib returns only > > --- > .; > thumb;@mthumb > --- > > the original builds -print-multi-lib returns > > --- > .; > thumb;@mthumb > be;@mbig-endian > fpu;@mhard-float > interwork;@mthumb-interwork > nofmult;@mcpu=arm7 > fpu/interwork;@mhard-float@mthumb-interwork > fpu/nofmult;@mhard-float@mcpu=arm7 > be/fpu;@mbig-endian@mhard-float > be/interwork;@mbig-endian@mthumb-interwork > be/nofmult;@mbig-endian@mcpu=arm7 > be/fpu/interwork;@mbig-endian@mhard-float@mthumb-interwork > be/fpu/nofmult;@mbig-endian@mhard-float@mcpu=arm7 > thumb/be;@mthumb@mbig-endian > thumb/interwork;@mthumb@mthumb-interwork > thumb/be/interwork;@mthumb@mbig-endian@mthumb-interwork > --- > > and the configure lines getting with -v are the same > > i tried adding > > --with-float=hard --with-thumb-interwork --with-big-endian > > to ./configure but that doesn't changed my -print-multi-lib output > > > is it needed that i directly change the content of my > > gcc-3.4.0\gcc\config\arm\t-arm-elf > > file to get the multi-lib options or is there a better way? > There should be no need to edit those files, but that doesn't mean that the people who built your old toolchain didn't edit them. They might not have been using the original gcc-3.4.0 sources. >
Re: Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
Am 27.09.2024 um 13:00 schrieb Richard Earnshaw (lists): > It was very common at that time for suppliers to use slightly modified gcc sources for microcontrollers (especially ARM, but also for other targets). Typically manufacturers and some major third-party gcc builders were ahead of mainline in support for some microcontroller cores and workarounds for known hardware bugs, and they also often backported such changes from newer gcc mainline to older gcc releases. So there is a very real chance that the sources you have are not original. > > You could download the archived release from the gcc website and compare the sources to get some idea if they have changed. > > And if you don't get hold of someone from Microcross, you might have luck with someone from Code Sourcery. I believe they were doing a lot of the work on ARM gcc on behalf of microcontroller manufacturers at that time. > > David > > The list of multilibs for Arm has become increadibly long as the architecture has migrated down the different (A, R, M) profiles. To handle this we now provide some canned rules to build a set of multilibs that will handle most of these profiles out of the box, but they can increase the overall build time significantly, and only work correctly if you don't try to override the default architecture flags, or change the default code generation from Arm to Thumb. You can enable all this if you add --with-multilib-list= where can be any of "aprofile", "rmprofile" or "aprofile,rmprofile". You can also see the code that supports all this (and how complex it is :) ) in gcc/config/arm/{t-multilib,t-aprofile,t-rmprofile). thanks, i will try that All this is with the latest sources, but this code dates back several releases now. hoepfully back to 2004 :)
Re: Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
Am 27.09.2024 um 09:56 schrieb Jonathan Wakely: On Fri, 27 Sept 2024, 08:39 Dennis Luehring, wrote: > Am 27.09.2024 um 09:34 schrieb Jonathan Wakely: > > > > They might not have > > been using the original gcc-3.4.0 sources. > > > seems to be very possible > > > > > There should be no need to edit those files, but that doesn't mean that > the > > people who built your old toolchain didn't edit them. > > the other way would be using --with-multilib-list=list ? > but that usage should be visible by using -v on the original build, or? > I think so yes, but I'm not sure. If you said arm-elf in the mail Subject you might get the attention of somebody who knows the details. so just repost with a changed subject? Have you tried to obtain the sources from whoever provided the original compiler that you're trying to replicate? so far not available - the original providing company (Microcross) is long defunct (over a decade now) but im still trying to reach someone
Re: Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
On Fri, 27 Sept 2024 at 09:13, Dennis Luehring wrote: > > Am 27.09.2024 um 09:56 schrieb Jonathan Wakely: > > On Fri, 27 Sept 2024, 08:39 Dennis Luehring, wrote: > > > > > Am 27.09.2024 um 09:34 schrieb Jonathan Wakely: > > > > > > > > > > They might not have > > > > been using the original gcc-3.4.0 sources. > > > > > > > > > seems to be very possible > > > > > > > > > > > > > There should be no need to edit those files, but that doesn't mean that > > > the > > > > people who built your old toolchain didn't edit them. > > > > > > the other way would be using --with-multilib-list=list ? > > > but that usage should be visible by using -v on the original build, or? > > > > > > > I think so yes, but I'm not sure. If you said arm-elf in the mail Subject > > you might get the attention of somebody who knows the details. > > so just repost with a changed subject? I've just noticed this thread is on the main gcc@ mailing list, I assumed it was on the gcc-help@ list where questions like this belong. ARM maintainers will probably see it anyway. I've CC'd one of the ARM maintainers now too. Richard, can you answer the question from the first mail in the thread, regarding arm multilibs? (This is for gcc 3.4.0!) Can the original multilib list be replicated by copying the items from -print-multi-lib into the --with-multilib-list configure option? > > > > > Have you tried to obtain the sources from whoever provided the original > > compiler that you're trying to replicate? > > > > so far not available - the original providing company (Microcross) is > long defunct (over a decade now) > but im still trying to reach someone > >
Re: Is there a need to sometimes change gcc/config/t-* files when building a cross compiler?
Am 27.09.2024 um 11:03 schrieb David Brown: So there is a very real chance that the sources you have are not original. You could download the archived release from the gcc website and compare the sources to get some idea if they have changed. i do not have original source - only binaries, i hope that building the exact versions of binutils(2.15)/gcc(3.4.0) and newlib(1.12.0) will bring me very near to the binaries i got - maybe i can compare the build-results using assembler-code/or map diffing...
gcc-13-20240927 is now available
Snapshot gcc-13-20240927 is now available on https://gcc.gnu.org/pub/gcc/snapshots/13-20240927/ and on various mirrors, see https://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 13 git branch with the following options: git://gcc.gnu.org/git/gcc.git branch releases/gcc-13 revision f7037fd03ad842dc69e20c03942f29d982ad655e You'll find: gcc-13-20240927.tar.xz Complete GCC SHA256=06bfaee7646e04935685b284e73d5cb105dd16e1227bda3dfac4c6e74eba2372 SHA1=cad6a5445a6e58dc1cd14b9385c9ca5e60ceef40 Diffs from 13-20240920 are available in the diffs/ subdirectory. When a particular snapshot is ready for public consumption the LATEST-13 link is updated and a message is sent to the gcc list. Please do not use a snapshot before it has been announced that way.