While testing a new Solaris/x86 assembler that does support cfi directives, I ran into a link failure while bootstrapping gcc mainline with that /bin/as and gld 2.24: /vol/gcc/bin/gld-2.24: .eh_frame has both ordered [`.eh_frame' in _muldi3_s.o] and unordered [`.eh_frame' in /usr/lib/amd64/crti.o] sections /vol/gcc/bin/gld-2.24: final link failed: Bad value collect2: error: ld returned 1 exit status /bin/as sets SHF_LINK_ORDER in .eh_frame, but as you can see, the bundled crti.o lacks that flag. The question is: what's the basis for this refusal: I see nothing of the kind in the current ELF gABI: http://www.sco.com/developers/gabi/latest/ch4.sheader.html I see that this check (without the error messages) is already in the original submission: [patch] Honour SHF_LINK_ORDER https://sourceware.org/ml/binutils/2004-07/msg00197.html and https://sourceware.org/ml/binutils/2004-07/msg00200.html but no justification either. Why not just emit the sections with SHF_LINK_ORDER set in order and add in the rest behind? Rainer
Ah, just saw this. I just filed bug 26256 with a recent discussion.
Fixed then