diff options
author | Ian Lance Taylor <ian@airs.com> | 1997-02-14 02:13:19 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1997-02-14 02:13:19 +0000 |
commit | 8696b2db7095e8387ef7ca145cd8541a6e9ee547 (patch) | |
tree | 92372b7be56ee759ec72473801c57c7482fbdf94 /bfd/evax-egsd.c | |
parent | 236969ac80acb286a7fff50a58e3c89d5b755c84 (diff) | |
download | gdb-8696b2db7095e8387ef7ca145cd8541a6e9ee547.zip gdb-8696b2db7095e8387ef7ca145cd8541a6e9ee547.tar.gz gdb-8696b2db7095e8387ef7ca145cd8541a6e9ee547.tar.bz2 |
Thu Feb 13 20:53:22 1997 Klaus Kaempf (kkaempf@progis.de)
* reloc.c (BFD_RELOC_ALPHA_CODEADDR): New relocation for
openVMS/Alpha.
* evax.h (ALPHA_R_CODEADDR): New relocation.
* evax-alpha.c (ALPHA_R_CODEADDR): 64 bit procedure relocation for
openVMS/Alpha.
* evax-etir.c (ALPHA_R_CODEADDR): Output object code for this
relocation.
* bfd-in2.h, libbfd.h: Rebuild.
Restrict symbol length to 64 bytes, case preserving:
* evax-emh.c (_bfd_evax_write_emh): Remove case hacking.
* evax-misc.c (_bfd_evax_case_hack_symbol): Remove.
(_bfd_evax_length_hash_symbol): Added.
* evax-etir.c (_bfd_evax_write_etir): Call
_bfd_evax_length_hash_symbol before output of symbol.
* evax-egsd.c (_bfd_evax_write_egsd): Likewise.
* evax.h (flag_hash_long_names, flag_show_after_trunc): Remove.
* evax-emh.c: Output filename to object file without path.
* evax-egsd.c: New sections for local and global commons.
* evax-alpha.c, evax-emh.c, evax-egsd.c, evax-etir.c,
evax-misc.c, evax.h: Remove 8 bit characters from copyright
notices. Replace AXP with Alpha.
Diffstat (limited to 'bfd/evax-egsd.c')
-rw-r--r-- | bfd/evax-egsd.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/bfd/evax-egsd.c b/bfd/evax-egsd.c index f766ecb..8354b8b 100644 --- a/bfd/evax-egsd.c +++ b/bfd/evax-egsd.c @@ -1,10 +1,10 @@ -/* evax-egsd.c -- BFD back-end for ALPHA EVAX (openVMS/AXP) files. - Copyright 1996 Free Software Foundation Inc. +/* evax-egsd.c -- BFD back-end for ALPHA EVAX (openVMS/Alpha) files. + Copyright 1996, 1997 Free Software Foundation Inc. go and read the openVMS linker manual (esp. appendix B) if you don't know what's going on here :-) - Written by Klaus Kämpf (kkaempf@progis.de) + Written by Klaus K"ampf (kkaempf@progis.de) of proGIS Softwareentwicklung, Aachen, Germany This program is free software; you can redistribute it and/or modify @@ -43,6 +43,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define EVAX_BSS_NAME "$BSS$" #define EVAX_READONLY_NAME "$READONLY$" #define EVAX_LITERAL_NAME "$LITERAL$" +#define EVAX_COMMON_NAME "$COMMON$" +#define EVAX_LOCAL_NAME "$LOCAL$" struct sec_flags_struct { char *name; /* name of section */ @@ -463,6 +465,10 @@ _bfd_evax_write_egsd (abfd) sname = EVAX_READONLY_NAME; else if ((*sname == 'l') && (strcmp (sname, "literal") == 0)) sname = EVAX_LITERAL_NAME; + else if ((*sname == 'c') && (strcmp (sname, "comm") == 0)) + sname = EVAX_COMMON_NAME; + else if ((*sname == 'l') && (strcmp (sname, "lcomm") == 0)) + sname = EVAX_LOCAL_NAME; } _bfd_evax_output_begin (abfd, EGSD_S_C_PSC, -1); @@ -497,6 +503,11 @@ _bfd_evax_write_egsd (abfd) } old_flags = symbol->flags; + if ((*(symbol->section->name+1) == 'c') + && (strcmp (symbol->section->name+1, "comm") == 0) + && (strcmp (symbol->name, ".comm") != 0)) + old_flags |= BSF_GLOBAL; + if (old_flags & BSF_FILE) continue; @@ -555,7 +566,7 @@ _bfd_evax_write_egsd (abfd) _bfd_evax_output_long (abfd, symbol->section->index);/* L_PSINDX, FIXME */ } } - _bfd_evax_output_counted (abfd, _bfd_evax_case_hack_symbol (abfd, symbol->name)); + _bfd_evax_output_counted (abfd, _bfd_evax_length_hash_symbol (abfd, symbol->name)); _bfd_evax_output_flush (abfd); |