aboutsummaryrefslogtreecommitdiff
path: root/bfd/evax-egsd.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1997-02-14 02:13:19 +0000
committerIan Lance Taylor <ian@airs.com>1997-02-14 02:13:19 +0000
commit8696b2db7095e8387ef7ca145cd8541a6e9ee547 (patch)
tree92372b7be56ee759ec72473801c57c7482fbdf94 /bfd/evax-egsd.c
parent236969ac80acb286a7fff50a58e3c89d5b755c84 (diff)
downloadgdb-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.c19
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);