aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2001-08-08 13:11:58 +0000
committerAlan Modra <amodra@gmail.com>2001-08-08 13:11:58 +0000
commit8fd3e36b8404118d6331e42fef1257af6fa54e5e (patch)
tree8ffec551dceafc0029f0af54b333e4718fc998c5
parent2517a57fdf395c6e5068577d1d4f86b3c6935e6d (diff)
downloadfsf-binutils-gdb-8fd3e36b8404118d6331e42fef1257af6fa54e5e.zip
fsf-binutils-gdb-8fd3e36b8404118d6331e42fef1257af6fa54e5e.tar.gz
fsf-binutils-gdb-8fd3e36b8404118d6331e42fef1257af6fa54e5e.tar.bz2
* config/obj-elf.c (elf_copy_symbol_attributes): Make it a global
function, and expand old obj-elf.h OBJ_COPY_SYMBOL_ATTRIBUTES here. * config/obj-elf.h (elf_copy_symbol_attributes): Declare. (OBJ_COPY_SYMBOL_ATTRIBUTES): Call elf_copy_symbol_attributes.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/obj-elf.c37
-rw-r--r--gas/config/obj-elf.h28
3 files changed, 36 insertions, 34 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 0478495..424a69b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2001-08-08 Alan Modra <amodra@bigpond.net.au>
+ * config/obj-elf.c (elf_copy_symbol_attributes): Make it a global
+ function, and expand old obj-elf.h OBJ_COPY_SYMBOL_ATTRIBUTES here.
+ * config/obj-elf.h (elf_copy_symbol_attributes): Declare.
+ (OBJ_COPY_SYMBOL_ATTRIBUTES): Call elf_copy_symbol_attributes.
+
* output-file.c (output_file_create): Don't try to open using
FOPEN_W as it's unnecessary and VMS doesn't define FOPEN_W.
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 8c59479..f298498 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -1,5 +1,5 @@
/* ELF object file format
- Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+ Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -55,7 +55,6 @@ static void elf_s_set_size PARAMS ((symbolS *, bfd_vma));
static bfd_vma elf_s_get_align PARAMS ((symbolS *));
static void elf_s_set_align PARAMS ((symbolS *, bfd_vma));
static void elf_s_set_other PARAMS ((symbolS *, int));
-static void elf_copy_symbol_attributes PARAMS ((symbolS *, symbolS *));
static int elf_sec_sym_ok_for_reloc PARAMS ((asection *));
static void adjust_stab_sections PARAMS ((bfd *, asection *, PTR));
static int elf_separate_stab_sections PARAMS ((void));
@@ -242,13 +241,6 @@ elf_s_set_other (sym, other)
S_SET_OTHER (sym, other);
}
-static void
-elf_copy_symbol_attributes (dest, src)
- symbolS *dest, *src;
-{
- OBJ_COPY_SYMBOL_ATTRIBUTES (dest, src);
-}
-
static int
elf_sec_sym_ok_for_reloc (sec)
asection *sec;
@@ -1330,6 +1322,33 @@ elf_obj_symbol_new_hook (symbolP)
#endif
}
+/* When setting one symbol equal to another, by default we probably
+ want them to have the same "size", whatever it means in the current
+ context. */
+
+void
+elf_copy_symbol_attributes (dest, src)
+ symbolS *dest, *src;
+{
+ struct elf_obj_sy *srcelf = symbol_get_obj (src);
+ struct elf_obj_sy *destelf = symbol_get_obj (dest);
+ if (srcelf->size)
+ {
+ if (destelf->size == NULL)
+ destelf->size =
+ (expressionS *) xmalloc (sizeof (expressionS));
+ *destelf->size = *srcelf->size;
+ }
+ else
+ {
+ if (destelf->size != NULL)
+ free (destelf->size);
+ destelf->size = NULL;
+ }
+ S_SET_SIZE (dest, S_GET_SIZE (src));
+ S_SET_OTHER (dest, S_GET_OTHER (src));
+}
+
void
obj_elf_version (ignore)
int ignore ATTRIBUTE_UNUSED;
diff --git a/gas/config/obj-elf.h b/gas/config/obj-elf.h
index 8e3ce7d..33c5f43 100644
--- a/gas/config/obj-elf.h
+++ b/gas/config/obj-elf.h
@@ -182,32 +182,10 @@ void elf_obj_symbol_new_hook PARAMS ((symbolS *));
#define obj_symbol_new_hook elf_obj_symbol_new_hook
#endif
-/* When setting one symbol equal to another, by default we probably
- want them to have the same "size", whatever it means in the current
- context. */
+void elf_copy_symbol_attributes PARAMS ((symbolS *, symbolS *));
#ifndef OBJ_COPY_SYMBOL_ATTRIBUTES
-#define OBJ_COPY_SYMBOL_ATTRIBUTES(DEST,SRC) \
-do \
- { \
- struct elf_obj_sy *srcelf = symbol_get_obj (SRC); \
- struct elf_obj_sy *destelf = symbol_get_obj (DEST); \
- if (srcelf->size) \
- { \
- if (destelf->size == NULL) \
- destelf->size = \
- (expressionS *) xmalloc (sizeof (expressionS)); \
- *destelf->size = *srcelf->size; \
- } \
- else \
- { \
- if (destelf->size != NULL) \
- free (destelf->size); \
- destelf->size = NULL; \
- } \
- S_SET_SIZE ((DEST), S_GET_SIZE (SRC)); \
- S_SET_OTHER ((DEST), S_GET_OTHER (SRC)); \
- } \
-while (0)
+#define OBJ_COPY_SYMBOL_ATTRIBUTES(DEST, SRC) \
+ (elf_copy_symbol_attributes (DEST, SRC))
#endif
#ifndef SEPARATE_STAB_SECTIONS