Closed blitz closed 11 years ago
I've just upgraded to gcc 4.8.1 (see 1a964c4b51e8cc2cd99115657d80b6a225e9ef21). Actually, it wasn't that hard :) Everything seems to work, except that I get some strange messages:
error in /opt/nre-cross-x86_64/lib/gcc/x86_64-pc-nulnova/4.8.1/crtend.o(.eh_frame); no .eh_frame_hdr table will be created.
I don't know what causes that. Although I think that I had that before...but I don't remember how I fixed that. Anyway, it doesn't seem to cause trouble.
@blitz Could you try to build the toolchain on Fedora or other distributions you have?
Maybe this helps?
http://stackoverflow.com/questions/3695335/c-compilation-error-no-eh-frame-hdr-table-will-be-created
If not, forgive me my spamming ;)
Seems to work and to compile NRE just fine. Toolchain is at http://os.inf.tu-dresden.de/~jsteckli/tmp/nre-cross-fedora19-x86_64.tar.xz
@parthy No, that seems to be a different problem. The reason why the eh_frame section of crtend.o is wrong is that it contains a zero-length entry at the beginning followed by a CIE (common information entry) and a FDE (frame description entry). A zero-length entry is only allowed at the end, according to a comment in the dwarf-code. With gcc 4.6.3, it contained only the zero-length entry. As far as I understand that, gcc 4.8.1 generates a FDE for the __do_global_ctors_aux function in crtend.o which is why a CIE and FDE is added. But I don't know why he does that. The crtstuff.c is actually not that different from the one in 4.6.3. And even if I use the one from 4.6.3 it still generates them.
I've also upgraded to binutils 2.23.2 (was 2.21.1a previously) in case that this is a binutils issue or a problem of having a recent gcc working together with an rather old binutils. But it didn't help (although I'll stick to the new binutils version now).
@blitz Thanks. Since I'm at it now, I'll also look into not putting the crt* files from NRE into /opt (issue #24). If I'm done with that and have pushed the binutils-version-change, it would be nice if you could generate a cross-compiler with Fedora for x86_32 and x86_64. I'll add them to the download-script then, so that others can simply use them.
@hrniels I can do that. I'll look into generating RPMs as well. Unpacking tarballs as root is scary.
I've just merged the gcc-4.8.1 branch into master, because the cross-compiler based on gcc 4.8.1 and binutils 2.23.2 is usable now. The crtend.o issue is not relevant anymore since we don't use it. Thus, I'll close this issue. There are already prebuild compilers for 32-bit and 64-bit Ubuntu. As soon as the ones for Fedora are ready, I can add them.
Can't build binutils, because I hit this bug: http://sourceware.org/bugzilla/show_bug.cgi?id=15183
I have texinfo 5.1, which seems to be a bit unfriendly... See #35
GCC 4.6 as used by NRE is not supported anymore.