On Fri, Feb 11, 2011 at 8:34 AM, Joe Ciccone <[email protected]> wrote: > On Fri, 2011-02-11 at 06:38 -0500, Andrew Bradford wrote: >> But for ARM (and maybe MIPS with --with-divide?), using >> --disable-multilib without specifying hard/soft floating point or >> arm/thumb instructions could be an issue. I'm not sure what GCC would >> do there. Do you know? > I do not, but I know where to look. In the gcc source tree take a look > at gcc/config.gcc and gcc/config/{arch}/*. In there you will find the > answer.
Joe, thanks for the pointers! :) >From gcc-4.5.2/gcc/config, it looks like any target triplet of arm*-*-linux* gets a default configuration from gcc-4.5.2/gcc/config/arm/linux-elf.h and arm.h that is: arm mode, little (or big, if you have arm*b-*) endian, hard-float, apcs abi, and does not allow thumb interworking. If your target triplet is arm*-*-linux-*eabi, configuration from gcc-4.5.2/gcc/config/arm/linux-eabi.h and bpabi.h will overwrite some of this with: aapcs-linux abi, cpu of arm10tdmi (which is a member of armv5t), vfp, and soft-float. >> I'd like to add --with-float and --with-mode to ARM first, before >> adding --disable-multilib, but I'm being conservative because I don't >> know the full impacts. > Once those are added then there wouldn't be anything to worry about. So > no arguments from me. I now get the impression that in order to safely use --disable-multilib, the ARM book should specify: --with-float, --with-mode, --with-abi, --with-fpu, and --with-cpu OR --with-arch [1]. That way no one gets stuck with a toolchain that has selections they didn't expect. Doing all of this would make the toolchain very not-multilib, but that's kind of the point. [1] - --with-cpu will restrict GCC to outputting instructions that the specific processor. --with-arch may give a slightly larger number of instructions that GCC can output (but I'm not sure). I'd say using --with-arch would be better as the book could then have the --with-arch value be the start of the target triplet in most cases. This would allow for better co-habitation of multiple sets of clfs embedded toolchains. ie: --with-arch=armv7-a would have a triplet of armv7a-unknown-linux-uclibceabi -Andrew _______________________________________________ Clfs-dev mailing list [email protected] http://lists.cross-lfs.org/listinfo.cgi/clfs-dev-cross-lfs.org
