* Fix MIPS multi-GOT -Bsymbolic link failure
@ 2010-08-26 21:58 Joseph S. Myers
2010-08-26 23:52 ` Richard Sandiford
0 siblings, 1 reply; 9+ messages in thread
From: Joseph S. Myers @ 2010-08-26 21:58 UTC (permalink / raw)
To: binutils
This patch fixes a link failure for MIPS multi-GOT with -Bsymbolic.
The testcase, as added to the testsuite, is the existing multi-got-1
testcase but with -Bsymbolic added to the linker options. Symbols
that are only binding locally because of -Bsymbolic get global rather
than local GOT entries - the code is very complicated, but I must
presume it is deliberate that not all symbols binding locally (as
indicated by SYMBOL_REFERENCES_LOCAL or _bfd_elf_symbol_refs_local_p)
get local entries, given that for example
mips_elf_calculate_relocation sets local_p based on
_bfd_elf_symbol_refs_local_p only for some types of relocations.
_bfd_mips_elf_finish_dynamic_symbol iterates over global GOT entries,
and ends up calling mips_elf_create_dynamic_relocation with a NULL sec
value, while the code in mips_elf_create_dynamic_relocation checks
SYMBOL_REFERENCES_LOCAL and on that basis reaches code requiring a
non-NULL sec. In turn the link fails with "final link failed: Bad
value". This patch arranges for NULL sec to go through the global
rather than the local case.
Tested with no regressions with cross to mips-linux-gnu. OK to
commit?
bfd:
2010-08-26 Joseph Myers <joseph@codesourcery.com>
* elfxx-mips.c (mips_elf_create_dynamic_relocation): Handle sec ==
NULL as a global symbol.
ld/testsuite:
2010-08-26 Joseph Myers <joseph@codesourcery.com>
* ld-mips-elf/multi-got-1-symbolic.d: New.
* ld-mips-elf/mips-elf.exp: Run multi-got-1-symbolic test.
Index: bfd/elfxx-mips.c
===================================================================
RCS file: /cvs/src/src/bfd/elfxx-mips.c,v
retrieving revision 1.270
diff -u -p -r1.270 elfxx-mips.c
--- bfd/elfxx-mips.c 25 Aug 2010 14:53:45 -0000 1.270
+++ bfd/elfxx-mips.c 26 Aug 2010 15:36:50 -0000
@@ -5754,8 +5754,10 @@ mips_elf_create_dynamic_relocation (bfd
}
/* We must now calculate the dynamic symbol table index to use
- in the relocation. */
- if (h != NULL && ! SYMBOL_REFERENCES_LOCAL (info, &h->root))
+ in the relocation. sec == NULL can arise from
+ _bfd_mips_elf_finish_dynamic_symbol handling a global GOT entry
+ with -Bsymbolic, so treat that case as a global symbol. */
+ if (h != NULL && (sec == NULL || ! SYMBOL_REFERENCES_LOCAL (info, &h->root)))
{
indx = h->root.dynindx;
if (SGI_COMPAT (output_bfd))
Index: ld/testsuite/ld-mips-elf/mips-elf.exp
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-mips-elf/mips-elf.exp,v
retrieving revision 1.65
diff -u -p -r1.65 mips-elf.exp
--- ld/testsuite/ld-mips-elf/mips-elf.exp 9 Aug 2010 19:54:13 -0000 1.65
+++ ld/testsuite/ld-mips-elf/mips-elf.exp 26 Aug 2010 15:36:50 -0000
@@ -124,6 +124,7 @@ run_dump_test "branch-misc-1"
# the "traditional" emulations.
if { $linux_gnu } {
run_dump_test "multi-got-1"
+ run_dump_test "multi-got-1-symbolic"
run_dump_test "multi-got-no-shared"
run_dump_test "multi-got-hidden-1"
run_dump_test "multi-got-hidden-2"
Index: ld/testsuite/ld-mips-elf/multi-got-1-symbolic.d
===================================================================
RCS file: ld/testsuite/ld-mips-elf/multi-got-1-symbolic.d
diff -N ld/testsuite/ld-mips-elf/multi-got-1-symbolic.d
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-mips-elf/multi-got-1-symbolic.d 26 Aug 2010 15:36:50 -0000
@@ -0,0 +1,32 @@
+#name: MIPS multi-got-1-symbolic
+#as: -EB -32 -KPIC
+#source: multi-got-1-1.s
+#source: multi-got-1-2.s
+#ld: -melf32btsmip -shared -Bsymbolic
+#readelf: -d -r
+
+Dynamic section at offset 0xec contains 18 entries:
+ Tag Type Name/Value
+ 0x00000010 \(SYMBOLIC\) 0x0
+ 0x00000004 \(HASH\) 0x[0-9a-f]+
+ 0x00000005 \(STRTAB\) 0x[0-9a-f]+
+ 0x00000006 \(SYMTAB\) 0x[0-9a-f]+
+ 0x0000000a \(STRSZ\) [0-9]+ \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000003 \(PLTGOT\) 0x[0-9a-f]+
+ 0x00000011 \(REL\) 0x[0-9a-f]+
+ 0x00000012 \(RELSZ\) 65544 \(bytes\)
+ 0x00000013 \(RELENT\) 8 \(bytes\)
+ 0x70000001 \(MIPS_RLD_VERSION\) 1
+ 0x70000005 \(MIPS_FLAGS\) NOTPOT
+ 0x70000006 \(MIPS_BASE_ADDRESS\) 0
+ 0x7000000a \(MIPS_LOCAL_GOTNO\) 2
+ 0x70000011 \(MIPS_SYMTABNO\) [0-9]+
+ 0x70000012 \(MIPS_UNREFEXTNO\) [0-9]+
+ 0x70000013 \(MIPS_GOTSYM\) 0x[0-9a-f]+
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '\.rel\.dyn' at offset 0x[0-9a-f]+ contains 8193 entries:
+ Offset Info Type Sym\.Value Sym\. Name
+00000000 00000000 R_MIPS_NONE
+#...
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Fix MIPS multi-GOT -Bsymbolic link failure
2010-08-26 21:58 Fix MIPS multi-GOT -Bsymbolic link failure Joseph S. Myers
@ 2010-08-26 23:52 ` Richard Sandiford
2010-08-27 14:03 ` Daniel Jacobowitz
0 siblings, 1 reply; 9+ messages in thread
From: Richard Sandiford @ 2010-08-26 23:52 UTC (permalink / raw)
To: Joseph S. Myers; +Cc: binutils
"Joseph S. Myers" <joseph@codesourcery.com> writes:
> This patch fixes a link failure for MIPS multi-GOT with -Bsymbolic.
>
> The testcase, as added to the testsuite, is the existing multi-got-1
> testcase but with -Bsymbolic added to the linker options. Symbols
> that are only binding locally because of -Bsymbolic get global rather
> than local GOT entries - the code is very complicated, but I must
> presume it is deliberate that not all symbols binding locally (as
> indicated by SYMBOL_REFERENCES_LOCAL or _bfd_elf_symbol_refs_local_p)
> get local entries, given that for example
> mips_elf_calculate_relocation sets local_p based on
> _bfd_elf_symbol_refs_local_p only for some types of relocations.
Hmm, that's probably a dangerous assumption. A lot of this code
was written before SYMBOL_REFERENCES_LOCAL and does look suspicious...
There's also the problem that the choice of GOT entry type needs
to match the choice we made when laying out the GOT. That used
to be difficult, because we'd create an initial GOT layout fairly
early on, then adjust it when symbols were forced local. That's
probably why there are forced_local checks where you might expect
something like SYMBOL_REFERENCES_LOCAL. The later GOT layout that
we now use should make it easier to get things right.
> _bfd_mips_elf_finish_dynamic_symbol iterates over global GOT entries,
> and ends up calling mips_elf_create_dynamic_relocation with a NULL sec
> value, while the code in mips_elf_create_dynamic_relocation checks
> SYMBOL_REFERENCES_LOCAL and on that basis reaches code requiring a
> non-NULL sec. In turn the link fails with "final link failed: Bad
> value". This patch arranges for NULL sec to go through the global
> rather than the local case.
I'm not sure this will correctly preserve the -Bsymbolic semantics.
We really don't want the relocation to be against a global symbol,
since the ABI requires any global symbols involved in relocations
to have a global GOT entry, which in turn means we'll end up using
the usual -Bdynamic value of the symbol.
I'll try to have a deeper look over the weekend, but I think you're
right that some checks of forced_local should really be testing
SYMBOL_REFERENCES_LOCAL instead. The first setting of local_p in
mips_elf_calculate_relocation is fine, since it's determining the
correct interpretion of the input relocation, and that depends on
the original STB_* binding for some relocation types. But when
laying out the GOT, and when using the second local_p to calculate
the new relocation, I think SYMBOL_REFERENCES_LOCAL should decide
whether we use local (non-page) or global GOT entries. I'm also
not sure that SYMBOL_CALLS_LOCAL is used correctly, or at least
optimally, for traditional call stubs.
Richard
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Fix MIPS multi-GOT -Bsymbolic link failure
2010-08-26 23:52 ` Richard Sandiford
@ 2010-08-27 14:03 ` Daniel Jacobowitz
2010-08-28 10:56 ` Richard Sandiford
0 siblings, 1 reply; 9+ messages in thread
From: Daniel Jacobowitz @ 2010-08-27 14:03 UTC (permalink / raw)
To: Joseph S. Myers, binutils, rdsandiford
On Thu, Aug 26, 2010 at 10:58:20PM +0100, Richard Sandiford wrote:
> > _bfd_mips_elf_finish_dynamic_symbol iterates over global GOT entries,
> > and ends up calling mips_elf_create_dynamic_relocation with a NULL sec
> > value, while the code in mips_elf_create_dynamic_relocation checks
> > SYMBOL_REFERENCES_LOCAL and on that basis reaches code requiring a
> > non-NULL sec. In turn the link fails with "final link failed: Bad
> > value". This patch arranges for NULL sec to go through the global
> > rather than the local case.
>
> I'm not sure this will correctly preserve the -Bsymbolic semantics.
> We really don't want the relocation to be against a global symbol,
> since the ABI requires any global symbols involved in relocations
> to have a global GOT entry, which in turn means we'll end up using
> the usual -Bdynamic value of the symbol.
That should work out fine. Yes, we'll get a global symbol in the
relocation - but the library will have DT_SYMBOLIC or DF_SYMBOLIC set,
and so the library's view of the symbol will resolve locally.
--
Daniel Jacobowitz
CodeSourcery
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Fix MIPS multi-GOT -Bsymbolic link failure
2010-08-27 14:03 ` Daniel Jacobowitz
@ 2010-08-28 10:56 ` Richard Sandiford
2010-08-29 18:32 ` Richard Sandiford
0 siblings, 1 reply; 9+ messages in thread
From: Richard Sandiford @ 2010-08-28 10:56 UTC (permalink / raw)
To: Joseph S. Myers; +Cc: binutils
Daniel Jacobowitz <dan@codesourcery.com> writes:
> On Thu, Aug 26, 2010 at 10:58:20PM +0100, Richard Sandiford wrote:
>> > _bfd_mips_elf_finish_dynamic_symbol iterates over global GOT entries,
>> > and ends up calling mips_elf_create_dynamic_relocation with a NULL sec
>> > value, while the code in mips_elf_create_dynamic_relocation checks
>> > SYMBOL_REFERENCES_LOCAL and on that basis reaches code requiring a
>> > non-NULL sec. In turn the link fails with "final link failed: Bad
>> > value". This patch arranges for NULL sec to go through the global
>> > rather than the local case.
>>
>> I'm not sure this will correctly preserve the -Bsymbolic semantics.
>> We really don't want the relocation to be against a global symbol,
>> since the ABI requires any global symbols involved in relocations
>> to have a global GOT entry, which in turn means we'll end up using
>> the usual -Bdynamic value of the symbol.
>
> That should work out fine. Yes, we'll get a global symbol in the
> relocation - but the library will have DT_SYMBOLIC or DF_SYMBOLIC set,
> and so the library's view of the symbol will resolve locally.
Er, yes indeed. :-( What was I thinking?
With lapses like that, perhaps I shouldn't be reviewing this thing at all,
but it seems odd that we should generate global relocations for secondary
GOT entries but local relocations for every other (non-GOT) reference.
Passing the correct section from _bfd_mips_elf_finish_dynamic_symbol
might be better, although a little more work.
I now agree that the patch is correct though. If you're happy with
it too, let's put it in.
I might experiment with adding the equivalent of:
BFD_ASSERT (htab->got_info->global_gotsym != NULL
&& h->root.dynindx >= htab->got_info->global_gotsym->dynindx);
after:
if (h != NULL && (sec == NULL || ! SYMBOL_REFERENCES_LOCAL (info, &h->root)))
{
which would give me a bit more confidence that we don't try to create
invalid relocs by mistake in future. (I might also experiment with
generating local GOT entries in this case, as mentioned before.)
Richard
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Fix MIPS multi-GOT -Bsymbolic link failure
2010-08-28 10:56 ` Richard Sandiford
@ 2010-08-29 18:32 ` Richard Sandiford
2010-08-30 15:10 ` Daniel Jacobowitz
2010-09-14 21:02 ` Joseph S. Myers
0 siblings, 2 replies; 9+ messages in thread
From: Richard Sandiford @ 2010-08-29 18:32 UTC (permalink / raw)
To: Joseph S. Myers; +Cc: binutils
Richard Sandiford <rdsandiford@googlemail.com> writes:
> I might also experiment with generating local GOT entries in this
> case, as mentioned before.
Here's what I had in mind. It means we use local relocations for all
GOT entries in Joseph's testcase, which should be a little more
efficient at load time.
Tested against the binutils testsuite on mips64-linux-gnu, and by
building and testing GCC on the same target. I'll commit it in
a couple of days if there are no objections.
Richard
bfd/
* elfxx-mips.c (mips_got_entry): Adjust commentary.
(mips_elf_create_local_got_entry): If given a symbol, check that it
has been assigned to the local part of the GOT.
(mips_elf_count_got_symbols): Take the bfd_link_info as argument
instead of the master GOT. Put all locally-binding symbols in
the local area.
(mips_elf_make_got_per_bfd): Use global_got_area to decide whether
a symbol lives in the local or global area.
(mips_elf_local_relocation_p): Remove check_forced argument and
retain only the !check_forced behavior.
(mips_elf_calculate_relocation): Adjust call accordingly.
Use global_got_area to decide whether an output relocation
should be local or global. Explicitly decay R_MIPS_GOT_PAGE
into R_MIPS_GOT_DISP where appropriate. Fix selection of
local vs. global semantics for R_MIPS*_26. Remove redundant
reevaluation of what is stored in was_local_p.
(mips_elf_create_dynamic_relocation): Use global_got_area to decide
whether the relocation should be against a global or local symbol.
(mips_elf_lay_out_got): Update the GOT traversal after the above
change to mips_elf_count_got_symbols.
(mips_elf_adjust_addend): Adjust call to mips_elf_local_relocation_p.
(_bfd_mips_elf_relocate_section): Likewise.
(_bfd_mips_elf_finish_dynamic_symbol): Use global_got_area to decide
whether the symbol has a global got entry.
(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
Index: bfd/elfxx-mips.c
===================================================================
--- bfd/elfxx-mips.c 2010-08-28 11:55:28.000000000 +0100
+++ bfd/elfxx-mips.c 2010-08-28 18:22:51.000000000 +0100
@@ -53,7 +53,7 @@
(abfd == NULL)
(2) SYMBOL + OFFSET addresses, where SYMBOL is local to an input bfd
(abfd != NULL, symndx >= 0)
- (3) global and forced-local symbols
+ (3) SYMBOL addresses, where SYMBOL is not local to an input bfd
(abfd != NULL, symndx == -1)
Type (3) entries are treated differently for different types of GOT.
@@ -94,8 +94,9 @@ struct mips_got_entry
that should be added to the symbol value. */
bfd_vma addend;
/* If abfd != NULL && symndx == -1, the hash table entry
- corresponding to a global symbol in the got (or, local, if
- h->forced_local). */
+ corresponding to symbol in the GOT. The symbol's entry
+ is in the local area if h->global_got_area is GGA_NONE,
+ otherwise it is in the global area. */
struct mips_elf_link_hash_entry *h;
} d;
@@ -3202,8 +3203,8 @@ mips_elf_got_page (bfd *abfd, bfd *ibfd,
}
/* Find a local GOT entry for an R_MIPS*_GOT16 relocation against VALUE.
- EXTERNAL is true if the relocation was against a global symbol
- that has been forced local. */
+ EXTERNAL is true if the relocation was originally against a global
+ symbol that binds locally. */
static bfd_vma
mips_elf_got16_entry (bfd *abfd, bfd *ibfd, struct bfd_link_info *info,
@@ -3281,11 +3282,9 @@ mips_elf_create_local_got_entry (bfd *ab
BFD_ASSERT (g != NULL);
}
- /* We might have a symbol, H, if it has been forced local. Use the
- global entry then. It doesn't matter whether an entry is local
- or global for TLS, since the dynamic linker does not
- automatically relocate TLS GOT entries. */
- BFD_ASSERT (h == NULL || h->root.forced_local);
+ /* This function shouldn't be called for symbols that live in the global
+ area of the GOT. */
+ BFD_ASSERT (h == NULL || h->global_got_area == GGA_NONE);
if (TLS_RELOC_P (r_type))
{
struct mips_got_entry *p;
@@ -3850,17 +3849,20 @@ mips_elf_resolve_final_got_entries (stru
}
/* A mips_elf_link_hash_traverse callback for which DATA points
- to a mips_got_info. Count the number of type (3) entries. */
+ to the link_info structure. Count the number of type (3) entries
+ in the master GOT. */
static int
mips_elf_count_got_symbols (struct mips_elf_link_hash_entry *h, void *data)
{
+ struct bfd_link_info *info;
struct mips_got_info *g;
- g = (struct mips_got_info *) data;
+ info = (struct bfd_link_info *) data;
+ g = mips_elf_hash_table (info)->got_info;
if (h->global_got_area != GGA_NONE)
{
- if (h->root.forced_local || h->root.dynindx == -1)
+ if (SYMBOL_REFERENCES_LOCAL (info, &h->root))
{
/* We no longer need this entry if it was only used for
relocations; those relocations will be against the
@@ -4010,7 +4012,7 @@ mips_elf_make_got_per_bfd (void **entryp
if (entry->tls_type & GOT_TLS_IE)
g->tls_gotno += 1;
}
- else if (entry->symndx >= 0 || entry->d.h->root.forced_local)
+ else if (entry->symndx >= 0 || entry->d.h->global_got_area == GGA_NONE)
++g->local_gotno;
else
++g->global_gotno;
@@ -4557,17 +4559,15 @@ mips_elf_next_relocation (bfd *abfd ATTR
return NULL;
}
-/* Return whether a relocation is against a local symbol. */
+/* Return whether an input relocation is against a local symbol. */
static bfd_boolean
mips_elf_local_relocation_p (bfd *input_bfd,
const Elf_Internal_Rela *relocation,
- asection **local_sections,
- bfd_boolean check_forced)
+ asection **local_sections)
{
unsigned long r_symndx;
Elf_Internal_Shdr *symtab_hdr;
- struct mips_elf_link_hash_entry *h;
size_t extsymoff;
r_symndx = ELF_R_SYM (input_bfd, relocation->r_info);
@@ -4579,20 +4579,6 @@ mips_elf_local_relocation_p (bfd *input_
if (elf_bad_symtab (input_bfd) && local_sections[r_symndx] != NULL)
return TRUE;
- if (check_forced)
- {
- /* Look up the hash table to check whether the symbol
- was forced local. */
- h = (struct mips_elf_link_hash_entry *)
- elf_sym_hashes (input_bfd) [r_symndx - extsymoff];
- /* Find the real hash-table entry for this symbol. */
- while (h->root.root.type == bfd_link_hash_indirect
- || h->root.root.type == bfd_link_hash_warning)
- h = (struct mips_elf_link_hash_entry *) h->root.root.u.i.link;
- if (h->root.forced_local)
- return TRUE;
- }
-
return FALSE;
}
\f
@@ -4900,7 +4886,7 @@ mips_elf_calculate_relocation (bfd *abfd
used in the array of hash table entries. */
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
local_p = mips_elf_local_relocation_p (input_bfd, relocation,
- local_sections, FALSE);
+ local_sections);
was_local_p = local_p;
if (! elf_bad_symtab (input_bfd))
extsymoff = symtab_hdr->sh_info;
@@ -5134,8 +5120,7 @@ mips_elf_calculate_relocation (bfd *abfd
|| ((r_type == R_MIPS_26 || r_type == R_MIPS_JALR)
&& target_is_16_bit_code_p));
- local_p = mips_elf_local_relocation_p (input_bfd, relocation,
- local_sections, TRUE);
+ local_p = (h == NULL || h->global_got_area == GGA_NONE);
gp0 = _bfd_get_gp_value (input_bfd);
gp = _bfd_get_gp_value (abfd);
@@ -5145,19 +5130,18 @@ mips_elf_calculate_relocation (bfd *abfd
if (gnu_local_gp_p)
symbol = gp;
+ /* Global R_MIPS_GOT_PAGE relocations are equivalent to R_MIPS_GOT_DISP.
+ The addend is applied by the corresponding R_MIPS_GOT_OFST. */
+ if (r_type == R_MIPS_GOT_PAGE && !local_p)
+ {
+ r_type = R_MIPS_GOT_DISP;
+ addend = 0;
+ }
+
/* If we haven't already determined the GOT offset, oand we're going
to need it, get it now. */
switch (r_type)
{
- case R_MIPS_GOT_PAGE:
- case R_MIPS_GOT_OFST:
- /* We need to decay to GOT_DISP/addend if the symbol doesn't
- bind locally. */
- local_p = local_p || _bfd_elf_symbol_refs_local_p (&h->root, info, 1);
- if (local_p || r_type == R_MIPS_GOT_OFST)
- break;
- /* Fall through. */
-
case R_MIPS16_CALL16:
case R_MIPS16_GOT16:
case R_MIPS_CALL16:
@@ -5193,21 +5177,12 @@ mips_elf_calculate_relocation (bfd *abfd
}
else
{
- /* GOT_PAGE may take a non-zero addend, that is ignored in a
- GOT_PAGE relocation that decays to GOT_DISP because the
- symbol turns out to be global. The addend is then added
- as GOT_OFST. */
- BFD_ASSERT (addend == 0 || r_type == R_MIPS_GOT_PAGE);
+ BFD_ASSERT (addend == 0);
g = mips_elf_global_got_index (dynobj, input_bfd,
&h->root, r_type, info);
if (h->tls_type == GOT_NORMAL
- && (! elf_hash_table(info)->dynamic_sections_created
- || (info->shared
- && (info->symbolic || h->root.forced_local)
- && h->root.def_regular)))
- /* This is a static link or a -Bsymbolic link. The
- symbol is defined locally, or was forced to be local.
- We must initialize this entry in the GOT. */
+ && !elf_hash_table (info)->dynamic_sections_created)
+ /* This is a static link. We must initialize the GOT entry. */
MIPS_ELF_PUT_WORD (dynobj, symbol, htab->sgot->contents + g);
}
}
@@ -5321,7 +5296,7 @@ mips_elf_calculate_relocation (bfd *abfd
mips_elf_perform_relocation. So, we just fall through to the
R_MIPS_26 case here. */
case R_MIPS_26:
- if (local_p)
+ if (was_local_p)
value = ((addend | ((p + 4) & 0xf0000000)) + symbol) >> 2;
else
{
@@ -5447,12 +5422,8 @@ mips_elf_calculate_relocation (bfd *abfd
R_MIPS*_GOT16; every relocation evaluates to "G". */
if (!htab->is_vxworks && local_p)
{
- bfd_boolean forced;
-
- forced = ! mips_elf_local_relocation_p (input_bfd, relocation,
- local_sections, FALSE);
value = mips_elf_got16_entry (abfd, input_bfd, info,
- symbol + addend, forced);
+ symbol + addend, !was_local_p);
if (value == MINUS_ONE)
return bfd_reloc_outofrange;
value
@@ -5467,7 +5438,6 @@ mips_elf_calculate_relocation (bfd *abfd
case R_MIPS_TLS_GOTTPREL:
case R_MIPS_TLS_LDM:
case R_MIPS_GOT_DISP:
- got_disp:
value = g;
overflowed_p = mips_elf_overflow_p (value, 16);
break;
@@ -5502,11 +5472,6 @@ mips_elf_calculate_relocation (bfd *abfd
break;
case R_MIPS_GOT_PAGE:
- /* GOT_PAGE relocations that reference non-local symbols decay
- to GOT_DISP. The corresponding GOT_OFST relocation decays to
- 0. */
- if (! local_p)
- goto got_disp;
value = mips_elf_got_page (abfd, input_bfd, info, symbol + addend, NULL);
if (value == MINUS_ONE)
return bfd_reloc_outofrange;
@@ -5755,7 +5720,7 @@ mips_elf_create_dynamic_relocation (bfd
/* We must now calculate the dynamic symbol table index to use
in the relocation. */
- if (h != NULL && ! SYMBOL_REFERENCES_LOCAL (info, &h->root))
+ if (h != NULL && h->global_got_area != GGA_NONE)
{
indx = h->root.dynindx;
if (SGI_COMPAT (output_bfd))
@@ -8454,7 +8419,7 @@ mips_elf_lay_out_got (bfd *output_bfd, s
return FALSE;
/* Count the number of GOT symbols. */
- mips_elf_link_hash_traverse (htab, mips_elf_count_got_symbols, g);
+ mips_elf_link_hash_traverse (htab, mips_elf_count_got_symbols, info);
/* Calculate the total loadable size of the output. That
will give us the maximum number of GOT_PAGE entries
@@ -8913,7 +8878,7 @@ mips_elf_adjust_addend (bfd *output_bfd,
Elf_Internal_Sym *sym;
asection *sec;
- if (mips_elf_local_relocation_p (input_bfd, rel, local_sections, FALSE))
+ if (mips_elf_local_relocation_p (input_bfd, rel, local_sections))
{
r_type = ELF_R_TYPE (output_bfd, rel->r_info);
if (r_type == R_MIPS16_GPREL
@@ -8983,7 +8948,7 @@ _bfd_mips_elf_relocate_section (bfd *out
r_symndx = ELF_R_SYM (input_bfd, rel->r_info);
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
- if (mips_elf_local_relocation_p (input_bfd, rel, local_sections, FALSE))
+ if (mips_elf_local_relocation_p (input_bfd, rel, local_sections))
{
sec = local_sections[r_symndx];
h = NULL;
@@ -9048,7 +9013,7 @@ _bfd_mips_elf_relocate_section (bfd *out
if (hi16_reloc_p (r_type)
|| (got16_reloc_p (r_type)
&& mips_elf_local_relocation_p (input_bfd, rel,
- local_sections, FALSE)))
+ local_sections)))
{
if (!mips_elf_add_lo16_rel_addend (input_bfd, rel, relend,
contents, &addend))
@@ -9574,8 +9539,7 @@ _bfd_mips_elf_finish_dynamic_symbol (bfd
/* Run through the global symbol table, creating GOT entries for all
the symbols that need them. */
- if (g->global_gotsym != NULL
- && h->dynindx >= g->global_gotsym->dynindx)
+ if (hmips->global_got_area != GGA_NONE)
{
bfd_vma offset;
bfd_vma value;
@@ -9586,7 +9550,7 @@ _bfd_mips_elf_finish_dynamic_symbol (bfd
MIPS_ELF_PUT_WORD (output_bfd, value, sgot->contents + offset);
}
- if (g->next && h->dynindx != -1 && h->type != STT_TLS)
+ if (hmips->global_got_area != GGA_NONE && g->next && h->type != STT_TLS)
{
struct mips_got_entry e, *p;
bfd_vma entry;
@@ -9752,10 +9716,12 @@ _bfd_mips_vxworks_finish_dynamic_symbol
asection *sgot;
struct mips_got_info *g;
struct mips_elf_link_hash_table *htab;
+ struct mips_elf_link_hash_entry *hmips;
htab = mips_elf_hash_table (info);
BFD_ASSERT (htab != NULL);
dynobj = elf_hash_table (info)->dynobj;
+ hmips = (struct mips_elf_link_hash_entry *) h;
if (h->plt.offset != (bfd_vma) -1)
{
@@ -9861,8 +9827,7 @@ _bfd_mips_vxworks_finish_dynamic_symbol
BFD_ASSERT (g != NULL);
/* See if this symbol has an entry in the GOT. */
- if (g->global_gotsym != NULL
- && h->dynindx >= g->global_gotsym->dynindx)
+ if (hmips->global_got_area != GGA_NONE)
{
bfd_vma offset;
Elf_Internal_Rela outrel;
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Fix MIPS multi-GOT -Bsymbolic link failure
2010-08-29 18:32 ` Richard Sandiford
@ 2010-08-30 15:10 ` Daniel Jacobowitz
2010-09-14 21:02 ` Joseph S. Myers
1 sibling, 0 replies; 9+ messages in thread
From: Daniel Jacobowitz @ 2010-08-30 15:10 UTC (permalink / raw)
To: Joseph S. Myers, binutils, rdsandiford
On Sat, Aug 28, 2010 at 06:24:52PM +0100, Richard Sandiford wrote:
> Richard Sandiford <rdsandiford@googlemail.com> writes:
> > I might also experiment with generating local GOT entries in this
> > case, as mentioned before.
>
> Here's what I had in mind. It means we use local relocations for all
> GOT entries in Joseph's testcase, which should be a little more
> efficient at load time.
>
> Tested against the binutils testsuite on mips64-linux-gnu, and by
> building and testing GCC on the same target. I'll commit it in
> a couple of days if there are no objections.
Fabulous!
To answer an implied question in your previous message, I was happy
with Joseph's patch - but I'm just as happy with this one. I've spent
a lot of time in the MIPS GOT code, and I lean towards things that I
can convince myself are safe, which is a pretty small set :-) But
your patch removes several things that seem fragile and I like the
replacements.
--
Daniel Jacobowitz
CodeSourcery
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Fix MIPS multi-GOT -Bsymbolic link failure
2010-08-29 18:32 ` Richard Sandiford
2010-08-30 15:10 ` Daniel Jacobowitz
@ 2010-09-14 21:02 ` Joseph S. Myers
2010-09-14 21:11 ` Richard Sandiford
1 sibling, 1 reply; 9+ messages in thread
From: Joseph S. Myers @ 2010-09-14 21:02 UTC (permalink / raw)
To: Richard Sandiford; +Cc: binutils
On Sat, 28 Aug 2010, Richard Sandiford wrote:
> Here's what I had in mind. It means we use local relocations for all
> GOT entries in Joseph's testcase, which should be a little more
> efficient at load time.
>
> Tested against the binutils testsuite on mips64-linux-gnu, and by
> building and testing GCC on the same target. I'll commit it in
> a couple of days if there are no objections.
This doesn't appear to have been committed yet - any particular reason?
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Fix MIPS multi-GOT -Bsymbolic link failure
2010-09-14 21:02 ` Joseph S. Myers
@ 2010-09-14 21:11 ` Richard Sandiford
2010-09-19 10:27 ` Richard Sandiford
0 siblings, 1 reply; 9+ messages in thread
From: Richard Sandiford @ 2010-09-14 21:11 UTC (permalink / raw)
To: Joseph S. Myers; +Cc: binutils
"Joseph S. Myers" <joseph@codesourcery.com> writes:
> On Sat, 28 Aug 2010, Richard Sandiford wrote:
>> Here's what I had in mind. It means we use local relocations for all
>> GOT entries in Joseph's testcase, which should be a little more
>> efficient at load time.
>>
>> Tested against the binutils testsuite on mips64-linux-gnu, and by
>> building and testing GCC on the same target. I'll commit it in
>> a couple of days if there are no objections.
>
> This doesn't appear to have been committed yet - any particular reason?
Yeah, it doesn't work with VxWorks, because it hard-codes the assumption
that relocation symbols must be in the global GOT. I came up with one
fix for that, but wanted to experiment with a second fix as well.
VxWorks has bitrotted quite a bit anyway, so I ended up trying to fix
the bitrot first. In the end I ran out of time. I hope to return to it
this weekend though.
Richard
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Fix MIPS multi-GOT -Bsymbolic link failure
2010-09-14 21:11 ` Richard Sandiford
@ 2010-09-19 10:27 ` Richard Sandiford
0 siblings, 0 replies; 9+ messages in thread
From: Richard Sandiford @ 2010-09-19 10:27 UTC (permalink / raw)
To: Joseph S. Myers; +Cc: binutils
Richard Sandiford <rdsandiford@googlemail.com> writes:
> "Joseph S. Myers" <joseph@codesourcery.com> writes:
>> On Sat, 28 Aug 2010, Richard Sandiford wrote:
>>> Here's what I had in mind. It means we use local relocations for all
>>> GOT entries in Joseph's testcase, which should be a little more
>>> efficient at load time.
>>>
>>> Tested against the binutils testsuite on mips64-linux-gnu, and by
>>> building and testing GCC on the same target. I'll commit it in
>>> a couple of days if there are no objections.
>>
>> This doesn't appear to have been committed yet - any particular reason?
>
> Yeah, it doesn't work with VxWorks, because it hard-codes the assumption
> that relocation symbols must be in the global GOT. I came up with one
> fix for that, but wanted to experiment with a second fix as well.
>
> VxWorks has bitrotted quite a bit anyway, so I ended up trying to fix
> the bitrot first. In the end I ran out of time. I hope to return to it
> this weekend though.
Here's what I installed. The differences from last time are that:
* I've kept the "h->root.dynindx == -1" check in mips_elf_count_got_symbols.
I hadn't realised it was partly there to cope with undefined symbols
(which normally trigger an error later, and shouldn't cause assertion
failures).
* I've added "htab->is_vxworks ||" to the new "is this symbol GOT mapped?"
BFD_ASSERT.
I've also included the testsuite changes. In case anyone is initially
surprised to see changes to mips16-pic-* tests (as I was when I came
back to the patch yesterday): the dums are testing the PIC code model
in an executable rather than a shared library, so the changes really
are legitimate.
Tested on mips-wrs-vxworks and mips64-linux-gnu (in the latter case
against GCC as well as binutils).
Richard
bfd/
* elfxx-mips.c (mips_got_entry): Adjust commentary.
(mips_elf_create_local_got_entry): If given a symbol, check that it
has been assigned to the local part of the GOT.
(mips_elf_count_got_symbols): Take the bfd_link_info as argument
instead of the master GOT. Put all locally-binding symbols in
the local area.
(mips_elf_make_got_per_bfd): Use global_got_area to decide whether
a symbol lives in the local or global area.
(mips_elf_local_relocation_p): Remove check_forced argument and
retain only the !check_forced behavior.
(mips_elf_calculate_relocation): Adjust call accordingly.
Use global_got_area to decide whether an output relocation
should be local or global. Explicitly decay R_MIPS_GOT_PAGE
into R_MIPS_GOT_DISP where appropriate. Fix selection of
local vs. global semantics for R_MIPS*_26. Remove redundant
reevaluation of what is stored in was_local_p.
(mips_elf_create_dynamic_relocation): Use global_got_area to decide
whether the relocation should be against a global or local symbol.
(mips_elf_lay_out_got): Update the GOT traversal after the above
change to mips_elf_count_got_symbols.
(mips_elf_adjust_addend): Adjust call to mips_elf_local_relocation_p.
(_bfd_mips_elf_relocate_section): Likewise.
(_bfd_mips_elf_finish_dynamic_symbol): Use global_got_area to decide
whether the symbol has a global got entry.
(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
ld/testsuite/
* ld-mips-elf/elf-rel-got-n32.d: Swap two local GOT entries
and remove some duplication between the global and local GOT
entries. Adjust GP offsets accordingly.
* ld-mips-elf/elf-rel-got-n64-linux.d: Likewise.
* ld-mips-elf/elf-rel-xgot-n32.d: Reorder GOT entries and update
GP offsets accordingly.
* ld-mips-elf/elf-rel-xgot-n64-linux.d: Likewise.
* ld-mips-elf/mips16-pic-1.gd: Move all global GOT entries to
the local GOT.
* ld-mips-elf/mips16-pic-1.dd: Update GP offsets accordingly.
* ld-mips-elf/multi-got-no-shared.d: Adjust GP setup for
smaller GOT sizes.
Index: bfd/elfxx-mips.c
===================================================================
--- bfd/elfxx-mips.c 2010-09-19 11:07:06.000000000 +0100
+++ bfd/elfxx-mips.c 2010-09-19 11:24:35.000000000 +0100
@@ -53,7 +53,7 @@
(abfd == NULL)
(2) SYMBOL + OFFSET addresses, where SYMBOL is local to an input bfd
(abfd != NULL, symndx >= 0)
- (3) global and forced-local symbols
+ (3) SYMBOL addresses, where SYMBOL is not local to an input bfd
(abfd != NULL, symndx == -1)
Type (3) entries are treated differently for different types of GOT.
@@ -94,8 +94,9 @@ struct mips_got_entry
that should be added to the symbol value. */
bfd_vma addend;
/* If abfd != NULL && symndx == -1, the hash table entry
- corresponding to a global symbol in the got (or, local, if
- h->forced_local). */
+ corresponding to symbol in the GOT. The symbol's entry
+ is in the local area if h->global_got_area is GGA_NONE,
+ otherwise it is in the global area. */
struct mips_elf_link_hash_entry *h;
} d;
@@ -3202,8 +3203,8 @@ mips_elf_got_page (bfd *abfd, bfd *ibfd,
}
/* Find a local GOT entry for an R_MIPS*_GOT16 relocation against VALUE.
- EXTERNAL is true if the relocation was against a global symbol
- that has been forced local. */
+ EXTERNAL is true if the relocation was originally against a global
+ symbol that binds locally. */
static bfd_vma
mips_elf_got16_entry (bfd *abfd, bfd *ibfd, struct bfd_link_info *info,
@@ -3281,11 +3282,9 @@ mips_elf_create_local_got_entry (bfd *ab
BFD_ASSERT (g != NULL);
}
- /* We might have a symbol, H, if it has been forced local. Use the
- global entry then. It doesn't matter whether an entry is local
- or global for TLS, since the dynamic linker does not
- automatically relocate TLS GOT entries. */
- BFD_ASSERT (h == NULL || h->root.forced_local);
+ /* This function shouldn't be called for symbols that live in the global
+ area of the GOT. */
+ BFD_ASSERT (h == NULL || h->global_got_area == GGA_NONE);
if (TLS_RELOC_P (r_type))
{
struct mips_got_entry *p;
@@ -3850,21 +3849,33 @@ mips_elf_resolve_final_got_entries (stru
}
/* A mips_elf_link_hash_traverse callback for which DATA points
- to a mips_got_info. Count the number of type (3) entries. */
+ to the link_info structure. Count the number of type (3) entries
+ in the master GOT. */
static int
mips_elf_count_got_symbols (struct mips_elf_link_hash_entry *h, void *data)
{
+ struct bfd_link_info *info;
struct mips_got_info *g;
- g = (struct mips_got_info *) data;
+ info = (struct bfd_link_info *) data;
+ g = mips_elf_hash_table (info)->got_info;
if (h->global_got_area != GGA_NONE)
{
- if (h->root.forced_local || h->root.dynindx == -1)
- {
- /* We no longer need this entry if it was only used for
- relocations; those relocations will be against the
- null or section symbol instead of H. */
+ /* Make a final decision about whether the symbol belongs in the
+ local or global GOT. Symbols that bind locally can (and in the
+ case of forced-local symbols, must) live in the local GOT.
+ Those that are aren't in the dynamic symbol table must also
+ live in the local GOT.
+
+ Note that the former condition does not always imply the
+ latter: symbols do not bind locally if they are completely
+ undefined. We'll report undefined symbols later if appropriate. */
+ if (h->root.dynindx == -1 || SYMBOL_REFERENCES_LOCAL (info, &h->root))
+ {
+ /* The symbol belongs in the local GOT. We no longer need this
+ entry if it was only used for relocations; those relocations
+ will be against the null or section symbol instead of H. */
if (h->global_got_area != GGA_RELOC_ONLY)
g->local_gotno++;
h->global_got_area = GGA_NONE;
@@ -4010,7 +4021,7 @@ mips_elf_make_got_per_bfd (void **entryp
if (entry->tls_type & GOT_TLS_IE)
g->tls_gotno += 1;
}
- else if (entry->symndx >= 0 || entry->d.h->root.forced_local)
+ else if (entry->symndx >= 0 || entry->d.h->global_got_area == GGA_NONE)
++g->local_gotno;
else
++g->global_gotno;
@@ -4557,17 +4568,15 @@ mips_elf_next_relocation (bfd *abfd ATTR
return NULL;
}
-/* Return whether a relocation is against a local symbol. */
+/* Return whether an input relocation is against a local symbol. */
static bfd_boolean
mips_elf_local_relocation_p (bfd *input_bfd,
const Elf_Internal_Rela *relocation,
- asection **local_sections,
- bfd_boolean check_forced)
+ asection **local_sections)
{
unsigned long r_symndx;
Elf_Internal_Shdr *symtab_hdr;
- struct mips_elf_link_hash_entry *h;
size_t extsymoff;
r_symndx = ELF_R_SYM (input_bfd, relocation->r_info);
@@ -4579,20 +4588,6 @@ mips_elf_local_relocation_p (bfd *input_
if (elf_bad_symtab (input_bfd) && local_sections[r_symndx] != NULL)
return TRUE;
- if (check_forced)
- {
- /* Look up the hash table to check whether the symbol
- was forced local. */
- h = (struct mips_elf_link_hash_entry *)
- elf_sym_hashes (input_bfd) [r_symndx - extsymoff];
- /* Find the real hash-table entry for this symbol. */
- while (h->root.root.type == bfd_link_hash_indirect
- || h->root.root.type == bfd_link_hash_warning)
- h = (struct mips_elf_link_hash_entry *) h->root.root.u.i.link;
- if (h->root.forced_local)
- return TRUE;
- }
-
return FALSE;
}
\f
@@ -4900,7 +4895,7 @@ mips_elf_calculate_relocation (bfd *abfd
used in the array of hash table entries. */
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
local_p = mips_elf_local_relocation_p (input_bfd, relocation,
- local_sections, FALSE);
+ local_sections);
was_local_p = local_p;
if (! elf_bad_symtab (input_bfd))
extsymoff = symtab_hdr->sh_info;
@@ -5134,8 +5129,7 @@ mips_elf_calculate_relocation (bfd *abfd
|| ((r_type == R_MIPS_26 || r_type == R_MIPS_JALR)
&& target_is_16_bit_code_p));
- local_p = mips_elf_local_relocation_p (input_bfd, relocation,
- local_sections, TRUE);
+ local_p = h == NULL || SYMBOL_REFERENCES_LOCAL (info, &h->root);
gp0 = _bfd_get_gp_value (input_bfd);
gp = _bfd_get_gp_value (abfd);
@@ -5145,19 +5139,18 @@ mips_elf_calculate_relocation (bfd *abfd
if (gnu_local_gp_p)
symbol = gp;
+ /* Global R_MIPS_GOT_PAGE relocations are equivalent to R_MIPS_GOT_DISP.
+ The addend is applied by the corresponding R_MIPS_GOT_OFST. */
+ if (r_type == R_MIPS_GOT_PAGE && !local_p)
+ {
+ r_type = R_MIPS_GOT_DISP;
+ addend = 0;
+ }
+
/* If we haven't already determined the GOT offset, oand we're going
to need it, get it now. */
switch (r_type)
{
- case R_MIPS_GOT_PAGE:
- case R_MIPS_GOT_OFST:
- /* We need to decay to GOT_DISP/addend if the symbol doesn't
- bind locally. */
- local_p = local_p || _bfd_elf_symbol_refs_local_p (&h->root, info, 1);
- if (local_p || r_type == R_MIPS_GOT_OFST)
- break;
- /* Fall through. */
-
case R_MIPS16_CALL16:
case R_MIPS16_GOT16:
case R_MIPS_CALL16:
@@ -5193,21 +5186,12 @@ mips_elf_calculate_relocation (bfd *abfd
}
else
{
- /* GOT_PAGE may take a non-zero addend, that is ignored in a
- GOT_PAGE relocation that decays to GOT_DISP because the
- symbol turns out to be global. The addend is then added
- as GOT_OFST. */
- BFD_ASSERT (addend == 0 || r_type == R_MIPS_GOT_PAGE);
+ BFD_ASSERT (addend == 0);
g = mips_elf_global_got_index (dynobj, input_bfd,
&h->root, r_type, info);
if (h->tls_type == GOT_NORMAL
- && (! elf_hash_table(info)->dynamic_sections_created
- || (info->shared
- && (info->symbolic || h->root.forced_local)
- && h->root.def_regular)))
- /* This is a static link or a -Bsymbolic link. The
- symbol is defined locally, or was forced to be local.
- We must initialize this entry in the GOT. */
+ && !elf_hash_table (info)->dynamic_sections_created)
+ /* This is a static link. We must initialize the GOT entry. */
MIPS_ELF_PUT_WORD (dynobj, symbol, htab->sgot->contents + g);
}
}
@@ -5321,7 +5305,7 @@ mips_elf_calculate_relocation (bfd *abfd
mips_elf_perform_relocation. So, we just fall through to the
R_MIPS_26 case here. */
case R_MIPS_26:
- if (local_p)
+ if (was_local_p)
value = ((addend | ((p + 4) & 0xf0000000)) + symbol) >> 2;
else
{
@@ -5447,12 +5431,8 @@ mips_elf_calculate_relocation (bfd *abfd
R_MIPS*_GOT16; every relocation evaluates to "G". */
if (!htab->is_vxworks && local_p)
{
- bfd_boolean forced;
-
- forced = ! mips_elf_local_relocation_p (input_bfd, relocation,
- local_sections, FALSE);
value = mips_elf_got16_entry (abfd, input_bfd, info,
- symbol + addend, forced);
+ symbol + addend, !was_local_p);
if (value == MINUS_ONE)
return bfd_reloc_outofrange;
value
@@ -5467,7 +5447,6 @@ mips_elf_calculate_relocation (bfd *abfd
case R_MIPS_TLS_GOTTPREL:
case R_MIPS_TLS_LDM:
case R_MIPS_GOT_DISP:
- got_disp:
value = g;
overflowed_p = mips_elf_overflow_p (value, 16);
break;
@@ -5502,11 +5481,6 @@ mips_elf_calculate_relocation (bfd *abfd
break;
case R_MIPS_GOT_PAGE:
- /* GOT_PAGE relocations that reference non-local symbols decay
- to GOT_DISP. The corresponding GOT_OFST relocation decays to
- 0. */
- if (! local_p)
- goto got_disp;
value = mips_elf_got_page (abfd, input_bfd, info, symbol + addend, NULL);
if (value == MINUS_ONE)
return bfd_reloc_outofrange;
@@ -5757,6 +5731,7 @@ mips_elf_create_dynamic_relocation (bfd
in the relocation. */
if (h != NULL && ! SYMBOL_REFERENCES_LOCAL (info, &h->root))
{
+ BFD_ASSERT (htab->is_vxworks || h->global_got_area != GGA_NONE);
indx = h->root.dynindx;
if (SGI_COMPAT (output_bfd))
defined_p = h->root.def_regular;
@@ -8463,7 +8438,7 @@ mips_elf_lay_out_got (bfd *output_bfd, s
return FALSE;
/* Count the number of GOT symbols. */
- mips_elf_link_hash_traverse (htab, mips_elf_count_got_symbols, g);
+ mips_elf_link_hash_traverse (htab, mips_elf_count_got_symbols, info);
/* Calculate the total loadable size of the output. That
will give us the maximum number of GOT_PAGE entries
@@ -8922,7 +8897,7 @@ mips_elf_adjust_addend (bfd *output_bfd,
Elf_Internal_Sym *sym;
asection *sec;
- if (mips_elf_local_relocation_p (input_bfd, rel, local_sections, FALSE))
+ if (mips_elf_local_relocation_p (input_bfd, rel, local_sections))
{
r_type = ELF_R_TYPE (output_bfd, rel->r_info);
if (r_type == R_MIPS16_GPREL
@@ -8992,7 +8967,7 @@ _bfd_mips_elf_relocate_section (bfd *out
r_symndx = ELF_R_SYM (input_bfd, rel->r_info);
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
- if (mips_elf_local_relocation_p (input_bfd, rel, local_sections, FALSE))
+ if (mips_elf_local_relocation_p (input_bfd, rel, local_sections))
{
sec = local_sections[r_symndx];
h = NULL;
@@ -9057,7 +9032,7 @@ _bfd_mips_elf_relocate_section (bfd *out
if (hi16_reloc_p (r_type)
|| (got16_reloc_p (r_type)
&& mips_elf_local_relocation_p (input_bfd, rel,
- local_sections, FALSE)))
+ local_sections)))
{
if (!mips_elf_add_lo16_rel_addend (input_bfd, rel, relend,
contents, &addend))
@@ -9583,8 +9558,7 @@ _bfd_mips_elf_finish_dynamic_symbol (bfd
/* Run through the global symbol table, creating GOT entries for all
the symbols that need them. */
- if (g->global_gotsym != NULL
- && h->dynindx >= g->global_gotsym->dynindx)
+ if (hmips->global_got_area != GGA_NONE)
{
bfd_vma offset;
bfd_vma value;
@@ -9595,7 +9569,7 @@ _bfd_mips_elf_finish_dynamic_symbol (bfd
MIPS_ELF_PUT_WORD (output_bfd, value, sgot->contents + offset);
}
- if (g->next && h->dynindx != -1 && h->type != STT_TLS)
+ if (hmips->global_got_area != GGA_NONE && g->next && h->type != STT_TLS)
{
struct mips_got_entry e, *p;
bfd_vma entry;
@@ -9761,10 +9735,12 @@ _bfd_mips_vxworks_finish_dynamic_symbol
asection *sgot;
struct mips_got_info *g;
struct mips_elf_link_hash_table *htab;
+ struct mips_elf_link_hash_entry *hmips;
htab = mips_elf_hash_table (info);
BFD_ASSERT (htab != NULL);
dynobj = elf_hash_table (info)->dynobj;
+ hmips = (struct mips_elf_link_hash_entry *) h;
if (h->plt.offset != (bfd_vma) -1)
{
@@ -9870,8 +9846,7 @@ _bfd_mips_vxworks_finish_dynamic_symbol
BFD_ASSERT (g != NULL);
/* See if this symbol has an entry in the GOT. */
- if (g->global_gotsym != NULL
- && h->dynindx >= g->global_gotsym->dynindx)
+ if (hmips->global_got_area != GGA_NONE)
{
bfd_vma offset;
Elf_Internal_Rela outrel;
Index: ld/testsuite/ld-mips-elf/elf-rel-got-n32.d
===================================================================
--- ld/testsuite/ld-mips-elf/elf-rel-got-n32.d 2010-09-19 10:50:51.000000000 +0100
+++ ld/testsuite/ld-mips-elf/elf-rel-got-n32.d 2010-09-19 11:07:33.000000000 +0100
@@ -16,97 +16,97 @@ Disassembly of section \.reginfo:
Disassembly of section \.text:
100000b0 <fn>:
-100000b0: 8f858064 lw a1,-32668\(gp\)
-100000b4: 8f858064 lw a1,-32668\(gp\)
+100000b0: 8f858018 lw a1,-32744\(gp\)
+100000b4: 8f858018 lw a1,-32744\(gp\)
100000b8: 24a5000c addiu a1,a1,12
-100000bc: 8f858064 lw a1,-32668\(gp\)
+100000bc: 8f858018 lw a1,-32744\(gp\)
100000c0: 3c010001 lui at,0x1
100000c4: 3421e240 ori at,at,0xe240
100000c8: 00a12821 addu a1,a1,at
-100000cc: 8f858064 lw a1,-32668\(gp\)
+100000cc: 8f858018 lw a1,-32744\(gp\)
100000d0: 00b12821 addu a1,a1,s1
-100000d4: 8f858064 lw a1,-32668\(gp\)
+100000d4: 8f858018 lw a1,-32744\(gp\)
100000d8: 24a5000c addiu a1,a1,12
100000dc: 00b12821 addu a1,a1,s1
-100000e0: 8f858064 lw a1,-32668\(gp\)
+100000e0: 8f858018 lw a1,-32744\(gp\)
100000e4: 3c010001 lui at,0x1
100000e8: 3421e240 ori at,at,0xe240
100000ec: 00a12821 addu a1,a1,at
100000f0: 00b12821 addu a1,a1,s1
-100000f4: 8f858018 lw a1,-32744\(gp\)
+100000f4: 8f85801c lw a1,-32740\(gp\)
100000f8: 8ca504fc lw a1,1276\(a1\)
-100000fc: 8f858018 lw a1,-32744\(gp\)
+100000fc: 8f85801c lw a1,-32740\(gp\)
10000100: 8ca50508 lw a1,1288\(a1\)
-10000104: 8f858018 lw a1,-32744\(gp\)
+10000104: 8f85801c lw a1,-32740\(gp\)
10000108: 00b12821 addu a1,a1,s1
1000010c: 8ca504fc lw a1,1276\(a1\)
-10000110: 8f858018 lw a1,-32744\(gp\)
+10000110: 8f85801c lw a1,-32740\(gp\)
10000114: 00b12821 addu a1,a1,s1
10000118: 8ca50508 lw a1,1288\(a1\)
-1000011c: 8f818018 lw at,-32744\(gp\)
+1000011c: 8f81801c lw at,-32740\(gp\)
10000120: 00250821 addu at,at,a1
10000124: 8c25051e lw a1,1310\(at\)
-10000128: 8f818018 lw at,-32744\(gp\)
+10000128: 8f81801c lw at,-32740\(gp\)
1000012c: 00250821 addu at,at,a1
10000130: ac250534 sw a1,1332\(at\)
-10000134: 8f818064 lw at,-32668\(gp\)
+10000134: 8f818018 lw at,-32744\(gp\)
10000138: 88250000 lwl a1,0\(at\)
1000013c: 98250003 lwr a1,3\(at\)
-10000140: 8f818064 lw at,-32668\(gp\)
+10000140: 8f818018 lw at,-32744\(gp\)
10000144: 2421000c addiu at,at,12
10000148: 88250000 lwl a1,0\(at\)
1000014c: 98250003 lwr a1,3\(at\)
-10000150: 8f818064 lw at,-32668\(gp\)
+10000150: 8f818018 lw at,-32744\(gp\)
10000154: 00310821 addu at,at,s1
10000158: 88250000 lwl a1,0\(at\)
1000015c: 98250003 lwr a1,3\(at\)
-10000160: 8f818064 lw at,-32668\(gp\)
+10000160: 8f818018 lw at,-32744\(gp\)
10000164: 2421000c addiu at,at,12
10000168: 00310821 addu at,at,s1
1000016c: 88250000 lwl a1,0\(at\)
10000170: 98250003 lwr a1,3\(at\)
-10000174: 8f818064 lw at,-32668\(gp\)
+10000174: 8f818018 lw at,-32744\(gp\)
10000178: 24210022 addiu at,at,34
1000017c: 00250821 addu at,at,a1
10000180: 88250000 lwl a1,0\(at\)
10000184: 98250003 lwr a1,3\(at\)
-10000188: 8f818064 lw at,-32668\(gp\)
+10000188: 8f818018 lw at,-32744\(gp\)
1000018c: 24210038 addiu at,at,56
10000190: 00250821 addu at,at,a1
10000194: a8250000 swl a1,0\(at\)
10000198: b8250003 swr a1,3\(at\)
-1000019c: 8f85801c lw a1,-32740\(gp\)
+1000019c: 8f858018 lw a1,-32744\(gp\)
100001a0: 8f858020 lw a1,-32736\(gp\)
100001a4: 8f858024 lw a1,-32732\(gp\)
-100001a8: 8f85801c lw a1,-32740\(gp\)
+100001a8: 8f858018 lw a1,-32744\(gp\)
100001ac: 00b12821 addu a1,a1,s1
100001b0: 8f858020 lw a1,-32736\(gp\)
100001b4: 00b12821 addu a1,a1,s1
100001b8: 8f858024 lw a1,-32732\(gp\)
100001bc: 00b12821 addu a1,a1,s1
-100001c0: 8f858018 lw a1,-32744\(gp\)
+100001c0: 8f85801c lw a1,-32740\(gp\)
100001c4: 8ca504fc lw a1,1276\(a1\)
-100001c8: 8f858018 lw a1,-32744\(gp\)
+100001c8: 8f85801c lw a1,-32740\(gp\)
100001cc: 8ca50508 lw a1,1288\(a1\)
-100001d0: 8f858018 lw a1,-32744\(gp\)
+100001d0: 8f85801c lw a1,-32740\(gp\)
100001d4: 00b12821 addu a1,a1,s1
100001d8: 8ca504fc lw a1,1276\(a1\)
-100001dc: 8f858018 lw a1,-32744\(gp\)
+100001dc: 8f85801c lw a1,-32740\(gp\)
100001e0: 00b12821 addu a1,a1,s1
100001e4: 8ca50508 lw a1,1288\(a1\)
-100001e8: 8f818018 lw at,-32744\(gp\)
+100001e8: 8f81801c lw at,-32740\(gp\)
100001ec: 00250821 addu at,at,a1
100001f0: 8c25051e lw a1,1310\(at\)
-100001f4: 8f818018 lw at,-32744\(gp\)
+100001f4: 8f81801c lw at,-32740\(gp\)
100001f8: 00250821 addu at,at,a1
100001fc: ac250534 sw a1,1332\(at\)
-10000200: 8f81801c lw at,-32740\(gp\)
+10000200: 8f818018 lw at,-32744\(gp\)
10000204: 88250000 lwl a1,0\(at\)
10000208: 98250003 lwr a1,3\(at\)
1000020c: 8f818020 lw at,-32736\(gp\)
10000210: 88250000 lwl a1,0\(at\)
10000214: 98250003 lwr a1,3\(at\)
-10000218: 8f81801c lw at,-32740\(gp\)
+10000218: 8f818018 lw at,-32744\(gp\)
1000021c: 00310821 addu at,at,s1
10000220: 88250000 lwl a1,0\(at\)
10000224: 98250003 lwr a1,3\(at\)
@@ -122,71 +122,71 @@ Disassembly of section \.text:
1000024c: 00250821 addu at,at,a1
10000250: a8250000 swl a1,0\(at\)
10000254: b8250003 swr a1,3\(at\)
-10000258: 8f85805c lw a1,-32676\(gp\)
+10000258: 8f858030 lw a1,-32720\(gp\)
1000025c: 8f858030 lw a1,-32720\(gp\)
-10000260: 8f99805c lw t9,-32676\(gp\)
+10000260: 8f998030 lw t9,-32720\(gp\)
10000264: 8f998030 lw t9,-32720\(gp\)
-10000268: 8f99805c lw t9,-32676\(gp\)
+10000268: 8f998030 lw t9,-32720\(gp\)
1000026c: 0411ff90 bal 100000b0 <fn>
10000270: 00000000 nop
10000274: 8f998030 lw t9,-32720\(gp\)
10000278: 0411ff8d bal 100000b0 <fn>
1000027c: 00000000 nop
-10000280: 8f858068 lw a1,-32664\(gp\)
-10000284: 8f858068 lw a1,-32664\(gp\)
+10000280: 8f858034 lw a1,-32716\(gp\)
+10000284: 8f858034 lw a1,-32716\(gp\)
10000288: 24a5000c addiu a1,a1,12
-1000028c: 8f858068 lw a1,-32664\(gp\)
+1000028c: 8f858034 lw a1,-32716\(gp\)
10000290: 3c010001 lui at,0x1
10000294: 3421e240 ori at,at,0xe240
10000298: 00a12821 addu a1,a1,at
-1000029c: 8f858068 lw a1,-32664\(gp\)
+1000029c: 8f858034 lw a1,-32716\(gp\)
100002a0: 00b12821 addu a1,a1,s1
-100002a4: 8f858068 lw a1,-32664\(gp\)
+100002a4: 8f858034 lw a1,-32716\(gp\)
100002a8: 24a5000c addiu a1,a1,12
100002ac: 00b12821 addu a1,a1,s1
-100002b0: 8f858068 lw a1,-32664\(gp\)
+100002b0: 8f858034 lw a1,-32716\(gp\)
100002b4: 3c010001 lui at,0x1
100002b8: 3421e240 ori at,at,0xe240
100002bc: 00a12821 addu a1,a1,at
100002c0: 00b12821 addu a1,a1,s1
-100002c4: 8f858018 lw a1,-32744\(gp\)
+100002c4: 8f85801c lw a1,-32740\(gp\)
100002c8: 8ca50574 lw a1,1396\(a1\)
-100002cc: 8f858018 lw a1,-32744\(gp\)
+100002cc: 8f85801c lw a1,-32740\(gp\)
100002d0: 8ca50580 lw a1,1408\(a1\)
-100002d4: 8f858018 lw a1,-32744\(gp\)
+100002d4: 8f85801c lw a1,-32740\(gp\)
100002d8: 00b12821 addu a1,a1,s1
100002dc: 8ca50574 lw a1,1396\(a1\)
-100002e0: 8f858018 lw a1,-32744\(gp\)
+100002e0: 8f85801c lw a1,-32740\(gp\)
100002e4: 00b12821 addu a1,a1,s1
100002e8: 8ca50580 lw a1,1408\(a1\)
-100002ec: 8f818018 lw at,-32744\(gp\)
+100002ec: 8f81801c lw at,-32740\(gp\)
100002f0: 00250821 addu at,at,a1
100002f4: 8c250596 lw a1,1430\(at\)
-100002f8: 8f818018 lw at,-32744\(gp\)
+100002f8: 8f81801c lw at,-32740\(gp\)
100002fc: 00250821 addu at,at,a1
10000300: ac2505ac sw a1,1452\(at\)
-10000304: 8f818068 lw at,-32664\(gp\)
+10000304: 8f818034 lw at,-32716\(gp\)
10000308: 88250000 lwl a1,0\(at\)
1000030c: 98250003 lwr a1,3\(at\)
-10000310: 8f818068 lw at,-32664\(gp\)
+10000310: 8f818034 lw at,-32716\(gp\)
10000314: 2421000c addiu at,at,12
10000318: 88250000 lwl a1,0\(at\)
1000031c: 98250003 lwr a1,3\(at\)
-10000320: 8f818068 lw at,-32664\(gp\)
+10000320: 8f818034 lw at,-32716\(gp\)
10000324: 00310821 addu at,at,s1
10000328: 88250000 lwl a1,0\(at\)
1000032c: 98250003 lwr a1,3\(at\)
-10000330: 8f818068 lw at,-32664\(gp\)
+10000330: 8f818034 lw at,-32716\(gp\)
10000334: 2421000c addiu at,at,12
10000338: 00310821 addu at,at,s1
1000033c: 88250000 lwl a1,0\(at\)
10000340: 98250003 lwr a1,3\(at\)
-10000344: 8f818068 lw at,-32664\(gp\)
+10000344: 8f818034 lw at,-32716\(gp\)
10000348: 24210022 addiu at,at,34
1000034c: 00250821 addu at,at,a1
10000350: 88250000 lwl a1,0\(at\)
10000354: 98250003 lwr a1,3\(at\)
-10000358: 8f818068 lw at,-32664\(gp\)
+10000358: 8f818034 lw at,-32716\(gp\)
1000035c: 24210038 addiu at,at,56
10000360: 00250821 addu at,at,a1
10000364: a8250000 swl a1,0\(at\)
@@ -200,20 +200,20 @@ Disassembly of section \.text:
10000384: 00b12821 addu a1,a1,s1
10000388: 8f85803c lw a1,-32708\(gp\)
1000038c: 00b12821 addu a1,a1,s1
-10000390: 8f858018 lw a1,-32744\(gp\)
+10000390: 8f85801c lw a1,-32740\(gp\)
10000394: 8ca50574 lw a1,1396\(a1\)
-10000398: 8f858018 lw a1,-32744\(gp\)
+10000398: 8f85801c lw a1,-32740\(gp\)
1000039c: 8ca50580 lw a1,1408\(a1\)
-100003a0: 8f858018 lw a1,-32744\(gp\)
+100003a0: 8f85801c lw a1,-32740\(gp\)
100003a4: 00b12821 addu a1,a1,s1
100003a8: 8ca50574 lw a1,1396\(a1\)
-100003ac: 8f858018 lw a1,-32744\(gp\)
+100003ac: 8f85801c lw a1,-32740\(gp\)
100003b0: 00b12821 addu a1,a1,s1
100003b4: 8ca50580 lw a1,1408\(a1\)
-100003b8: 8f818018 lw at,-32744\(gp\)
+100003b8: 8f81801c lw at,-32740\(gp\)
100003bc: 00250821 addu at,at,a1
100003c0: 8c250596 lw a1,1430\(at\)
-100003c4: 8f818018 lw at,-32744\(gp\)
+100003c4: 8f81801c lw at,-32740\(gp\)
100003c8: 00250821 addu at,at,a1
100003cc: ac2505ac sw a1,1452\(at\)
100003d0: 8f818034 lw at,-32716\(gp\)
@@ -238,36 +238,36 @@ Disassembly of section \.text:
1000041c: 00250821 addu at,at,a1
10000420: a8250000 swl a1,0\(at\)
10000424: b8250003 swr a1,3\(at\)
-10000428: 8f858060 lw a1,-32672\(gp\)
+10000428: 8f858048 lw a1,-32696\(gp\)
1000042c: 8f858048 lw a1,-32696\(gp\)
-10000430: 8f998060 lw t9,-32672\(gp\)
+10000430: 8f998048 lw t9,-32696\(gp\)
10000434: 8f998048 lw t9,-32696\(gp\)
-10000438: 8f998060 lw t9,-32672\(gp\)
+10000438: 8f998048 lw t9,-32696\(gp\)
1000043c: 0411001d bal 100004b4 <fn2>
10000440: 00000000 nop
10000444: 8f998048 lw t9,-32696\(gp\)
10000448: 0411001a bal 100004b4 <fn2>
1000044c: 00000000 nop
10000450: 1000ff17 b 100000b0 <fn>
-10000454: 8f858064 lw a1,-32668\(gp\)
-10000458: 8f858018 lw a1,-32744\(gp\)
+10000454: 8f858018 lw a1,-32744\(gp\)
+10000458: 8f85801c lw a1,-32740\(gp\)
1000045c: 10000015 b 100004b4 <fn2>
10000460: 8ca50574 lw a1,1396\(a1\)
10000464: 1000ff12 b 100000b0 <fn>
-10000468: 8f85801c lw a1,-32740\(gp\)
+10000468: 8f858018 lw a1,-32744\(gp\)
1000046c: 8f858038 lw a1,-32712\(gp\)
10000470: 10000010 b 100004b4 <fn2>
10000474: 00000000 nop
10000478: 8f858024 lw a1,-32732\(gp\)
1000047c: 1000ff0c b 100000b0 <fn>
10000480: 00000000 nop
-10000484: 8f858018 lw a1,-32744\(gp\)
+10000484: 8f85801c lw a1,-32740\(gp\)
10000488: 1000000a b 100004b4 <fn2>
1000048c: 8ca50574 lw a1,1396\(a1\)
-10000490: 8f858018 lw a1,-32744\(gp\)
+10000490: 8f85801c lw a1,-32740\(gp\)
10000494: 1000ff06 b 100000b0 <fn>
10000498: 8ca50508 lw a1,1288\(a1\)
-1000049c: 8f818018 lw at,-32744\(gp\)
+1000049c: 8f81801c lw at,-32740\(gp\)
100004a0: 00250821 addu at,at,a1
100004a4: 10000003 b 100004b4 <fn2>
100004a8: 8c250596 lw a1,1430\(at\)
@@ -293,8 +293,8 @@ Disassembly of section \.got:
100105b0 <_GLOBAL_OFFSET_TABLE_>:
100105b0: 00000000 .*
100105b4: 80000000 .*
-100105b8: 10010000 .*
-100105bc: 100104fc .*
+100105b8: 100104fc .*
+100105bc: 10010000 .*
100105c0: 10010508 .*
100105c4: 1002e73c .*
100105c8: 1001051e .*
@@ -308,8 +308,4 @@ Disassembly of section \.got:
100105e8: 100004b4 .*
100105ec: 00000000 .*
\.\.\.
-100105fc: 100000b0 .*
-10010600: 100004b4 .*
-10010604: 100104fc .*
-10010608: 10010574 .*
#pass
Index: ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d
===================================================================
--- ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d 2010-09-19 10:50:51.000000000 +0100
+++ ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d 2010-09-19 11:07:33.000000000 +0100
@@ -18,97 +18,97 @@ Disassembly of section \.MIPS\.options:
Disassembly of section \.text:
00000001200000e0 <fn>:
- 1200000e0: df8580b8 ld a1,-32584\(gp\)
- 1200000e4: df8580b8 ld a1,-32584\(gp\)
+ 1200000e0: df858020 ld a1,-32736\(gp\)
+ 1200000e4: df858020 ld a1,-32736\(gp\)
1200000e8: 64a5000c daddiu a1,a1,12
- 1200000ec: df8580b8 ld a1,-32584\(gp\)
+ 1200000ec: df858020 ld a1,-32736\(gp\)
1200000f0: 3c010001 lui at,0x1
1200000f4: 3421e240 ori at,at,0xe240
1200000f8: 00a1282d daddu a1,a1,at
- 1200000fc: df8580b8 ld a1,-32584\(gp\)
+ 1200000fc: df858020 ld a1,-32736\(gp\)
120000100: 00b1282d daddu a1,a1,s1
- 120000104: df8580b8 ld a1,-32584\(gp\)
+ 120000104: df858020 ld a1,-32736\(gp\)
120000108: 64a5000c daddiu a1,a1,12
12000010c: 00b1282d daddu a1,a1,s1
- 120000110: df8580b8 ld a1,-32584\(gp\)
+ 120000110: df858020 ld a1,-32736\(gp\)
120000114: 3c010001 lui at,0x1
120000118: 3421e240 ori at,at,0xe240
12000011c: 00a1282d daddu a1,a1,at
120000120: 00b1282d daddu a1,a1,s1
- 120000124: df858020 ld a1,-32736\(gp\)
+ 120000124: df858028 ld a1,-32728\(gp\)
120000128: dca5052c ld a1,1324\(a1\)
- 12000012c: df858020 ld a1,-32736\(gp\)
+ 12000012c: df858028 ld a1,-32728\(gp\)
120000130: dca50538 ld a1,1336\(a1\)
- 120000134: df858020 ld a1,-32736\(gp\)
+ 120000134: df858028 ld a1,-32728\(gp\)
120000138: 00b1282d daddu a1,a1,s1
12000013c: dca5052c ld a1,1324\(a1\)
- 120000140: df858020 ld a1,-32736\(gp\)
+ 120000140: df858028 ld a1,-32728\(gp\)
120000144: 00b1282d daddu a1,a1,s1
120000148: dca50538 ld a1,1336\(a1\)
- 12000014c: df818020 ld at,-32736\(gp\)
+ 12000014c: df818028 ld at,-32728\(gp\)
120000150: 0025082d daddu at,at,a1
120000154: dc25054e ld a1,1358\(at\)
- 120000158: df818020 ld at,-32736\(gp\)
+ 120000158: df818028 ld at,-32728\(gp\)
12000015c: 0025082d daddu at,at,a1
120000160: fc250564 sd a1,1380\(at\)
- 120000164: df8180b8 ld at,-32584\(gp\)
+ 120000164: df818020 ld at,-32736\(gp\)
120000168: 88250000 lwl a1,0\(at\)
12000016c: 98250003 lwr a1,3\(at\)
- 120000170: df8180b8 ld at,-32584\(gp\)
+ 120000170: df818020 ld at,-32736\(gp\)
120000174: 6421000c daddiu at,at,12
120000178: 88250000 lwl a1,0\(at\)
12000017c: 98250003 lwr a1,3\(at\)
- 120000180: df8180b8 ld at,-32584\(gp\)
+ 120000180: df818020 ld at,-32736\(gp\)
120000184: 0031082d daddu at,at,s1
120000188: 88250000 lwl a1,0\(at\)
12000018c: 98250003 lwr a1,3\(at\)
- 120000190: df8180b8 ld at,-32584\(gp\)
+ 120000190: df818020 ld at,-32736\(gp\)
120000194: 6421000c daddiu at,at,12
120000198: 0031082d daddu at,at,s1
12000019c: 88250000 lwl a1,0\(at\)
1200001a0: 98250003 lwr a1,3\(at\)
- 1200001a4: df8180b8 ld at,-32584\(gp\)
+ 1200001a4: df818020 ld at,-32736\(gp\)
1200001a8: 64210022 daddiu at,at,34
1200001ac: 0025082d daddu at,at,a1
1200001b0: 88250000 lwl a1,0\(at\)
1200001b4: 98250003 lwr a1,3\(at\)
- 1200001b8: df8180b8 ld at,-32584\(gp\)
+ 1200001b8: df818020 ld at,-32736\(gp\)
1200001bc: 64210038 daddiu at,at,56
1200001c0: 0025082d daddu at,at,a1
1200001c4: a8250000 swl a1,0\(at\)
1200001c8: b8250003 swr a1,3\(at\)
- 1200001cc: df858028 ld a1,-32728\(gp\)
+ 1200001cc: df858020 ld a1,-32736\(gp\)
1200001d0: df858030 ld a1,-32720\(gp\)
1200001d4: df858038 ld a1,-32712\(gp\)
- 1200001d8: df858028 ld a1,-32728\(gp\)
+ 1200001d8: df858020 ld a1,-32736\(gp\)
1200001dc: 00b1282d daddu a1,a1,s1
1200001e0: df858030 ld a1,-32720\(gp\)
1200001e4: 00b1282d daddu a1,a1,s1
1200001e8: df858038 ld a1,-32712\(gp\)
1200001ec: 00b1282d daddu a1,a1,s1
- 1200001f0: df858020 ld a1,-32736\(gp\)
+ 1200001f0: df858028 ld a1,-32728\(gp\)
1200001f4: dca5052c ld a1,1324\(a1\)
- 1200001f8: df858020 ld a1,-32736\(gp\)
+ 1200001f8: df858028 ld a1,-32728\(gp\)
1200001fc: dca50538 ld a1,1336\(a1\)
- 120000200: df858020 ld a1,-32736\(gp\)
+ 120000200: df858028 ld a1,-32728\(gp\)
120000204: 00b1282d daddu a1,a1,s1
120000208: dca5052c ld a1,1324\(a1\)
- 12000020c: df858020 ld a1,-32736\(gp\)
+ 12000020c: df858028 ld a1,-32728\(gp\)
120000210: 00b1282d daddu a1,a1,s1
120000214: dca50538 ld a1,1336\(a1\)
- 120000218: df818020 ld at,-32736\(gp\)
+ 120000218: df818028 ld at,-32728\(gp\)
12000021c: 0025082d daddu at,at,a1
120000220: dc25054e ld a1,1358\(at\)
- 120000224: df818020 ld at,-32736\(gp\)
+ 120000224: df818028 ld at,-32728\(gp\)
120000228: 0025082d daddu at,at,a1
12000022c: fc250564 sd a1,1380\(at\)
- 120000230: df818028 ld at,-32728\(gp\)
+ 120000230: df818020 ld at,-32736\(gp\)
120000234: 88250000 lwl a1,0\(at\)
120000238: 98250003 lwr a1,3\(at\)
12000023c: df818030 ld at,-32720\(gp\)
120000240: 88250000 lwl a1,0\(at\)
120000244: 98250003 lwr a1,3\(at\)
- 120000248: df818028 ld at,-32728\(gp\)
+ 120000248: df818020 ld at,-32736\(gp\)
12000024c: 0031082d daddu at,at,s1
120000250: 88250000 lwl a1,0\(at\)
120000254: 98250003 lwr a1,3\(at\)
@@ -124,71 +124,71 @@ Disassembly of section \.text:
12000027c: 0025082d daddu at,at,a1
120000280: a8250000 swl a1,0\(at\)
120000284: b8250003 swr a1,3\(at\)
- 120000288: df8580a8 ld a1,-32600\(gp\)
+ 120000288: df858050 ld a1,-32688\(gp\)
12000028c: df858050 ld a1,-32688\(gp\)
- 120000290: df9980a8 ld t9,-32600\(gp\)
+ 120000290: df998050 ld t9,-32688\(gp\)
120000294: df998050 ld t9,-32688\(gp\)
- 120000298: df9980a8 ld t9,-32600\(gp\)
+ 120000298: df998050 ld t9,-32688\(gp\)
12000029c: 0411ff90 bal 1200000e0 <fn>
1200002a0: 00000000 nop
1200002a4: df998050 ld t9,-32688\(gp\)
1200002a8: 0411ff8d bal 1200000e0 <fn>
1200002ac: 00000000 nop
- 1200002b0: df8580c0 ld a1,-32576\(gp\)
- 1200002b4: df8580c0 ld a1,-32576\(gp\)
+ 1200002b0: df858058 ld a1,-32680\(gp\)
+ 1200002b4: df858058 ld a1,-32680\(gp\)
1200002b8: 64a5000c daddiu a1,a1,12
- 1200002bc: df8580c0 ld a1,-32576\(gp\)
+ 1200002bc: df858058 ld a1,-32680\(gp\)
1200002c0: 3c010001 lui at,0x1
1200002c4: 3421e240 ori at,at,0xe240
1200002c8: 00a1282d daddu a1,a1,at
- 1200002cc: df8580c0 ld a1,-32576\(gp\)
+ 1200002cc: df858058 ld a1,-32680\(gp\)
1200002d0: 00b1282d daddu a1,a1,s1
- 1200002d4: df8580c0 ld a1,-32576\(gp\)
+ 1200002d4: df858058 ld a1,-32680\(gp\)
1200002d8: 64a5000c daddiu a1,a1,12
1200002dc: 00b1282d daddu a1,a1,s1
- 1200002e0: df8580c0 ld a1,-32576\(gp\)
+ 1200002e0: df858058 ld a1,-32680\(gp\)
1200002e4: 3c010001 lui at,0x1
1200002e8: 3421e240 ori at,at,0xe240
1200002ec: 00a1282d daddu a1,a1,at
1200002f0: 00b1282d daddu a1,a1,s1
- 1200002f4: df858020 ld a1,-32736\(gp\)
+ 1200002f4: df858028 ld a1,-32728\(gp\)
1200002f8: dca505a4 ld a1,1444\(a1\)
- 1200002fc: df858020 ld a1,-32736\(gp\)
+ 1200002fc: df858028 ld a1,-32728\(gp\)
120000300: dca505b0 ld a1,1456\(a1\)
- 120000304: df858020 ld a1,-32736\(gp\)
+ 120000304: df858028 ld a1,-32728\(gp\)
120000308: 00b1282d daddu a1,a1,s1
12000030c: dca505a4 ld a1,1444\(a1\)
- 120000310: df858020 ld a1,-32736\(gp\)
+ 120000310: df858028 ld a1,-32728\(gp\)
120000314: 00b1282d daddu a1,a1,s1
120000318: dca505b0 ld a1,1456\(a1\)
- 12000031c: df818020 ld at,-32736\(gp\)
+ 12000031c: df818028 ld at,-32728\(gp\)
120000320: 0025082d daddu at,at,a1
120000324: dc2505c6 ld a1,1478\(at\)
- 120000328: df818020 ld at,-32736\(gp\)
+ 120000328: df818028 ld at,-32728\(gp\)
12000032c: 0025082d daddu at,at,a1
120000330: fc2505dc sd a1,1500\(at\)
- 120000334: df8180c0 ld at,-32576\(gp\)
+ 120000334: df818058 ld at,-32680\(gp\)
120000338: 88250000 lwl a1,0\(at\)
12000033c: 98250003 lwr a1,3\(at\)
- 120000340: df8180c0 ld at,-32576\(gp\)
+ 120000340: df818058 ld at,-32680\(gp\)
120000344: 6421000c daddiu at,at,12
120000348: 88250000 lwl a1,0\(at\)
12000034c: 98250003 lwr a1,3\(at\)
- 120000350: df8180c0 ld at,-32576\(gp\)
+ 120000350: df818058 ld at,-32680\(gp\)
120000354: 0031082d daddu at,at,s1
120000358: 88250000 lwl a1,0\(at\)
12000035c: 98250003 lwr a1,3\(at\)
- 120000360: df8180c0 ld at,-32576\(gp\)
+ 120000360: df818058 ld at,-32680\(gp\)
120000364: 6421000c daddiu at,at,12
120000368: 0031082d daddu at,at,s1
12000036c: 88250000 lwl a1,0\(at\)
120000370: 98250003 lwr a1,3\(at\)
- 120000374: df8180c0 ld at,-32576\(gp\)
+ 120000374: df818058 ld at,-32680\(gp\)
120000378: 64210022 daddiu at,at,34
12000037c: 0025082d daddu at,at,a1
120000380: 88250000 lwl a1,0\(at\)
120000384: 98250003 lwr a1,3\(at\)
- 120000388: df8180c0 ld at,-32576\(gp\)
+ 120000388: df818058 ld at,-32680\(gp\)
12000038c: 64210038 daddiu at,at,56
120000390: 0025082d daddu at,at,a1
120000394: a8250000 swl a1,0\(at\)
@@ -202,20 +202,20 @@ Disassembly of section \.text:
1200003b4: 00b1282d daddu a1,a1,s1
1200003b8: df858068 ld a1,-32664\(gp\)
1200003bc: 00b1282d daddu a1,a1,s1
- 1200003c0: df858020 ld a1,-32736\(gp\)
+ 1200003c0: df858028 ld a1,-32728\(gp\)
1200003c4: dca505a4 ld a1,1444\(a1\)
- 1200003c8: df858020 ld a1,-32736\(gp\)
+ 1200003c8: df858028 ld a1,-32728\(gp\)
1200003cc: dca505b0 ld a1,1456\(a1\)
- 1200003d0: df858020 ld a1,-32736\(gp\)
+ 1200003d0: df858028 ld a1,-32728\(gp\)
1200003d4: 00b1282d daddu a1,a1,s1
1200003d8: dca505a4 ld a1,1444\(a1\)
- 1200003dc: df858020 ld a1,-32736\(gp\)
+ 1200003dc: df858028 ld a1,-32728\(gp\)
1200003e0: 00b1282d daddu a1,a1,s1
1200003e4: dca505b0 ld a1,1456\(a1\)
- 1200003e8: df818020 ld at,-32736\(gp\)
+ 1200003e8: df818028 ld at,-32728\(gp\)
1200003ec: 0025082d daddu at,at,a1
1200003f0: dc2505c6 ld a1,1478\(at\)
- 1200003f4: df818020 ld at,-32736\(gp\)
+ 1200003f4: df818028 ld at,-32728\(gp\)
1200003f8: 0025082d daddu at,at,a1
1200003fc: fc2505dc sd a1,1500\(at\)
120000400: df818058 ld at,-32680\(gp\)
@@ -240,36 +240,36 @@ Disassembly of section \.text:
12000044c: 0025082d daddu at,at,a1
120000450: a8250000 swl a1,0\(at\)
120000454: b8250003 swr a1,3\(at\)
- 120000458: df8580b0 ld a1,-32592\(gp\)
+ 120000458: df858080 ld a1,-32640\(gp\)
12000045c: df858080 ld a1,-32640\(gp\)
- 120000460: df9980b0 ld t9,-32592\(gp\)
+ 120000460: df998080 ld t9,-32640\(gp\)
120000464: df998080 ld t9,-32640\(gp\)
- 120000468: df9980b0 ld t9,-32592\(gp\)
+ 120000468: df998080 ld t9,-32640\(gp\)
12000046c: 0411001d bal 1200004e4 <fn2>
120000470: 00000000 nop
120000474: df998080 ld t9,-32640\(gp\)
120000478: 0411001a bal 1200004e4 <fn2>
12000047c: 00000000 nop
120000480: 1000ff17 b 1200000e0 <fn>
- 120000484: df8580b8 ld a1,-32584\(gp\)
- 120000488: df858020 ld a1,-32736\(gp\)
+ 120000484: df858020 ld a1,-32736\(gp\)
+ 120000488: df858028 ld a1,-32728\(gp\)
12000048c: 10000015 b 1200004e4 <fn2>
120000490: dca505a4 ld a1,1444\(a1\)
120000494: 1000ff12 b 1200000e0 <fn>
- 120000498: df858028 ld a1,-32728\(gp\)
+ 120000498: df858020 ld a1,-32736\(gp\)
12000049c: df858060 ld a1,-32672\(gp\)
1200004a0: 10000010 b 1200004e4 <fn2>
1200004a4: 00000000 nop
1200004a8: df858038 ld a1,-32712\(gp\)
1200004ac: 1000ff0c b 1200000e0 <fn>
1200004b0: 00000000 nop
- 1200004b4: df858020 ld a1,-32736\(gp\)
+ 1200004b4: df858028 ld a1,-32728\(gp\)
1200004b8: 1000000a b 1200004e4 <fn2>
1200004bc: dca505a4 ld a1,1444\(a1\)
- 1200004c0: df858020 ld a1,-32736\(gp\)
+ 1200004c0: df858028 ld a1,-32728\(gp\)
1200004c4: 1000ff06 b 1200000e0 <fn>
1200004c8: dca50538 ld a1,1336\(a1\)
- 1200004cc: df818020 ld at,-32736\(gp\)
+ 1200004cc: df818028 ld at,-32728\(gp\)
1200004d0: 0025082d daddu at,at,a1
1200004d4: 10000003 b 1200004e4 <fn2>
1200004d8: dc2505c6 ld a1,1478\(at\)
@@ -297,9 +297,9 @@ Disassembly of section \.got:
1200105e8: 80000000 .*
1200105ec: 00000000 .*
1200105f0: 00000001 .*
- 1200105f4: 20010000 .*
+ 1200105f4: 2001052c .*
1200105f8: 00000001 .*
- 1200105fc: 2001052c .*
+ 1200105fc: 20010000 .*
120010600: 00000001 .*
120010604: 20010538 .*
120010608: 00000001 .*
@@ -323,12 +323,4 @@ Disassembly of section \.got:
120010650: 00000001 .*
120010654: 200004e4 .*
\.\.\.
- 120010678: 00000001 .*
- 12001067c: 200000e0 .*
- 120010680: 00000001 .*
- 120010684: 200004e4 .*
- 120010688: 00000001 .*
- 12001068c: 2001052c .*
- 120010690: 00000001 .*
- 120010694: 200105a4 .*
#pass
Index: ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d
===================================================================
--- ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d 2010-09-19 10:50:51.000000000 +0100
+++ ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d 2010-09-19 11:07:33.000000000 +0100
@@ -18,327 +18,327 @@ Disassembly of section \.text:
100000b0 <fn>:
100000b0: 3c050000 lui a1,0x0
100000b4: 00bc2821 addu a1,a1,gp
-100000b8: 8ca58034 lw a1,-32716\(a1\)
+100000b8: 8ca58018 lw a1,-32744\(a1\)
100000bc: 3c050000 lui a1,0x0
100000c0: 00bc2821 addu a1,a1,gp
-100000c4: 8ca58034 lw a1,-32716\(a1\)
+100000c4: 8ca58018 lw a1,-32744\(a1\)
100000c8: 24a5000c addiu a1,a1,12
100000cc: 3c050000 lui a1,0x0
100000d0: 00bc2821 addu a1,a1,gp
-100000d4: 8ca58034 lw a1,-32716\(a1\)
+100000d4: 8ca58018 lw a1,-32744\(a1\)
100000d8: 3c010001 lui at,0x1
100000dc: 3421e240 ori at,at,0xe240
100000e0: 00a12821 addu a1,a1,at
100000e4: 3c050000 lui a1,0x0
100000e8: 00bc2821 addu a1,a1,gp
-100000ec: 8ca58034 lw a1,-32716\(a1\)
+100000ec: 8ca58018 lw a1,-32744\(a1\)
100000f0: 00b12821 addu a1,a1,s1
100000f4: 3c050000 lui a1,0x0
100000f8: 00bc2821 addu a1,a1,gp
-100000fc: 8ca58034 lw a1,-32716\(a1\)
+100000fc: 8ca58018 lw a1,-32744\(a1\)
10000100: 24a5000c addiu a1,a1,12
10000104: 00b12821 addu a1,a1,s1
10000108: 3c050000 lui a1,0x0
1000010c: 00bc2821 addu a1,a1,gp
-10000110: 8ca58034 lw a1,-32716\(a1\)
+10000110: 8ca58018 lw a1,-32744\(a1\)
10000114: 3c010001 lui at,0x1
10000118: 3421e240 ori at,at,0xe240
1000011c: 00a12821 addu a1,a1,at
10000120: 00b12821 addu a1,a1,s1
10000124: 3c050000 lui a1,0x0
10000128: 00bc2821 addu a1,a1,gp
-1000012c: 8ca58034 lw a1,-32716\(a1\)
+1000012c: 8ca58018 lw a1,-32744\(a1\)
10000130: 8ca50000 lw a1,0\(a1\)
10000134: 3c050000 lui a1,0x0
10000138: 00bc2821 addu a1,a1,gp
-1000013c: 8ca58034 lw a1,-32716\(a1\)
+1000013c: 8ca58018 lw a1,-32744\(a1\)
10000140: 8ca5000c lw a1,12\(a1\)
10000144: 3c050000 lui a1,0x0
10000148: 00bc2821 addu a1,a1,gp
-1000014c: 8ca58034 lw a1,-32716\(a1\)
+1000014c: 8ca58018 lw a1,-32744\(a1\)
10000150: 00b12821 addu a1,a1,s1
10000154: 8ca50000 lw a1,0\(a1\)
10000158: 3c050000 lui a1,0x0
1000015c: 00bc2821 addu a1,a1,gp
-10000160: 8ca58034 lw a1,-32716\(a1\)
+10000160: 8ca58018 lw a1,-32744\(a1\)
10000164: 00b12821 addu a1,a1,s1
10000168: 8ca5000c lw a1,12\(a1\)
1000016c: 3c010000 lui at,0x0
10000170: 003c0821 addu at,at,gp
-10000174: 8c218034 lw at,-32716\(at\)
+10000174: 8c218018 lw at,-32744\(at\)
10000178: 00250821 addu at,at,a1
1000017c: 8c250022 lw a1,34\(at\)
10000180: 3c010000 lui at,0x0
10000184: 003c0821 addu at,at,gp
-10000188: 8c218034 lw at,-32716\(at\)
+10000188: 8c218018 lw at,-32744\(at\)
1000018c: 00250821 addu at,at,a1
10000190: ac250038 sw a1,56\(at\)
10000194: 3c010000 lui at,0x0
10000198: 003c0821 addu at,at,gp
-1000019c: 8c218034 lw at,-32716\(at\)
+1000019c: 8c218018 lw at,-32744\(at\)
100001a0: 88250000 lwl a1,0\(at\)
100001a4: 98250003 lwr a1,3\(at\)
100001a8: 3c010000 lui at,0x0
100001ac: 003c0821 addu at,at,gp
-100001b0: 8c218034 lw at,-32716\(at\)
+100001b0: 8c218018 lw at,-32744\(at\)
100001b4: 2421000c addiu at,at,12
100001b8: 88250000 lwl a1,0\(at\)
100001bc: 98250003 lwr a1,3\(at\)
100001c0: 3c010000 lui at,0x0
100001c4: 003c0821 addu at,at,gp
-100001c8: 8c218034 lw at,-32716\(at\)
+100001c8: 8c218018 lw at,-32744\(at\)
100001cc: 00310821 addu at,at,s1
100001d0: 88250000 lwl a1,0\(at\)
100001d4: 98250003 lwr a1,3\(at\)
100001d8: 3c010000 lui at,0x0
100001dc: 003c0821 addu at,at,gp
-100001e0: 8c218034 lw at,-32716\(at\)
+100001e0: 8c218018 lw at,-32744\(at\)
100001e4: 2421000c addiu at,at,12
100001e8: 00310821 addu at,at,s1
100001ec: 88250000 lwl a1,0\(at\)
100001f0: 98250003 lwr a1,3\(at\)
100001f4: 3c010000 lui at,0x0
100001f8: 003c0821 addu at,at,gp
-100001fc: 8c218034 lw at,-32716\(at\)
+100001fc: 8c218018 lw at,-32744\(at\)
10000200: 24210022 addiu at,at,34
10000204: 00250821 addu at,at,a1
10000208: 88250000 lwl a1,0\(at\)
1000020c: 98250003 lwr a1,3\(at\)
10000210: 3c010000 lui at,0x0
10000214: 003c0821 addu at,at,gp
-10000218: 8c218034 lw at,-32716\(at\)
+10000218: 8c218018 lw at,-32744\(at\)
1000021c: 24210038 addiu at,at,56
10000220: 00250821 addu at,at,a1
10000224: a8250000 swl a1,0\(at\)
10000228: b8250003 swr a1,3\(at\)
-1000022c: 8f858018 lw a1,-32744\(gp\)
+1000022c: 8f85801c lw a1,-32740\(gp\)
10000230: 24a506ec addiu a1,a1,1772
-10000234: 8f858018 lw a1,-32744\(gp\)
+10000234: 8f85801c lw a1,-32740\(gp\)
10000238: 24a506f8 addiu a1,a1,1784
-1000023c: 8f85801c lw a1,-32740\(gp\)
+1000023c: 8f858020 lw a1,-32736\(gp\)
10000240: 24a5e92c addiu a1,a1,-5844
-10000244: 8f858018 lw a1,-32744\(gp\)
+10000244: 8f85801c lw a1,-32740\(gp\)
10000248: 24a506ec addiu a1,a1,1772
1000024c: 00b12821 addu a1,a1,s1
-10000250: 8f858018 lw a1,-32744\(gp\)
+10000250: 8f85801c lw a1,-32740\(gp\)
10000254: 24a506f8 addiu a1,a1,1784
10000258: 00b12821 addu a1,a1,s1
-1000025c: 8f85801c lw a1,-32740\(gp\)
+1000025c: 8f858020 lw a1,-32736\(gp\)
10000260: 24a5e92c addiu a1,a1,-5844
10000264: 00b12821 addu a1,a1,s1
-10000268: 8f858018 lw a1,-32744\(gp\)
+10000268: 8f85801c lw a1,-32740\(gp\)
1000026c: 8ca506ec lw a1,1772\(a1\)
-10000270: 8f858018 lw a1,-32744\(gp\)
+10000270: 8f85801c lw a1,-32740\(gp\)
10000274: 8ca506f8 lw a1,1784\(a1\)
-10000278: 8f858018 lw a1,-32744\(gp\)
+10000278: 8f85801c lw a1,-32740\(gp\)
1000027c: 00b12821 addu a1,a1,s1
10000280: 8ca506ec lw a1,1772\(a1\)
-10000284: 8f858018 lw a1,-32744\(gp\)
+10000284: 8f85801c lw a1,-32740\(gp\)
10000288: 00b12821 addu a1,a1,s1
1000028c: 8ca506f8 lw a1,1784\(a1\)
-10000290: 8f818018 lw at,-32744\(gp\)
+10000290: 8f81801c lw at,-32740\(gp\)
10000294: 00250821 addu at,at,a1
10000298: 8c25070e lw a1,1806\(at\)
-1000029c: 8f818018 lw at,-32744\(gp\)
+1000029c: 8f81801c lw at,-32740\(gp\)
100002a0: 00250821 addu at,at,a1
100002a4: ac250724 sw a1,1828\(at\)
-100002a8: 8f818018 lw at,-32744\(gp\)
+100002a8: 8f81801c lw at,-32740\(gp\)
100002ac: 242106ec addiu at,at,1772
100002b0: 88250000 lwl a1,0\(at\)
100002b4: 98250003 lwr a1,3\(at\)
-100002b8: 8f818018 lw at,-32744\(gp\)
+100002b8: 8f81801c lw at,-32740\(gp\)
100002bc: 242106f8 addiu at,at,1784
100002c0: 88250000 lwl a1,0\(at\)
100002c4: 98250003 lwr a1,3\(at\)
-100002c8: 8f818018 lw at,-32744\(gp\)
+100002c8: 8f81801c lw at,-32740\(gp\)
100002cc: 242106ec addiu at,at,1772
100002d0: 00310821 addu at,at,s1
100002d4: 88250000 lwl a1,0\(at\)
100002d8: 98250003 lwr a1,3\(at\)
-100002dc: 8f818018 lw at,-32744\(gp\)
+100002dc: 8f81801c lw at,-32740\(gp\)
100002e0: 242106f8 addiu at,at,1784
100002e4: 00310821 addu at,at,s1
100002e8: 88250000 lwl a1,0\(at\)
100002ec: 98250003 lwr a1,3\(at\)
-100002f0: 8f818018 lw at,-32744\(gp\)
+100002f0: 8f81801c lw at,-32740\(gp\)
100002f4: 2421070e addiu at,at,1806
100002f8: 00250821 addu at,at,a1
100002fc: 88250000 lwl a1,0\(at\)
10000300: 98250003 lwr a1,3\(at\)
-10000304: 8f818018 lw at,-32744\(gp\)
+10000304: 8f81801c lw at,-32740\(gp\)
10000308: 24210724 addiu at,at,1828
1000030c: 00250821 addu at,at,a1
10000310: a8250000 swl a1,0\(at\)
10000314: b8250003 swr a1,3\(at\)
10000318: 3c050000 lui a1,0x0
1000031c: 00bc2821 addu a1,a1,gp
-10000320: 8ca5802c lw a1,-32724\(a1\)
-10000324: 8f858020 lw a1,-32736\(gp\)
+10000320: 8ca58024 lw a1,-32732\(a1\)
+10000324: 8f858028 lw a1,-32728\(gp\)
10000328: 24a500b0 addiu a1,a1,176
1000032c: 3c190000 lui t9,0x0
10000330: 033cc821 addu t9,t9,gp
-10000334: 8f39802c lw t9,-32724\(t9\)
-10000338: 8f998020 lw t9,-32736\(gp\)
+10000334: 8f398024 lw t9,-32732\(t9\)
+10000338: 8f998028 lw t9,-32728\(gp\)
1000033c: 273900b0 addiu t9,t9,176
10000340: 3c190000 lui t9,0x0
10000344: 033cc821 addu t9,t9,gp
-10000348: 8f39802c lw t9,-32724\(t9\)
+10000348: 8f398024 lw t9,-32732\(t9\)
1000034c: 0411ff58 bal 100000b0 <fn>
10000350: 00000000 nop
-10000354: 8f998020 lw t9,-32736\(gp\)
+10000354: 8f998028 lw t9,-32728\(gp\)
10000358: 273900b0 addiu t9,t9,176
1000035c: 0411ff54 bal 100000b0 <fn>
10000360: 00000000 nop
10000364: 3c050000 lui a1,0x0
10000368: 00bc2821 addu a1,a1,gp
-1000036c: 8ca58038 lw a1,-32712\(a1\)
+1000036c: 8ca5802c lw a1,-32724\(a1\)
10000370: 3c050000 lui a1,0x0
10000374: 00bc2821 addu a1,a1,gp
-10000378: 8ca58038 lw a1,-32712\(a1\)
+10000378: 8ca5802c lw a1,-32724\(a1\)
1000037c: 24a5000c addiu a1,a1,12
10000380: 3c050000 lui a1,0x0
10000384: 00bc2821 addu a1,a1,gp
-10000388: 8ca58038 lw a1,-32712\(a1\)
+10000388: 8ca5802c lw a1,-32724\(a1\)
1000038c: 3c010001 lui at,0x1
10000390: 3421e240 ori at,at,0xe240
10000394: 00a12821 addu a1,a1,at
10000398: 3c050000 lui a1,0x0
1000039c: 00bc2821 addu a1,a1,gp
-100003a0: 8ca58038 lw a1,-32712\(a1\)
+100003a0: 8ca5802c lw a1,-32724\(a1\)
100003a4: 00b12821 addu a1,a1,s1
100003a8: 3c050000 lui a1,0x0
100003ac: 00bc2821 addu a1,a1,gp
-100003b0: 8ca58038 lw a1,-32712\(a1\)
+100003b0: 8ca5802c lw a1,-32724\(a1\)
100003b4: 24a5000c addiu a1,a1,12
100003b8: 00b12821 addu a1,a1,s1
100003bc: 3c050000 lui a1,0x0
100003c0: 00bc2821 addu a1,a1,gp
-100003c4: 8ca58038 lw a1,-32712\(a1\)
+100003c4: 8ca5802c lw a1,-32724\(a1\)
100003c8: 3c010001 lui at,0x1
100003cc: 3421e240 ori at,at,0xe240
100003d0: 00a12821 addu a1,a1,at
100003d4: 00b12821 addu a1,a1,s1
100003d8: 3c050000 lui a1,0x0
100003dc: 00bc2821 addu a1,a1,gp
-100003e0: 8ca58038 lw a1,-32712\(a1\)
+100003e0: 8ca5802c lw a1,-32724\(a1\)
100003e4: 8ca50000 lw a1,0\(a1\)
100003e8: 3c050000 lui a1,0x0
100003ec: 00bc2821 addu a1,a1,gp
-100003f0: 8ca58038 lw a1,-32712\(a1\)
+100003f0: 8ca5802c lw a1,-32724\(a1\)
100003f4: 8ca5000c lw a1,12\(a1\)
100003f8: 3c050000 lui a1,0x0
100003fc: 00bc2821 addu a1,a1,gp
-10000400: 8ca58038 lw a1,-32712\(a1\)
+10000400: 8ca5802c lw a1,-32724\(a1\)
10000404: 00b12821 addu a1,a1,s1
10000408: 8ca50000 lw a1,0\(a1\)
1000040c: 3c050000 lui a1,0x0
10000410: 00bc2821 addu a1,a1,gp
-10000414: 8ca58038 lw a1,-32712\(a1\)
+10000414: 8ca5802c lw a1,-32724\(a1\)
10000418: 00b12821 addu a1,a1,s1
1000041c: 8ca5000c lw a1,12\(a1\)
10000420: 3c010000 lui at,0x0
10000424: 003c0821 addu at,at,gp
-10000428: 8c218038 lw at,-32712\(at\)
+10000428: 8c21802c lw at,-32724\(at\)
1000042c: 00250821 addu at,at,a1
10000430: 8c250022 lw a1,34\(at\)
10000434: 3c010000 lui at,0x0
10000438: 003c0821 addu at,at,gp
-1000043c: 8c218038 lw at,-32712\(at\)
+1000043c: 8c21802c lw at,-32724\(at\)
10000440: 00250821 addu at,at,a1
10000444: ac250038 sw a1,56\(at\)
10000448: 3c010000 lui at,0x0
1000044c: 003c0821 addu at,at,gp
-10000450: 8c218038 lw at,-32712\(at\)
+10000450: 8c21802c lw at,-32724\(at\)
10000454: 88250000 lwl a1,0\(at\)
10000458: 98250003 lwr a1,3\(at\)
1000045c: 3c010000 lui at,0x0
10000460: 003c0821 addu at,at,gp
-10000464: 8c218038 lw at,-32712\(at\)
+10000464: 8c21802c lw at,-32724\(at\)
10000468: 2421000c addiu at,at,12
1000046c: 88250000 lwl a1,0\(at\)
10000470: 98250003 lwr a1,3\(at\)
10000474: 3c010000 lui at,0x0
10000478: 003c0821 addu at,at,gp
-1000047c: 8c218038 lw at,-32712\(at\)
+1000047c: 8c21802c lw at,-32724\(at\)
10000480: 00310821 addu at,at,s1
10000484: 88250000 lwl a1,0\(at\)
10000488: 98250003 lwr a1,3\(at\)
1000048c: 3c010000 lui at,0x0
10000490: 003c0821 addu at,at,gp
-10000494: 8c218038 lw at,-32712\(at\)
+10000494: 8c21802c lw at,-32724\(at\)
10000498: 2421000c addiu at,at,12
1000049c: 00310821 addu at,at,s1
100004a0: 88250000 lwl a1,0\(at\)
100004a4: 98250003 lwr a1,3\(at\)
100004a8: 3c010000 lui at,0x0
100004ac: 003c0821 addu at,at,gp
-100004b0: 8c218038 lw at,-32712\(at\)
+100004b0: 8c21802c lw at,-32724\(at\)
100004b4: 24210022 addiu at,at,34
100004b8: 00250821 addu at,at,a1
100004bc: 88250000 lwl a1,0\(at\)
100004c0: 98250003 lwr a1,3\(at\)
100004c4: 3c010000 lui at,0x0
100004c8: 003c0821 addu at,at,gp
-100004cc: 8c218038 lw at,-32712\(at\)
+100004cc: 8c21802c lw at,-32724\(at\)
100004d0: 24210038 addiu at,at,56
100004d4: 00250821 addu at,at,a1
100004d8: a8250000 swl a1,0\(at\)
100004dc: b8250003 swr a1,3\(at\)
-100004e0: 8f858018 lw a1,-32744\(gp\)
+100004e0: 8f85801c lw a1,-32740\(gp\)
100004e4: 24a50764 addiu a1,a1,1892
-100004e8: 8f858018 lw a1,-32744\(gp\)
+100004e8: 8f85801c lw a1,-32740\(gp\)
100004ec: 24a50770 addiu a1,a1,1904
-100004f0: 8f85801c lw a1,-32740\(gp\)
+100004f0: 8f858020 lw a1,-32736\(gp\)
100004f4: 24a5e9a4 addiu a1,a1,-5724
-100004f8: 8f858018 lw a1,-32744\(gp\)
+100004f8: 8f85801c lw a1,-32740\(gp\)
100004fc: 24a50764 addiu a1,a1,1892
10000500: 00b12821 addu a1,a1,s1
-10000504: 8f858018 lw a1,-32744\(gp\)
+10000504: 8f85801c lw a1,-32740\(gp\)
10000508: 24a50770 addiu a1,a1,1904
1000050c: 00b12821 addu a1,a1,s1
-10000510: 8f85801c lw a1,-32740\(gp\)
+10000510: 8f858020 lw a1,-32736\(gp\)
10000514: 24a5e9a4 addiu a1,a1,-5724
10000518: 00b12821 addu a1,a1,s1
-1000051c: 8f858018 lw a1,-32744\(gp\)
+1000051c: 8f85801c lw a1,-32740\(gp\)
10000520: 8ca50764 lw a1,1892\(a1\)
-10000524: 8f858018 lw a1,-32744\(gp\)
+10000524: 8f85801c lw a1,-32740\(gp\)
10000528: 8ca50770 lw a1,1904\(a1\)
-1000052c: 8f858018 lw a1,-32744\(gp\)
+1000052c: 8f85801c lw a1,-32740\(gp\)
10000530: 00b12821 addu a1,a1,s1
10000534: 8ca50764 lw a1,1892\(a1\)
-10000538: 8f858018 lw a1,-32744\(gp\)
+10000538: 8f85801c lw a1,-32740\(gp\)
1000053c: 00b12821 addu a1,a1,s1
10000540: 8ca50770 lw a1,1904\(a1\)
-10000544: 8f818018 lw at,-32744\(gp\)
+10000544: 8f81801c lw at,-32740\(gp\)
10000548: 00250821 addu at,at,a1
1000054c: 8c250786 lw a1,1926\(at\)
-10000550: 8f818018 lw at,-32744\(gp\)
+10000550: 8f81801c lw at,-32740\(gp\)
10000554: 00250821 addu at,at,a1
10000558: ac25079c sw a1,1948\(at\)
-1000055c: 8f818018 lw at,-32744\(gp\)
+1000055c: 8f81801c lw at,-32740\(gp\)
10000560: 24210764 addiu at,at,1892
10000564: 88250000 lwl a1,0\(at\)
10000568: 98250003 lwr a1,3\(at\)
-1000056c: 8f818018 lw at,-32744\(gp\)
+1000056c: 8f81801c lw at,-32740\(gp\)
10000570: 24210770 addiu at,at,1904
10000574: 88250000 lwl a1,0\(at\)
10000578: 98250003 lwr a1,3\(at\)
-1000057c: 8f818018 lw at,-32744\(gp\)
+1000057c: 8f81801c lw at,-32740\(gp\)
10000580: 24210764 addiu at,at,1892
10000584: 00310821 addu at,at,s1
10000588: 88250000 lwl a1,0\(at\)
1000058c: 98250003 lwr a1,3\(at\)
-10000590: 8f818018 lw at,-32744\(gp\)
+10000590: 8f81801c lw at,-32740\(gp\)
10000594: 24210770 addiu at,at,1904
10000598: 00310821 addu at,at,s1
1000059c: 88250000 lwl a1,0\(at\)
100005a0: 98250003 lwr a1,3\(at\)
-100005a4: 8f818018 lw at,-32744\(gp\)
+100005a4: 8f81801c lw at,-32740\(gp\)
100005a8: 24210786 addiu at,at,1926
100005ac: 00250821 addu at,at,a1
100005b0: 88250000 lwl a1,0\(at\)
100005b4: 98250003 lwr a1,3\(at\)
-100005b8: 8f818018 lw at,-32744\(gp\)
+100005b8: 8f81801c lw at,-32740\(gp\)
100005bc: 2421079c addiu at,at,1948
100005c0: 00250821 addu at,at,a1
100005c4: a8250000 swl a1,0\(at\)
@@ -346,59 +346,60 @@ Disassembly of section \.text:
100005cc: 3c050000 lui a1,0x0
100005d0: 00bc2821 addu a1,a1,gp
100005d4: 8ca58030 lw a1,-32720\(a1\)
-100005d8: 8f858020 lw a1,-32736\(gp\)
+100005d8: 8f858028 lw a1,-32728\(gp\)
100005dc: 24a506b0 addiu a1,a1,1712
100005e0: 3c190000 lui t9,0x0
100005e4: 033cc821 addu t9,t9,gp
100005e8: 8f398030 lw t9,-32720\(t9\)
-100005ec: 8f998020 lw t9,-32736\(gp\)
+100005ec: 8f998028 lw t9,-32728\(gp\)
100005f0: 273906b0 addiu t9,t9,1712
100005f4: 3c190000 lui t9,0x0
100005f8: 033cc821 addu t9,t9,gp
100005fc: 8f398030 lw t9,-32720\(t9\)
10000600: 0411002b bal 100006b0 <fn2>
10000604: 00000000 nop
-10000608: 8f998020 lw t9,-32736\(gp\)
+10000608: 8f998028 lw t9,-32728\(gp\)
1000060c: 273906b0 addiu t9,t9,1712
10000610: 04110027 bal 100006b0 <fn2>
10000614: 00000000 nop
10000618: 3c050000 lui a1,0x0
1000061c: 00bc2821 addu a1,a1,gp
-10000620: 8ca58034 lw a1,-32716\(a1\)
+10000620: 8ca58018 lw a1,-32744\(a1\)
10000624: 1000fea2 b 100000b0 <fn>
10000628: 00000000 nop
1000062c: 3c050000 lui a1,0x0
10000630: 00bc2821 addu a1,a1,gp
-10000634: 8ca58038 lw a1,-32712\(a1\)
+10000634: 8ca5802c lw a1,-32724\(a1\)
10000638: 8ca50000 lw a1,0\(a1\)
1000063c: 1000001c b 100006b0 <fn2>
10000640: 00000000 nop
-10000644: 8f858018 lw a1,-32744\(gp\)
+10000644: 8f85801c lw a1,-32740\(gp\)
10000648: 24a506ec addiu a1,a1,1772
1000064c: 1000fe98 b 100000b0 <fn>
10000650: 00000000 nop
-10000654: 8f858018 lw a1,-32744\(gp\)
+10000654: 8f85801c lw a1,-32740\(gp\)
10000658: 24a50770 addiu a1,a1,1904
1000065c: 10000014 b 100006b0 <fn2>
10000660: 00000000 nop
-10000664: 8f85801c lw a1,-32740\(gp\)
+10000664: 8f858020 lw a1,-32736\(gp\)
10000668: 24a5e92c addiu a1,a1,-5844
1000066c: 1000fe90 b 100000b0 <fn>
10000670: 00000000 nop
-10000674: 8f858018 lw a1,-32744\(gp\)
+10000674: 8f85801c lw a1,-32740\(gp\)
10000678: 8ca50764 lw a1,1892\(a1\)
1000067c: 1000000c b 100006b0 <fn2>
10000680: 00000000 nop
-10000684: 8f858018 lw a1,-32744\(gp\)
+10000684: 8f85801c lw a1,-32740\(gp\)
10000688: 8ca506f8 lw a1,1784\(a1\)
1000068c: 1000fe88 b 100000b0 <fn>
10000690: 00000000 nop
-10000694: 8f818018 lw at,-32744\(gp\)
+10000694: 8f81801c lw at,-32740\(gp\)
10000698: 00250821 addu at,at,a1
1000069c: 8c250786 lw a1,1926\(at\)
100006a0: 10000003 b 100006b0 <fn2>
100006a4: 00000000 nop
\.\.\.
+
Disassembly of section \.data:
100106b0 <_fdata>:
@@ -412,18 +413,19 @@ Disassembly of section \.data:
10010764 <dg2>:
\.\.\.
+
Disassembly of section \.got:
100107a0 <_GLOBAL_OFFSET_TABLE_>:
100107a0: 00000000 .*
100107a4: 80000000 .*
-100107a8: 10010000 .*
-100107ac: 10030000 .*
-100107b0: 10000000 .*
-100107b4: 00000000 .*
-100107b8: 00000000 .*
-100107bc: 100000b0 .*
+100107a8: 100106ec .*
+100107ac: 10010000 .*
+100107b0: 10030000 .*
+100107b4: 100000b0 .*
+100107b8: 10000000 .*
+100107bc: 10010764 .*
100107c0: 100006b0 .*
-100107c4: 100106ec .*
-100107c8: 10010764 .*
+100107c4: 00000000 .*
+100107c8: 00000000 .*
#pass
Index: ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d
===================================================================
--- ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d 2010-09-19 10:50:51.000000000 +0100
+++ ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d 2010-09-19 11:07:33.000000000 +0100
@@ -15,332 +15,333 @@ Disassembly of section \.MIPS\.options:
\.\.\.
1200000d0: 00000001 .*
1200000d4: 200187c0 .*
+
Disassembly of section \.text:
00000001200000e0 <fn>:
1200000e0: 3c050000 lui a1,0x0
1200000e4: 00bc282d daddu a1,a1,gp
- 1200000e8: dca58058 ld a1,-32680\(a1\)
+ 1200000e8: dca58020 ld a1,-32736\(a1\)
1200000ec: 3c050000 lui a1,0x0
1200000f0: 00bc282d daddu a1,a1,gp
- 1200000f4: dca58058 ld a1,-32680\(a1\)
+ 1200000f4: dca58020 ld a1,-32736\(a1\)
1200000f8: 64a5000c daddiu a1,a1,12
1200000fc: 3c050000 lui a1,0x0
120000100: 00bc282d daddu a1,a1,gp
- 120000104: dca58058 ld a1,-32680\(a1\)
+ 120000104: dca58020 ld a1,-32736\(a1\)
120000108: 3c010001 lui at,0x1
12000010c: 3421e240 ori at,at,0xe240
120000110: 00a1282d daddu a1,a1,at
120000114: 3c050000 lui a1,0x0
120000118: 00bc282d daddu a1,a1,gp
- 12000011c: dca58058 ld a1,-32680\(a1\)
+ 12000011c: dca58020 ld a1,-32736\(a1\)
120000120: 00b1282d daddu a1,a1,s1
120000124: 3c050000 lui a1,0x0
120000128: 00bc282d daddu a1,a1,gp
- 12000012c: dca58058 ld a1,-32680\(a1\)
+ 12000012c: dca58020 ld a1,-32736\(a1\)
120000130: 64a5000c daddiu a1,a1,12
120000134: 00b1282d daddu a1,a1,s1
120000138: 3c050000 lui a1,0x0
12000013c: 00bc282d daddu a1,a1,gp
- 120000140: dca58058 ld a1,-32680\(a1\)
+ 120000140: dca58020 ld a1,-32736\(a1\)
120000144: 3c010001 lui at,0x1
120000148: 3421e240 ori at,at,0xe240
12000014c: 00a1282d daddu a1,a1,at
120000150: 00b1282d daddu a1,a1,s1
120000154: 3c050000 lui a1,0x0
120000158: 00bc282d daddu a1,a1,gp
- 12000015c: dca58058 ld a1,-32680\(a1\)
+ 12000015c: dca58020 ld a1,-32736\(a1\)
120000160: dca50000 ld a1,0\(a1\)
120000164: 3c050000 lui a1,0x0
120000168: 00bc282d daddu a1,a1,gp
- 12000016c: dca58058 ld a1,-32680\(a1\)
+ 12000016c: dca58020 ld a1,-32736\(a1\)
120000170: dca5000c ld a1,12\(a1\)
120000174: 3c050000 lui a1,0x0
120000178: 00bc282d daddu a1,a1,gp
- 12000017c: dca58058 ld a1,-32680\(a1\)
+ 12000017c: dca58020 ld a1,-32736\(a1\)
120000180: 00b1282d daddu a1,a1,s1
120000184: dca50000 ld a1,0\(a1\)
120000188: 3c050000 lui a1,0x0
12000018c: 00bc282d daddu a1,a1,gp
- 120000190: dca58058 ld a1,-32680\(a1\)
+ 120000190: dca58020 ld a1,-32736\(a1\)
120000194: 00b1282d daddu a1,a1,s1
120000198: dca5000c ld a1,12\(a1\)
12000019c: 3c010000 lui at,0x0
1200001a0: 003c082d daddu at,at,gp
- 1200001a4: dc218058 ld at,-32680\(at\)
+ 1200001a4: dc218020 ld at,-32736\(at\)
1200001a8: 0025082d daddu at,at,a1
1200001ac: dc250022 ld a1,34\(at\)
1200001b0: 3c010000 lui at,0x0
1200001b4: 003c082d daddu at,at,gp
- 1200001b8: dc218058 ld at,-32680\(at\)
+ 1200001b8: dc218020 ld at,-32736\(at\)
1200001bc: 0025082d daddu at,at,a1
1200001c0: fc250038 sd a1,56\(at\)
1200001c4: 3c010000 lui at,0x0
1200001c8: 003c082d daddu at,at,gp
- 1200001cc: dc218058 ld at,-32680\(at\)
+ 1200001cc: dc218020 ld at,-32736\(at\)
1200001d0: 88250000 lwl a1,0\(at\)
1200001d4: 98250003 lwr a1,3\(at\)
1200001d8: 3c010000 lui at,0x0
1200001dc: 003c082d daddu at,at,gp
- 1200001e0: dc218058 ld at,-32680\(at\)
+ 1200001e0: dc218020 ld at,-32736\(at\)
1200001e4: 6421000c daddiu at,at,12
1200001e8: 88250000 lwl a1,0\(at\)
1200001ec: 98250003 lwr a1,3\(at\)
1200001f0: 3c010000 lui at,0x0
1200001f4: 003c082d daddu at,at,gp
- 1200001f8: dc218058 ld at,-32680\(at\)
+ 1200001f8: dc218020 ld at,-32736\(at\)
1200001fc: 0031082d daddu at,at,s1
120000200: 88250000 lwl a1,0\(at\)
120000204: 98250003 lwr a1,3\(at\)
120000208: 3c010000 lui at,0x0
12000020c: 003c082d daddu at,at,gp
- 120000210: dc218058 ld at,-32680\(at\)
+ 120000210: dc218020 ld at,-32736\(at\)
120000214: 6421000c daddiu at,at,12
120000218: 0031082d daddu at,at,s1
12000021c: 88250000 lwl a1,0\(at\)
120000220: 98250003 lwr a1,3\(at\)
120000224: 3c010000 lui at,0x0
120000228: 003c082d daddu at,at,gp
- 12000022c: dc218058 ld at,-32680\(at\)
+ 12000022c: dc218020 ld at,-32736\(at\)
120000230: 64210022 daddiu at,at,34
120000234: 0025082d daddu at,at,a1
120000238: 88250000 lwl a1,0\(at\)
12000023c: 98250003 lwr a1,3\(at\)
120000240: 3c010000 lui at,0x0
120000244: 003c082d daddu at,at,gp
- 120000248: dc218058 ld at,-32680\(at\)
+ 120000248: dc218020 ld at,-32736\(at\)
12000024c: 64210038 daddiu at,at,56
120000250: 0025082d daddu at,at,a1
120000254: a8250000 swl a1,0\(at\)
120000258: b8250003 swr a1,3\(at\)
- 12000025c: df858020 ld a1,-32736\(gp\)
+ 12000025c: df858028 ld a1,-32728\(gp\)
120000260: 64a5071c daddiu a1,a1,1820
- 120000264: df858020 ld a1,-32736\(gp\)
+ 120000264: df858028 ld a1,-32728\(gp\)
120000268: 64a50728 daddiu a1,a1,1832
- 12000026c: df858028 ld a1,-32728\(gp\)
+ 12000026c: df858030 ld a1,-32720\(gp\)
120000270: 64a5e95c daddiu a1,a1,-5796
- 120000274: df858020 ld a1,-32736\(gp\)
+ 120000274: df858028 ld a1,-32728\(gp\)
120000278: 64a5071c daddiu a1,a1,1820
12000027c: 00b1282d daddu a1,a1,s1
- 120000280: df858020 ld a1,-32736\(gp\)
+ 120000280: df858028 ld a1,-32728\(gp\)
120000284: 64a50728 daddiu a1,a1,1832
120000288: 00b1282d daddu a1,a1,s1
- 12000028c: df858028 ld a1,-32728\(gp\)
+ 12000028c: df858030 ld a1,-32720\(gp\)
120000290: 64a5e95c daddiu a1,a1,-5796
120000294: 00b1282d daddu a1,a1,s1
- 120000298: df858020 ld a1,-32736\(gp\)
+ 120000298: df858028 ld a1,-32728\(gp\)
12000029c: dca5071c ld a1,1820\(a1\)
- 1200002a0: df858020 ld a1,-32736\(gp\)
+ 1200002a0: df858028 ld a1,-32728\(gp\)
1200002a4: dca50728 ld a1,1832\(a1\)
- 1200002a8: df858020 ld a1,-32736\(gp\)
+ 1200002a8: df858028 ld a1,-32728\(gp\)
1200002ac: 00b1282d daddu a1,a1,s1
1200002b0: dca5071c ld a1,1820\(a1\)
- 1200002b4: df858020 ld a1,-32736\(gp\)
+ 1200002b4: df858028 ld a1,-32728\(gp\)
1200002b8: 00b1282d daddu a1,a1,s1
1200002bc: dca50728 ld a1,1832\(a1\)
- 1200002c0: df818020 ld at,-32736\(gp\)
+ 1200002c0: df818028 ld at,-32728\(gp\)
1200002c4: 0025082d daddu at,at,a1
1200002c8: dc25073e ld a1,1854\(at\)
- 1200002cc: df818020 ld at,-32736\(gp\)
+ 1200002cc: df818028 ld at,-32728\(gp\)
1200002d0: 0025082d daddu at,at,a1
1200002d4: fc250754 sd a1,1876\(at\)
- 1200002d8: df818020 ld at,-32736\(gp\)
+ 1200002d8: df818028 ld at,-32728\(gp\)
1200002dc: 6421071c daddiu at,at,1820
1200002e0: 88250000 lwl a1,0\(at\)
1200002e4: 98250003 lwr a1,3\(at\)
- 1200002e8: df818020 ld at,-32736\(gp\)
+ 1200002e8: df818028 ld at,-32728\(gp\)
1200002ec: 64210728 daddiu at,at,1832
1200002f0: 88250000 lwl a1,0\(at\)
1200002f4: 98250003 lwr a1,3\(at\)
- 1200002f8: df818020 ld at,-32736\(gp\)
+ 1200002f8: df818028 ld at,-32728\(gp\)
1200002fc: 6421071c daddiu at,at,1820
120000300: 0031082d daddu at,at,s1
120000304: 88250000 lwl a1,0\(at\)
120000308: 98250003 lwr a1,3\(at\)
- 12000030c: df818020 ld at,-32736\(gp\)
+ 12000030c: df818028 ld at,-32728\(gp\)
120000310: 64210728 daddiu at,at,1832
120000314: 0031082d daddu at,at,s1
120000318: 88250000 lwl a1,0\(at\)
12000031c: 98250003 lwr a1,3\(at\)
- 120000320: df818020 ld at,-32736\(gp\)
+ 120000320: df818028 ld at,-32728\(gp\)
120000324: 6421073e daddiu at,at,1854
120000328: 0025082d daddu at,at,a1
12000032c: 88250000 lwl a1,0\(at\)
120000330: 98250003 lwr a1,3\(at\)
- 120000334: df818020 ld at,-32736\(gp\)
+ 120000334: df818028 ld at,-32728\(gp\)
120000338: 64210754 daddiu at,at,1876
12000033c: 0025082d daddu at,at,a1
120000340: a8250000 swl a1,0\(at\)
120000344: b8250003 swr a1,3\(at\)
120000348: 3c050000 lui a1,0x0
12000034c: 00bc282d daddu a1,a1,gp
- 120000350: dca58048 ld a1,-32696\(a1\)
- 120000354: df858030 ld a1,-32720\(gp\)
+ 120000350: dca58038 ld a1,-32712\(a1\)
+ 120000354: df858040 ld a1,-32704\(gp\)
120000358: 64a500e0 daddiu a1,a1,224
12000035c: 3c190000 lui t9,0x0
120000360: 033cc82d daddu t9,t9,gp
- 120000364: df398048 ld t9,-32696\(t9\)
- 120000368: df998030 ld t9,-32720\(gp\)
+ 120000364: df398038 ld t9,-32712\(t9\)
+ 120000368: df998040 ld t9,-32704\(gp\)
12000036c: 673900e0 daddiu t9,t9,224
120000370: 3c190000 lui t9,0x0
120000374: 033cc82d daddu t9,t9,gp
- 120000378: df398048 ld t9,-32696\(t9\)
+ 120000378: df398038 ld t9,-32712\(t9\)
12000037c: 0411ff58 bal 1200000e0 <fn>
120000380: 00000000 nop
- 120000384: df998030 ld t9,-32720\(gp\)
+ 120000384: df998040 ld t9,-32704\(gp\)
120000388: 673900e0 daddiu t9,t9,224
12000038c: 0411ff54 bal 1200000e0 <fn>
120000390: 00000000 nop
120000394: 3c050000 lui a1,0x0
120000398: 00bc282d daddu a1,a1,gp
- 12000039c: dca58060 ld a1,-32672\(a1\)
+ 12000039c: dca58048 ld a1,-32696\(a1\)
1200003a0: 3c050000 lui a1,0x0
1200003a4: 00bc282d daddu a1,a1,gp
- 1200003a8: dca58060 ld a1,-32672\(a1\)
+ 1200003a8: dca58048 ld a1,-32696\(a1\)
1200003ac: 64a5000c daddiu a1,a1,12
1200003b0: 3c050000 lui a1,0x0
1200003b4: 00bc282d daddu a1,a1,gp
- 1200003b8: dca58060 ld a1,-32672\(a1\)
+ 1200003b8: dca58048 ld a1,-32696\(a1\)
1200003bc: 3c010001 lui at,0x1
1200003c0: 3421e240 ori at,at,0xe240
1200003c4: 00a1282d daddu a1,a1,at
1200003c8: 3c050000 lui a1,0x0
1200003cc: 00bc282d daddu a1,a1,gp
- 1200003d0: dca58060 ld a1,-32672\(a1\)
+ 1200003d0: dca58048 ld a1,-32696\(a1\)
1200003d4: 00b1282d daddu a1,a1,s1
1200003d8: 3c050000 lui a1,0x0
1200003dc: 00bc282d daddu a1,a1,gp
- 1200003e0: dca58060 ld a1,-32672\(a1\)
+ 1200003e0: dca58048 ld a1,-32696\(a1\)
1200003e4: 64a5000c daddiu a1,a1,12
1200003e8: 00b1282d daddu a1,a1,s1
1200003ec: 3c050000 lui a1,0x0
1200003f0: 00bc282d daddu a1,a1,gp
- 1200003f4: dca58060 ld a1,-32672\(a1\)
+ 1200003f4: dca58048 ld a1,-32696\(a1\)
1200003f8: 3c010001 lui at,0x1
1200003fc: 3421e240 ori at,at,0xe240
120000400: 00a1282d daddu a1,a1,at
120000404: 00b1282d daddu a1,a1,s1
120000408: 3c050000 lui a1,0x0
12000040c: 00bc282d daddu a1,a1,gp
- 120000410: dca58060 ld a1,-32672\(a1\)
+ 120000410: dca58048 ld a1,-32696\(a1\)
120000414: dca50000 ld a1,0\(a1\)
120000418: 3c050000 lui a1,0x0
12000041c: 00bc282d daddu a1,a1,gp
- 120000420: dca58060 ld a1,-32672\(a1\)
+ 120000420: dca58048 ld a1,-32696\(a1\)
120000424: dca5000c ld a1,12\(a1\)
120000428: 3c050000 lui a1,0x0
12000042c: 00bc282d daddu a1,a1,gp
- 120000430: dca58060 ld a1,-32672\(a1\)
+ 120000430: dca58048 ld a1,-32696\(a1\)
120000434: 00b1282d daddu a1,a1,s1
120000438: dca50000 ld a1,0\(a1\)
12000043c: 3c050000 lui a1,0x0
120000440: 00bc282d daddu a1,a1,gp
- 120000444: dca58060 ld a1,-32672\(a1\)
+ 120000444: dca58048 ld a1,-32696\(a1\)
120000448: 00b1282d daddu a1,a1,s1
12000044c: dca5000c ld a1,12\(a1\)
120000450: 3c010000 lui at,0x0
120000454: 003c082d daddu at,at,gp
- 120000458: dc218060 ld at,-32672\(at\)
+ 120000458: dc218048 ld at,-32696\(at\)
12000045c: 0025082d daddu at,at,a1
120000460: dc250022 ld a1,34\(at\)
120000464: 3c010000 lui at,0x0
120000468: 003c082d daddu at,at,gp
- 12000046c: dc218060 ld at,-32672\(at\)
+ 12000046c: dc218048 ld at,-32696\(at\)
120000470: 0025082d daddu at,at,a1
120000474: fc250038 sd a1,56\(at\)
120000478: 3c010000 lui at,0x0
12000047c: 003c082d daddu at,at,gp
- 120000480: dc218060 ld at,-32672\(at\)
+ 120000480: dc218048 ld at,-32696\(at\)
120000484: 88250000 lwl a1,0\(at\)
120000488: 98250003 lwr a1,3\(at\)
12000048c: 3c010000 lui at,0x0
120000490: 003c082d daddu at,at,gp
- 120000494: dc218060 ld at,-32672\(at\)
+ 120000494: dc218048 ld at,-32696\(at\)
120000498: 6421000c daddiu at,at,12
12000049c: 88250000 lwl a1,0\(at\)
1200004a0: 98250003 lwr a1,3\(at\)
1200004a4: 3c010000 lui at,0x0
1200004a8: 003c082d daddu at,at,gp
- 1200004ac: dc218060 ld at,-32672\(at\)
+ 1200004ac: dc218048 ld at,-32696\(at\)
1200004b0: 0031082d daddu at,at,s1
1200004b4: 88250000 lwl a1,0\(at\)
1200004b8: 98250003 lwr a1,3\(at\)
1200004bc: 3c010000 lui at,0x0
1200004c0: 003c082d daddu at,at,gp
- 1200004c4: dc218060 ld at,-32672\(at\)
+ 1200004c4: dc218048 ld at,-32696\(at\)
1200004c8: 6421000c daddiu at,at,12
1200004cc: 0031082d daddu at,at,s1
1200004d0: 88250000 lwl a1,0\(at\)
1200004d4: 98250003 lwr a1,3\(at\)
1200004d8: 3c010000 lui at,0x0
1200004dc: 003c082d daddu at,at,gp
- 1200004e0: dc218060 ld at,-32672\(at\)
+ 1200004e0: dc218048 ld at,-32696\(at\)
1200004e4: 64210022 daddiu at,at,34
1200004e8: 0025082d daddu at,at,a1
1200004ec: 88250000 lwl a1,0\(at\)
1200004f0: 98250003 lwr a1,3\(at\)
1200004f4: 3c010000 lui at,0x0
1200004f8: 003c082d daddu at,at,gp
- 1200004fc: dc218060 ld at,-32672\(at\)
+ 1200004fc: dc218048 ld at,-32696\(at\)
120000500: 64210038 daddiu at,at,56
120000504: 0025082d daddu at,at,a1
120000508: a8250000 swl a1,0\(at\)
12000050c: b8250003 swr a1,3\(at\)
- 120000510: df858020 ld a1,-32736\(gp\)
+ 120000510: df858028 ld a1,-32728\(gp\)
120000514: 64a50794 daddiu a1,a1,1940
- 120000518: df858020 ld a1,-32736\(gp\)
+ 120000518: df858028 ld a1,-32728\(gp\)
12000051c: 64a507a0 daddiu a1,a1,1952
- 120000520: df858028 ld a1,-32728\(gp\)
+ 120000520: df858030 ld a1,-32720\(gp\)
120000524: 64a5e9d4 daddiu a1,a1,-5676
- 120000528: df858020 ld a1,-32736\(gp\)
+ 120000528: df858028 ld a1,-32728\(gp\)
12000052c: 64a50794 daddiu a1,a1,1940
120000530: 00b1282d daddu a1,a1,s1
- 120000534: df858020 ld a1,-32736\(gp\)
+ 120000534: df858028 ld a1,-32728\(gp\)
120000538: 64a507a0 daddiu a1,a1,1952
12000053c: 00b1282d daddu a1,a1,s1
- 120000540: df858028 ld a1,-32728\(gp\)
+ 120000540: df858030 ld a1,-32720\(gp\)
120000544: 64a5e9d4 daddiu a1,a1,-5676
120000548: 00b1282d daddu a1,a1,s1
- 12000054c: df858020 ld a1,-32736\(gp\)
+ 12000054c: df858028 ld a1,-32728\(gp\)
120000550: dca50794 ld a1,1940\(a1\)
- 120000554: df858020 ld a1,-32736\(gp\)
+ 120000554: df858028 ld a1,-32728\(gp\)
120000558: dca507a0 ld a1,1952\(a1\)
- 12000055c: df858020 ld a1,-32736\(gp\)
+ 12000055c: df858028 ld a1,-32728\(gp\)
120000560: 00b1282d daddu a1,a1,s1
120000564: dca50794 ld a1,1940\(a1\)
- 120000568: df858020 ld a1,-32736\(gp\)
+ 120000568: df858028 ld a1,-32728\(gp\)
12000056c: 00b1282d daddu a1,a1,s1
120000570: dca507a0 ld a1,1952\(a1\)
- 120000574: df818020 ld at,-32736\(gp\)
+ 120000574: df818028 ld at,-32728\(gp\)
120000578: 0025082d daddu at,at,a1
12000057c: dc2507b6 ld a1,1974\(at\)
- 120000580: df818020 ld at,-32736\(gp\)
+ 120000580: df818028 ld at,-32728\(gp\)
120000584: 0025082d daddu at,at,a1
120000588: fc2507cc sd a1,1996\(at\)
- 12000058c: df818020 ld at,-32736\(gp\)
+ 12000058c: df818028 ld at,-32728\(gp\)
120000590: 64210794 daddiu at,at,1940
120000594: 88250000 lwl a1,0\(at\)
120000598: 98250003 lwr a1,3\(at\)
- 12000059c: df818020 ld at,-32736\(gp\)
+ 12000059c: df818028 ld at,-32728\(gp\)
1200005a0: 642107a0 daddiu at,at,1952
1200005a4: 88250000 lwl a1,0\(at\)
1200005a8: 98250003 lwr a1,3\(at\)
- 1200005ac: df818020 ld at,-32736\(gp\)
+ 1200005ac: df818028 ld at,-32728\(gp\)
1200005b0: 64210794 daddiu at,at,1940
1200005b4: 0031082d daddu at,at,s1
1200005b8: 88250000 lwl a1,0\(at\)
1200005bc: 98250003 lwr a1,3\(at\)
- 1200005c0: df818020 ld at,-32736\(gp\)
+ 1200005c0: df818028 ld at,-32728\(gp\)
1200005c4: 642107a0 daddiu at,at,1952
1200005c8: 0031082d daddu at,at,s1
1200005cc: 88250000 lwl a1,0\(at\)
1200005d0: 98250003 lwr a1,3\(at\)
- 1200005d4: df818020 ld at,-32736\(gp\)
+ 1200005d4: df818028 ld at,-32728\(gp\)
1200005d8: 642107b6 daddiu at,at,1974
1200005dc: 0025082d daddu at,at,a1
1200005e0: 88250000 lwl a1,0\(at\)
1200005e4: 98250003 lwr a1,3\(at\)
- 1200005e8: df818020 ld at,-32736\(gp\)
+ 1200005e8: df818028 ld at,-32728\(gp\)
1200005ec: 642107cc daddiu at,at,1996
1200005f0: 0025082d daddu at,at,a1
1200005f4: a8250000 swl a1,0\(at\)
@@ -348,59 +349,60 @@ Disassembly of section \.text:
1200005fc: 3c050000 lui a1,0x0
120000600: 00bc282d daddu a1,a1,gp
120000604: dca58050 ld a1,-32688\(a1\)
- 120000608: df858030 ld a1,-32720\(gp\)
+ 120000608: df858040 ld a1,-32704\(gp\)
12000060c: 64a506e0 daddiu a1,a1,1760
120000610: 3c190000 lui t9,0x0
120000614: 033cc82d daddu t9,t9,gp
120000618: df398050 ld t9,-32688\(t9\)
- 12000061c: df998030 ld t9,-32720\(gp\)
+ 12000061c: df998040 ld t9,-32704\(gp\)
120000620: 673906e0 daddiu t9,t9,1760
120000624: 3c190000 lui t9,0x0
120000628: 033cc82d daddu t9,t9,gp
12000062c: df398050 ld t9,-32688\(t9\)
120000630: 0411002b bal 1200006e0 <fn2>
120000634: 00000000 nop
- 120000638: df998030 ld t9,-32720\(gp\)
+ 120000638: df998040 ld t9,-32704\(gp\)
12000063c: 673906e0 daddiu t9,t9,1760
120000640: 04110027 bal 1200006e0 <fn2>
120000644: 00000000 nop
120000648: 3c050000 lui a1,0x0
12000064c: 00bc282d daddu a1,a1,gp
- 120000650: dca58058 ld a1,-32680\(a1\)
+ 120000650: dca58020 ld a1,-32736\(a1\)
120000654: 1000fea2 b 1200000e0 <fn>
120000658: 00000000 nop
12000065c: 3c050000 lui a1,0x0
120000660: 00bc282d daddu a1,a1,gp
- 120000664: dca58060 ld a1,-32672\(a1\)
+ 120000664: dca58048 ld a1,-32696\(a1\)
120000668: dca50000 ld a1,0\(a1\)
12000066c: 1000001c b 1200006e0 <fn2>
120000670: 00000000 nop
- 120000674: df858020 ld a1,-32736\(gp\)
+ 120000674: df858028 ld a1,-32728\(gp\)
120000678: 64a5071c daddiu a1,a1,1820
12000067c: 1000fe98 b 1200000e0 <fn>
120000680: 00000000 nop
- 120000684: df858020 ld a1,-32736\(gp\)
+ 120000684: df858028 ld a1,-32728\(gp\)
120000688: 64a507a0 daddiu a1,a1,1952
12000068c: 10000014 b 1200006e0 <fn2>
120000690: 00000000 nop
- 120000694: df858028 ld a1,-32728\(gp\)
+ 120000694: df858030 ld a1,-32720\(gp\)
120000698: 64a5e95c daddiu a1,a1,-5796
12000069c: 1000fe90 b 1200000e0 <fn>
1200006a0: 00000000 nop
- 1200006a4: df858020 ld a1,-32736\(gp\)
+ 1200006a4: df858028 ld a1,-32728\(gp\)
1200006a8: dca50794 ld a1,1940\(a1\)
1200006ac: 1000000c b 1200006e0 <fn2>
1200006b0: 00000000 nop
- 1200006b4: df858020 ld a1,-32736\(gp\)
+ 1200006b4: df858028 ld a1,-32728\(gp\)
1200006b8: dca50728 ld a1,1832\(a1\)
1200006bc: 1000fe88 b 1200000e0 <fn>
1200006c0: 00000000 nop
- 1200006c4: df818020 ld at,-32736\(gp\)
+ 1200006c4: df818028 ld at,-32728\(gp\)
1200006c8: 0025082d daddu at,at,a1
1200006cc: dc2507b6 ld a1,1974\(at\)
1200006d0: 10000003 b 1200006e0 <fn2>
1200006d4: 00000000 nop
\.\.\.
+
Disassembly of section \.data:
00000001200106e0 <_fdata>:
@@ -414,6 +416,7 @@ Disassembly of section \.data:
0000000120010794 <dg2>:
\.\.\.
+
Disassembly of section \.got:
00000001200107d0 <_GLOBAL_OFFSET_TABLE_>:
@@ -421,18 +424,18 @@ Disassembly of section \.got:
1200107d8: 80000000 .*
1200107dc: 00000000 .*
1200107e0: 00000001 .*
- 1200107e4: 20010000 .*
+ 1200107e4: 2001071c .*
1200107e8: 00000001 .*
- 1200107ec: 20030000 .*
+ 1200107ec: 20010000 .*
1200107f0: 00000001 .*
- 1200107f4: 20000000 .*
- \.\.\.
+ 1200107f4: 20030000 .*
+ 1200107f8: 00000001 .*
+ 1200107fc: 200000e0 .*
+ 120010800: 00000001 .*
+ 120010804: 20000000 .*
120010808: 00000001 .*
- 12001080c: 200000e0 .*
+ 12001080c: 20010794 .*
120010810: 00000001 .*
120010814: 200006e0 .*
- 120010818: 00000001 .*
- 12001081c: 2001071c .*
- 120010820: 00000001 .*
- 120010824: 20010794 .*
+ \.\.\.
#pass
Index: ld/testsuite/ld-mips-elf/mips16-pic-1.gd
===================================================================
--- ld/testsuite/ld-mips-elf/mips16-pic-1.gd 2010-09-19 10:50:51.000000000 +0100
+++ ld/testsuite/ld-mips-elf/mips16-pic-1.gd 2010-09-19 11:07:33.000000000 +0100
@@ -27,31 +27,38 @@ Primary GOT:
00050024 -32716\(gp\) 00040d78
# __fn_b_used12
00050028 -32712\(gp\) 00040d8c
+# a_used13
+ 0005002c -32708\(gp\) 00040db0
+# b_used13
+ 00050030 -32704\(gp\) 00040dc4
+# a_used17
+ 00050034 -32700\(gp\) 00040e90
+# b_used17
+ 00050038 -32696\(gp\) 00040ea4
+# a_used19
+ 0005003c -32692\(gp\) 00040f00
+# b_used19
+ 00050040 -32688\(gp\) 00040f14
+# a_used20
+ 00050044 -32684\(gp\) 00040f38
+# b_used20
+ 00050048 -32680\(gp\) 00040f4c
# a_unused6
- 0005002c -32708\(gp\) 000404b1
+ 0005004c -32676\(gp\) 000404b1
# b_unused6
- 00050030 -32704\(gp\) 000404b5
+ 00050050 -32672\(gp\) 000404b5
# __fn_a_used8
- 00050034 -32700\(gp\) 00040c98
+ 00050054 -32668\(gp\) 00040c98
# __fn_b_used8
- 00050038 -32696\(gp\) 00040cac
- 0005003c -32692\(gp\) 00000000
- 00050040 -32688\(gp\) 00000000
- 00050044 -32684\(gp\) 00000000
- 00050048 -32680\(gp\) 00000000
-
- Global entries:
- Address Access Initial Sym\.Val\. Type Ndx Name
- 0005004c -32676\(gp\) 00040e90 00040e90 FUNC 7 a_used17
- 00050050 -32672\(gp\) 00040f14 00040f14 FUNC 7 b_used19
- 00050054 -32668\(gp\) 00040f38 00040f38 FUNC 7 a_used20
- 00050058 -32664\(gp\) 00040e20 00040e20 FUNC 7 a_used15
- 0005005c -32660\(gp\) 00040db0 00040db0 FUNC 7 a_used13
- 00050060 -32656\(gp\) 00040ea4 00040ea4 FUNC 7 b_used17
- 00050064 -32652\(gp\) 00040f4c 00040f4c FUNC 7 b_used20
- 00050068 -32648\(gp\) 00040f70 00040f70 FUNC 7 a_used21
- 0005006c -32644\(gp\) 00040f00 00040f00 FUNC 7 a_used19
- 00050070 -32640\(gp\) 00040e34 00040e34 FUNC 7 b_used15
- 00050074 -32636\(gp\) 00040f84 00040f84 FUNC 7 b_used21
- 00050078 -32632\(gp\) 00040dc4 00040dc4 FUNC 7 b_used13
+ 00050058 -32664\(gp\) 00040cac
+# a_used15
+ 0005005c -32660\(gp\) 00040e20
+# b_used15
+ 00050060 -32656\(gp\) 00040e34
+# a_used21
+ 00050064 -32652\(gp\) 00040f70
+# b_used21
+ 00050068 -32648\(gp\) 00040f84
+ 0005006c -32644\(gp\) 00000000
+#pass
Index: ld/testsuite/ld-mips-elf/mips16-pic-1.dd
===================================================================
--- ld/testsuite/ld-mips-elf/mips16-pic-1.dd 2010-09-19 10:50:51.000000000 +0100
+++ ld/testsuite/ld-mips-elf/mips16-pic-1.dd 2010-09-19 11:07:33.000000000 +0100
@@ -516,12 +516,12 @@ Disassembly of section \.text:
.*: [^\t]* addiu sp,sp,-32
.*: [^\t]* sw v0,16\(sp\)
.*: [^\t]* sw ra,20\(sp\)
-.*: [^\t]* lw v0,-32660\(v0\)
+.*: [^\t]* lw v0,-32708\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
.*: [^\t]* move gp,v0
-.*: [^\t]* lw v0,-32632\(v0\)
+.*: [^\t]* lw v0,-32704\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
@@ -576,12 +576,12 @@ Disassembly of section \.text:
.*: [^\t]* addiu sp,sp,-32
.*: [^\t]* sw v0,16\(sp\)
.*: [^\t]* sw ra,20\(sp\)
-.*: [^\t]* lw v0,-32676\(v0\)
+.*: [^\t]* lw v0,-32700\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
.*: [^\t]* move gp,v0
-.*: [^\t]* lw v0,-32656\(v0\)
+.*: [^\t]* lw v0,-32696\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
@@ -599,12 +599,12 @@ Disassembly of section \.text:
.*: [^\t]* addiu sp,-32
.*: [^\t]* sw v0,16\(sp\)
.*: [^\t]* sw ra,20\(sp\)
-.*: [^\t]* lw v0,-32676\(v0\)
+.*: [^\t]* lw v0,-32700\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
.*: [^\t]* move gp,v0
-.*: [^\t]* lw v0,-32656\(v0\)
+.*: [^\t]* lw v0,-32696\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
@@ -656,12 +656,12 @@ Disassembly of section \.text:
.*: [^\t]* addiu sp,-32
.*: [^\t]* sw v0,16\(sp\)
.*: [^\t]* sw ra,20\(sp\)
-.*: [^\t]* lw v0,-32644\(v0\)
+.*: [^\t]* lw v0,-32692\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
.*: [^\t]* move gp,v0
-.*: [^\t]* lw v0,-32672\(v0\)
+.*: [^\t]* lw v0,-32688\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
@@ -687,12 +687,12 @@ Disassembly of section \.text:
.*: [^\t]* addiu sp,-32
.*: [^\t]* sw v0,16\(sp\)
.*: [^\t]* sw ra,20\(sp\)
-.*: [^\t]* lw v0,-32668\(v0\)
+.*: [^\t]* lw v0,-32684\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
.*: [^\t]* move gp,v0
-.*: [^\t]* lw v0,-32652\(v0\)
+.*: [^\t]* lw v0,-32680\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
@@ -719,12 +719,12 @@ Disassembly of section \.text:
.*: [^\t]* addiu sp,-32
.*: [^\t]* sw v0,16\(sp\)
.*: [^\t]* sw ra,20\(sp\)
-.*: [^\t]* lw v0,-32708\(v0\)
+.*: [^\t]* lw v0,-32676\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
.*: [^\t]* move gp,v0
-.*: [^\t]* lw v0,-32704\(v0\)
+.*: [^\t]* lw v0,-32672\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
@@ -753,12 +753,12 @@ Disassembly of section \.text:
.*: [^\t]* addiu sp,sp,-32
.*: [^\t]* sw v0,16\(sp\)
.*: [^\t]* sw ra,20\(sp\)
-.*: [^\t]* lw v0,-32700\(v0\)
+.*: [^\t]* lw v0,-32668\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
.*: [^\t]* move gp,v0
-.*: [^\t]* lw v0,-32696\(v0\)
+.*: [^\t]* lw v0,-32664\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
@@ -781,12 +781,12 @@ Disassembly of section \.text:
.*: [^\t]* addiu sp,sp,-32
.*: [^\t]* sw v0,16\(sp\)
.*: [^\t]* sw ra,20\(sp\)
-.*: [^\t]* lw v0,-32664\(v0\)
+.*: [^\t]* lw v0,-32660\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
.*: [^\t]* move gp,v0
-.*: [^\t]* lw v0,-32640\(v0\)
+.*: [^\t]* lw v0,-32656\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
@@ -810,12 +810,12 @@ Disassembly of section \.text:
.*: [^\t]* addiu sp,-32
.*: [^\t]* sw v0,16\(sp\)
.*: [^\t]* sw ra,20\(sp\)
-.*: [^\t]* lw v0,-32648\(v0\)
+.*: [^\t]* lw v0,-32652\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
.*: [^\t]* move gp,v0
-.*: [^\t]* lw v0,-32636\(v0\)
+.*: [^\t]* lw v0,-32648\(v0\)
.*: [^\t]* jalr v0
.*: [^\t]* move t9,v0
.*: [^\t]* lw v0,16\(sp\)
Index: ld/testsuite/ld-mips-elf/multi-got-no-shared.d
===================================================================
--- ld/testsuite/ld-mips-elf/multi-got-no-shared.d 2010-09-19 10:50:51.000000000 +0100
+++ ld/testsuite/ld-mips-elf/multi-got-no-shared.d 2010-09-19 11:07:33.000000000 +0100
@@ -9,10 +9,10 @@
Disassembly of section \.text:
004000b0 <[^>]*> 3c1c0043 lui gp,0x43
-004000b4 <[^>]*> 279c9a00 addiu gp,gp,-26112
+004000b4 <[^>]*> 279c9ff0 addiu gp,gp,-24592
004000b8 <[^>]*> afbc0008 sw gp,8\(sp\)
#...
-00408d60 <[^>]*> 3c1c0044 lui gp,0x44
-00408d64 <[^>]*> 279cb348 addiu gp,gp,-19640
+00408d60 <[^>]*> 3c1c0043 lui gp,0x43
+00408d64 <[^>]*> 279c2c98 addiu gp,gp,11416
00408d68 <[^>]*> afbc0008 sw gp,8\(sp\)
#pass
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-09-19 10:27 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-26 21:58 Fix MIPS multi-GOT -Bsymbolic link failure Joseph S. Myers
2010-08-26 23:52 ` Richard Sandiford
2010-08-27 14:03 ` Daniel Jacobowitz
2010-08-28 10:56 ` Richard Sandiford
2010-08-29 18:32 ` Richard Sandiford
2010-08-30 15:10 ` Daniel Jacobowitz
2010-09-14 21:02 ` Joseph S. Myers
2010-09-14 21:11 ` Richard Sandiford
2010-09-19 10:27 ` Richard Sandiford
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).