diff --git a/gnu/usr.bin/ld/ld.c b/gnu/usr.bin/ld/ld.c index 4779887171a8..126e4ac60258 100644 --- a/gnu/usr.bin/ld/ld.c +++ b/gnu/usr.bin/ld/ld.c @@ -32,7 +32,7 @@ static char sccsid[] = "@(#)ld.c 6.10 (Berkeley) 5/22/91"; Set, indirect, and warning symbol features added by Randy Smith. */ /* - * $Id: ld.c,v 1.7 1993/11/16 00:42:57 paul Exp $ + * $Id: ld.c,v 1.8 1993/11/16 07:20:35 paul Exp $ */ /* Define how to initialize system-dependent header fields. */ @@ -1773,7 +1773,9 @@ consider_relocation (entry, dataseg) /* Call to shared library procedure */ alloc_rrs_jmpslot(sp); - + if (!RELOC_PCREL_P(reloc)) { + sp->aux = RRS_FUNC; + } } else if (sp->size && (sp->so_defined == N_DATA + N_EXT || sp->so_defined == N_TEXT + N_EXT)) { diff --git a/gnu/usr.bin/ld/ld.h b/gnu/usr.bin/ld/ld.h index 687b7a31ff59..320d0733f03f 100644 --- a/gnu/usr.bin/ld/ld.h +++ b/gnu/usr.bin/ld/ld.h @@ -1,4 +1,4 @@ -/* $Id: ld.h,v 1.4 1993/11/01 16:26:16 pk Exp $ */ +/* $Id: ld.h,v 1.2 1993/11/09 04:18:59 paul Exp $ */ /*- * This code is derived from software copyrighted by the Free Software * Foundation. @@ -427,6 +427,13 @@ typedef struct glosym { /* Size of symbol as determined by N_SIZE 'nlist's in object files */ int size; + /* Auxialiary info to put in the `nz_other' field of the + * RRS symbol table. Used by the run-time linker to resolve + * references to function addresses from within shared objects. + */ + int aux; +#define RRS_FUNC 2 + /* * Chain of external 'nlist's in shared objects for this symbol, both * defs and refs.