* xcofflink.c (bfd_link_input_bfd): Treat __rtinit as C_HIDEXT
	rather than C_EXT.

ld/testsuite/
	* ld-powerpc/aix-gc-1.nd: New test.
	* ld-powerpc/aix52.exp: Run it.
This commit is contained in:
Richard Sandiford 2009-04-01 20:09:03 +00:00
parent 2e470849cc
commit 54e2dbe0fc
5 changed files with 32 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
* xcofflink.c (bfd_link_input_bfd): Treat __rtinit as C_HIDEXT
rather than C_EXT.
2009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
* coff-rs6000.c (member_layout): New structure.

View File

@ -4289,6 +4289,7 @@ xcoff_link_input_bfd (struct xcoff_final_link_info *finfo,
esym = (bfd_byte *) obj_coff_external_syms (input_bfd);
esym_end = esym + obj_raw_syment_count (input_bfd) * isymesz;
sym_hash = obj_xcoff_sym_hashes (input_bfd);
isymp = finfo->internal_syms;
indexp = finfo->sym_indices;
csectpp = xcoff_data (input_bfd)->csects;
@ -4336,6 +4337,16 @@ xcoff_link_input_bfd (struct xcoff_final_link_info *finfo,
}
}
/* Make __rtinit C_HIDEXT rather than C_EXT. This avoids
multiple definition problems when linking a shared object
statically. (The native linker doesn't enter __rtinit into
the normal table at all, but having a local symbol can make
the objdump output easier to read.) */
if (isym.n_sclass == C_EXT
&& *sym_hash
&& ((*sym_hash)->flags & XCOFF_RTINIT) != 0)
isym.n_sclass = C_HIDEXT;
/* The value of a C_FILE symbol is the symbol index of the
next C_FILE symbol. The value of the last C_FILE symbol
is -1. We try to get this right, below, just before we
@ -4664,6 +4675,7 @@ xcoff_link_input_bfd (struct xcoff_final_link_info *finfo,
}
}
sym_hash += add;
indexp += add;
isymp += add;
csectpp += add;

View File

@ -1,3 +1,13 @@
2009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
* ld-powerpc/aix-gc-1.nd: New test.
* ld-powerpc/aix52.exp: Run it.
2009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
* ld-powerpc/aix-rel-1.s, ld-powerpc/aix-rel-1.od: New test.
* ld-powerpc/aix52.exp: Run it.
2009-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
* ld-cygwin/exe-export.exp: Add "-lkernel32" when linking test exe.

View File

@ -0,0 +1,3 @@
#...
0*20000008 d __rtinit
#pass

View File

@ -131,7 +131,8 @@ set aix52tests {
{"Garbage collection test 1"
"-shared -binitfini:init_function:fini_function -bE:aix-gc-1.ex"
"" {aix-gc-1.s}
{{objdump {-dz -j.text -j.data} aix-gc-1-SIZE.dd}}
{{objdump {-dz -j.text -j.data} aix-gc-1-SIZE.dd}
{nm {} aix-gc-1.nd}}
"aix-gc-1.so"}
{"Glink test 1"