This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: 3 testsuite failures under hpux 10.20
- To: John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>
- Subject: Re: 3 testsuite failures under hpux 10.20
- From: Alan Modra <alan at linuxcare dot com dot au>
- Date: Wed, 19 Jul 2000 16:27:22 +1000 (EST)
- cc: binutils at sourceware dot cygnus dot com
Yep, it was a silly thinko, SOM instead of OBJ_SOM. Committing the
following to fix it.
Regards, Alan Modra
--
Linuxcare. Support for the Revolution.
gas/ChangeLog
* config/tc-hppa.c (hppa_fix_adjustable): Correct LR%/RR% comment.
(arg_reloc_stub_needed): #ifdef OBJ_SOM, not #ifdef SOM.
(pa_type_args): Same here.
Index: gas/config/tc-hppa.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-hppa.c,v
retrieving revision 1.60
diff -u -p -r1.60 tc-hppa.c
--- tc-hppa.c 2000/07/15 12:57:14 1.60
+++ tc-hppa.c 2000/07/19 06:14:05
@@ -4390,7 +4390,7 @@ md_undefined_symbol (name)
return 0;
}
-#if defined (SOM) || defined (ELF_ARG_RELOC)
+#if defined (OBJ_SOM) || defined (ELF_ARG_RELOC)
#define arg_reloc_stub_needed(CALLER, CALLEE) \
((CALLEE) && (CALLER) && ((CALLEE) != (CALLER)))
#else
@@ -6715,7 +6715,7 @@ pa_type_args (symbolP, is_export)
name = input_line_pointer;
c = get_symbol_end ();
arg_reloc = pa_align_arg_reloc (temp, pa_build_arg_reloc (name));
-#if defined (SOM) || defined (ELF_ARG_RELOC)
+#if defined (OBJ_SOM) || defined (ELF_ARG_RELOC)
symbol_arg_reloc_info (symbolP) |= arg_reloc;
#endif
*input_line_pointer = c;
@@ -6729,7 +6729,7 @@ pa_type_args (symbolP, is_export)
name = input_line_pointer;
c = get_symbol_end ();
arg_reloc = pa_build_arg_reloc (name);
-#if defined (SOM) || defined (ELF_ARG_RELOC)
+#if defined (OBJ_SOM) || defined (ELF_ARG_RELOC)
symbol_arg_reloc_info (symbolP) |= arg_reloc;
#endif
*input_line_pointer = c;
@@ -8373,19 +8373,20 @@ hppa_fix_adjustable (fixp)
eg. Suppose we have
. ldil LR%foo+0,%r21
. ldw RR%foo+0(%r21),%r26
- . ldw RR%foo+10(%r21),%r25
+ . ldw RR%foo+4(%r21),%r25
- If foo is at address 4090 (decimal) in section `sect', then after
- reducing to the section symbol, we get
- . LR%sect+4090 == L%sect+0
- . RR%sect+4090 == R%sect+4090
- . RR%sect+4100 == R%sect-4092 (4100 - 8192)
- and the last address loses.
-
- Obviously, in cases where the LR% expression is identical to the
- RR% one we will never have a problem, but is so happens that gcc
- rounds addends involved in LR% field selectors to work around a
- HP linker bug. ie. We often have addresses like the last case
+ If foo is at address 4092 (decimal) in section `sect', then after
+ reducing to the section symbol we get
+ . LR%sect+4092 == (L%sect)+0
+ . RR%sect+4092 == (R%sect)+4092
+ . RR%sect+4096 == (R%sect)-4096
+ and the last address loses because rounding the addend to 8k
+ mutiples takes us up to 8192 with an offset of -4096.
+
+ In cases where the LR% expression is identical to the RR% one we
+ will never have a problem, but is so happens that gcc rounds
+ addends involved in LR% field selectors to work around a HP
+ linker bug. ie. We often have addresses like the last case
above where the LR% expression is offset from the RR% one. */
if (hppa_fix->fx_r_field == e_lrsel