aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1997-03-20 17:40:06 +0000
committerIan Lance Taylor <ian@airs.com>1997-03-20 17:40:06 +0000
commit34bc6ffca64341d3313c57c6b459e79045df987c (patch)
treed7ed0cebdfcc179b01edde362b308b60c9cbb42b
parent9e3977b9df079a4848d98c83b0c385c0f9c34c8d (diff)
downloadgdb-34bc6ffca64341d3313c57c6b459e79045df987c.zip
gdb-34bc6ffca64341d3313c57c6b459e79045df987c.tar.gz
gdb-34bc6ffca64341d3313c57c6b459e79045df987c.tar.bz2
* elflink.h (elf_bfd_final_link): Set the value of a section
symbol to the section address unless doing a relocateable link.
-rw-r--r--bfd/ChangeLog11
-rw-r--r--bfd/elflink.h5
2 files changed, 15 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6a82698..ca73a71 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,14 @@
+Thu Mar 20 12:39:02 1997 Ian Lance Taylor <ian@cygnus.com>
+
+ * elflink.h (elf_bfd_final_link): Set the value of a section
+ symbol to the section address unless doing a relocateable link.
+
+Tue Mar 18 23:03:17 1997 Richard Henderson <rth@tamu.edu>
+
+ * elf64-alpha.c (elf64_alpha_adjust_dynamic_symbol): Don't create
+ .plt entry if we've taken the function's address.
+ (elf64_alpha_merge_gots): Merge collected flags info as well.
+
Tue Mar 18 22:40:09 1997 H.J. Lu <hjl@lucon.org>
* Many files: Add function prototypes.
diff --git a/bfd/elflink.h b/bfd/elflink.h
index dee5a8a..6207595 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -3328,7 +3328,6 @@ elf_bfd_final_link (abfd, info)
outputting relocs. */
if (info->strip != strip_all || info->relocateable)
{
- elfsym.st_value = 0;
elfsym.st_size = 0;
elfsym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION);
elfsym.st_other = 0;
@@ -3338,6 +3337,10 @@ elf_bfd_final_link (abfd, info)
if (o != NULL)
o->target_index = abfd->symcount;
elfsym.st_shndx = i;
+ if (info->relocateable || o == NULL)
+ elfsym.st_value = 0;
+ else
+ elfsym.st_value = o->vma;
if (! elf_link_output_sym (&finfo, (const char *) NULL,
&elfsym, o))
goto error_return;