1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

Changeset 2651 for trunk/ld/amd64.c

Show
Ignore:
Timestamp:
11/03/12 08:08:22 (7 months ago)
Author:
kaiwang27
Message:

Create _GLOBAL_OFFSET_TABLE_ symbol in _create_pltgot() instead of
_finalize_pltgot().

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/ld/amd64.c

    r2647 r2651  
    177177        (void) ld_output_create_element(ld, &os->os_e, OET_DATA_BUFFER, 
    178178            plt_odb, NULL); 
     179 
     180        /* Create _GLOBAL_OFFSET_TABLE_ symbol. */ 
     181        ld_symbols_add_internal(ld, "_GLOBAL_OFFSET_TABLE_", 0, 0, SHN_ABS, 
     182            STB_LOCAL, STT_OBJECT, STV_HIDDEN, ld->ld_os_got); 
    179183} 
    180184 
     
    305309        assert(got == ld->ld_got->odb_buf + ld->ld_got->odb_size); 
    306310        assert(plt == ld->ld_plt->odb_buf + ld->ld_plt->odb_size); 
    307  
    308         /* Create _GLOBAL_OFFSET_TABLE_ symbol. */ 
    309         ld_symbols_add_internal(ld, "_GLOBAL_OFFSET_TABLE_", 0, 
    310             ld->ld_os_got->os_addr, SHN_ABS, STB_LOCAL, STT_OBJECT, 
    311             STV_HIDDEN, ld->ld_os_got); 
    312311} 
    313312