I wanted to see how the corss toolchain for fedora was built so I tried to fetch is source RPMs. All I got is "No source RPM found" as below:
$ yumdownloader --source armv5tel-redhat-linux-gnueabi-gcc Loaded plugins: presto, refresh-packagekit Enabling updates-source repository Enabling rpmfusion-nonfree-updates-source repository Enabling rpmfusion-nonfree-source repository Enabling rpmfusion-free-updates-source repository Enabling livna-source repository Enabling fedora-source repository Enabling rpmfusion-free-source repository No source RPM found for armv5tel-redhat-linux-gnueabi-gcc-4.1.2-33.fa1.cross5.x86_64 Nothing to download
Now I have two questions: 1 - Where do I locate the toolchain SRPMS? 2 - Which of the toolchains - GNUARM or CodeSourcery - is packaged for Fedora?
/tuxdna
On 12/22/10 10:23, Somebody in the thread at some point said:
I wanted to see how the corss toolchain for fedora was built so I tried to fetch is source RPMs.
http://ftp.linux.org.uk/pub/linux/arm/fedora/cross/latest/source/
2 - Which of the toolchains - GNUARM or CodeSourcery - is packaged for Fedora?
CodeSourcery is an ugly tarball approach, I don't know about GNUARM.
Since cross is only needed for Kernel and Bootloader with the Fedora packaging approach, you're best off using the Fedora cross packages and the Fedora native toolchain for everything else.
-Andy
I wanted to see how the corss toolchain for fedora was built so I tried to fetch is source RPMs.
http://ftp.linux.org.uk/pub/linux/arm/fedora/cross/latest/source/
Thanks for the URL.
I tried to build an rpm on Fedora 14 - x86_64 and it doesn't build: ( srpm file used is http://ftp.linux.org.uk/pub/linux/arm/fedora/cross/latest/source/gcc-4.1.2-3... )
$ rpmbuild -ba gcc41.spec warning: line 168: prereq is deprecated: Prereq: /sbin/install-info warning: line 352: prereq is deprecated: Prereq: /sbin/install-info warning: line 417: prereq is deprecated: Prereq: /sbin/install-info warning: line 429: prereq is deprecated: Prereq: /sbin/install-info warning: line 494: prereq is deprecated: Prereq: /sbin/install-info warning: line 530: prereq is deprecated: Prereq: /sbin/install-info Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.6FUgBt + umask 022 + cd /home/sansari/rpmbuild/BUILD + LANG=C + export LANG + unset DISPLAY + cd /home/sansari/rpmbuild/BUILD + rm -rf gcc-4.1.2-20070925 + /usr/bin/bzip2 -dc /home/sansari/rpmbuild/SOURCES/gcc-4.1.2-20070925.tar.bz2 + /bin/tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd gcc-4.1.2-20070925 + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + echo 'Patch #1 (gcc41-ice-hack.patch):' Patch #1 (gcc41-ice-hack.patch): + /bin/cat /home/sansari/rpmbuild/SOURCES/gcc41-ice-hack.patch + /usr/bin/patch -s -p0 -b --suffix .ice-hack~ --fuzz=0 + echo 'Patch #2 (gcc41-ppc64-m32-m64-multilib-only.patch):' Patch #2 (gcc41-ppc64-m32-m64-multilib-only.patch): + /bin/cat /home/sansari/rpmbuild/SOURCES/gcc41-ppc64-m32-m64-multilib-only.patch + /usr/bin/patch -s -p0 -b --suffix .ppc64-m32-m64-multilib-only~ --fuzz=0 1 out of 1 hunk FAILED -- saving rejects to file gcc/config/rs6000/t-linux64.rej error: Bad exit status from /var/tmp/rpm-tmp.6FUgBt (%prep)
RPM build errors: line 168: prereq is deprecated: Prereq: /sbin/install-info line 352: prereq is deprecated: Prereq: /sbin/install-info line 417: prereq is deprecated: Prereq: /sbin/install-info line 429: prereq is deprecated: Prereq: /sbin/install-info line 494: prereq is deprecated: Prereq: /sbin/install-info line 530: prereq is deprecated: Prereq: /sbin/install-info Bad exit status from /var/tmp/rpm-tmp.6FUgBt (%prep)
CodeSourcery is an ugly tarball approach, I don't know about GNUARM.
Since cross is only needed for Kernel and Bootloader with the Fedora packaging approach, you're best off using the Fedora cross packages and the Fedora native toolchain for everything else.
I agree. However, I wanted to know that if we go about providing a tool-chain which would support ARMv7, then where would we pick the source code from?
I assume that Fedora tool-chain is built from GNUARM.
Please do correct if my assumption is wrong.
/tuxdna
On 12/22/10 13:03, Somebody in the thread at some point said:
Hi -
I wanted to see how the corss toolchain for fedora was built so I tried to fetch is source RPMs.
http://ftp.linux.org.uk/pub/linux/arm/fedora/cross/latest/source/
Thanks for the URL.
I tried to build an rpm on Fedora 14 - x86_64 and it doesn't build:
- /usr/bin/patch -s -p0 -b --suffix .ppc64-m32-m64-multilib-only~ --fuzz=0
1 out of 1 hunk FAILED -- saving rejects to file gcc/config/rs6000/t-linux64.rej
What happened is that rpmbuild changed since these old cross packages were built, it enforces --fuzz=0 now when it didn't before. So as you found, its own patches in the SRPM won't apply.
CodeSourcery is an ugly tarball approach, I don't know about GNUARM.
Since cross is only needed for Kernel and Bootloader with the Fedora packaging approach, you're best off using the Fedora cross packages and the Fedora native toolchain for everything else.
I agree. However, I wanted to know that if we go about providing a tool-chain which would support ARMv7, then where would we pick the source code from?
I assume that Fedora tool-chain is built from GNUARM.
Please do correct if my assumption is wrong.
CodeSourcery and if I understood it GNUARM are not magic toolchains, they're just built and maintained versions of standard packages like binutils and gcc same as Fedora does. The difference is that overall, Fedora is a consistent distro and these are just tarball blobs.
A few weeks ago I did the work to uplevel the cross patches to what was then current rawhide gcc and binutils, and posted the specfile patches and instructions for rebuild to the list (where it disappeared silently like a stone in a lake deep in a forest ^^):
http://www.spinics.net/linux/fedora/fedora-arm/msg00725.html
If you want to recook or uplevel the cross packages, that would be the place to start.
-Andy
On 12/22/2010 8:18 AM, Andy Green wrote:
A few weeks ago I did the work to uplevel the cross patches to what was then current rawhide gcc and binutils, and posted the specfile patches and instructions for rebuild to the list (where it disappeared silently like a stone in a lake deep in a forest ^^):
http://www.spinics.net/linux/fedora/fedora-arm/msg00725.html
If you want to recook or uplevel the cross packages, that would be the place to start.
-Andy
Have you considered adding this info to the Fedora ARM wiki? It would certainly be more accessible there than buried in a mailing list post somewhere. If you're a Fedora packager, you may also look into hosting RPMs of the cross chain in a fedorapeople repository (http://fedoraproject.org/wiki/Fedorapeople_Repos). armv5tel and armv7l cross toolchains would probably be of the most interest, and may even be parallel installable.
There are also a couple of review requests open looking to get cross packages into Fedora's main repositories; is maintaining cross tools a goal of the SIG?
Rich
On 12/22/10 13:35, Somebody in the thread at some point said:
Hi -
Have you considered adding this info to the Fedora ARM wiki? It would certainly be more accessible there than buried in a mailing list post somewhere. If you're a Fedora packager, you may also look into hosting RPMs of the cross chain in a fedorapeople repository
I kind of hoped the originators of the cross stuff would uplevel to it and keep doing what they had been doing, but it seems that it's not their focus right now.
I'm not a Fedora packager... but I signed up at the site and if the ACLs will let me I will update the wiki page for the current situation at least.
(http://fedoraproject.org/wiki/Fedorapeople_Repos). armv5tel and armv7l cross toolchains would probably be of the most interest, and may even be parallel installable.
Yeah they should be parallel-installable from what I remember.
There are also a couple of review requests open looking to get cross packages into Fedora's main repositories; is maintaining cross tools a goal of the SIG?
I don't know what its formal goals are, but I think it should be part of ARM (and MIPS) Fedora at least as far as being able to cook kernels with it. Bootloaders and kernels are kind of uniquely in need of cross because by definition if you're working on them you often won't have a reliable native environment.
However the cost of trying to build other things cross in a sane way soon gets out of control so it seems wise to leave everything else native-built. Packaged kernels and bootloaders can also be done native.
-Andy
ons 2010-12-22 klockan 14:36 +0000 skrev Andy Green:
I kind of hoped the originators of the cross stuff would uplevel to it and keep doing what they had been doing, but it seems that it's not their focus right now.
My understanding is that the one who built the old cross toolchain is no longer ative at al and that a new maintainer of the cross packages is very much needed.
I'm not a Fedora packager... but I signed up at the site and if the ACLs will let me I will update the wiki page for the current situation at least.
I think it's sufficient to have a fedora as account to use the build farm and publish a fedorapeople repo.
Ideally as much as possible of the cross patches should be merged into the main packages imho. It's not a good idea to maintain two independent GCC packages. But with the move to git it's much less of a concern than before.
Regards Henrik