summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO12
-rw-r--r--PKGBUILD22
-rw-r--r--gcc-djgpp.diff507
3 files changed, 329 insertions, 212 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 1a46649265d1..daf3d7124379 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = djgpp-gcc
pkgdesc = GCC for the djgpp cross-compiler
- pkgver = 11.1.0
+ pkgver = 14.1.0
pkgrel = 1
url = http://gcc.gnu.org
arch = i686
@@ -11,6 +11,7 @@ pkgbase = djgpp-gcc
makedepends = unzip
depends = zlib
depends = libmpc
+ depends = libisl
depends = djgpp-binutils>=2.30
depends = djgpp-djcrx
depends = gcc-ada
@@ -19,13 +20,12 @@ pkgbase = djgpp-gcc
options = !strip
options = staticlibs
options = !emptydirs
- source = https://ftp.gnu.org/gnu/gcc/gcc-11.1.0/gcc-11.1.0.tar.xz
- source = http://isl.gforge.inria.fr/isl-0.20.tar.bz2
+ options = !buildflags
+ source = https://ftp.gnu.org/gnu/gcc/gcc-14.1.0/gcc-14.1.0.tar.xz
source = lto.patch
source = gcc-djgpp.diff
- sha256sums = 4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf
- sha256sums = b587e083eb65a8b394e833dea1744f21af3f0e413a448c17536b5549ae42a4c2
+ sha256sums = e283c654987afe3de9d8080bc0bd79534b5ca0d681a73a11ff2b5d3767426840
sha256sums = c03dbd61274e1ce14f84366abf348d75779bbd6e0bc32b9f4fd74f1ce54a5ef0
- sha256sums = 2dfebf23706673e09bffdd367464ccc29e29b5fbcc38885511554430bec4d225
+ sha256sums = 2ccbf490286562def128c7585e294f05c1cad9790ce6306076580b3901b4fec0
pkgname = djgpp-gcc
diff --git a/PKGBUILD b/PKGBUILD
index c3057666a1fc..a406b859d520 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,9 +3,8 @@
# Contributor: felix <base64 -d <<< ZmVsaXgudm9uLnNAcG9zdGVvLmRlCg==>
pkgname=djgpp-gcc
-pkgver=11.1.0
+pkgver=14.1.0
_target="i686-pc-msdosdjgpp"
-_islver=0.20
_djver=2.05
_build_ada=no
pkgrel=1
@@ -14,26 +13,21 @@ arch=('i686' 'x86_64')
url="http://gcc.gnu.org"
license=('GPL3' 'LGPL3')
groups=('djgpp')
-depends=('zlib' 'libmpc' 'djgpp-binutils>=2.30' 'djgpp-djcrx' 'gcc-ada')
+depends=('zlib' 'libmpc' 'libisl' 'djgpp-binutils>=2.30' 'djgpp-djcrx' 'gcc-ada')
makedepends=('unzip')
optdepends=('djgpp-djcrx: headers and utilities')
optdepends+=('djgpp-djcrx-bootstrap: first build of djgpp-gcc before djgpp-djcrx is built')
-options=('!strip' 'staticlibs' '!emptydirs')
+options=('!strip' 'staticlibs' '!emptydirs' '!buildflags')
source=("https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz"
- "http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2"
"lto.patch"
"gcc-djgpp.diff")
-sha256sums=('4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf'
- 'b587e083eb65a8b394e833dea1744f21af3f0e413a448c17536b5549ae42a4c2'
+sha256sums=('e283c654987afe3de9d8080bc0bd79534b5ca0d681a73a11ff2b5d3767426840'
'c03dbd61274e1ce14f84366abf348d75779bbd6e0bc32b9f4fd74f1ce54a5ef0'
- '2dfebf23706673e09bffdd367464ccc29e29b5fbcc38885511554430bec4d225')
+ '2ccbf490286562def128c7585e294f05c1cad9790ce6306076580b3901b4fec0')
prepare() {
cd gcc-$pkgver
- # link isl for in-tree build
- ln -fs "../isl-${_islver}" isl
-
# build the lto plugin
patch -Np0 < ../lto.patch
@@ -46,10 +40,10 @@ build() {
rm -rf gcc-build-native gcc-install-native gcc-build-$_target
if [ "$_build_ada" == "yes" ] ; then
_bootstrap_languages=c,c++,ada
- _build_languages=c,c++,fortran,objc,obj-c++,ada
+ _build_languages=c,c++,fortran,objc,obj-c++,ada,m2
else
_bootstrap_languages=c,c++
- _build_languages=c,c++,fortran,objc,obj-c++
+ _build_languages=c,c++,fortran,objc,obj-c++,m2
fi
if [ "$(gcc -dumpversion | sed -e 's:\..*::')" != "$(echo $pkgver | sed -e 's:\..*::')" ] ; then
echo "Different GCC major version: building native compiler at first"
@@ -88,7 +82,7 @@ package_djgpp-gcc() {
if [ -f $file ] ; then strip $file; else echo $file not found; fi
done
- ${_target}-strip -v -g $pkgdir/usr/lib/gcc/i686-pc-msdosdjgpp/11.1.0/*.a
+ ${_target}-strip -v -g $pkgdir/usr/lib/gcc/i686-pc-msdosdjgpp/$pkgver/*.a
${_target}-strip -v -g $pkgdir/usr/i686-pc-msdosdjgpp/lib/*.a
# for compatibility
diff --git a/gcc-djgpp.diff b/gcc-djgpp.diff
index 0ea548e84341..6fde412ce7e2 100644
--- a/gcc-djgpp.diff
+++ b/gcc-djgpp.diff
@@ -1,88 +1,28 @@
-diff --git a/Makefile.in b/Makefile.in
-index 047be0255e2..0ba4dbaa0a2 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -1378,7 +1378,6 @@ dvi-host: maybe-dvi-itcl
- dvi-host: maybe-dvi-ld
- dvi-host: maybe-dvi-libbacktrace
- dvi-host: maybe-dvi-libcpp
--dvi-host: maybe-dvi-libcody
- dvi-host: maybe-dvi-libdecnumber
- dvi-host: maybe-dvi-libgui
- dvi-host: maybe-dvi-libiberty
-@@ -1469,7 +1468,6 @@ pdf-host: maybe-pdf-itcl
- pdf-host: maybe-pdf-ld
- pdf-host: maybe-pdf-libbacktrace
- pdf-host: maybe-pdf-libcpp
--pdf-host: maybe-pdf-libcody
- pdf-host: maybe-pdf-libdecnumber
- pdf-host: maybe-pdf-libgui
- pdf-host: maybe-pdf-libiberty
-@@ -1560,7 +1558,6 @@ html-host: maybe-html-itcl
- html-host: maybe-html-ld
- html-host: maybe-html-libbacktrace
- html-host: maybe-html-libcpp
--html-host: maybe-html-libcody
- html-host: maybe-html-libdecnumber
- html-host: maybe-html-libgui
- html-host: maybe-html-libiberty
-@@ -1651,7 +1648,6 @@ TAGS-host: maybe-TAGS-itcl
- TAGS-host: maybe-TAGS-ld
- TAGS-host: maybe-TAGS-libbacktrace
- TAGS-host: maybe-TAGS-libcpp
--TAGS-host: maybe-TAGS-libcody
- TAGS-host: maybe-TAGS-libdecnumber
- TAGS-host: maybe-TAGS-libgui
- TAGS-host: maybe-TAGS-libiberty
-@@ -1742,7 +1738,6 @@ install-info-host: maybe-install-info-itcl
- install-info-host: maybe-install-info-ld
- install-info-host: maybe-install-info-libbacktrace
- install-info-host: maybe-install-info-libcpp
--install-info-host: maybe-install-info-libcody
- install-info-host: maybe-install-info-libdecnumber
- install-info-host: maybe-install-info-libgui
- install-info-host: maybe-install-info-libiberty
-@@ -1833,7 +1828,6 @@ install-pdf-host: maybe-install-pdf-itcl
- install-pdf-host: maybe-install-pdf-ld
- install-pdf-host: maybe-install-pdf-libbacktrace
- install-pdf-host: maybe-install-pdf-libcpp
--install-pdf-host: maybe-install-pdf-libcody
- install-pdf-host: maybe-install-pdf-libdecnumber
- install-pdf-host: maybe-install-pdf-libgui
- install-pdf-host: maybe-install-pdf-libiberty
-@@ -1924,7 +1918,6 @@ install-html-host: maybe-install-html-itcl
- install-html-host: maybe-install-html-ld
- install-html-host: maybe-install-html-libbacktrace
- install-html-host: maybe-install-html-libcpp
--install-html-host: maybe-install-html-libcody
- install-html-host: maybe-install-html-libdecnumber
- install-html-host: maybe-install-html-libgui
- install-html-host: maybe-install-html-libiberty
-diff --git a/configure.ac b/configure.ac
-index 088e735c5db..6e5dbf631c0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1465,12 +1465,12 @@ esac
- # C++11 compiler can still start the bootstrap. Otherwise, if building GCC,
- # require C++11 (or higher).
- if test "$enable_bootstrap:$GXX" = "yes:yes"; then
-- CXX="$CXX -std=c++11"
-+ AX_CXX_COMPILE_STDCXX(11, [ext])
- elif test "$have_compiler" = yes; then
-- AX_CXX_COMPILE_STDCXX(11)
-+ AX_CXX_COMPILE_STDCXX(11, [ext])
-
- if test "${build}" != "${host}"; then
-- AX_CXX_COMPILE_STDCXX(11, [], [], [_FOR_BUILD])
-+ AX_CXX_COMPILE_STDCXX(11, [ext], [], [_FOR_BUILD])
- fi
- fi
-
+diff --git a/c++tools/resolver.cc b/c++tools/resolver.cc
+index 1cd583c750c..534cb35037e 100644
+--- a/c++tools/resolver.cc
++++ b/c++tools/resolver.cc
+@@ -33,13 +33,13 @@ along with GCC; see the file COPYING3. If not see
+ #define MAPPED_READING 0
+ #else
+ #ifdef IN_GCC
+-#if HAVE_MMAP_FILE && _POSIX_MAPPED_FILES > 0
++#if HAVE_MMAP_FILE && _POSIX_MAPPED_FILES > 0 && !defined(__DJGPP__)
+ #define MAPPED_READING 1
+ #else
+ #define MAPPED_READING 0
+ #endif
+ #else
+-#ifdef HAVE_SYS_MMAN_H
++#if defined(HAVE_SYS_MMAN_H) && !defined(__DJGPP__)
+ #include <sys/mman.h>
+ #define MAPPED_READING 1
+ #else
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
-index 0a90c92402c..d1d0fc7b1fe 100644
+index 74aa3c4128e..5bc56e89b37 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
-@@ -297,6 +297,12 @@ char __gnat_dir_separator = DIR_SEPARATOR;
+@@ -302,6 +302,12 @@ char __gnat_dir_separator = DIR_SEPARATOR;
char __gnat_path_separator = PATH_SEPARATOR;
@@ -108,20 +48,20 @@ index 0a90c92402c..d1d0fc7b1fe 100644
/* Return nonzero if file names are case sensitive. */
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
-index d88c354c9a4..88b81133168 100644
+index f6404c0b1eb1..b7a161d1eae5 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
-@@ -1080,7 +1080,7 @@ ada/generated/gnatvsn.ads: ada/gnatvsn.ads BASE-VER ada/GNAT_DATE
+@@ -1200,7 +1200,7 @@ ada/generated/gnatvsn.ads: ada/gnatvsn.ads BASE-VER ada/GNAT_DATE
s=`cat $(srcdir)/BASE-VER | sed -e "s/\([0-9]*\)\.\([0-9]*\)\..*/-\1\2/g"`; \
d=`if test -f $(srcdir)/ada/GNAT_DATE; then \
cat $(srcdir)/ada/GNAT_DATE; else date +%Y%m%d; fi`; \
-- cat $< | sed -e "/Version/s/(\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*)/($$d$$s)/g" >$@
-+ cat $< | sed -e "/Version/s/(\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*)/($$d$$s)/g" | tr -d \\\015 >$@
+- cat $< | sed -e "/Version/s/(\([0-9]\{8\}\).*)/($$d$$s)/g" >$@
++ cat $< | sed -e "/Version/s/(\([0-9]\{8\}\).*)/($$d$$s)/g" | tr -d \\\015 >$@
ada/gnatvsn.o : ada/gnatvsn.adb ada/generated/gnatvsn.ads
- $(CC) -c $(ALL_ADAFLAGS) -Iada/generated -I../ada/generated $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION)
+ $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION)
diff --git a/gcc/ada/libgnarl/s-taprop__dummy.adb b/gcc/ada/libgnarl/s-taprop__dummy.adb
-index 7e9093a58fc..84b80d3fd61 100644
+index 90c4cd4cf72f..fac564646408 100644
--- a/gcc/ada/libgnarl/s-taprop__dummy.adb
+++ b/gcc/ada/libgnarl/s-taprop__dummy.adb
@@ -37,7 +37,7 @@
@@ -134,10 +74,10 @@ index 7e9093a58fc..84b80d3fd61 100644
pragma Warnings (Off);
-- Turn off warnings since so many unreferenced parameters
diff --git a/gcc/ada/libgnat/s-os_lib.adb b/gcc/ada/libgnat/s-os_lib.adb
-index 93522bc13eb..f61e7965fdf 100644
+index 20e109aaa0ba..dbc5c9a8647f 100644
--- a/gcc/ada/libgnat/s-os_lib.adb
+++ b/gcc/ada/libgnat/s-os_lib.adb
-@@ -76,7 +76,7 @@ package body System.OS_Lib is
+@@ -73,7 +73,7 @@ package body System.OS_Lib is
-- The following are used by Create_Temp_File
@@ -146,7 +86,7 @@ index 93522bc13eb..f61e7965fdf 100644
-- Used to initialize Current_Temp_File_Name and Temp_File_Name_Last_Digit
Current_Temp_File_Name : String := First_Temp_File_Name;
-@@ -2318,9 +2318,10 @@ package body System.OS_Lib is
+@@ -2275,9 +2275,10 @@ package body System.OS_Lib is
-- * Check the drive letter
-- * Remove all double-quotes
@@ -160,10 +100,10 @@ index 93522bc13eb..f61e7965fdf 100644
if Path_Buffer (Index) = '/' then
Path_Buffer (Index) := Directory_Separator;
diff --git a/gcc/ada/libgnat/s-os_lib.ads b/gcc/ada/libgnat/s-os_lib.ads
-index f786cca8143..756766d4e71 100644
+index 46e11f708a20..49453581ff82 100644
--- a/gcc/ada/libgnat/s-os_lib.ads
+++ b/gcc/ada/libgnat/s-os_lib.ads
-@@ -1091,9 +1091,12 @@ package System.OS_Lib is
+@@ -1100,9 +1100,12 @@ package System.OS_Lib is
Path_Separator : constant Character;
-- The character to separate paths in an environment variable value
@@ -177,7 +117,7 @@ index f786cca8143..756766d4e71 100644
pragma Import (C, Current_Process_Id, "__gnat_current_process_id");
diff --git a/gcc/ada/s-oscons-tmplt.c b/gcc/ada/s-oscons-tmplt.c
-index 582c35ef7db..647ca3f88f4 100644
+index 4e512b96031..d17aec7b85e 100644
--- a/gcc/ada/s-oscons-tmplt.c
+++ b/gcc/ada/s-oscons-tmplt.c
@@ -121,7 +121,7 @@ pragma Style_Checks ("M32766");
@@ -189,11 +129,11 @@ index 582c35ef7db..647ca3f88f4 100644
#include <poll.h>
#endif
-diff --git a/gcc/collect2.c b/gcc/collect2.c
-index bd371430ab7..e925d83b004 100644
---- a/gcc/collect2.c
-+++ b/gcc/collect2.c
-@@ -1189,18 +1189,27 @@ main (int argc, char **argv)
+diff --git a/gcc/collect2.cc b/gcc/collect2.cc
+index 902014a9cc1..cfe1a503532 100644
+--- a/gcc/collect2.cc
++++ b/gcc/collect2.cc
+@@ -1162,18 +1162,27 @@ main (int argc, char **argv)
*ld1++ = *ld2++ = ld_file_name;
/* Make temp file names. */
@@ -225,10 +165,10 @@ index bd371430ab7..e925d83b004 100644
#ifdef COLLECT_EXPORT_LIST
export_file = make_temp_file (".x");
#endif
-diff --git a/gcc/config/i386/djgpp.c b/gcc/config/i386/djgpp.c
-index 4d9548aed8d..dca15602642 100644
---- a/gcc/config/i386/djgpp.c
-+++ b/gcc/config/i386/djgpp.c
+diff --git a/gcc/config/i386/djgpp.cc b/gcc/config/i386/djgpp.cc
+index a553c771d4f1..0519294a6248 100644
+--- a/gcc/config/i386/djgpp.cc
++++ b/gcc/config/i386/djgpp.cc
@@ -36,6 +36,8 @@ i386_djgpp_asm_named_section(const char *name, unsigned int flags,
*f++ = 'w';
if (flags & SECTION_CODE)
@@ -239,7 +179,7 @@ index 4d9548aed8d..dca15602642 100644
/* LTO sections need 1-byte alignment to avoid confusing the
zlib decompression algorithm with trailing zero pad bytes. */
diff --git a/gcc/config/i386/xm-djgpp.h b/gcc/config/i386/xm-djgpp.h
-index f53b348ad4b..fc17fc89f88 100644
+index ee9e400be142..6b34b8c39814 100644
--- a/gcc/config/i386/xm-djgpp.h
+++ b/gcc/config/i386/xm-djgpp.h
@@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see
@@ -264,7 +204,7 @@ index f53b348ad4b..fc17fc89f88 100644
#define MAX_OFILE_ALIGNMENT 128
diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
-index b9e02168d55..0fb15fd0c7b 100644
+index f76fc03b76f..f4494be34e4 100644
--- a/gcc/cp/mapper-client.cc
+++ b/gcc/cp/mapper-client.cc
@@ -19,7 +19,7 @@ along with GCC; see the file COPYING3. If not see
@@ -276,11 +216,25 @@ index b9e02168d55..0fb15fd0c7b 100644
// Solaris11's socket header used bcopy, which we poison. cody.hh
// will include it later under the above check
#include <sys/socket.h>
-diff --git a/gcc/gcov-tool.c b/gcc/gcov-tool.c
-index 71bdfdaa1f0..31bd5b1733f 100644
---- a/gcc/gcov-tool.c
-+++ b/gcc/gcov-tool.c
-@@ -56,11 +56,18 @@ static bool verbose;
+diff --git a/gcc/diagnostic-show-locus.cc b/gcc/diagnostic-show-locus.cc
+index ceccc0b793d..047eab85ef8 100644
+--- a/gcc/diagnostic-show-locus.cc
++++ b/gcc/diagnostic-show-locus.cc
+@@ -5796,7 +5796,9 @@ diagnostic_show_locus_cc_tests ()
+ for_each_line_table_case (test_fixit_replace_containing_newline);
+ for_each_line_table_case (test_fixit_deletion_affecting_newline);
+ for_each_line_table_case (test_tab_expansion);
++#ifndef __DJGPP__
+ for_each_line_table_case (test_escaping_bytes_1);
++#endif
+ for_each_line_table_case (test_escaping_bytes_2);
+
+ test_line_numbers_multiline_range ();
+diff --git a/gcc/gcov-tool.cc b/gcc/gcov-tool.cc
+index 100f7357bcf..5955592bb92 100644
+--- a/gcc/gcov-tool.cc
++++ b/gcc/gcov-tool.cc
+@@ -58,11 +58,18 @@ static bool verbose;
/* Remove file NAME if it has a gcda suffix. */
@@ -299,7 +253,7 @@ index 71bdfdaa1f0..31bd5b1733f 100644
{
int ret = 0;
int len = strlen (name);
-@@ -82,7 +89,11 @@ static int
+@@ -84,7 +91,11 @@ static int
unlink_profile_dir (const char *path ATTRIBUTE_UNUSED)
{
#if HAVE_FTW_H
@@ -311,10 +265,10 @@ index 71bdfdaa1f0..31bd5b1733f 100644
#else
return -1;
#endif
-diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
-index 357bda13f97..db375610751 100644
---- a/gcc/ggc-common.c
-+++ b/gcc/ggc-common.c
+diff --git a/gcc/ggc-common.cc b/gcc/ggc-common.cc
+index caf456f7244..b0d385116d5 100644
+--- a/gcc/ggc-common.cc
++++ b/gcc/ggc-common.cc
@@ -31,6 +31,12 @@ along with GCC; see the file COPYING3. If not see
#include "plugin.h"
#include "options.h"
@@ -325,11 +279,11 @@ index 357bda13f97..db375610751 100644
+}
+#endif
+
- /* When set, ggc_collect will do collection. */
- bool ggc_force_collect;
+ /* When true, protect the contents of the identifier hash table. */
+ bool ggc_protect_identifiers = true;
diff --git a/gcc/ginclude/float.h b/gcc/ginclude/float.h
-index a0cbd7fb0d8..cf71ac8b695 100644
+index 47f41f90fedc..685cad344bff 100644
--- a/gcc/ginclude/float.h
+++ b/gcc/ginclude/float.h
@@ -25,6 +25,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -344,7 +298,7 @@ index a0cbd7fb0d8..cf71ac8b695 100644
#define _FLOAT_H___
diff --git a/include/libiberty.h b/include/libiberty.h
-index f4c0fe11d6f..e1a28b83cce 100644
+index 32385911690..b22dbc7ea26 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -108,6 +108,7 @@ extern int countargv (char * const *);
@@ -372,11 +326,11 @@ index 789ce9e70b7..8794e4dd8e6 100644
// C++
#include <memory>
#include <string>
-diff --git a/libcpp/files.c b/libcpp/files.c
-index 6e20fc5887f..44fd90f83af 100644
---- a/libcpp/files.c
-+++ b/libcpp/files.c
-@@ -742,6 +742,10 @@ read_file_guts (cpp_reader *pfile, _cpp_file *file, location_t loc)
+diff --git a/libcpp/files.cc b/libcpp/files.cc
+index c61df339e20..42a6888451d 100644
+--- a/libcpp/files.cc
++++ b/libcpp/files.cc
+@@ -763,6 +763,10 @@ read_file_guts (cpp_reader *pfile, _cpp_file *file, location_t loc,
cpp_error_at (pfile, CPP_DL_WARNING, loc,
"%s is shorter than expected", file->path);
@@ -385,13 +339,13 @@ index 6e20fc5887f..44fd90f83af 100644
+ if (total>0 && buf[total-1]==0x1A) total--;
+
file->buffer = _cpp_convert_input (pfile,
- CPP_OPTION (pfile, input_charset),
+ input_charset,
buf, size + 16, total,
-diff --git a/libcpp/lex.c b/libcpp/lex.c
-index 06bcc31c87e..ae28ac4ff4b 100644
---- a/libcpp/lex.c
-+++ b/libcpp/lex.c
-@@ -502,6 +502,13 @@ init_vectorized_lexer (void)
+diff --git a/libcpp/lex.cc b/libcpp/lex.cc
+index c9e44e6cccc..4933e81dfbc 100644
+--- a/libcpp/lex.cc
++++ b/libcpp/lex.cc
+@@ -505,6 +505,13 @@ init_vectorized_lexer (void)
search_line_fast_type impl = search_line_acc_char;
int minimum = 0;
@@ -405,7 +359,7 @@ index 06bcc31c87e..ae28ac4ff4b 100644
#if defined(__SSE4_2__)
minimum = 3;
#elif defined(__SSE2__)
-@@ -528,6 +535,8 @@ init_vectorized_lexer (void)
+@@ -531,6 +538,8 @@ init_vectorized_lexer (void)
impl = search_line_mmx;
}
@@ -415,10 +369,10 @@ index 06bcc31c87e..ae28ac4ff4b 100644
}
diff --git a/libffi/src/x86/sysv.S b/libffi/src/x86/sysv.S
-index 78f245bda07..1ae18b248a7 100644
+index c7a0fb51b48c..5c724e24d8ba 100644
--- a/libffi/src/x86/sysv.S
+++ b/libffi/src/x86/sysv.S
-@@ -822,7 +822,7 @@ ENDF(C(__x86.get_pc_thunk.dx))
+@@ -968,7 +968,7 @@ ENDF(C(__x86.get_pc_thunk.dx))
#ifdef __APPLE__
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EHFrame0:
@@ -428,10 +382,10 @@ index 78f245bda07..1ae18b248a7 100644
#elif defined(HAVE_AS_X86_64_UNWIND_SECTION_TYPE)
.section .eh_frame,EH_FRAME_FLAGS,@unwind
diff --git a/libgcc/libgcov-util.c b/libgcc/libgcov-util.c
-index bc7416d99bf..3a47764bfa5 100644
+index ba4b90a480d..e5652169bb2 100644
--- a/libgcc/libgcov-util.c
+++ b/libgcc/libgcov-util.c
-@@ -389,7 +389,11 @@ read_gcda_file (const char *filename)
+@@ -381,7 +381,11 @@ read_gcda_file (const char *filename)
static int
ftw_read_file (const char *filename,
@@ -442,28 +396,28 @@ index bc7416d99bf..3a47764bfa5 100644
+#endif
int type)
{
- int filename_len;
+ size_t filename_len;
diff --git a/libgcc/libgcov.h b/libgcc/libgcov.h
-index 7b0d367ec52..a8be4f0be22 100644
+index 9d83a27ed90..10d638a5055 100644
--- a/libgcc/libgcov.h
+++ b/libgcc/libgcov.h
-@@ -45,6 +45,11 @@
- #include "libgcc_tm.h"
- #include "gcov.h"
+@@ -159,6 +159,11 @@ extern struct gcov_info *gcov_list;
+
+ #endif /* !IN_GCOV_TOOL */
+#ifdef __DJGPP__
+#include <stdint.h>
+#undef HAVE_SYS_MMAN_H
+#endif // __DJGPP__
+
- #if HAVE_SYS_MMAN_H
- #include <sys/mman.h>
- #endif
+ #if defined(inhibit_libc)
+ #define IN_LIBGCOV (-1)
+ #else
diff --git a/libgfortran/intrinsics/chmod.c b/libgfortran/intrinsics/chmod.c
-index 8b5140a05a3..6e7a2afb032 100644
+index 47502a7e9ec3..a9297ccb9de9 100644
--- a/libgfortran/intrinsics/chmod.c
+++ b/libgfortran/intrinsics/chmod.c
-@@ -442,7 +442,7 @@ clause_done:
+@@ -445,7 +445,7 @@ clause_done:
if ((ugo[2] || honor_umask) && !rwxXstugo[8])
file_mode = (file_mode & ~(S_IROTH | S_IWOTH | S_IXOTH))
| (new_mode & (S_IROTH | S_IWOTH | S_IXOTH));
@@ -472,7 +426,7 @@ index 8b5140a05a3..6e7a2afb032 100644
if (is_dir && rwxXstugo[5])
file_mode |= S_ISVTX;
else if (!is_dir)
-@@ -454,7 +454,7 @@ clause_done:
+@@ -457,7 +457,7 @@ clause_done:
{
/* Clear '-'. */
file_mode &= ~new_mode;
@@ -481,7 +435,7 @@ index 8b5140a05a3..6e7a2afb032 100644
if (rwxXstugo[5] || !is_dir)
file_mode &= ~S_ISVTX;
#endif
-@@ -462,7 +462,7 @@ clause_done:
+@@ -465,7 +465,7 @@ clause_done:
else if (set_mode == 3)
{
file_mode |= new_mode;
@@ -491,7 +445,7 @@ index 8b5140a05a3..6e7a2afb032 100644
file_mode |= S_ISVTX;
else if (!is_dir)
diff --git a/libgfortran/intrinsics/execute_command_line.c b/libgfortran/intrinsics/execute_command_line.c
-index 5d41667df9e..439738b6bf1 100644
+index 9bf009e0f620..0a5c6fbdd3f4 100644
--- a/libgfortran/intrinsics/execute_command_line.c
+++ b/libgfortran/intrinsics/execute_command_line.c
@@ -98,7 +98,7 @@ execute_command_line (const char *command, bool wait, int *exitstat,
@@ -504,7 +458,7 @@ index 5d41667df9e..439738b6bf1 100644
bool sig_init = __atomic_load_n (&sig_init_saved, __ATOMIC_RELAXED);
if (!sig_init)
diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c
-index b127cf7a32d..f293cff6ae0 100644
+index 16600c855f2c..8ab0585ac74e 100644
--- a/libgfortran/io/unix.c
+++ b/libgfortran/io/unix.c
@@ -221,6 +221,9 @@ typedef struct
@@ -517,7 +471,7 @@ index b127cf7a32d..f293cff6ae0 100644
/* fix_fd()-- Given a file descriptor, make sure it is not one of the
standard descriptors, returning a non-standard descriptor. If the
-@@ -1222,8 +1225,13 @@ tempfile_open (const char *tempdir, char **fname)
+@@ -1221,8 +1224,13 @@ tempfile_open (const char *tempdir, char **fname)
char *template = xmalloc (tempdirlen + 23);
#ifdef HAVE_MKSTEMP
@@ -531,7 +485,7 @@ index b127cf7a32d..f293cff6ae0 100644
#ifdef HAVE_UMASK
/* Temporarily set the umask such that the file has 0600 permissions. */
-@@ -1589,6 +1597,13 @@ open_external (st_parameter_open *opp, unit_flags *flags)
+@@ -1588,6 +1596,13 @@ open_external (st_parameter_open *opp, unit_flags *flags)
return NULL;
fd = fix_fd (fd);
@@ -546,7 +500,7 @@ index b127cf7a32d..f293cff6ae0 100644
return NULL;
diff --git a/libiberty/make-relative-prefix.c b/libiberty/make-relative-prefix.c
-index ef932ff022e..401800baa3d 100644
+index 23920a8b282..9be3222a06c 100644
--- a/libiberty/make-relative-prefix.c
+++ b/libiberty/make-relative-prefix.c
@@ -65,6 +65,7 @@ relative prefix can be found, return @code{NULL}.
@@ -576,10 +530,10 @@ index ef932ff022e..401800baa3d 100644
}
diff --git a/libiberty/make-temp-file.c b/libiberty/make-temp-file.c
-index 7465cec5ea6..f60a441eb6a 100644
+index 23b467035d5..15e03693c1b 100644
--- a/libiberty/make-temp-file.c
+++ b/libiberty/make-temp-file.c
-@@ -47,6 +47,7 @@ Boston, MA 02110-1301, USA. */
+@@ -52,6 +52,7 @@ Boston, MA 02110-1301, USA. */
#endif
#include "libiberty.h"
@@ -587,7 +541,7 @@ index 7465cec5ea6..f60a441eb6a 100644
extern int mkstemps (char *, int);
/* '/' works just fine on MS-DOS based systems. */
-@@ -142,7 +143,8 @@ choose_tmpdir (void)
+@@ -154,7 +155,8 @@ choose_tmpdir (void)
len = strlen (base);
tmpdir = XNEWVEC (char, len + 2);
strcpy (tmpdir, base);
@@ -598,7 +552,7 @@ index 7465cec5ea6..f60a441eb6a 100644
memoized_tmpdir = tmpdir;
#else /* defined(_WIN32) && !defined(__CYGWIN__) */
diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c
-index a421177f0c2..c166621b931 100644
+index c09c216656c..fdd826a1aba 100644
--- a/libiberty/simple-object-elf.c
+++ b/libiberty/simple-object-elf.c
@@ -1293,7 +1293,9 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
@@ -612,7 +566,7 @@ index a421177f0c2..c166621b931 100644
}
eow->shdrs = XNEWVEC (unsigned char, shdr_size * (new_i - 1));
diff --git a/libquadmath/printf/quadmath-printf.h b/libquadmath/printf/quadmath-printf.h
-index 32ebcec928c..96498b7c408 100644
+index 32ebcec928cb..96498b7c4083 100644
--- a/libquadmath/printf/quadmath-printf.h
+++ b/libquadmath/printf/quadmath-printf.h
@@ -29,7 +29,8 @@ Boston, MA 02110-1301, USA. */
@@ -635,7 +589,7 @@ index 32ebcec928c..96498b7c408 100644
#else
#define L_(x) x
diff --git a/libstdc++-v3/config/os/djgpp/ctype_configure_char.cc b/libstdc++-v3/config/os/djgpp/ctype_configure_char.cc
-index 8a63099c941..f3d4d7c7239 100644
+index fc4fed3546c6..8dcc81460791 100644
--- a/libstdc++-v3/config/os/djgpp/ctype_configure_char.cc
+++ b/libstdc++-v3/config/os/djgpp/ctype_configure_char.cc
@@ -45,7 +45,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -657,13 +611,18 @@ index 8a63099c941..f3d4d7c7239 100644
{
memset(_M_widen, 0, sizeof(_M_widen));
diff --git a/libstdc++-v3/config/os/djgpp/error_constants.h b/libstdc++-v3/config/os/djgpp/error_constants.h
-index e538d38d9de..434de1601e4 100644
+index 758507fb126d..fa5c753e7b4c 100644
--- a/libstdc++-v3/config/os/djgpp/error_constants.h
+++ b/libstdc++-v3/config/os/djgpp/error_constants.h
-@@ -33,6 +33,15 @@
+@@ -33,16 +33,42 @@
#include <bits/c++config.h>
#include <cerrno>
++// Include Watt-32 errno list, if present
++#if defined __has_include && __has_include(<sys/werrno.h>)
++#include <sys/werrno.h>
++#endif
++
+#ifndef EOPNOTSUPP
+// Use same value as in wat3222br6.zip file net/watt/sys/djgpp.err
+#define EOPNOTSUPP 52
@@ -676,28 +635,208 @@ index e538d38d9de..434de1601e4 100644
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-@@ -122,16 +131,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
- not_supported = ENOTSUP,
+
+ enum class errc
+ {
+-// address_family_not_supported = EAFNOSUPPORT,
+-// address_in_use = EADDRINUSE,
+-// address_not_available = EADDRNOTAVAIL,
+-// already_connected = EISCONN,
++#ifdef EAFNOSUPPORT
++ address_family_not_supported = EAFNOSUPPORT,
++#endif
++
++#ifdef EADDRINUSE
++ address_in_use = EADDRINUSE,
++#endif
++
++#ifdef EADDRNOTAVAIL
++ address_not_available = EADDRNOTAVAIL,
++#endif
++
++#ifdef EISCONN
++ already_connected = EISCONN,
++#endif
++
+ argument_list_too_long = E2BIG,
+ argument_out_of_domain = EDOM,
+ bad_address = EFAULT,
+@@ -53,12 +79,29 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ #endif
+
+ broken_pipe = EPIPE,
+-// connection_aborted = ECONNABORTED,
+-// connection_already_in_progress = EALREADY,
+-// connection_refused = ECONNREFUSED,
+-// connection_reset = ECONNRESET,
++
++#ifdef ECONNABORTED
++ connection_aborted = ECONNABORTED,
++#endif
++
++#ifdef EALREADY
++ connection_already_in_progress = EALREADY,
++#endif
++
++#ifdef ECONNREFUSED
++ connection_refused = ECONNREFUSED,
++#endif
++
++#ifdef ECONNRESET
++ connection_reset = ECONNRESET,
++#endif
++
+ cross_device_link = EXDEV,
+-// destination_address_required = EDESTADDRREQ,
++
++#ifdef EDESTADDRREQ
++ destination_address_required = EDESTADDRREQ,
++#endif
++
+ device_or_resource_busy = EBUSY,
+ directory_not_empty = ENOTEMPTY,
+ executable_format_error = ENOEXEC,
+@@ -66,7 +109,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ file_too_large = EFBIG,
+ filename_too_long = ENAMETOOLONG,
+ function_not_supported = ENOSYS,
+-// host_unreachable = EHOSTUNREACH,
++
++#ifdef EHOSTUNREACH
++ host_unreachable = EHOSTUNREACH,
++#endif
+
+ #ifdef EIDRM
+ identifier_removed = EIDRM,
+@@ -79,11 +125,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ invalid_seek = ESPIPE,
+ io_error = EIO,
+ is_a_directory = EISDIR,
+-// message_size = EMSGSIZE,
+-// network_down = ENETDOWN,
+-// network_reset = ENETRESET,
+-// network_unreachable = ENETUNREACH,
+-// no_buffer_space = ENOBUFS,
++
++#ifdef EMSGSIZE
++ message_size = EMSGSIZE,
++#endif
++
++#ifdef ENETDOWN
++ network_down = ENETDOWN,
++#endif
++
++#ifdef ENETRESET
++ network_reset = ENETRESET,
++#endif
++
++#ifdef ENETUNREACH
++ network_unreachable = ENETUNREACH,
++#endif
++
++#ifdef ENOBUFS
++ no_buffer_space = ENOBUFS,
++#endif
++
+ no_child_process = ECHILD,
+
+ #ifdef ENOLINK
+@@ -96,8 +158,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ no_message_available = ENODATA,
#endif
--#ifdef ECANCELED
-+#ifdef _GLIBCXX_HAVE_ECANCELED
+-// no_message = ENOMSG,
+-// no_protocol_option = ENOPROTOOPT,
++#ifdef ENOMSG
++ no_message = ENOMSG,
++#endif
++
++#ifdef ENOPROTOOPT
++ no_protocol_option = ENOPROTOOPT,
++#endif
++
+ no_space_on_device = ENOSPC,
+
+ #ifdef ENOSR
+@@ -109,13 +177,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ no_such_file_or_directory = ENOENT,
+ no_such_process = ESRCH,
+ not_a_directory = ENOTDIR,
+-// not_a_socket = ENOTSOCK,
++
++#ifdef ENOTSOCK
++ not_a_socket = ENOTSOCK,
++#endif
+
+ #ifdef ENOSTR
+ not_a_stream = ENOSTR,
+ #endif
+
+-// not_connected = ENOTCONN,
++#ifdef ENOTCONN
++ not_connected = ENOTCONN,
++#endif
++
+ not_enough_memory = ENOMEM,
+
+ #ifdef ENOTSUP
+@@ -126,10 +200,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
operation_canceled = ECANCELED,
#endif
- // operation_in_progress = EINPROGRESS,
+-// operation_in_progress = EINPROGRESS,
++#ifdef EINPROGRESS
++ operation_in_progress = EINPROGRESS,
++#endif
++
operation_not_permitted = EPERM,
-// operation_not_supported = EOPNOTSUPP,
+-// operation_would_block = EWOULDBLOCK,
+ operation_not_supported = EOPNOTSUPP,
- // operation_would_block = EWOULDBLOCK,
++
++#ifdef EWOULDBLOCK
++ operation_would_block = EWOULDBLOCK,
++#endif
--#ifdef EOWNERDEAD
-+#ifdef _GLIBCXX_HAVE_EOWNERDEAD
+ #ifdef EOWNERDEAD
owner_dead = EOWNERDEAD,
+@@ -141,7 +221,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ protocol_error = EPROTO,
#endif
+-// protocol_not_supported = EPROTONOSUPPORT,
++#ifdef EPROTONOSUPPORT
++ protocol_not_supported = EPROTONOSUPPORT,
++#endif
++
+ read_only_file_system = EROFS,
+ resource_deadlock_would_occur = EDEADLK,
+ resource_unavailable_try_again = EAGAIN,
+@@ -159,7 +242,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ text_file_busy = ETXTBSY,
+ #endif
+
+-// timed_out = ETIMEDOUT,
++#ifdef ETIMEDOUT
++ timed_out = ETIMEDOUT,
++#endif
++
+ too_many_files_open_in_system = ENFILE,
+ too_many_files_open = EMFILE,
+ too_many_links = EMLINK,
+@@ -169,7 +255,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ value_too_large = EOVERFLOW,
+ #endif
+
+-// wrong_protocol_type = EPROTOTYPE
++#ifdef EPROTOTYPE
++ wrong_protocol_type = EPROTOTYPE
++#endif
+ };
+
+ _GLIBCXX_END_NAMESPACE_VERSION
diff --git a/libstdc++-v3/include/experimental/bits/fs_path.h b/libstdc++-v3/include/experimental/bits/fs_path.h
-index 2df2bba3dcd..3a732171390 100644
+index 5008e26af8db..3591d6764be3 100644
--- a/libstdc++-v3/include/experimental/bits/fs_path.h
+++ b/libstdc++-v3/include/experimental/bits/fs_path.h
@@ -53,6 +53,11 @@
@@ -712,7 +851,7 @@ index 2df2bba3dcd..3a732171390 100644
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-@@ -523,6 +528,8 @@ namespace __detail
+@@ -515,6 +520,8 @@ namespace __detail
{
#ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
return __ch == L'/' || __ch == preferred_separator;
@@ -721,7 +860,7 @@ index 2df2bba3dcd..3a732171390 100644
#else
return __ch == '/';
#endif
-@@ -971,6 +978,9 @@ namespace __detail
+@@ -1027,6 +1034,9 @@ namespace __detail
#ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
std::replace(_M_pathname.begin(), _M_pathname.end(), L'/',
preferred_separator);
@@ -731,7 +870,7 @@ index 2df2bba3dcd..3a732171390 100644
#endif
return *this;
}
-@@ -1194,7 +1204,7 @@ namespace __detail
+@@ -1249,7 +1259,7 @@ namespace __detail
inline bool
path::is_absolute() const
{
@@ -740,27 +879,11 @@ index 2df2bba3dcd..3a732171390 100644
return has_root_name() && has_root_directory();
#else
return has_root_directory();
-diff --git a/libstdc++-v3/src/c++11/shared_ptr.cc b/libstdc++-v3/src/c++11/shared_ptr.cc
-index 4678fbeffe2..18a68a16025 100644
---- a/libstdc++-v3/src/c++11/shared_ptr.cc
-+++ b/libstdc++-v3/src/c++11/shared_ptr.cc
-@@ -35,7 +35,11 @@ namespace __gnu_internal _GLIBCXX_VISIBILITY(hidden)
- get_mutex(unsigned char i)
- {
- // increase alignment to put each lock on a separate cache line
-+#ifdef __DJGPP__
-+ struct M : __gnu_cxx::__mutex { };
-+#else
- struct alignas(64) M : __gnu_cxx::__mutex { };
-+#endif
- static M m[mask + 1];
- return m[i];
- }
diff --git a/libstdc++-v3/src/filesystem/path.cc b/libstdc++-v3/src/filesystem/path.cc
-index a935573740f..9cd2e9898b2 100644
+index 7dbbd4402004..5a87bfe13dbc 100644
--- a/libstdc++-v3/src/filesystem/path.cc
+++ b/libstdc++-v3/src/filesystem/path.cc
-@@ -408,8 +408,13 @@ path::_M_split_cmpts()
+@@ -411,8 +411,13 @@ path::_M_split_cmpts()
_M_add_root_dir(0);
++pos;
}
@@ -768,9 +891,9 @@ index a935573740f..9cd2e9898b2 100644
+#if defined(_GLIBCXX_FILESYSTEM_IS_WINDOWS) \
+ || defined(_GLIBCXX_FILESYSTEM_IS_DJGPP)
+#ifdef __DJGPP__
-+ else if (len > 1 && _M_pathname[1] == ':')
++ else if (len > 1 && pathname[1] == ':')
+#else
- else if (len > 1 && _M_pathname[1] == L':')
+ else if (len > 1 && pathname[1] == L':')
+#endif
{
// got disk designator