+2005-02-08 Mark Mitchell <mark@codesourcery.com>
+
+ * scripttempl/armbpabi.sc (VERSION): Make special section symbols
+ local.
+ (Image$$ER_RO$$Base): Define whenever RELOCATING.
+ (Image$$ER_RO$$Limit): Likewise.
+ (SHT$$INIT_ARRAY$$Base): Likewise.
+ (SHT$$INIT_ARRAY$$Limit): Likeise.
+
2005-02-10 Ben Elliston <bje@au.ibm.com>
* emultempl/beos.em: Remove #if 0 and #if 1 blocks.
at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld
bug. But for now assigning the zero vmas works. */}
+/* ARM's proprietary toolchain generate these symbols to match the start
+ and end of particular sections of the image. SymbianOS uses these
+ symbols. We provide them for compatibility with ARM's toolchains.
+ These symbols should be bound locally; each shared object may define
+ its own version of these symbols. */
+
+VERSION
+{
+ {
+ local:
+ Image\$\$ER_RO\$\$Base;
+ Image\$\$ER_RO\$\$Limit;
+ SHT\$\$INIT_ARRAY\$\$Base;
+ SHT\$\$INIT_ARRAY\$\$Limit;
+ .ARM.exidx\$\$Base;
+ .ARM.exidx\$\$Limit;
+ };
+}
+
SECTIONS
{
/* Read-only sections, merged into text segment: */
${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+PROVIDE (__executable_start = ${TEXT_START_ADDR});}}}
- /* SymbianOS uses this symbol. */
- ${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+PROVIDE (Image\$\$ER_RO\$\$Base = ${TEXT_START_ADDR});}}}
+
${CREATE_SHLIB-${CREATE_PIE-${RELOCATING+ . = ${TEXT_BASE_ADDRESS};}}}
${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_BASE_ADDRESS};}}
${CREATE_PIE+${RELOCATING+. = ${SHLIB_BASE_ADDRESS};}}
+
+ /* Define Image\$\$ER_RO\$\$Base. */
+ ${RELOCATING+PROVIDE (Image\$\$ER_RO\$\$Base = .);}
+
${INITIAL_READONLY_SECTIONS}
EOF
${RELOCATING+PROVIDE (__etext = .);}
${RELOCATING+PROVIDE (_etext = .);}
${RELOCATING+PROVIDE (etext = .);}
- /* SymbianOS uses this symbol. */
+
+ /* Define Image\$\$ER_RO\$\$Limit. */
${RELOCATING+PROVIDE (Image\$\$ER_RO\$\$Limit = .);}
+
${WRITABLE_RODATA-${RODATA}}
.rodata1 ${RELOCATING-0} : { *(.rodata1) }
${CREATE_SHLIB-${SDATA2}}
${RELOCATING+${CREATE_SHLIB-PROVIDE (__init_array_start = .);}}
/* SymbianOS uses this symbol. */
- ${RELOCATING+${CREATE_SHLIB-PROVIDE (SHT\$\$INIT_ARRAY\$\$Base = .);}}
+ ${RELOCATING+PROVIDE (SHT\$\$INIT_ARRAY\$\$Base = .);}
.init_array ${RELOCATING-0} : { *(.init_array) }
/* SymbianOS uses this symbol. */
- ${RELOCATING+${CREATE_SHLIB-PROVIDE (SHT\$\$INIT_ARRAY\$\$Limit = .);}}
+ ${RELOCATING+PROVIDE (SHT\$\$INIT_ARRAY\$\$Limit = .);}
${RELOCATING+${CREATE_SHLIB-PROVIDE (__init_array_end = .);}}
${RELOCATING+${CREATE_SHLIB-PROVIDE (__fini_array_start = .);}}