| # Relocations against undefined symbols would be incorrectly let through |
| # by mips_elf_calculate_relocation() once the result of the |
| # ->undefined_symbol() callback has been interpreted in the opposite |
| # sense. The link would fail anyway, but for R_MIPS_GOT_PAGE relocations |
| # a failure of the following assertion: |
| # |
| # BFD_ASSERT (h->dynindx >= global_got_dynindx); |
| # |
| # would additionally be reported in mips_elf_global_got_index(), because |
| # at this point h->dynindx for the undefined symbol would be set to -1. |
| # Other kinds of GOT relocations allocate a GOT index for the symbol |
| # referred and set its h->dynindx in _bfd_mips_elf_check_relocs(), but |
| # R_MIPS_GOT_PAGE relocations only allocate a GOT page at that point and |
| # for undefined symbols the page never gets resolved any further. |
| |
| .abicalls |
| .text |
| .globl foo |
| .type foo, @function |
| .ent foo |
| foo: |
| li $2, %got_page(bar) |
| .end foo |
| .size foo, . - foo |