===================================================================
@@ -356,6 +356,12 @@ do { \
#undef TARGET_ASM_FILE_END
#define TARGET_ASM_FILE_END i386_pe_file_end
+/* 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
+#undef TARGET_ASM_LTO_END
+#define TARGET_ASM_LTO_END i386_pe_asm_lto_end
+
#undef ASM_COMMENT_START
#define ASM_COMMENT_START " #"
===================================================================
@@ -254,6 +254,8 @@ extern void i386_pe_asm_output_aligned_d
HOST_WIDE_INT,
HOST_WIDE_INT);
extern void i386_pe_file_end (void);
+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);
===================================================================
@@ -808,6 +808,23 @@ i386_pe_file_end (void)
}
}
+/* Kludge because of missing PE-COFF support for early LTO debug. */
+
+static enum debug_info_levels saved_debug_info_level;
+
+void
+i386_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)
+{
+ debug_info_level = saved_debug_info_level;
+}
+
/* x64 Structured Exception Handling unwind info. */
===================================================================
@@ -31807,7 +31807,11 @@ dwarf2out_early_finish (const char *file
early_dwarf_finished = true;
/* Do not generate DWARF assembler now when not producing LTO bytecode. */
- if (!flag_generate_lto && !flag_generate_offload)
+ if ((!flag_generate_lto && !flag_generate_offload)
+ /* FIXME: Disable debug info generation for PE-COFF targets since the
+ copy_lto_debug_sections operation of the simple object support in
+ libiberty is not implemented for them yet. */
+ || TARGET_PECOFF)
return;
/* Now as we are going to output for LTO initialize sections and labels
===================================================================
@@ -983,7 +983,7 @@ debug_objcopy (const char *infile)
infile = fname;
inoff = (off_t) loffset;
}
- int infd = open (infile, O_RDONLY);
+ int infd = open (infile, O_RDONLY | O_BINARY);
if (infd == -1)
return NULL;
simple_object_read *inobj = simple_object_start_read (infd, inoff,