This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
One other important thing to mention. The native gcc build installs a "specs" file under TARGET_ROOT (I believe to $TARGET_ROOT/$PREFIX/lib/gcc/$TARGET/x.y.z/specs) that represents the cross-compiler, not the native compiler. You'll need to delete that file after building the native compiler in order for the native compiler to run correctly. Probably this step belongs in crosstool.sh. Steve www.digidescorp.com -----Original Message----- From: Steven J. Magnani [mailto:steve@digidescorp.com] Sent: Wednesday, February 02, 2005 10:25 AM To: 'Clemens Koller'; 'crossgcc@sources.redhat.com' Subject: RE: crosstool for native compiler on new system. Guten Tag Clemens, I recently went through something similar, cross-building for ARM on i386. One thing I found is that if you use the crosstool scripts without change to produce a native compiler, the native compiler believes it is a cross-compiler. This causes it to behave slightly differently than you might expect when running it natively. Also I think there are parts of glibc (i.e. ldd) that build only when they believe they are for a native compiler. I ended up patching the crosstool-0.28-rc37 source to allow cross-building of a "true" native compiler. The native cross-build mode is triggered by GCC_HOST = TARGET. Then, TARGET_ROOT specifies the root of your native system as mounted on your build system (i.e. the so-called DESTDIR). Some things to note: * The patch updates all.sh and crosstool.sh. It does not update crosstool-cygwin.sh. * The changes to crosstool.sh may be a little more than you need. I also changed the "sysroot"ing from ${PREFIX}/${TARGET}/sys-root to just $PREFIX when building a cross-compiler (as opposed to cross-building a native compiler). Rather than try to back that part of it out and hand you something less stable, I left it in. * I added a "--nopurge" option to all.sh that prevents it from deleting previous results. I find this helpful when cross-building a native root filesystem - if I regenerate the toolchain, I don't want to lose the rest of my cross-userland doing it. * crosstool.sh puts results of a native compiler build beneath TARGET_ROOT. The all.sh script doesn't know whether the build is for a cross compiler or a native compiler; it assumes that the build results are in $PREFIX. Until this discrepancy is reconciled you should probably always specify --nopurge when calling all.sh. * I disabled mkoverride.sh, since I didn't need it for what I was doing and didn't have time to dig into it. Looking at it this morning, I think it might have a bug when crosstool is run with USE_SYSROOT - the paths coded into mkoverride are the "plain old way" not the "spiffy new sysroot way". Attached are 4 files - the patch to crosstool-0.28-rc37, the script I use for building the cross-compiler, the script I use to build the native compiler, and the .dat file I use. Hope these help. Feedback is most welcome - these are works in progress. Regards, Steve Magnani www.digidescorp.com -----Original Message----- From: Clemens Koller [mailto:clemens.koller@anagramm.de] Sent: Wednesday, February 02, 2005 8:39 AM To: crossgcc@sources.redhat.com Subject: crosstool for native compiler on new system. Hello, Well, some days ago, I was successfully running crossgcc on MPC8540 (e500, SPE) (no changes were necessary within crosstool, to answer your last question, Steve.) Now I want to use or re-use the binaries for a new Linux From Scratch root on a harddisk in i.e. /mnt. So, my question is: what things do I need to take care about to get my new compiler+binutils+? as my (one and only) native compiler in /usr/bin on the host system as well as in the new root of /mnt/usr/bin. Is it okay to set the TARGET_DIR to put the compiler to i.e. /mnt/usr/bin (which might be dangerous)? It is possible to relocate the whole (crossgcc-) build, copy the libs, edit the specs file and move (or put symlinks) powerpc-linux-gnuspe-* to /usr/bin/* (I would prefer not to use any powerpc-linux-sth-prefixes anymore). Is the specs file the one and only place for gcc+friends which needs to fit the environment? Well, I've read several howtos as well as the LFS docu... but I still feel unsafe in what I am doing. Can you please point me to some more installation FAQs or examples or give me a short sketch of the things I need to take care? Is it possible to get out a tar.gz'ed file out of crosstool with only the binaries which are needed in a plain, native Linux? (like a --buildnativetar) Thank you! -- Clemens Koller _______________________________ R&D Imaging Devices Anagramm GmbH Rupert-Mayer-Str. 45/1 81379 Muenchen Germany http://www.anagramm.de Phone: +49-89-741518-50 Fax: +49-89-741518-19 ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |