diff options
author | Eric Christopher <echristo@gmail.com> | 2003-05-21 21:53:33 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2003-05-21 21:53:33 +0000 |
commit | 143d77c5e950f3c1664b6196ba87620ad759c73e (patch) | |
tree | 7dee395f3c64cec608e538ab2a7d0ddaeb1367d1 /gas/config | |
parent | 44482353b7a90fad07966ff231f6305a671053ab (diff) | |
download | gdb-143d77c5e950f3c1664b6196ba87620ad759c73e.zip gdb-143d77c5e950f3c1664b6196ba87620ad759c73e.tar.gz gdb-143d77c5e950f3c1664b6196ba87620ad759c73e.tar.bz2 |
2003-05-07 Eric Christopher <echristo@redhat.com>
Alexandre Oliva <aoliva@redhat.com>
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Adjust
pic tests, change to warning.
(_bfd_mips_elf_final_link): Remove EF_MIPS_CPIC flag setting.
2003-05-07 Eric Christopher <echristo@redhat.com>
* config/tc-mips.c (mips_abicalls): New variable.
(md_parse_option): Use.
(s_option): Ditto.
(s_abicalls): Ditto.
(mips_elf_final_processing): Set EF_MIPS_PIC and
EF_MIPS_CPIC dependent on above.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-mips.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 5d95366..fde2684 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -131,6 +131,9 @@ enum mips_abi_level /* MIPS ABI we are using for this output file. */ static enum mips_abi_level mips_abi = NO_ABI; +/* Whether or not we have code that can call pic code. */ +int mips_abicalls = FALSE; + /* This is the set of options which may be modified by the .set pseudo-op. We use a struct so that .set push and .set pop are more reliable. */ @@ -11038,6 +11041,7 @@ md_parse_option (c, arg) return 0; } mips_pic = SVR4_PIC; + mips_abicalls = TRUE; if (g_switch_seen && g_switch_value != 0) { as_bad (_("-G may not be used with SVR4 PIC code")); @@ -11053,6 +11057,7 @@ md_parse_option (c, arg) return 0; } mips_pic = NO_PIC; + mips_abicalls = FALSE; break; /* The -xgot option tells the assembler to use 32 offsets when @@ -12430,7 +12435,10 @@ s_option (x) if (i == 0) mips_pic = NO_PIC; else if (i == 2) + { mips_pic = SVR4_PIC; + mips_abicalls = TRUE; + } else as_bad (_(".option pic%d not supported"), i); @@ -12654,6 +12662,7 @@ s_abicalls (ignore) int ignore ATTRIBUTE_UNUSED; { mips_pic = SVR4_PIC; + mips_abicalls = TRUE; if (USE_GLOBAL_POINTER_OPT) { if (g_switch_seen && g_switch_value != 0) @@ -14440,7 +14449,12 @@ mips_elf_final_processing () if (mips_any_noreorder) elf_elfheader (stdoutput)->e_flags |= EF_MIPS_NOREORDER; if (mips_pic != NO_PIC) + { elf_elfheader (stdoutput)->e_flags |= EF_MIPS_PIC; + elf_elfheader (stdoutput)->e_flags |= EF_MIPS_CPIC; + } + if (mips_abicalls) + elf_elfheader (stdoutput)->e_flags |= EF_MIPS_CPIC; /* Set MIPS ELF flags for ASEs. */ if (file_ase_mips16) |