summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO15
-rw-r--r--PKGBUILD16
-rw-r--r--gcc-djgpp.diff (renamed from gcc-7.3.0-djgpp.diff)284
3 files changed, 241 insertions, 74 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 74b7f93c2dca..dce9abfbf925 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = djgpp-gcc
pkgdesc = GCC for the djgpp cross-compiler
- pkgver = 7.3.0
+ pkgver = 8.1.0
pkgrel = 1
url = http://gcc.gnu.org
arch = i686
@@ -8,23 +8,24 @@ pkgbase = djgpp-gcc
groups = djgpp
license = GPL3
license = LGPL3
- makedepends = unzip
+ makedepends = unzip,
+ makedepends = gcc-ada
depends = zlib
depends = libmpc
- depends = djgpp-binutils
+ depends = djgpp-binutils>=2.30
depends = djgpp-djcrx
optdepends = djgpp-djcrx: headers and utilities
options = !strip
options = staticlibs
options = !emptydirs
- source = https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.xz
+ source = https://ftp.gnu.org/gnu/gcc/gcc-8.1.0/gcc-8.1.0.tar.xz
source = http://isl.gforge.inria.fr/isl-0.18.tar.bz2
source = lto.patch
- source = gcc-7.3.0-djgpp.diff
- sha256sums = 832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c
+ source = gcc-djgpp.diff
+ sha256sums = 1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153
sha256sums = 6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b
sha256sums = c03dbd61274e1ce14f84366abf348d75779bbd6e0bc32b9f4fd74f1ce54a5ef0
- sha256sums = 3d805b0d5d5180531858f830d9a022ae9a61f5768535bd0e794d8a1b2eb430b6
+ sha256sums = 5f8c8ee1baa1afb5342a98109ed325013929aa749c17f679e969688a46032bd5
pkgname = djgpp-gcc
diff --git a/PKGBUILD b/PKGBUILD
index 946d15e8eea0..f30925e4d6b4 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
# Contributor: felix <base64 -d <<< ZmVsaXgudm9uLnNAcG9zdGVvLmRlCg==>
pkgname=djgpp-gcc
-pkgver=7.3.0
+pkgver=8.1.0
_target="i686-pc-msdosdjgpp"
_islver=0.18
_djver=2.05
@@ -13,18 +13,18 @@ arch=('i686' 'x86_64')
url="http://gcc.gnu.org"
license=('GPL3' 'LGPL3')
groups=('djgpp')
-depends=('zlib' 'libmpc' 'djgpp-binutils' 'djgpp-djcrx')
-makedepends=('unzip')
+depends=('zlib' 'libmpc' 'djgpp-binutils>=2.30' 'djgpp-djcrx')
+makedepends=('unzip' 'gcc-ada')
optdepends=('djgpp-djcrx: headers and utilities')
options=('!strip' 'staticlibs' '!emptydirs')
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-7.3.0-djgpp.diff")
-sha256sums=('832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c'
+ "gcc-djgpp.diff")
+sha256sums=('1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153'
'6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b'
'c03dbd61274e1ce14f84366abf348d75779bbd6e0bc32b9f4fd74f1ce54a5ef0'
- '3d805b0d5d5180531858f830d9a022ae9a61f5768535bd0e794d8a1b2eb430b6')
+ '5f8c8ee1baa1afb5342a98109ed325013929aa749c17f679e969688a46032bd5')
prepare() {
cd gcc-$pkgver
@@ -36,7 +36,7 @@ prepare() {
patch -Np0 < ../lto.patch
# Other DJGPP related changes
- patch -Np1 < ../gcc-7.3.0-djgpp.diff
+ patch -Np1 < ../gcc-djgpp.diff
}
build() {
@@ -70,5 +70,5 @@ package_djgpp-gcc() {
rm -rf "$pkgdir"/usr/share/{man/man7,info,locale}
rm -rf "$pkgdir"/usr/share/gcc-$pkgver/python
rm -rf "$pkgdir"/usr/lib/gcc/$_target/$pkgver/include-fixed
- rm -f "$pkgdir"/usr/lib/libcc1.*
+ rm -f "$pkgdir"/usr/lib*/libcc1.*
}
diff --git a/gcc-7.3.0-djgpp.diff b/gcc-djgpp.diff
index 463d634b6d6e..83ead4aab57c 100644
--- a/gcc-7.3.0-djgpp.diff
+++ b/gcc-djgpp.diff
@@ -1,8 +1,21 @@
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
-index bff875a6822..fc06ee7b663 100644
+index 3b0aea92c05..02013b9f01a 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
-@@ -549,7 +549,11 @@ __gnat_try_lock (char *dir, char *file)
+@@ -247,6 +247,12 @@ char __gnat_dir_separator = DIR_SEPARATOR;
+
+ char __gnat_path_separator = PATH_SEPARATOR;
+
++#ifdef __DJGPP__
++int __gnat_is_djgpp = 1;
++#else
++int __gnat_is_djgpp = 0;
++#endif
++
+ /* The GNAT_LIBRARY_TEMPLATE contains a list of expressions that define
+ the base filenames that libraries specified with -lsomelib options
+ may have. This is used by GNATMAKE to check whether an executable
+@@ -553,7 +559,11 @@ __gnat_try_lock (char *dir, char *file)
int
__gnat_get_maximum_file_name_length (void)
{
@@ -14,28 +27,36 @@ index bff875a6822..fc06ee7b663 100644
}
/* Return nonzero if file names are case sensitive. */
-@@ -623,6 +627,17 @@ __gnat_get_current_dir (char *dir, int *length)
- dir [*length] = DIR_SEPARATOR;
- ++(*length);
- }
-+#ifdef __DJGPP__
-+ do {
-+ char *w;
-+ for (w = dir; *w; ++w)
-+ {
-+ if (*w == '/') {
-+ *w = '\\';
-+ }
-+ }
-+ } while (0);
-+#endif /* __DJGPP__ */
- dir[*length] = '\0';
- }
+diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
+index d51d3973b4d..3381e23116a 100644
+--- a/gcc/ada/gcc-interface/Make-lang.in
++++ b/gcc/ada/gcc-interface/Make-lang.in
+@@ -1066,7 +1066,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 >$@
+
+ ada/gnatvsn.o : ada/gnatvsn.adb ada/generated/gnatvsn.ads
+ $(CC) -c $(ALL_ADAFLAGS) -Iada/generated -I../ada/generated $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION)
+diff --git a/gcc/ada/libgnarl/s-taprop__dummy.adb b/gcc/ada/libgnarl/s-taprop__dummy.adb
+index e1bea2955ef..240fccdae39 100644
+--- a/gcc/ada/libgnarl/s-taprop__dummy.adb
++++ b/gcc/ada/libgnarl/s-taprop__dummy.adb
+@@ -41,7 +41,7 @@ pragma Polling (Off);
+ package body System.Task_Primitives.Operations is
+
+ use System.Tasking;
+- use System.Parameters;
++-- use System.Parameters;
-diff --git a/gcc/ada/s-os_lib.adb b/gcc/ada/s-os_lib.adb
-index 36064e97bd3..18bfb484074 100644
---- a/gcc/ada/s-os_lib.adb
-+++ b/gcc/ada/s-os_lib.adb
+ 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 b82bd3badb3..8e3d7bcacc1 100644
+--- a/gcc/ada/libgnat/s-os_lib.adb
++++ b/gcc/ada/libgnat/s-os_lib.adb
@@ -71,7 +71,7 @@ package body System.OS_Lib is
-- The following are used by Create_Temp_File
@@ -45,8 +66,99 @@ index 36064e97bd3..18bfb484074 100644
-- Used to initialize Current_Temp_File_Name and Temp_File_Name_Last_Digit
Current_Temp_File_Name : String := First_Temp_File_Name;
+@@ -2262,10 +2262,10 @@ package body System.OS_Lib is
+ -- * Check the drive letter
+ -- * Remove all double-quotes
+
+- if On_Windows then
+-
++ if On_Windows
++ and then Is_Djgpp = 0
++ then
+ -- Replace all '/' by '\'
+-
+ for Index in 1 .. End_Path loop
+ 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 1e2ffa354a3..40d3b689bbd 100644
+--- a/gcc/ada/libgnat/s-os_lib.ads
++++ b/gcc/ada/libgnat/s-os_lib.ads
+@@ -1082,9 +1082,12 @@ package System.OS_Lib is
+ Path_Separator : constant Character;
+ -- The character to separate paths in an environment variable value
+
++ Is_Djgpp : constant Integer;
++
+ private
+ pragma Import (C, Path_Separator, "__gnat_path_separator");
+ pragma Import (C, Directory_Separator, "__gnat_dir_separator");
++ pragma Import (C, Is_Djgpp, "__gnat_is_djgpp");
+ pragma Import (C, Current_Time, "__gnat_current_time");
+ pragma Import (C, Current_Process_Id, "__gnat_current_process_id");
+
+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
++++ b/gcc/config/i386/xm-djgpp.h
+@@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see
+ #undef NATIVE_SYSTEM_HEADER_DIR
+ #define NATIVE_SYSTEM_HEADER_DIR "/dev/env/DJDIR/include/"
+
++//#undef PREFIX_INCLUDE_DIR
++
+ /* Search for as.exe and ld.exe in DJGPP's binary directory. */
+ #undef MD_EXEC_PREFIX
+ #define MD_EXEC_PREFIX "/dev/env/DJDIR/bin/"
+@@ -107,6 +109,11 @@ along with GCC; see the file COPYING3. If not see
+ (PATH) = xstrdup (fixed_path); \
+ }
+
++/* Rename libstdc++ to libstdcxx as the first name is not valid for DOS */
++#define LIBSTDCXX "stdcxx"
++#define LIBSTDCXX_PROFILE "stdcxx"
++#define LIBSTDCXX_STATIC "stdcxx"
++
+ #undef MAX_OFILE_ALIGNMENT
+ #define MAX_OFILE_ALIGNMENT 128
+
+diff --git a/gcc/gcov-tool.c b/gcc/gcov-tool.c
+index 15fd710b18c..91d4c87b31b 100644
+--- a/gcc/gcov-tool.c
++++ b/gcc/gcov-tool.c
+@@ -56,11 +56,18 @@ static bool verbose;
+
+ /* Remove file NAME if it has a gcda suffix. */
+
++#ifdef __DJGPP__
++static int
++unlink_gcda_file (const char *name,
++ struct stat *status ATTRIBUTE_UNUSED,
++ int type ATTRIBUTE_UNUSED)
++#else
+ static int
+ unlink_gcda_file (const char *name,
+ const struct stat *status ATTRIBUTE_UNUSED,
+ int type ATTRIBUTE_UNUSED,
+ struct FTW *ftwbuf ATTRIBUTE_UNUSED)
++#endif
+ {
+ int ret = 0;
+ int len = strlen (name);
+@@ -82,7 +89,11 @@ static int
+ unlink_profile_dir (const char *path ATTRIBUTE_UNUSED)
+ {
+ #if HAVE_FTW_H
++#ifdef __DJGPP__
++ return ftw(path, unlink_gcda_file, 64);
++#else
+ return nftw(path, unlink_gcda_file, 64, FTW_DEPTH | FTW_PHYS);
++#endif
+ #else
+ return -1;
+ #endif
diff --git a/gcc/ginclude/float.h b/gcc/ginclude/float.h
-index 658017fd63a..e6504b94d07 100644
+index 96a360f305e..d24aa286421 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
@@ -61,7 +173,7 @@ index 658017fd63a..e6504b94d07 100644
#define _FLOAT_H___
diff --git a/include/libiberty.h b/include/libiberty.h
-index 7a796124bf5..0eb73f6650b 100644
+index dc09e791e41..72e535f3456 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -108,6 +108,7 @@ extern int countargv (char * const *);
@@ -73,7 +185,7 @@ index 7a796124bf5..0eb73f6650b 100644
extern char *basename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
#else
diff --git a/libcpp/files.c b/libcpp/files.c
-index 969a531033f..3c07d60a62c 100644
+index e8d21b28e62..964f06e3bf4 100644
--- a/libcpp/files.c
+++ b/libcpp/files.c
@@ -740,6 +740,10 @@ read_file_guts (cpp_reader *pfile, _cpp_file *file, source_location loc)
@@ -87,11 +199,67 @@ index 969a531033f..3c07d60a62c 100644
file->buffer = _cpp_convert_input (pfile,
CPP_OPTION (pfile, input_charset),
buf, size + 16, total,
+diff --git a/libcpp/lex.c b/libcpp/lex.c
+index 37c365a3560..bf1daed392e 100644
+--- a/libcpp/lex.c
++++ b/libcpp/lex.c
+@@ -502,6 +502,13 @@ init_vectorized_lexer (void)
+ search_line_fast_type impl = search_line_acc_char;
+ int minimum = 0;
+
++// [FIXME][DJGPP] Using SSE here causes preprocessor to randomly
++// [FIXME][DJGPP] fail when run under Windows 10 32 bit (and maybe
++// [FIXME][DJGPP] some other systems (I have observed similar
++// [FIXME][DJGPP] behavior earlier with DJGPP v2.03p2 under Windows
++// [FIXME][DJGPP] Vista
++#ifndef __DJGPP__
++
+ #if defined(__SSE4_2__)
+ minimum = 3;
+ #elif defined(__SSE2__)
+@@ -528,6 +535,8 @@ init_vectorized_lexer (void)
+ impl = search_line_mmx;
+ }
+
++#endif // __DJGPP__
++
+ search_line_fast = impl;
+ }
+
+diff --git a/libffi/src/x86/sysv.S b/libffi/src/x86/sysv.S
+index 78f245bda07..1ae18b248a7 100644
+--- a/libffi/src/x86/sysv.S
++++ b/libffi/src/x86/sysv.S
+@@ -822,7 +822,7 @@ ENDF(C(__x86.get_pc_thunk.dx))
+ #ifdef __APPLE__
+ .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
+ EHFrame0:
+-#elif defined(X86_WIN32)
++#elif defined(X86_WIN32) || defined(__DJGPP__)
+ .section .eh_frame,"r"
+ #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 9cf56a82859..f30c593d04b 100644
+--- a/libgcc/libgcov-util.c
++++ b/libgcc/libgcov-util.c
+@@ -388,7 +388,11 @@ read_gcda_file (const char *filename)
+
+ static int
+ ftw_read_file (const char *filename,
++#ifdef __DJGPP__
++ struct stat *status ATTRIBUTE_UNUSED,
++#else
+ const struct stat *status ATTRIBUTE_UNUSED,
++#endif
+ int type)
+ {
+ int filename_len;
diff --git a/libgfortran/intrinsics/chmod.c b/libgfortran/intrinsics/chmod.c
-index d08418d773f..109e15ff3ab 100644
+index 1299159a7f1..e1bd7a1c633 100644
--- a/libgfortran/intrinsics/chmod.c
+++ b/libgfortran/intrinsics/chmod.c
-@@ -443,7 +443,7 @@ clause_done:
+@@ -442,7 +442,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));
@@ -100,7 +268,7 @@ index d08418d773f..109e15ff3ab 100644
if (is_dir && rwxXstugo[5])
file_mode |= S_ISVTX;
else if (!is_dir)
-@@ -455,7 +455,7 @@ clause_done:
+@@ -454,7 +454,7 @@ clause_done:
{
/* Clear '-'. */
file_mode &= ~new_mode;
@@ -109,7 +277,7 @@ index d08418d773f..109e15ff3ab 100644
if (rwxXstugo[5] || !is_dir)
file_mode &= ~S_ISVTX;
#endif
-@@ -463,7 +463,7 @@ clause_done:
+@@ -462,7 +462,7 @@ clause_done:
else if (set_mode == 3)
{
file_mode |= new_mode;
@@ -119,7 +287,7 @@ index d08418d773f..109e15ff3ab 100644
file_mode |= S_ISVTX;
else if (!is_dir)
diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c
-index bb9bc9a5c12..79d25e1ebe0 100644
+index a8fd07a5f3b..385640ab903 100644
--- a/libgfortran/io/unix.c
+++ b/libgfortran/io/unix.c
@@ -210,6 +210,9 @@ typedef struct
@@ -132,7 +300,7 @@ index bb9bc9a5c12..79d25e1ebe0 100644
/* fix_fd()-- Given a file descriptor, make sure it is not one of the
standard descriptors, returning a non-standard descriptor. If the
-@@ -1187,8 +1190,13 @@ tempfile_open (const char *tempdir, char **fname)
+@@ -1190,8 +1193,13 @@ tempfile_open (const char *tempdir, char **fname)
char *template = xmalloc (tempdirlen + 23);
#ifdef HAVE_MKSTEMP
@@ -146,7 +314,7 @@ index bb9bc9a5c12..79d25e1ebe0 100644
#ifdef HAVE_UMASK
/* Temporarily set the umask such that the file has 0600 permissions. */
-@@ -1554,6 +1562,13 @@ open_external (st_parameter_open *opp, unit_flags *flags)
+@@ -1557,6 +1565,13 @@ open_external (st_parameter_open *opp, unit_flags *flags)
return NULL;
fd = fix_fd (fd);
@@ -161,7 +329,7 @@ index bb9bc9a5c12..79d25e1ebe0 100644
return NULL;
diff --git a/libiberty/make-relative-prefix.c b/libiberty/make-relative-prefix.c
-index f74bbdc9038..4b2020e55b6 100644
+index eebcff9957e..a9d92ee2247 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}.
@@ -191,7 +359,7 @@ index f74bbdc9038..4b2020e55b6 100644
}
diff --git a/libiberty/make-temp-file.c b/libiberty/make-temp-file.c
-index 98e215d15e7..1c2defad7b1 100644
+index 89faed7f09e..dd93cda1f03 100644
--- a/libiberty/make-temp-file.c
+++ b/libiberty/make-temp-file.c
@@ -47,6 +47,7 @@ Boston, MA 02110-1301, USA. */
@@ -212,6 +380,20 @@ index 98e215d15e7..1c2defad7b1 100644
tmpdir[len+1] = '\0';
memoized_tmpdir = tmpdir;
#else /* defined(_WIN32) && !defined(__CYGWIN__) */
+diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c
+index 7468a1adc3d..8390e77bdd7 100644
+--- a/libiberty/simple-object-elf.c
++++ b/libiberty/simple-object-elf.c
+@@ -1281,7 +1281,9 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
+ }
+ if (new_i - 1 >= SHN_LORESERVE)
+ {
++#ifdef ENOTSUP
+ *err = ENOTSUP;
++#endif
+ return "Too many copied sections";
+ }
+ 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
--- a/libquadmath/printf/quadmath-printf.h
@@ -236,7 +418,7 @@ index 32ebcec928c..96498b7c408 100644
#else
#define L_(x) x
diff --git a/libstdc++-v3/config/os/djgpp/error_constants.h b/libstdc++-v3/config/os/djgpp/error_constants.h
-index 4ce342c9626..b89b07cb4be 100644
+index 4e5590f9160..f78405afa03 100644
--- a/libstdc++-v3/config/os/djgpp/error_constants.h
+++ b/libstdc++-v3/config/os/djgpp/error_constants.h
@@ -33,6 +33,15 @@
@@ -275,7 +457,7 @@ index 4ce342c9626..b89b07cb4be 100644
#ifdef _GLIBCXX_HAVE_EOWNERDEAD
diff --git a/libstdc++-v3/include/experimental/bits/fs_path.h b/libstdc++-v3/include/experimental/bits/fs_path.h
-index 512167f6f2d..de56387511e 100644
+index 456452bb317..921f23ed333 100644
--- a/libstdc++-v3/include/experimental/bits/fs_path.h
+++ b/libstdc++-v3/include/experimental/bits/fs_path.h
@@ -53,6 +53,11 @@
@@ -289,8 +471,8 @@ index 512167f6f2d..de56387511e 100644
+
namespace std _GLIBCXX_VISIBILITY(default)
{
- namespace experimental
-@@ -460,6 +465,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+@@ -461,6 +466,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
{
#ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
return __ch == L'/' || __ch == preferred_separator;
@@ -299,7 +481,7 @@ index 512167f6f2d..de56387511e 100644
#else
return __ch == '/';
#endif
-@@ -826,6 +833,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
+@@ -827,6 +834,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
#ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
std::replace(_M_pathname.begin(), _M_pathname.end(), L'/',
preferred_separator);
@@ -309,7 +491,7 @@ index 512167f6f2d..de56387511e 100644
#endif
return *this;
}
-@@ -997,7 +1007,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
+@@ -998,7 +1008,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
inline bool
path::is_absolute() const
{
@@ -319,26 +501,11 @@ index 512167f6f2d..de56387511e 100644
return has_root_name();
#else
return has_root_directory();
-diff --git a/libstdc++-v3/src/filesystem/ops.cc b/libstdc++-v3/src/filesystem/ops.cc
-index 8de3511346e..9da49f9b233 100644
---- a/libstdc++-v3/src/filesystem/ops.cc
-+++ b/libstdc++-v3/src/filesystem/ops.cc
-@@ -269,8 +269,10 @@ namespace
- return file_type::fifo;
- else if (S_ISLNK(st.st_mode))
- return file_type::symlink;
-+#ifdef S_ISSOCK
- else if (S_ISSOCK(st.st_mode))
- return file_type::socket;
-+#endif // s_ISSOCK
- #endif
- return file_type::unknown;
-
diff --git a/libstdc++-v3/src/filesystem/path.cc b/libstdc++-v3/src/filesystem/path.cc
-index c66d52bf4b0..a4e5f348a24 100644
+index 4d84168d742..90c932d6901 100644
--- a/libstdc++-v3/src/filesystem/path.cc
+++ b/libstdc++-v3/src/filesystem/path.cc
-@@ -370,8 +370,13 @@ path::_M_split_cmpts()
+@@ -371,8 +371,13 @@ path::_M_split_cmpts()
_M_add_root_dir(0);
++pos;
}
@@ -353,4 +520,3 @@ index c66d52bf4b0..a4e5f348a24 100644
{
// got disk designator
_M_add_root_name(2);
-