diff options
Diffstat (limited to 'bfd/evax-egsd.c')
-rw-r--r-- | bfd/evax-egsd.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/bfd/evax-egsd.c b/bfd/evax-egsd.c index 8354b8b..cd12039 100644 --- a/bfd/evax-egsd.c +++ b/bfd/evax-egsd.c @@ -41,6 +41,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define EVAX_LINK_NAME "$LINK$" #define EVAX_DATA_NAME "$DATA$" #define EVAX_BSS_NAME "$BSS$" +#define EVAX_READONLYADDR_NAME "$READONLY_ADDR$" #define EVAX_READONLY_NAME "$READONLY$" #define EVAX_LITERAL_NAME "$LITERAL$" #define EVAX_COMMON_NAME "$COMMON$" @@ -54,7 +55,7 @@ struct sec_flags_struct { flagword flags_hassize; /* flags we set if the section has a size > 0 */ }; -/* just a dummy flag array since i don't understand it yet */ +/* These flags are deccrtl/vaxcrtl (openVMS 6.2) compatible */ */ static struct sec_flags_struct evax_section_flags[] = { { EVAX_ABS_NAME, @@ -67,13 +68,18 @@ static struct sec_flags_struct evax_section_flags[] = { (SEC_CODE), (EGPS_S_V_PIC|EGPS_S_V_REL|EGPS_S_V_SHR|EGPS_S_V_EXE), (SEC_IN_MEMORY|SEC_CODE|SEC_HAS_CONTENTS|SEC_ALLOC|SEC_LOAD) }, + { EVAX_LITERAL_NAME, + (EGPS_S_V_PIC|EGPS_S_V_REL|EGPS_S_V_SHR|EGPS_S_V_RD|EGPS_S_V_NOMOD), + (SEC_DATA|SEC_READONLY), + (EGPS_S_V_PIC|EGPS_S_V_REL|EGPS_S_V_SHR|EGPS_S_V_RD), + (SEC_IN_MEMORY|SEC_DATA|SEC_HAS_CONTENTS|SEC_ALLOC|SEC_READONLY|SEC_LOAD) }, { EVAX_LINK_NAME, (EGPS_S_V_REL|EGPS_S_V_RD), (SEC_DATA|SEC_READONLY), (EGPS_S_V_REL|EGPS_S_V_RD), (SEC_IN_MEMORY|SEC_DATA|SEC_HAS_CONTENTS|SEC_ALLOC|SEC_READONLY|SEC_LOAD) }, { EVAX_DATA_NAME, - (EGPS_S_V_REL|EGPS_S_V_RD|EGPS_S_V_WRT), + (EGPS_S_V_REL|EGPS_S_V_RD|EGPS_S_V_WRT|EGPS_S_V_NOMOD), (SEC_DATA), (EGPS_S_V_REL|EGPS_S_V_RD|EGPS_S_V_WRT), (SEC_IN_MEMORY|SEC_DATA|SEC_HAS_CONTENTS|SEC_ALLOC|SEC_LOAD) }, @@ -82,16 +88,21 @@ static struct sec_flags_struct evax_section_flags[] = { (SEC_NO_FLAGS), (EGPS_S_V_REL|EGPS_S_V_RD|EGPS_S_V_WRT|EGPS_S_V_NOMOD), (SEC_IN_MEMORY|SEC_HAS_CONTENTS|SEC_ALLOC|SEC_LOAD) }, - { EVAX_READONLY_NAME, - (EGPS_S_V_PIC|EGPS_S_V_REL|EGPS_S_V_SHR|EGPS_S_V_RD), + { EVAX_READONLYADDR_NAME, + (EGPS_S_V_PIC|EGPS_S_V_REL|EGPS_S_V_RD), (SEC_DATA|SEC_READONLY), - (EGPS_S_V_PIC|EGPS_S_V_REL|EGPS_S_V_SHR|EGPS_S_V_RD), + (EGPS_S_V_PIC|EGPS_S_V_REL|EGPS_S_V_RD), (SEC_IN_MEMORY|SEC_DATA|SEC_HAS_CONTENTS|SEC_ALLOC|SEC_READONLY|SEC_LOAD) }, - { EVAX_LITERAL_NAME, - (EGPS_S_V_PIC|EGPS_S_V_REL|EGPS_S_V_SHR|EGPS_S_V_RD), + { EVAX_READONLY_NAME, + (EGPS_S_V_PIC|EGPS_S_V_REL|EGPS_S_V_SHR|EGPS_S_V_RD|EGPS_S_V_NOMOD), (SEC_DATA|SEC_READONLY), (EGPS_S_V_PIC|EGPS_S_V_REL|EGPS_S_V_SHR|EGPS_S_V_RD), (SEC_IN_MEMORY|SEC_DATA|SEC_HAS_CONTENTS|SEC_ALLOC|SEC_READONLY|SEC_LOAD) }, + { EVAX_LOCAL_NAME, + (EGPS_S_V_REL|EGPS_S_V_RD|EGPS_S_V_WRT), + (SEC_DATA), + (EGPS_S_V_REL|EGPS_S_V_RD|EGPS_S_V_WRT), + (SEC_IN_MEMORY|SEC_DATA|SEC_HAS_CONTENTS|SEC_ALLOC|SEC_LOAD) }, { NULL, (EGPS_S_V_REL|EGPS_S_V_RD|EGPS_S_V_WRT), (SEC_DATA), |