diff mbox

Don't use FORCE_CODE_SECTION_ALIGN on Solaris/x86

Message ID yddd3j8tbqk.fsf@manam.CeBiTec.Uni-Bielefeld.DE
State New
Headers show

Commit Message

Rainer Orth May 24, 2011, 2:27 p.m. UTC
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 mbox

Patch

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