[PATCH] Updated RDOS support
Alan Modra
amodra@gmail.com
Tue Jan 8 09:24:00 GMT 2013
More information about the Binutils mailing list
Tue Jan 8 09:24:00 GMT 2013
- Previous message (by thread): [PATCH] Updated RDOS support
- Next message (by thread): [PATCH] Updated RDOS support
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Jan 04, 2013 at 11:03:51PM +0100, Leif Ekblad wrote:
> Change log:
> * bfd/config.bfd: Removed unsupported models for rdos.
> * ld/configure.tgt: Changed rdos target emulation to use a new file
> * ld/emulparams/elf64rdos.sh: New emulation file for target rdos.
> * ld/Makefile.am: Added target emulation file to makefile.
> * ld/scripttempl/elf.sc: Fixed error in RODATA_ADDR script. Added
> support for putting large data in separate segment at a fixed
> address.
> * ld/Makefile.in: Regenerated with autoconf from ld/Makefile.am
> *** 2084,2089 ****
> --- 2085,2093 ----
> $(srcdir)/emultempl/ppc64elf.em ldemul-list.h \
> $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
> ${GENSCRIPTS} elf64ppc_fbsd "$(tdir_elf64ppc_fbsd)"
> + eelf64rdos.c: $(srcdir)/emulparams/elf64rdos.sh \
> + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
> + ${GENSCRIPTS} elf64tilegx "$(tdir_elf64rdos)"
elf64tilegx?
> +
> + EOF
> +
> + if test -n "${LARGE_DATA_ADDR}"; then
> + LARGE_DATA_ADDR=". = \
> + SEGMENT_START(\"ldata-segment\", ${LARGE_DATA_ADDR}) + SIZEOF_HEADERS;"
> + fi
> + if test -n "${SHLIB_LARGE_DATA_ADDR}"; then
> + SHLIB_LARGE_DATA_ADDR=". = \
> + SEGMENT_START(\"ldata-segment\", ${SHLIB_LARGE_DATA_ADDR}) + SIZEOF_HEADERS;"
> + fi
> + cat <<EOF
> + ${RELOCATING+${CREATE_SHLIB-${CREATE_PIE-${LARGE_DATA_ADDR}}}}
> + ${RELOCATING+${CREATE_SHLIB+${SHLIB_LARGE_DATA_ADDR}}}
> + ${RELOCATING+${CREATE_PIE+${SHLIB_LARGE_DATA_ADDR}}}
> +
> ${OTHER_BSS_SECTIONS}
> ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
> ${RELOCATING+. = ALIGN(${ALIGNMENT});}
Why should $LARGE_DATA_ADDR affect $OTHER_BSS_SECTIONS? Hmm, I see
LARGE_SECTIONS=yes adds .lbss to OTHER_BSS_SECTIONS. That's not very
nice as quite a few targets use OTHER_BSS_SECTIONS for other purposes.
Your patch makes this even more confusing. Also, since you seem to
want a separate large segment, do you really want to lay out your
large sections as .lbss, .lrodata, .ldata? Wouldn't .lrodata, .ldata,
.lbss make more sense?
Also, there isn't much point in adding support for -Tldata-segment
here without the rest of the support, so that needs adding or simply
omit use of SEGMENT_START().
I committed your fix for RODATA_ADDR. Thanks!
--
Alan Modra
Australia Development Lab, IBM
- Previous message (by thread): [PATCH] Updated RDOS support
- Next message (by thread): [PATCH] Updated RDOS support
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list