It seems that linker script for userspace software are quite toolchain-depending, at least because what we use is a merge between builtin LD scripts (see strings /usr/bin/ld) and normal kernel linking scripts.
Plus, a number of people are having toolchain-related troubles building UML (even assertion failures on linking, with Gentoo and Fedora 2). So, let's try to make UML nicer for binutils. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]> --- linux-2.6.11-paolo/arch/um/kernel/dyn.lds.S | 3 +++ linux-2.6.11-paolo/arch/um/kernel/uml.lds.S | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff -puN arch/um/kernel/uml.lds.S~uml-update-lds-to-ld-version arch/um/kernel/uml.lds.S --- linux-2.6.11/arch/um/kernel/uml.lds.S~uml-update-lds-to-ld-version 2005-01-13 05:53:48.582270064 +0100 +++ linux-2.6.11-paolo/arch/um/kernel/uml.lds.S 2005-01-13 05:56:06.458309720 +0100 @@ -7,8 +7,12 @@ jiffies = jiffies_64; SECTIONS { + /*This must contain the right address - not quite the default ELF one.*/ + PROVIDE (__executable_start = START); . = START + SIZEOF_HEADERS; + /* Used in arch/um/kernel/mem.c. Any memory between START and __binary_start + * is remapped.*/ __binary_start = .; #ifdef MODE_TT .thread_private : { @@ -20,9 +24,13 @@ SECTIONS } . = ALIGN(4096); .remap : { arch/um/kernel/tt/unmap_fin.o (.text) } -#endif + + /* We want it only if we are in MODE_TT. In both cases, however, when MODE_TT + * is off the resulting binary segfaults.*/ . = ALIGN(4096); /* Init code and data */ +#endif + _stext = .; __init_begin = .; .init.text : { diff -puN arch/um/kernel/dyn.lds.S~uml-update-lds-to-ld-version arch/um/kernel/dyn.lds.S --- linux-2.6.11/arch/um/kernel/dyn.lds.S~uml-update-lds-to-ld-version 2005-01-13 05:53:48.583269912 +0100 +++ linux-2.6.11-paolo/arch/um/kernel/dyn.lds.S 2005-01-13 05:53:48.616264896 +0100 @@ -7,8 +7,11 @@ jiffies = jiffies_64; SECTIONS { + PROVIDE (__executable_start = START); . = START + SIZEOF_HEADERS; .interp : { *(.interp) } + /* Used in arch/um/kernel/mem.c. Any memory between START and __binary_start + * is remapped.*/ __binary_start = .; . = ALIGN(4096); /* Init code and data */ _stext = .; _ ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel