mirror of
https://github.com/gcc-mirror/gcc.git
synced 2024-11-21 13:40:47 +00: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
|
#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
|
#endif
|
||||||
|
@ -348,9 +348,9 @@ do { \
|
|||||||
|
|
||||||
/* Kludge because of missing PE-COFF support for early LTO debug. */
|
/* Kludge because of missing PE-COFF support for early LTO debug. */
|
||||||
#undef TARGET_ASM_LTO_START
|
#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
|
#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
|
#undef ASM_COMMENT_START
|
||||||
#define ASM_COMMENT_START " #"
|
#define ASM_COMMENT_START " #"
|
||||||
|
@ -320,8 +320,6 @@ extern void i386_pe_asm_output_aligned_decl_common (FILE *, tree,
|
|||||||
const char *,
|
const char *,
|
||||||
HOST_WIDE_INT,
|
HOST_WIDE_INT,
|
||||||
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_start_function (FILE *, const char *, tree);
|
||||||
extern void i386_pe_end_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);
|
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;
|
static enum debug_info_levels saved_debug_info_level;
|
||||||
|
|
||||||
void
|
void
|
||||||
i386_pe_asm_lto_start (void)
|
mingw_pe_asm_lto_start (void)
|
||||||
{
|
{
|
||||||
saved_debug_info_level = debug_info_level;
|
saved_debug_info_level = debug_info_level;
|
||||||
debug_info_level = DINFO_LEVEL_NONE;
|
debug_info_level = DINFO_LEVEL_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
i386_pe_asm_lto_end (void)
|
mingw_pe_asm_lto_end (void)
|
||||||
{
|
{
|
||||||
debug_info_level = saved_debug_info_level;
|
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 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_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_declare_type (FILE *, const char *, bool, bool);
|
||||||
extern void mingw_pe_encode_section_info (tree, rtx, int);
|
extern void mingw_pe_encode_section_info (tree, rtx, int);
|
||||||
extern void mingw_pe_file_end (void);
|
extern void mingw_pe_file_end (void);
|
||||||
|
@ -219,7 +219,9 @@ static const struct coff_magic_struct coff_magic[] =
|
|||||||
/* i386. */
|
/* i386. */
|
||||||
{ 0x14c, 0, F_EXEC | IMAGE_FILE_SYSTEM | IMAGE_FILE_DLL },
|
{ 0x14c, 0, F_EXEC | IMAGE_FILE_SYSTEM | IMAGE_FILE_DLL },
|
||||||
/* x86_64. */
|
/* 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. */
|
/* See if we have a COFF file. */
|
||||||
|
Loading…
Reference in New Issue
Block a user