Hello all,<br><br>I'm having a little trouble with my current ARM build in that I can't seem to get the CFLAGS and BUILD flags set up correctly. <br><br>Basically, I'm trying to take the compilation one-step further by ensuring that my final system takes advantages of all the possible features of my ARM core, rather than it being designed for the generic ARM architecture. With this in mind, the problems seem to stem from having the flags set up incorrectly. <br>
<br>My process so far and the logic behind it:<br><br>When building the cross compile tools I leave the CFLAGS variable empty and use the following build flags '-mabi=aapcs-linux -mfloat-abi=softfp'. I have chosen the softfp options since the FPU for my processor isn't 100% ieee compatable.<br>
<br>From here I compile the static compiler, build uClibc with the .config supplied, with the only change being support for EABI rather than the OABI. I then compile the final compiler and all seems fine. I leave the remaining configuration of uClibc as is; my logic here is that I wish to compile the tool suit with generic processor options so that I can pass the architecture specific options when compiling the actual target software.<br>
<br>Once I am ready to build the target software I simply add the following CFLAGS: "-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfpu=vfp".  <br><br>The problems then starts when it comes to using the tool suite with these CFLAGS. At first busybox failed when issuing the make command with:<br>
<br>"  CC      applets/applets.o<br>applets/applets.c:1:0: sorry, unimplemented: -mfloat-abi=hard and VFP<br>make[1]: *** [applets/applets.o] Error 1<br>make: *** [applets_dir] Error 2<br>"<br><br>So I removed the "-mfloat-abi=softfp" build flag and busybox compiles fine. Is this a bug? Since I haven't selected the use of the hard FLU ABI...<br>
<br><br>I then start to try and configure e2fsprogs and this fails too with: <br>"checking for arm-unknown-linux-uclibc-gcc... arm-unknown-linux-uclibc-gcc -mabi=aapcs-linux -mfloat-abi=softfp -Os<br>checking whether the C compiler works... no<br>
"<br><br>If I then remove both of the build flags from the configure command it configures fine:<br>CC="${CC} ${BUILD} -Os" ../configure --prefix=/usr    <br> --with-root-prefix="" --host=${CLFS_TARGET} --disable-tls <br>
 --disable-debugfs --disable-e2initrd-helper --disable-nls<br><br><br><br>I have tried a number of options with the building of the toolsuit, I tried adding the target specific options to the uClibc .config but this seemed to make problems worse since I couldn't get busybox to compile using the tools due to "ld, cannot find -lfloat".<br>
<br>With this in mind I am a little stuck. If somebody could please give me some guidance on this is would be greatly appreciated. If I am going about it the wrong way then please let me know. <br><br>sjs105<br><br>Hardware<br>
Target:<br>Samsung s3c6410, <br>ARM core: arm1176jzf-s<br>FPU: VFPv2<br><br>.bashrc<br>set +h<br>umask 022<br>ARMCROSS=/mnt/arm-cross<br>LC_ALL=POSIX<br>PATH=${ARMCROSS}/cross-tools/bin:/bin:/usr/bin<br>export ARMCROSS LC_ALL PATH<br>
unset CFLAGS<br>unset CXXFLAGS<br>export BUILD="-mabi=aapcs-linux -mfloat-abi=softfp"<br>export CLFS_HOST="i486-cross-linux-gnu"<br>export CLFS_TARGET="arm-unknown-linux-uclibc"<br>export CLFS_ARCH="arm"<br>
export CLFS_ENDIAN="little"<br>export CC="arm-unknown-linux-uclibc-gcc"<br>export CXX="arm-unknown-linux-uclibc-g++"<br>export AR="arm-unknown-linux-uclibc-ar"<br>export AS="arm-unknown-linux-uclibc-as"<br>
export LD="arm-unknown-linux-uclibc-ld"<br>export RANLIB="arm-unknown-linux-uclibc-ranlib"<br>export READELF="arm-unknown-linux-uclibc-readelf"<br>export STRIP="arm-unknown-linux-uclibc-strip"<br>
export CFLAGS="-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfpu=vfp "<br>export CXXFLAGS="-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfpu=vfp"<br><br><br>