mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 17:18:55 +00:00
Remove powerpc PE support
Plus some leftover powerpc lynxos support. bfd/ * coff-ppc.c: Delete. * pe-ppc.c: Delete. * pei-ppc.c: Delete. * Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Remove PE PPC. * coffcode.h (coff_set_arch_mach_hook, coff_set_flags): Remove PPCMAGIC code. (coff_write_object_contents): Remove PPC_PE code. * config.bfd: Move powerpcle-pe to removed targets. * configure.ac: Remove powerpc PE entries. * libcoff-in.h (ppc_allocate_toc_section): Delete. (ppc_process_before_allocation): Delete. * peXXigen.c: Remove POWERPC_LE_PE code and comments. * targets.c: Remove powerpc PE vectors. * po/SRC-POTFILES.in: Regenerate. * libcoff.h: Regenerate. * Makefile.in: Regenerate. * configure: Regenerate. binutils/ * dlltool.c: Remove powerpc PE support and comments. * configure.ac: Remove powerpc PE dlltool config. * configure: Regenerate. gas/ * config/obj-coff.h: Remove TE_PE support. * config/tc-ppc.c: Likewise. * config/tc-ppc.h: Likewise. * configure.tgt: Remove powerpc PE and powerpc lynxos. * testsuite/gas/cfi/cfi.exp (cfi-common-6): Remove powerpc PE condition. * testsuite/gas/macros/macros.exp: Don't xfail powerpc PE. include/ * coff/powerpc.h: Delete. ld/ * emulparams/ppcpe.sh: Delete. * scripttempl/ppcpe.sc: Delete. * emulparams/ppclynx.sh: Delete. * Makefile.am (ALL_EMULATION_SOURCES): Remove ppc PE and lynxos. * configure.tgt: Likewise. * emultempl/beos.em: Remove powerpc PE support. * emultempl/pe.em: Likewise. * po/BLD-POTFILES.in: Regenerate. * Makefile.in: Regenerate.
This commit is contained in:
@@ -1,208 +0,0 @@
|
||||
# A PE linker script for PowerPC.
|
||||
# Loosely based on Steve Chamberlain's pe.sc.
|
||||
# All new mistakes should be credited to Kim Knuttila (krk@cygnus.com)
|
||||
#
|
||||
# Copyright (C) 2014-2020 Free Software Foundation, Inc.
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification,
|
||||
# are permitted in any medium without royalty provided the copyright
|
||||
# notice and this notice are preserved.
|
||||
#
|
||||
|
||||
cat <<EOF
|
||||
/* Copyright (C) 2014-2020 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this script, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. */
|
||||
|
||||
OUTPUT_FORMAT(${OUTPUT_FORMAT})
|
||||
${LIB_SEARCH_DIRS}
|
||||
|
||||
/* Much of this layout was determined by delving into .exe files for
|
||||
the box generated by other compilers/linkers/etc. This means that
|
||||
if a particular feature did not happen to appear in one of the
|
||||
subject files, then it may not be yet supported.
|
||||
*/
|
||||
|
||||
/* It's "mainCRTStartup", not "_mainCRTStartup", and it's located in
|
||||
one of the two .lib files (libc.lib and kernel32.lib) that currently
|
||||
must be present on the link line. This means that you must use
|
||||
"-u mainCRTStartup" to make sure it gets included in the link.
|
||||
*/
|
||||
|
||||
${RELOCATING+ENTRY (mainCRTStartup)}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
/* text - the usual meaning */
|
||||
.text ${RELOCATING+ __image_base__ + __section_alignment__ } :
|
||||
{
|
||||
${RELOCATING+ KEEP (*(SORT_NONE(.init)))}
|
||||
*(.text)
|
||||
${RELOCATING+ *(.text.*)}
|
||||
*(.gcc_except_table)
|
||||
${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
|
||||
LONG (-1); *(.ctors); *(.ctor); LONG (0); }
|
||||
${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
|
||||
LONG (-1); *(.dtors); *(.dtor); LONG (0); }
|
||||
${RELOCATING+ KEEP (*(SORT_NONE(.fini)))}
|
||||
${RELOCATING+ etext = .};
|
||||
}
|
||||
|
||||
/* rdata - Read Only Runtime Data
|
||||
CTR sections: All of the CRT (read only C runtime data) sections
|
||||
appear at the start of the .rdata (read only runtime data)
|
||||
section, in the following order. Don't know if it matters or not.
|
||||
Not all sections are always present either.
|
||||
.rdata: compiler generated read only data
|
||||
.xdata: compiler generated exception handling table. (Most docs
|
||||
seem to suggest that this section is now deprecated infavor
|
||||
of the ydata section)
|
||||
.edata: The exported names table.
|
||||
*/
|
||||
.rdata BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.CRT\$XCA);
|
||||
*(.CRT\$XCC);
|
||||
*(.CRT\$XCZ);
|
||||
*(.CRT\$XIA);
|
||||
*(.CRT\$XIC);
|
||||
*(.CRT\$XIZ);
|
||||
*(.CRT\$XLA);
|
||||
*(.CRT\$XLZ);
|
||||
*(.CRT\$XPA);
|
||||
*(.CRT\$XPX);
|
||||
*(.CRT\$XPZ);
|
||||
*(.CRT\$XTA);
|
||||
*(.CRT\$XTZ);
|
||||
*(.rdata);
|
||||
*(.xdata);
|
||||
}
|
||||
|
||||
.edata BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.edata);
|
||||
}
|
||||
|
||||
/* data - initialized data
|
||||
.ydata: exception handling information.
|
||||
.data: the usual meaning.
|
||||
.data2: more of the same.
|
||||
.bss: For some reason, bss appears to be included in the data
|
||||
section, as opposed to being given a section of it's own.
|
||||
COMMON:
|
||||
*/
|
||||
.data BLOCK(__section_alignment__) :
|
||||
{
|
||||
__data_start__ = . ;
|
||||
*(.ydata);
|
||||
*(.data);
|
||||
*(.data2);
|
||||
__bss_start__ = . ;
|
||||
*(.bss) ;
|
||||
*(COMMON);
|
||||
__bss_end__ = . ;
|
||||
${RELOCATING+ end = .};
|
||||
__data_end__ = . ;
|
||||
}
|
||||
|
||||
/* The exception handling table. A sequence of 5 word entries. Section
|
||||
address and extent are placed in the DataDirectory.
|
||||
*/
|
||||
.pdata BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.pdata)
|
||||
;
|
||||
}
|
||||
|
||||
/* The idata section is chock full of magic bits.
|
||||
1. Boundaries around various idata parts are used to initialize
|
||||
some of the fields of the DataDirectory. In particular, the
|
||||
magic for 2, 4 and 5 are known to be used. Some compilers
|
||||
appear to generate magic section symbols for this purpose.
|
||||
Where we can, we catch such symbols and use our own. This of
|
||||
course is something less than a perfect strategy.
|
||||
2. The table of contents is placed immediately after idata4.
|
||||
The ".private.toc" sections are generated by the ppc bfd. The
|
||||
.toc variable is generated by gas, and resolved here. It is
|
||||
used to initialized function descriptors (and anyone else who
|
||||
needs the address of the module's toc). The only thing
|
||||
interesting about it at all? Most ppc instructions using it
|
||||
have a 16bit displacement field. The convention for addressing
|
||||
is to initialize the .toc value to 32K past the start of the
|
||||
actual toc, and subtract 32K from all references, thus using
|
||||
the entire 64K range. Naturally, the reloc code must agree
|
||||
on this number or you get pretty stupid results.
|
||||
*/
|
||||
.idata BLOCK(__section_alignment__) :
|
||||
{
|
||||
__idata2_magic__ = .;
|
||||
*(.idata\$2);
|
||||
__idata3_magic__ = .;
|
||||
*(.idata\$3);
|
||||
__idata4_magic__ = .;
|
||||
*(.idata\$4);
|
||||
. = ALIGN(4);
|
||||
.toc = . + 32768;
|
||||
*(.private.toc);
|
||||
__idata5_magic__ = .;
|
||||
*(.idata\$5);
|
||||
__idata6_magic__ = .;
|
||||
*(.idata\$6);
|
||||
__idata7_magic__ = .;
|
||||
*(.idata\$7);
|
||||
;
|
||||
}
|
||||
|
||||
/* reldata -- data that requires relocation
|
||||
*/
|
||||
.reldata BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.reldata)
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* Resources */
|
||||
.rsrc BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.rsrc\$01)
|
||||
*(.rsrc\$02)
|
||||
;
|
||||
}
|
||||
|
||||
.stab BLOCK(__section_alignment__) ${RELOCATING+(NOLOAD)} :
|
||||
{
|
||||
[ .stab ]
|
||||
}
|
||||
|
||||
.stabstr BLOCK(__section_alignment__) ${RELOCATING+(NOLOAD)} :
|
||||
{
|
||||
[ .stabstr ]
|
||||
}
|
||||
|
||||
/* The .reloc section is currently generated by the dlltool from Steve
|
||||
Chamberlain in a second pass of linking. Section address and extent
|
||||
are placed in the DataDirectory.
|
||||
*/
|
||||
.reloc BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.reloc)
|
||||
;
|
||||
}
|
||||
|
||||
/* We don't do anything useful with codeview debugger support or the
|
||||
directive section (yet). Hopefully, we junk them correctly.
|
||||
*/
|
||||
/DISCARD/ BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.debug\$S)
|
||||
*(.debug\$T)
|
||||
*(.debug\$F)
|
||||
*(.drectve)
|
||||
;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
Reference in New Issue
Block a user