AW: AW: [uClinux-dev] FP-problems with arm-linux-tools-20061213
> >>> To solve this, I put CFLAGS += -msoft-float in > >>> vendors/config/armnommu/config.arch. Then the error changes into: > >> This final link line will need a "-msoft-float" as well. > >> Otherwise it will try to link against the wrong libgcc.a > > Ough... I would not have been asked if it would be _that_ easy ;-) I think I have found the proper place where to put this option: It belongs into $(CPUFLAGS) in vendors/VENDOR/BOARD/config.arch. I'd like to put the check_gcc constructs for -no-fpu and -malignment-traps into this place too, but unfortunately, the $(CC) is not set at that stage, thus check_gcc would check against the host-compiler :-( ___ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
Re: [uClinux-dev] FP-problems with arm-linux-tools-20061213
Hi Erwin, Erwin Authried wrote: -EB ??? I thought that is for big endian linking, isn't it? I believe that the linker doesn't have any option for hard/soft FP, it's the compilers task to create the right object files, and the linker just has to be feeded with the right combination of object files and libraries. Doh! Yes, you are right, I was confusing the options there. Regards Greg Greg Ungerer -- Chief Software Dude EMAIL: [EMAIL PROTECTED] SnapGear -- a Secure Computing Company PHONE: +61 7 3435 2888 825 Stanley St, FAX: +61 7 3891 3630 Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com ___ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
Re: AW: [uClinux-dev] FP-problems with arm-linux-tools-20061213
Hi Josef, Wolf, Josef wrote: Thanks for your answer, Greg! To solve this, I put CFLAGS += -msoft-float in vendors/config/armnommu/config.arch. Then the error changes into: This final link line will need a "-msoft-float" as well. Otherwise it will try to link against the wrong libgcc.a Ough... I would not have been asked if it would be _that_ easy ;-) Well, from your last email: ucfront-gcc arm-linux-gcc -Wl,-elf2flt -D__PIC__ -fpic -msingle-pic-base -o boa alias.o auth.o boa.o cgi.o cgi_header.o config.o get.o hash.o globals.o log.o nls.o pipe.o queue.o read.o request.o response.o signals.o timestamp.o util.o -lcrypt And that has no "-msoft-float". When I put LDFLAGS += -msoft-float in vendors/config/armnommu/config.arch, arm-linux-ld complains about unsupported emulation mode when it tries to link the kernel: Which LDFLAGS in config.arch did you change? And which uClinux-dist are you using? The current version (from 20070130) has many LDFLAGS options that already contain -msoft-float... See http://cvs.uclinux.org/cgi-bin/cvsweb.cgi/~checkout~/uClinux-dist/vendors/config/armnommu/config.arch?rev=1.1.1.9;content-type=text%2Fplain Regards Greg [ ... ] arm-linux-gcc -D__KERNEL__ -I/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fno-common -pipe -fno-builtin -D__linux__ -g -DNO_MM -mapcs-32 -march=armv4 -mtune=arm7tdmi -malignment-traps -msoft-float-DKBUILD_BASENAME=do_mounts -c -o init/do_mounts.o init/do_mounts.c In file included from init/do_mounts.c:18: /m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/include/linux/cramfs_fs.h:120:2: warning: #warning "__BYTE_ORDER == __LITTLE_ENDIAN" make[3]: Entering directory `/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/arch/armnommu/tools' make[3]: Für das Ziel »all« ist nichts zu tun. make[3]: Leaving directory `/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/arch/armnommu/tools' make CFLAGS="-D__KERNEL__ -I/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fno-common -pipe -fno-builtin -D__linux__ -g -DNO_MM -mapcs-32 -march=armv4 -mtune=arm7tdmi -malignment-traps -msoft-float " -C kernel make[3]: Entering directory `/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/kernel' make all_targets make[4]: Entering directory `/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/kernel' rm -f kernel.o arm-linux-ld -msoft-float -r -o kernel.o sched.o fork.o exec_domain.o panic.o printk.o module.o exit.o itimer.o info.o time.o softirq.o resource.o sysctl.o acct.o capability.o ptrace.o timer.o user.o signal.o sys.o kmod.o context.o uid16.o ksyms.o /usr/local/bin/arm-linux-ld.real: unrecognised emulation mode: soft-float Supported emulations: armelf_linux armelf [ ... ] Can you give me a hint where to put the option to cause the final link to use the proper libgcc? ___ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev -- Greg Ungerer -- Chief Software Dude EMAIL: [EMAIL PROTECTED] SnapGear -- a Secure Computing Company PHONE: +61 7 3435 2888 825 Stanley St, FAX: +61 7 3891 3630 Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com ___ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
AW: [uClinux-dev] FP-problems with arm-linux-tools-20061213
Thanks for your answer, Greg! > > To solve this, I put CFLAGS += -msoft-float in > > vendors/config/armnommu/config.arch. Then the error changes into: > > This final link line will need a "-msoft-float" as well. > Otherwise it will try to link against the wrong libgcc.a > Ough... I would not have been asked if it would be _that_ easy ;-) When I put LDFLAGS += -msoft-float in vendors/config/armnommu/config.arch, arm-linux-ld complains about unsupported emulation mode when it tries to link the kernel: [ ... ] arm-linux-gcc -D__KERNEL__ -I/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fno-common -pipe -fno-builtin -D__linux__ -g -DNO_MM -mapcs-32 -march=armv4 -mtune=arm7tdmi -malignment-traps -msoft-float-DKBUILD_BASENAME=do_mounts -c -o init/do_mounts.o init/do_mounts.c In file included from init/do_mounts.c:18: /m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/include/linux/cramfs_fs.h:120:2: warning: #warning "__BYTE_ORDER == __LITTLE_ENDIAN" make[3]: Entering directory `/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/arch/armnommu/tools' make[3]: Für das Ziel »all« ist nichts zu tun. make[3]: Leaving directory `/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/arch/armnommu/tools' make CFLAGS="-D__KERNEL__ -I/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fno-common -pipe -fno-builtin -D__linux__ -g -DNO_MM -mapcs-32 -march=armv4 -mtune=arm7tdmi -malignment-traps -msoft-float " -C kernel make[3]: Entering directory `/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/kernel' make all_targets make[4]: Entering directory `/m/l/embedded/uclinux/uClinux-dist-20051014/linux-2.4.32/kernel' rm -f kernel.o arm-linux-ld -msoft-float -r -o kernel.o sched.o fork.o exec_domain.o panic.o printk.o module.o exit.o itimer.o info.o time.o softirq.o resource.o sysctl.o acct.o capability.o ptrace.o timer.o user.o signal.o sys.o kmod.o context.o uid16.o ksyms.o /usr/local/bin/arm-linux-ld.real: unrecognised emulation mode: soft-float Supported emulations: armelf_linux armelf [ ... ] Can you give me a hint where to put the option to cause the final link to use the proper libgcc? ___ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
Re: [uClinux-dev] FP-problems with arm-linux-tools-20061213
Am Donnerstag, den 08.03.2007, 12:43 +1000 schrieb Greg Ungerer: > Hi Josef, > > Wolf, Josef wrote: > > I have a problem with HW/SW floating-point mismatches when I try to > > compile uClinux-dist-20051014 with arm-linux-tools-20061213. The > > problem > > appears when compilation of the user directory (starting with boa) > > starts > > > > [ ... ] > > ucfront-gcc arm-linux-gcc -Os -g > > -fomit-frame-pointer -fno-common -fno-builtin -Wall -DEMBED -D__PIC__ > > -fpic -msingle-pic-base -Dlinux -D__linux__ -Dunix -D__uClinux__ > > -malignment-traps -DSYSLOGS_AT_EMERG -DBOA_TIME_LOG -c -o util.o > > util.c > > ucfront-gcc arm-linux-gcc -Wl,-elf2flt -D__PIC__ -fpic > > -msingle-pic-base -o boa alias.o auth.o boa.o cgi.o cgi_header.o > > config.o get.o hash.o globals.o log.o nls.o pipe.o queue.o read.o > > request.o response.o signals.o timestamp.o util.o -lcrypt > > > > /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a > > rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: ERROR: alias.o uses > > hardware FP, whereas boa.gdb uses software FP > > > > /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a > > rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: failed to merge target > > specific data of file alias.o > > [ ... ] > > > > To solve this, I put CFLAGS += -msoft-float in > > vendors/config/armnommu/config.arch. Then the error changes into: > > > > [ ... ] > > ucfront-gcc arm-linux-gcc -Os -g > > -fomit-frame-pointer -fno-common -fno-builtin -Wall -DEMBED -D__PIC__ > > -fpic -msingle-pic-base -Dlinux -D__linux__ -Dunix -D__uClinux__ > > -msoft-float -malignment-traps -DSYSLOGS_AT_EMERG -DBOA_TIME_LOG -c > > -o util.o util.c > > ucfront-gcc arm-linux-gcc -Wl,-elf2flt -D__PIC__ -fpic > > -msingle-pic-base -o boa alias.o auth.o boa.o cgi.o cgi_header.o > > config.o get.o hash.o globals.o log.o nls.o pipe.o queue.o read.o > > request.o response.o signals.o timestamp.o util.o -lcrypt > > This final link line will need a "-msoft-float" as well. > Otherwise it will try to link against the wrong libgcc.a > > > > /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a > > rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: ERROR: > > /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a > > rm-linux/3.4.4/libgcc.a(_udivsi3.o) uses hardware FP, whereas boa.gdb > > uses software FP > > > > /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a > > rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: failed to merge target > > specific data of file > > /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a > > rm-linux/3.4.4/libgcc.a(_udivsi3.o) > > [ ... ] > > > > indicating that boa is linked against a library with HW-FP. I have > > checked documentation of gcc and ld, but I can't find how to tell the > > linker to link against a library with SW-FP. The linker don't seem > > to like -msoft-float. > > > > Can anybody tell me how to tell the linker against libraries with SW-FP? > > If you are direct using the linker you would want "-EB". But if you are > linking through gcc then you just use "-msoft-float". > > Regards > Greg -EB ??? I thought that is for big endian linking, isn't it? I believe that the linker doesn't have any option for hard/soft FP, it's the compilers task to create the right object files, and the linker just has to be feeded with the right combination of object files and libraries. Regards, Erwin ___ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
Re: [uClinux-dev] FP-problems with arm-linux-tools-20061213
Hi Josef, Wolf, Josef wrote: I have a problem with HW/SW floating-point mismatches when I try to compile uClinux-dist-20051014 with arm-linux-tools-20061213. The problem appears when compilation of the user directory (starting with boa) starts [ ... ] ucfront-gcc arm-linux-gcc -Os -g -fomit-frame-pointer -fno-common -fno-builtin -Wall -DEMBED -D__PIC__ -fpic -msingle-pic-base -Dlinux -D__linux__ -Dunix -D__uClinux__ -malignment-traps -DSYSLOGS_AT_EMERG -DBOA_TIME_LOG -c -o util.o util.c ucfront-gcc arm-linux-gcc -Wl,-elf2flt -D__PIC__ -fpic -msingle-pic-base -o boa alias.o auth.o boa.o cgi.o cgi_header.o config.o get.o hash.o globals.o log.o nls.o pipe.o queue.o read.o request.o response.o signals.o timestamp.o util.o -lcrypt /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: ERROR: alias.o uses hardware FP, whereas boa.gdb uses software FP /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: failed to merge target specific data of file alias.o [ ... ] To solve this, I put CFLAGS += -msoft-float in vendors/config/armnommu/config.arch. Then the error changes into: [ ... ] ucfront-gcc arm-linux-gcc -Os -g -fomit-frame-pointer -fno-common -fno-builtin -Wall -DEMBED -D__PIC__ -fpic -msingle-pic-base -Dlinux -D__linux__ -Dunix -D__uClinux__ -msoft-float -malignment-traps -DSYSLOGS_AT_EMERG -DBOA_TIME_LOG -c -o util.o util.c ucfront-gcc arm-linux-gcc -Wl,-elf2flt -D__PIC__ -fpic -msingle-pic-base -o boa alias.o auth.o boa.o cgi.o cgi_header.o config.o get.o hash.o globals.o log.o nls.o pipe.o queue.o read.o request.o response.o signals.o timestamp.o util.o -lcrypt This final link line will need a "-msoft-float" as well. Otherwise it will try to link against the wrong libgcc.a /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: ERROR: /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/libgcc.a(_udivsi3.o) uses hardware FP, whereas boa.gdb uses software FP /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: failed to merge target specific data of file /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/libgcc.a(_udivsi3.o) [ ... ] indicating that boa is linked against a library with HW-FP. I have checked documentation of gcc and ld, but I can't find how to tell the linker to link against a library with SW-FP. The linker don't seem to like -msoft-float. Can anybody tell me how to tell the linker against libraries with SW-FP? If you are direct using the linker you would want "-EB". But if you are linking through gcc then you just use "-msoft-float". Regards Greg Greg Ungerer -- Chief Software Dude EMAIL: [EMAIL PROTECTED] Secure Computing CorporationPHONE: +61 7 3435 2888 825 Stanley St, FAX: +61 7 3891 3630 Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com ___ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
[uClinux-dev] FP-problems with arm-linux-tools-20061213
Hello! I have a problem with HW/SW floating-point mismatches when I try to compile uClinux-dist-20051014 with arm-linux-tools-20061213. The problem appears when compilation of the user directory (starting with boa) starts [ ... ] ucfront-gcc arm-linux-gcc -Os -g -fomit-frame-pointer -fno-common -fno-builtin -Wall -DEMBED -D__PIC__ -fpic -msingle-pic-base -Dlinux -D__linux__ -Dunix -D__uClinux__ -malignment-traps -DSYSLOGS_AT_EMERG -DBOA_TIME_LOG -c -o util.o util.c ucfront-gcc arm-linux-gcc -Wl,-elf2flt -D__PIC__ -fpic -msingle-pic-base -o boa alias.o auth.o boa.o cgi.o cgi_header.o config.o get.o hash.o globals.o log.o nls.o pipe.o queue.o read.o request.o response.o signals.o timestamp.o util.o -lcrypt /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: ERROR: alias.o uses hardware FP, whereas boa.gdb uses software FP /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: failed to merge target specific data of file alias.o [ ... ] To solve this, I put CFLAGS += -msoft-float in vendors/config/armnommu/config.arch. Then the error changes into: [ ... ] ucfront-gcc arm-linux-gcc -Os -g -fomit-frame-pointer -fno-common -fno-builtin -Wall -DEMBED -D__PIC__ -fpic -msingle-pic-base -Dlinux -D__linux__ -Dunix -D__uClinux__ -msoft-float -malignment-traps -DSYSLOGS_AT_EMERG -DBOA_TIME_LOG -c -o util.o util.c ucfront-gcc arm-linux-gcc -Wl,-elf2flt -D__PIC__ -fpic -msingle-pic-base -o boa alias.o auth.o boa.o cgi.o cgi_header.o config.o get.o hash.o globals.o log.o nls.o pipe.o queue.o read.o request.o response.o signals.o timestamp.o util.o -lcrypt /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: ERROR: /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/libgcc.a(_udivsi3.o) uses hardware FP, whereas boa.gdb uses software FP /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/../../../../arm-linux/bin/ld.real: failed to merge target specific data of file /m/a/tmp/uclinux/install/arm-linux-tools-20061213/local/bin/../lib/gcc/a rm-linux/3.4.4/libgcc.a(_udivsi3.o) [ ... ] indicating that boa is linked against a library with HW-FP. I have checked documentation of gcc and ld, but I can't find how to tell the linker to link against a library with SW-FP. The linker don't seem to like -msoft-float. Can anybody tell me how to tell the linker against libraries with SW-FP? ___ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev