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