Commit d577ba89 by Alan Modra

[RS6000] Align .toc section

Lack of any .toc section alignment causes kexec and kdump failure
when linking without the usual linker script.  This of course is
really a kexec-tools error, but it is also true that .toc ought to
always be word aligned.

	* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
	Align .toc.

From-SVN: r235874
parent a793339b
2016-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
2016-05-04 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
Align .toc.
2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
* config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
Clean up p5600 comments.
......
......@@ -31339,8 +31339,8 @@ rs6000_elf_output_toc_section_asm_op (const void *data ATTRIBUTE_UNUSED)
{
if (!toc_initialized)
{
toc_initialized = 1;
fprintf (asm_out_file, "%s\n", TOC_SECTION_ASM_OP);
ASM_OUTPUT_ALIGN (asm_out_file, TARGET_64BIT ? 3 : 2);
(*targetm.asm_out.internal_label) (asm_out_file, "LCTOC", 0);
fprintf (asm_out_file, "\t.tc ");
ASM_OUTPUT_INTERNAL_LABEL_PREFIX (asm_out_file, "LCTOC1[TC],");
......@@ -31348,20 +31348,30 @@ rs6000_elf_output_toc_section_asm_op (const void *data ATTRIBUTE_UNUSED)
fprintf (asm_out_file, "\n");
fprintf (asm_out_file, "%s\n", MINIMAL_TOC_SECTION_ASM_OP);
ASM_OUTPUT_ALIGN (asm_out_file, TARGET_64BIT ? 3 : 2);
ASM_OUTPUT_INTERNAL_LABEL_PREFIX (asm_out_file, "LCTOC1");
fprintf (asm_out_file, " = .+32768\n");
toc_initialized = 1;
}
else
fprintf (asm_out_file, "%s\n", MINIMAL_TOC_SECTION_ASM_OP);
}
else if ((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_ELFv2)
&& !TARGET_RELOCATABLE)
fprintf (asm_out_file, "%s\n", TOC_SECTION_ASM_OP);
{
fprintf (asm_out_file, "%s\n", TOC_SECTION_ASM_OP);
if (!toc_initialized)
{
ASM_OUTPUT_ALIGN (asm_out_file, TARGET_64BIT ? 3 : 2);
toc_initialized = 1;
}
}
else
{
fprintf (asm_out_file, "%s\n", MINIMAL_TOC_SECTION_ASM_OP);
if (!toc_initialized)
{
ASM_OUTPUT_ALIGN (asm_out_file, TARGET_64BIT ? 3 : 2);
ASM_OUTPUT_INTERNAL_LABEL_PREFIX (asm_out_file, "LCTOC1");
fprintf (asm_out_file, " = .+32768\n");
toc_initialized = 1;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment