summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2002-03-01 18:36:08 +0000
committerJakub Jelinek <jakub@redhat.com>2002-03-01 18:36:08 +0000
commit47b808bcdf322f48e6a4c53938eed70b47e6f14f (patch)
tree0c99eff7212a536e5d651dff23207040f8f8de41
parent844354c4097f62fba67acffb657165a1068f6dd2 (diff)
downloadbinutils-redhat-47b808bcdf322f48e6a4c53938eed70b47e6f14f.tar.gz
* config/obj-elf.c (elf_copy_symbol_attributes): Don't copy
visibility. (obj_frob_symbol): Copy visibility.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/obj-elf.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3651d2b695..4eea4919e8 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2002-03-01 Jakub Jelinek <jakub@redhat.com>
+
+ * config/obj-elf.c (elf_copy_symbol_attributes): Don't copy
+ visibility.
+ (obj_frob_symbol): Copy visibility.
+
2002-02-28 Jakub Jelinek <jakub@redhat.com>
* config/tc-alpha.c (s_alpha_text): Use obj_elf_text for OBJ_ELF, not
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 13c748211c..dcbff5d8a2 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -1408,7 +1408,9 @@ elf_copy_symbol_attributes (dest, src)
destelf->size = NULL;
}
S_SET_SIZE (dest, S_GET_SIZE (src));
- S_SET_OTHER (dest, S_GET_OTHER (src));
+ /* Don't copy visibility. */
+ S_SET_OTHER (dest, (ELF_ST_VISIBILITY (S_GET_OTHER (dest))
+ | (S_GET_OTHER (src) & ~ELF_ST_VISIBILITY (-1))));
}
void
@@ -1839,6 +1841,8 @@ elf_frob_symbol (symp, puntp)
/* This will copy over the size information. */
copy_symbol_attributes (symp2, symp);
+ S_SET_OTHER (symp2, S_GET_OTHER (symp));
+
if (S_IS_WEAK (symp))
S_SET_WEAK (symp2);