This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Don't use FORCE_CODE_SECTION_ALIGN on Solaris/x86
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 24 May 2011 16:27:31 +0200
- Subject: Don't use FORCE_CODE_SECTION_ALIGN on Solaris/x86
While working to move the Solaris libgcc configuration to the toplevel,
I came across the definition of FORCE_CODE_SECTION_ALIGN in
i386/sol2.h. It refers to a Solaris 2.0 ld bug, which is ancient
history by now. The definition can simply be removed, as verified by
bootstraps on i386-pc-solaris2.{[89],1[01]} with both as/ld and gas/ld.
The macro is still used in config/mcore/mcore-elf.h, so it cannot be
removed completely.
Installed on mainline.
Rainer
diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h
--- a/gcc/config/i386/sol2.h
+++ b/gcc/config/i386/sol2.h
@@ -19,16 +19,6 @@ You should have received a copy of the G
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
-/* The Solaris 2.0 x86 linker botches alignment of code sections.
- It tries to align to a 16 byte boundary by padding with 0x00000090
- ints, rather than 0x90 bytes (nop). This generates trash in the
- ".init" section since the contribution from crtbegin.o is only 7
- bytes. The linker pads it to 16 bytes with a single 0x90 byte, and
- two 0x00000090 ints, which generates a segmentation violation when
- executed. This macro forces the assembler to do the padding, since
- it knows what it is doing. */
-#define FORCE_CODE_SECTION_ALIGN asm(ALIGN_ASM_OP "16");
-
/* Old versions of the Solaris assembler can not handle the difference of
labels in different sections, so force DW_EH_PE_datarel. */
#undef ASM_PREFERRED_EH_DATA_FORMAT
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University