Den 27/11/2012 kl. 09.00 skrev pete <[email protected]>:

> Hi,
> 
> I meet a problem when using mclinker to do base system linking. And the
> problem is crunchide is gnu ld specific. it presumes the section layout of
> a object file is like what gnu ld generates.
> 
> To make it clear, gnu ld would generate the following layout. And crunchide
> will update elf section header, symbol table, and then string table. (The
> string table is likely enlarged.)
> 
> ld -dc -r -o cat.lo cat_stub.o
> /usr/obj/usr/src/rescue/rescue//usr/src/bin/cat/cat.o
> crunchide -k _crunched_cat_stub cat.lo
> 
> ----gnu ld------------
> + elf header         +
> ----------------------
> +                    +
> +                    +
> ----------------------
> + elf section header +
> ----------------------
> + symbol table       +
> ----------------------
> + string table       +
> ----------------------
> 
> However, mclinker does not produce this layout, but put elf section header
> in the end of file. And then crunchide will break the object file generated
> by mclinker. (elf section header is overwritten by new strings)
> 
> I know the layout generated by gold linker is also different to gnu ld. On
> the other hand, we can find only ELF header is required to be fixed in 
> *"System
> V Application Binary Interface*".
> 
> For mclinker, I think it's not difficult to add the change to be compatible
> with gnu ld. But do you think if it will be better to modify crunchide
> utility to support more elf linkers?


Unless you have compelling technical reasons to keep your layout, I think it's 
better for mclinker to be as compatible with GNU ld as possible, even though 
your layout also adheres to the standards. If other tools in FreeBSD or other 
platforms also make assumptions about the header layout, you'll end up patching 
lots of tools instead of working on mclinker.

With that in mind, I also think it's worthwhile to patch our crunchide to be 
more permissive. If you have the resources, please send patches.

Thanks,
Erik
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "[email protected]"

Reply via email to