mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 02:44:18 +08:00
Add LTO support
The patch reuses the configuration for LTO from ix86 and adds the aarch64 architecture to the list of supported COFF headers. gcc/ChangeLog: * config/aarch64/cygming.h (TARGET_ASM_LTO_START): New. (TARGET_ASM_LTO_END): Likewise. * config/i386/cygming.h (TARGET_ASM_LTO_START): Update. (TARGET_ASM_LTO_END): Likewise. * config/i386/i386-protos.h (i386_pe_asm_lto_start): Delete. (i386_pe_asm_lto_end): Likewise. * config/mingw/winnt.cc (i386_pe_asm_lto_start): Rename into ... (mingw_pe_asm_lto_start): ... this. (i386_pe_asm_lto_end): Rename into ... (mingw_pe_asm_lto_end): ... this. * config/mingw/winnt.h (mingw_pe_asm_lto_start): New. (mingw_pe_asm_lto_end): Likewise. libiberty/ChangeLog: * simple-object-coff.c: Add aarch64.
This commit is contained in:
parent
55788176f1
commit
961c504109
@ -245,4 +245,10 @@ still needed for compilation. */
|
||||
|
||||
#define HAVE_64BIT_POINTERS 1
|
||||
|
||||
/* Kludge because of missing PE-COFF support for early LTO debug. */
|
||||
#undef TARGET_ASM_LTO_START
|
||||
#define TARGET_ASM_LTO_START mingw_pe_asm_lto_start
|
||||
#undef TARGET_ASM_LTO_END
|
||||
#define TARGET_ASM_LTO_END mingw_pe_asm_lto_end
|
||||
|
||||
#endif
|
||||
|
@ -348,9 +348,9 @@ do { \
|
||||
|
||||
/* Kludge because of missing PE-COFF support for early LTO debug. */
|
||||
#undef TARGET_ASM_LTO_START
|
||||
#define TARGET_ASM_LTO_START i386_pe_asm_lto_start
|
||||
#define TARGET_ASM_LTO_START mingw_pe_asm_lto_start
|
||||
#undef TARGET_ASM_LTO_END
|
||||
#define TARGET_ASM_LTO_END i386_pe_asm_lto_end
|
||||
#define TARGET_ASM_LTO_END mingw_pe_asm_lto_end
|
||||
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START " #"
|
||||
|
@ -320,8 +320,6 @@ extern void i386_pe_asm_output_aligned_decl_common (FILE *, tree,
|
||||
const char *,
|
||||
HOST_WIDE_INT,
|
||||
HOST_WIDE_INT);
|
||||
extern void i386_pe_asm_lto_start (void);
|
||||
extern void i386_pe_asm_lto_end (void);
|
||||
extern void i386_pe_start_function (FILE *, const char *, tree);
|
||||
extern void i386_pe_end_function (FILE *, const char *, tree);
|
||||
extern void i386_pe_end_cold_function (FILE *, const char *, tree);
|
||||
|
@ -832,14 +832,14 @@ mingw_pe_file_end (void)
|
||||
static enum debug_info_levels saved_debug_info_level;
|
||||
|
||||
void
|
||||
i386_pe_asm_lto_start (void)
|
||||
mingw_pe_asm_lto_start (void)
|
||||
{
|
||||
saved_debug_info_level = debug_info_level;
|
||||
debug_info_level = DINFO_LEVEL_NONE;
|
||||
}
|
||||
|
||||
void
|
||||
i386_pe_asm_lto_end (void)
|
||||
mingw_pe_asm_lto_end (void)
|
||||
{
|
||||
debug_info_level = saved_debug_info_level;
|
||||
}
|
||||
|
@ -23,6 +23,8 @@ http://www.gnu.org/licenses/. */
|
||||
extern tree mingw_handle_selectany_attribute (tree *, tree, tree, int, bool *);
|
||||
|
||||
extern void mingw_pe_asm_named_section (const char *, unsigned int, tree);
|
||||
extern void mingw_pe_asm_lto_start (void);
|
||||
extern void mingw_pe_asm_lto_end (void);
|
||||
extern void mingw_pe_declare_type (FILE *, const char *, bool, bool);
|
||||
extern void mingw_pe_encode_section_info (tree, rtx, int);
|
||||
extern void mingw_pe_file_end (void);
|
||||
|
@ -219,7 +219,9 @@ static const struct coff_magic_struct coff_magic[] =
|
||||
/* i386. */
|
||||
{ 0x14c, 0, F_EXEC | IMAGE_FILE_SYSTEM | IMAGE_FILE_DLL },
|
||||
/* x86_64. */
|
||||
{ 0x8664, 0, F_EXEC | IMAGE_FILE_SYSTEM | IMAGE_FILE_DLL }
|
||||
{ 0x8664, 0, F_EXEC | IMAGE_FILE_SYSTEM | IMAGE_FILE_DLL },
|
||||
/* AArch64. */
|
||||
{ 0xaa64, 0, F_EXEC | IMAGE_FILE_SYSTEM | IMAGE_FILE_DLL }
|
||||
};
|
||||
|
||||
/* See if we have a COFF file. */
|
||||
|
Loading…
Reference in New Issue
Block a user