diff options
author | Tristan Gingold <gingold@adacore.com> | 2010-06-01 09:52:28 +0000 |
---|---|---|
committer | Tristan Gingold <gingold@adacore.com> | 2010-06-01 09:52:28 +0000 |
commit | 46d00b8af141a8ef29f4b9cd49ab70839b6e5ba8 (patch) | |
tree | e21b5728192b70bdcb1f073c6d12901fc803721a /ld | |
parent | b1797dc84a941058fdf6761390a990dba38cd22d (diff) | |
download | gdb-46d00b8af141a8ef29f4b9cd49ab70839b6e5ba8.zip gdb-46d00b8af141a8ef29f4b9cd49ab70839b6e5ba8.tar.gz gdb-46d00b8af141a8ef29f4b9cd49ab70839b6e5ba8.tar.bz2 |
bfd/
2010-06-01 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (struct vms_private_data_struct): Add
transfer_address field. Remove unused dst_info field.
(alpha_vms_write_exec): Use transfer_address.
(_bfd_vms_write_egsd): Add a comment about LIB$INITIALIZE.
(alpha_vms_bfd_final_link): Set transfer_address.
ld/
2010-06-01 Tristan Gingold <gingold@adacore.com>
* scripttempl/alphavms.sc: Add comments. Move $LINK$ to the
readonly output-section. Handle LIB$INITIALIZE and sections
created by gcc.
* emultempl/vms.em (vms_place_orphan): Add comments.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/emultempl/vms.em | 5 | ||||
-rw-r--r-- | ld/scripttempl/alphavms.sc | 17 |
3 files changed, 27 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 446edc6..f08e998 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2010-06-01 Tristan Gingold <gingold@adacore.com> + + * scripttempl/alphavms.sc: Add comments. Move $LINK$ to the + readonly output-section. Handle LIB$INITIALIZE and sections + created by gcc. + * emultempl/vms.em (vms_place_orphan): Add comments. + 2010-05-28 Nick Clifton <nickc@redhat.com> * Makefile.am (eshlelf_fd.c): Fix typo in rule. diff --git a/ld/emultempl/vms.em b/ld/emultempl/vms.em index 0b6b059..f21796b 100644 --- a/ld/emultempl/vms.em +++ b/ld/emultempl/vms.em @@ -94,11 +94,14 @@ vms_place_orphan (asection *s, 0, 0, 0, 0 }; - /* We have nothing to say for anything other than a final link. */ + /* We have nothing to say for anything other than a final link or an excluded + section. */ if (link_info.relocatable || (s->flags & (SEC_EXCLUDE | SEC_LOAD)) != SEC_LOAD) return NULL; + /* FIXME: we should place sections by VMS program section flags. */ + /* Only handle data sections. */ if ((s->flags & SEC_DATA) == 0) return NULL; diff --git a/ld/scripttempl/alphavms.sc b/ld/scripttempl/alphavms.sc index ed4ec68..406a601 100644 --- a/ld/scripttempl/alphavms.sc +++ b/ld/scripttempl/alphavms.sc @@ -11,20 +11,35 @@ SECTIONS { ${RELOCATING+. = ${PAGESIZE};} + /* RW initialized data. */ \$DATA\$ ALIGN (${PAGESIZE}) : { *(\$DATA\$) - *(\$LINK\$) } + /* RW data unmodified (zero-initialized). */ \$BSS\$ ALIGN (${PAGESIZE}) : { *(\$BSS\$) } + /* RO, executable code. */ \$CODE\$ ALIGN (${PAGESIZE}) : { *(\$CODE\$) } + /* RO initialized data. */ \$LITERAL\$ ALIGN (${PAGESIZE}) : { + *(\$LINK\$) *(\$LITERAL\$) *(\$READONLY\$) *(\$READONLY_ADDR\$) + *(eh_frame) + *(jcr) + *(ctors) + *(dtors) + *(gcc_except_table) + + /* LIB$INITIALIZE stuff. */ + *(LIB\$INITIALIZDZ) /* Start marker. */ + *(LIB\$INITIALIZD_) /* Hi priority. */ + *(LIB\$INITIALIZE) /* User. */ + *(LIB\$INITIALIZE$) /* End marker. */ } \$DST\$ 0 : { |