# 05:14:40 |
sh[4]rm4 |
is now known as: sh4rm4 |
# 08:33:44 |
smartin |
joins #crosstool-ng |
# 13:22:22 |
imMute |
well what the hell, I have a toolchain that apparently built fine, I'm using an identical config (save for CT_LOCAL_TARBALLS_DIR, CT_WORK_DIR, and CT_PREFIX_DIR) and it's failing on the CLooG step |
# 13:36:50 |
imMute |
and apparently works fine on the Ubuntu 10.04 build machine, but not the 12.04 machine. must be the newer utilities. |
# 16:30:32 |
smartin |
quits |
# 17:44:30 |
smartin |
joins #crosstool-ng |
# 19:55:55 |
y_morin |
joins #crosstool-ng |
# 19:59:59 |
imMute |
y_morin, do you have a minute? |
# 20:00:25 |
y_morin |
imMute: Hello! Just ask. |
# 20:00:33 |
imMute |
well what the hell, I have a toolchain that apparently built fine, I'm using an identical config (save for CT_LOCAL_TARBALLS_DIR, CT_WORK_DIR, and CT_PREFIX_DIR) and it's failing on the CLooG step |
# 20:00:37 |
imMute |
and apparently works fine on the Ubuntu 10.04 build machine, but not the 12.04 machine. must be the newer utilities. |
# 20:01:28 |
y_morin |
imMute: probably, there have been quite some changes in 11.04. |
# 20:01:50 |
imMute |
okay, well getting that old configuration working on the 12.04 machine isn't really all that important. |
# 20:01:53 |
y_morin |
IIRC, we already had an issue on Ubuntu that we could not track. Can't remember what issue it was, though... |
# 20:02:30 |
imMute |
however, that toolchain (that's been in use for a year now) was supposedly built with hardware FPU, but I dont think it was |
# 20:02:43 |
y_morin |
Maybe time I create a 11.04 chroot to test inthere (I'm using Debian squeeze exclusively on all my machines, and that's what I usually test on) |
# 20:03:48 |
imMute |
I whipped up a program that does a floating point divide, and when compiled with no -mfloat-abi= setting, it generates (what I think is) software emulation of the FPU |
# 20:04:12 |
imMute |
which is the same assembly that is produced with -mfloat-abi=soft |
# 20:04:37 |
y_morin |
imMute: CPU? |
# 20:05:07 |
imMute |
Cortex-A8. we're targeting TI's AM3505 which has the Neon FPU |
# 20:05:39 |
imMute |
using -mfloat-abi=softfp, it outputs asm that appears to use the FPU |
# 20:06:05 |
imMute |
and -mfloat-abi=hard gives that error I'm getting so sick of: "sorry, unimplemented: -mfloat-abi=hard and VFP" |
# 20:07:11 |
imMute |
(I can pastebin whatever you need to see, btw, just ask) |
# 20:08:39 |
y_morin |
imMute: there already is a sample that enables the Neon extension, but for cortex-a15. You could try from there, and change the settings to cortex-a8 instead. It should work. |
# 20:08:59 |
imMute |
I did exactly that, it just got done building a minute ago, I'm testing it now |
# 20:11:36 |
imMute |
okay, that one compiles u-boot fine, and seems to compile the kernel fine, but pukes with that VFP error when compiling x-loader. |
# 20:12:10 |
imMute |
the gcc call that pukes has the flag -mabi=apcs-gnu which I'm not sure what it does, but when added to my floatingpoint_test.c causes teh same error |
# 20:13:32 |
kos_tom |
y_morin: hello. |
# 20:13:35 |
imMute |
hmm, I finally found a webpage that describes the different -mabi choices, and it seems apcs-gnu is for the old ABI: http://cross-lfs.org/view/clfs-embedded/arm/cross-tools/abi.html |
# 20:13:35 |
y_morin |
imMute: I'm building the toolchain |
# 20:13:39 |
y_morin |
kos_tom: hey da! :-) |
# 20:13:53 |
kos_tom |
y_morin: I have a kind of newbie question. How does uClibc++ relates (or does not relate) to libstdc++ ? |
# 20:14:03 |
y_morin |
kos_tom: it's a replacement. |
# 20:14:10 |
y_morin |
intended to be, at least |
# 20:14:17 |
kos_tom |
but isn't libstdc++ part of the gcc sources? |
# 20:14:29 |
kos_tom |
I thought it was kind of "mandatory" as soon as you wanted to use C++ with gcc |
# 20:15:11 |
y_morin |
kos_tom: libstdc++ is part of gcc _sources_ and built with gcc. But if you are sneaky enough, you can switch the installed libstdc++ with uclibc++ |
# 20:15:33 |
imMute |
y_morin: thie config I used is here: https://gist.github.com/2838649 |
# 20:16:05 |
y_morin |
kos_tom: idea is: 1) build gcc with libstdc++, 2) build uClibc++, 3) trash installed libstdc++, 4) install uClibc++. |
# 20:16:08 |
kos_tom |
y_morin: oh, so you build gcc normally with libstdc++, but then you later replace libstdc++ by uclibc++? sounds a bit hackish, no? |
# 20:16:13 |
kos_tom |
y_morin: ok |
# 20:16:36 |
kos_tom |
y_morin: and what's roughly the compatibility coverage of uClibc++ ? and the size advantage? |
# 20:16:39 |
y_morin |
kos_tom: uClibc++ requires some bits from libstdc++ anyway |
# 20:17:10 |
y_morin |
kos_tom: http://cxx.uclibc.org/status.html |
# 20:18:01 |
y_morin |
kos_tom: page not really up-to-date, but roughly correct. |
# 20:18:43 |
y_morin |
kos_tom: with the recent additions by Bernhard (which seems to have taken maintainership_ |
# 20:19:03 |
y_morin |
imMute: let me look at that... |
# 20:20:03 |
y_morin |
imMute: CT_ARCH_FPU="neon" <- this is not correct, afaik. It's "neon-vfpv4", iirc. |
# 20:22:03 |
y_morin |
kos_tom: yes, the size is an important goal. As uClibc vs. glibc, you have uClibc++ vs. libstdc++. And it's configurable, so you can axe out any suport you don't need. |
# 20:23:32 |
imMute |
y_morin: yes. I think my problem with x-loader was related to that -mabi=apcs-gnu which makes it use the "old ABI" |
# 20:23:42 |
imMute |
(for ARMv4 and older cores) |
# 20:41:00 |
imMute |
interesting. I made it build x-loader with -mabi=aapcs instead of apcs-gnu and it pukes towards the end with: |
# 20:41:26 |
imMute |
/home/msickler/ctng-C/C4-cortexa15-hard/x-tools-C4a/arm-cortexa8-linux-gnueabi/bin/../lib/gcc/arm-cortexa8-linux-gnueabi/4.6.3/libgcc.a(_dvmd_lnx.o): In function '__aeabi_ldiv0': |
# 20:41:34 |
imMute |
/tmp/ctng/C4-build/src/gcc-4.6.3/libgcc/../gcc/config/arm/lib1funcs.asm:1266: undefined reference to 'raise' |
# 20:44:10 |
imMute |
that "__aeabi_ldiv0" looks awfully familiar to software floating point |
# 20:46:20 |
imMute |
y_morin: what do you make of that? |
# 20:47:18 |
y_morin |
imMute: No idea... :-/ |
# 20:47:25 |
y_morin |
imMute: gcc-4.5 ? |
# 20:47:57 |
imMute |
what about it? (I have no idea which versions of gcc, glibc, etc that I should be using) |
# 20:49:10 |
y_morin |
imMute: OK, you're using gcc-4.6.3. |
# 20:50:22 |
y_morin |
imMute: is it even possible to use hard-floats in x-loader at all? Because, it being a bootloader, I would not be surprised if it can't handle the FPU status... |
# 20:51:32 |
imMute |
That makes sense, come to think of it. shouldn't gcc be able to generate the software FPU though? |
# 20:54:56 |
imMute |
huzzah. the trick was -mabi=apcs-gnu AND -mfloat-abi=soft |
# 20:56:08 |
imMute |
what would you advise for picking version numbers for GCC, binutils, glibc, etc? |
# 21:14:57 |
y_morin |
imMute: I have no real advice. Older version (eg. gcc-4.4.x) is more tested than more ceent version. |
# 21:15:47 |
y_morin |
4.5 should be relatively stable, though I did not really build a toolchain for production recently... |
# 21:20:43 |
smartin |
quits |
# 22:04:20 |
y_morin |
quits : Quit: Night! |