From 302576afe4b817cdbedd9545b523189018de0eb8 Mon Sep 17 00:00:00 2001 From: Martin Schwidefsky Date: Wed, 17 Apr 2002 15:12:24 +0000 Subject: [PATCH] * config/tc-s390.c (tc_s390_fix_adjustable): Prevent adjustments to symbols in merge sections. --- gas/ChangeLog | 5 +++++ gas/config/tc-s390.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 50ab8c61532..30ac042f287 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2002-04-17 Martin Schwidefsky + + * config/tc-s390.c (tc_s390_fix_adjustable): Prevent adjustments to + symbols in merge sections. + 2002-04-16 Alan Modra * as.c (main): Don't reference _bfd_chunksize. diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c index 966db56b1f2..2c9a8892817 100644 --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -1,5 +1,5 @@ /* tc-s390.c -- Assemble for the S390 - Copyright 2000, 2001 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). This file is part of GAS, the GNU Assembler. @@ -1630,6 +1630,10 @@ tc_s390_fix_adjustable(fixP) return 0; if (S_IS_WEAK (fixP->fx_addsy)) return 0; + /* Don't adjust pc-relative references to merge sections. */ + if ((S_GET_SEGMENT(fixP->fx_addsy)->flags & SEC_MERGE) != 0 + && fixP->fx_pcrel) + return 0; /* adjust_reloc_syms doesn't know about the GOT. */ if ( fixP->fx_r_type == BFD_RELOC_32_GOTOFF || fixP->fx_r_type == BFD_RELOC_390_PLT16DBL -- 2.30.2