From 622b1860e1ec0f3dcf3f91e3806747b534e8473c Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 19 Jun 1998 17:58:12 +0000 Subject: [PATCH] * write.c (adjust_reloc_syms): Never adjust relocs against weak symbols. * config/tc-mips.c (md_apply_fix): Adjust accordingly. --- gas/ChangeLog | 6 ++++++ gas/config/tc-mips.c | 21 ++++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index fbbeb579841..9da20dedc0d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +Fri Jun 19 13:57:06 1998 Ian Lance Taylor + + * write.c (adjust_reloc_syms): Never adjust relocs against weak + symbols. + * config/tc-mips.c (md_apply_fix): Adjust accordingly. + Fri Jun 19 09:50:17 1998 Jeffrey A Law (law@cygnus.com) start-sanitize-am33 diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index d26b4fdf45f..cfe6292b2c3 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -140,7 +140,11 @@ mips_target_format () /* This is the set of options which may be modified by the .set pseudo-op. We use a struct so that .set push and .set pop are more - reliable. */ + reliable. + + FIXME: The CPU specific variables (mips_4010, et. al.) should + probably be in here as well, and there should probably be some way + to set them. */ struct mips_set_options { @@ -234,7 +238,17 @@ static int mips_4900 = -1; /* Whether the processor uses hardware interlocks to protect reads from the HI and LO registers, and thus does not - require nops to be inserted. */ + require nops to be inserted. + + FIXME: We really should not be checking mips_cpu here. The -mcpu= + option is documented to not do anything special. In gcc, the + -mcpu= option only affects scheduling, and does not affect code + generation. Each test of -mcpu= here should actually be testing a + specific variable, such as mips_4010, and each such variable should + have a command line option to set it. The -mcpu= option may be + used to set the default value of these options, as is the case for + mips_4010. */ + #define hilo_interlocks (mips_4010 || mips_3900 \ /* start-sanitize-tx49 */ \ || mips_cpu == 4900 || mips_4900 \ @@ -9911,7 +9925,8 @@ md_apply_fix (fixP, valueP) #ifdef OBJ_ELF if (fixP->fx_addsy != NULL && OUTPUT_FLAVOR == bfd_target_elf_flavour - && S_GET_OTHER (fixP->fx_addsy) == STO_MIPS16) + && (S_GET_OTHER (fixP->fx_addsy) == STO_MIPS16 + || S_IS_WEAK (fixP->fx_addsy))) { value -= S_GET_VALUE (fixP->fx_addsy); if (value != 0 && ! fixP->fx_pcrel) -- 2.30.2