summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndris Pavenis2018-07-28 14:29:32 +0300
committerAndris Pavenis2018-08-03 19:49:08 +0300
commit636c9e1f8f2ece5cd0cc89a2f3a3656ff33d6f5e (patch)
treef5638be2cd26571954ae442de843e23a9b949eb8
parent1e6fdc4da247a7c68cade574285069fbea8efcc7 (diff)
downloadaur-636c9e1f8f2ece5cd0cc89a2f3a3656ff33d6f5e.tar.gz
LTO and debug info related fix from Jan Willem Jagersma
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD4
-rw-r--r--gcc-djgpp.diff81
3 files changed, 85 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 10635f720cd..17da44ecb07 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = djgpp-gcc
pkgdesc = GCC for the djgpp cross-compiler
pkgver = 8.2.0
- pkgrel = 1
+ pkgrel = 2
url = http://gcc.gnu.org
arch = i686
arch = x86_64
@@ -25,7 +25,7 @@ pkgbase = djgpp-gcc
sha256sums = 196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080
sha256sums = 6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b
sha256sums = c03dbd61274e1ce14f84366abf348d75779bbd6e0bc32b9f4fd74f1ce54a5ef0
- sha256sums = b7a0dece2451a4b9c0abf4b3828ebc06b580487eb9724a2bc298c0f3421a3dda
+ sha256sums = a1c0cd9a7ed1803efee3b585e43596630ea3bfeca1b3e37321e6468bd3d30e96
pkgname = djgpp-gcc
diff --git a/PKGBUILD b/PKGBUILD
index bd982ae4766..f59ef65032e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@ pkgver=8.2.0
_target="i686-pc-msdosdjgpp"
_islver=0.18
_djver=2.05
-pkgrel=1
+pkgrel=2
pkgdesc="GCC for the djgpp cross-compiler"
arch=('i686' 'x86_64')
url="http://gcc.gnu.org"
@@ -24,7 +24,7 @@ source=("https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz"
sha256sums=('196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080'
'6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b'
'c03dbd61274e1ce14f84366abf348d75779bbd6e0bc32b9f4fd74f1ce54a5ef0'
- 'b7a0dece2451a4b9c0abf4b3828ebc06b580487eb9724a2bc298c0f3421a3dda')
+ 'a1c0cd9a7ed1803efee3b585e43596630ea3bfeca1b3e37321e6468bd3d30e96')
prepare() {
cd gcc-$pkgver
diff --git a/gcc-djgpp.diff b/gcc-djgpp.diff
index 961640c8dcf..6db9acafe89 100644
--- a/gcc-djgpp.diff
+++ b/gcc-djgpp.diff
@@ -97,6 +97,55 @@ index 1e2ffa354a3..40d3b689bbd 100644
pragma Import (C, Current_Time, "__gnat_current_time");
pragma Import (C, Current_Process_Id, "__gnat_current_process_id");
+diff --git a/gcc/config/i386/djgpp.c b/gcc/config/i386/djgpp.c
+index f168eed6f06..d187c3a7452 100644
+--- a/gcc/config/i386/djgpp.c
++++ b/gcc/config/i386/djgpp.c
+@@ -47,3 +47,20 @@ i386_djgpp_asm_named_section(const char *name, unsigned int flags,
+
+ fprintf (asm_out_file, "\t.section\t%s,\"%s\"\n", name, flagchars);
+ }
++
++/* Kludge because of missing COFF support for early LTO debug. */
++
++static enum debug_info_levels saved_debug_info_level;
++
++void
++i386_djgpp_asm_lto_start (void)
++{
++ saved_debug_info_level = debug_info_level;
++ debug_info_level = DINFO_LEVEL_NONE;
++}
++
++void
++i386_djgpp_asm_lto_end (void)
++{
++ debug_info_level = saved_debug_info_level;
++}
+diff --git a/gcc/config/i386/djgpp.h b/gcc/config/i386/djgpp.h
+index 42130edf95c..e95bc09bf69 100644
+--- a/gcc/config/i386/djgpp.h
++++ b/gcc/config/i386/djgpp.h
+@@ -160,8 +160,19 @@ along with GCC; see the file COPYING3. If not see
+ #undef MAKE_DECL_ONE_ONLY
+ #define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1)
+
++#undef TARGET_COFF
++#define TARGET_COFF 1
++
++/* Kludge because of missing COFF support for early LTO debug. */
++#undef TARGET_ASM_LTO_START
++#define TARGET_ASM_LTO_START i386_djgpp_asm_lto_start
++#undef TARGET_ASM_LTO_END
++#define TARGET_ASM_LTO_END i386_djgpp_asm_lto_end
++
+ /* Function protypes for gcc/i386/djgpp.c */
+
+ void
+ i386_djgpp_asm_named_section(const char *name, unsigned int flags,
+ tree decl);
++void i386_djgpp_asm_lto_start (void);
++void i386_djgpp_asm_lto_end (void);
diff --git a/gcc/config/i386/xm-djgpp.h b/gcc/config/i386/xm-djgpp.h
index 02096925a88..066417f1d50 100644
--- a/gcc/config/i386/xm-djgpp.h
@@ -122,6 +171,38 @@ index 02096925a88..066417f1d50 100644
#undef MAX_OFILE_ALIGNMENT
#define MAX_OFILE_ALIGNMENT 128
+diff --git a/gcc/defaults.h b/gcc/defaults.h
+index 78a08a33f12..9035b333be8 100644
+--- a/gcc/defaults.h
++++ b/gcc/defaults.h
+@@ -1282,6 +1282,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ #define TARGET_PECOFF 0
+ #endif
+
++#ifndef TARGET_COFF
++#define TARGET_COFF 0
++#endif
++
+ #ifndef EH_RETURN_HANDLER_RTX
+ #define EH_RETURN_HANDLER_RTX NULL
+ #endif
+diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
+index d94cf7dc928..9f6855e6695 100644
+--- a/gcc/dwarf2out.c
++++ b/gcc/dwarf2out.c
+@@ -31832,10 +31832,10 @@ dwarf2out_early_finish (const char *filename)
+
+ /* Do not generate DWARF assembler now when not producing LTO bytecode. */
+ if ((!flag_generate_lto && !flag_generate_offload)
+- /* FIXME: Disable debug info generation for PE-COFF targets since the
++ /* 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)
++ || TARGET_PECOFF || TARGET_COFF)
+ return;
+
+ /* Now as we are going to output for LTO initialize sections and labels
diff --git a/gcc/gcov-tool.c b/gcc/gcov-tool.c
index 15fd710b18c..91d4c87b31b 100644
--- a/gcc/gcov-tool.c