Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-5]: src/gnu/usr.bin/ld/ld Pullup 1.72 [matt]:



details:   https://anonhg.NetBSD.org/src/rev/4a7fb2d3cc39
branches:  netbsd-1-5
changeset: 490116:4a7fb2d3cc39
user:      tv <tv%NetBSD.org@localhost>
date:      Fri Nov 03 18:43:18 2000 +0000

description:
Pullup 1.72 [matt]:
On VAX, JMPTAB reloc use EXTERN as a type bit.  However, they are always
EXTERN so we always need to emit them.  This fixes various problem with
using JMP instruction in libc and libm.

diffstat:

 gnu/usr.bin/ld/ld/ld.c |  12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diffs (40 lines):

diff -r 37a651632c18 -r 4a7fb2d3cc39 gnu/usr.bin/ld/ld/ld.c
--- a/gnu/usr.bin/ld/ld/ld.c    Fri Nov 03 18:42:09 2000 +0000
+++ b/gnu/usr.bin/ld/ld/ld.c    Fri Nov 03 18:43:18 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ld.c,v 1.70.2.1 2000/10/30 22:56:04 tv Exp $   */
+/*     $NetBSD: ld.c,v 1.70.2.2 2000/11/03 18:43:18 tv Exp $   */
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -88,7 +88,7 @@
 
 #ifndef lint
 /* from: "@(#)ld.c     6.10 (Berkeley) 5/22/91"; */
-__RCSID("$NetBSD: ld.c,v 1.70.2.1 2000/10/30 22:56:04 tv Exp $");
+__RCSID("$NetBSD: ld.c,v 1.70.2.2 2000/11/03 18:43:18 tv Exp $");
 #endif /* not lint */
 
 #define GNU_BINUTIL_COMPAT     /* forwards compatiblity with binutils 2.x */
@@ -3158,6 +3158,12 @@
                        } else if (!RELOC_EXTERN_P(r)) {
 #if JMPSLOT_NONEXTERN_ARE_INTERMODULE
                                relocation = addend + sp->value;
+#ifdef DEBUG
+                               printf("perform_relocation: jmpslot: %#x=%#lx (addend=%#lx %s=%#lx)\n",
+                                       pc_relocation + addr,
+                                       relocation - pc_relocation,
+                                       addend, sp->name, sp->value);
+#endif
 #else
                                relocation = addend +
                                        data_relocation - text_relocation;
@@ -3464,7 +3470,7 @@
                symindex = RELOC_SYMBOL(r);
                lsp = &entry->symbols[symindex];
 
-               if (!RELOC_EXTERN_P(r)) {
+               if (!RELOC_EXTERN_P(r) && !RELOC_JMPTAB_P(r)) {
                        if (!pic_code_seen)
                                continue;
                        if (RELOC_BASEREL_P(r))



Home | Main Index | Thread Index | Old Index