summarylogtreecommitdiffstats
path: root/gcc-djgpp.diff
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-djgpp.diff')
-rw-r--r--gcc-djgpp.diff163
1 files changed, 73 insertions, 90 deletions
diff --git a/gcc-djgpp.diff b/gcc-djgpp.diff
index 4d5a9bb7eb93..8c1a51047812 100644
--- a/gcc-djgpp.diff
+++ b/gcc-djgpp.diff
@@ -1,8 +1,8 @@
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
-index 4a75b590911..651affd8eca 100644
+index 595abf87d65..c836566803d 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
-@@ -249,6 +249,12 @@ char __gnat_dir_separator = DIR_SEPARATOR;
+@@ -279,6 +279,12 @@ char __gnat_dir_separator = DIR_SEPARATOR;
char __gnat_path_separator = PATH_SEPARATOR;
@@ -15,7 +15,7 @@ index 4a75b590911..651affd8eca 100644
/* 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
-@@ -555,7 +561,11 @@ __gnat_try_lock (char *dir, char *file)
+@@ -578,7 +584,11 @@ __gnat_try_lock (char *dir, char *file)
int
__gnat_get_maximum_file_name_length (void)
{
@@ -28,10 +28,10 @@ index 4a75b590911..651affd8eca 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 de23b1410f2..aae7158b881 100644
+index acbe2b877ca..4962b36ee2e 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
-@@ -1061,7 +1061,7 @@ ada/generated/gnatvsn.ads: ada/gnatvsn.ads BASE-VER ada/GNAT_DATE
+@@ -1077,7 +1077,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`; \
@@ -54,7 +54,7 @@ index bd6387d821c..0cb49e3f553 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 7efddf710c6..680d6020e60 100644
+index 258cd64d312..3943a15458b 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
@@ -66,7 +66,7 @@ index 7efddf710c6..680d6020e60 100644
-- Used to initialize Current_Temp_File_Name and Temp_File_Name_Last_Digit
Current_Temp_File_Name : String := First_Temp_File_Name;
-@@ -2257,9 +2257,10 @@ package body System.OS_Lib is
+@@ -2259,9 +2259,10 @@ package body System.OS_Lib is
-- * Check the drive letter
-- * Remove all double-quotes
@@ -80,10 +80,10 @@ index 7efddf710c6..680d6020e60 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 8b21aa7de70..58b81351ff4 100644
+index 99406e9a77d..a35507806a6 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
+@@ -1091,9 +1091,12 @@ package System.OS_Lib is
Path_Separator : constant Character;
-- The character to separate paths in an environment variable value
@@ -96,49 +96,8 @@ index 8b21aa7de70..58b81351ff4 100644
pragma Import (C, Current_Time, "__gnat_current_time");
pragma Import (C, Current_Process_Id, "__gnat_current_process_id");
-diff --git a/gcc/collect2.c b/gcc/collect2.c
-index 8f092e7539e..10ecf05e23f 100644
---- a/gcc/collect2.c
-+++ b/gcc/collect2.c
-@@ -1242,21 +1242,30 @@ main (int argc, char **argv)
- *ld1++ = *ld2++ = ld_file_name;
-
- /* Make temp file names. */
-+
-+#ifdef __DJGPP__
-+#define CDTOR_C_NAME ".ctc"
-+#define CDTOR_O_NAME ".cto"
-+#else
-+#define CDTOR_C_NAME ".cdtor.c"
-+#define CDTOR_O_NAME ".cdtor.o"
-+#endif
-+
- if (save_temps)
- {
- c_file = (char *) xmalloc (strlen (output_file)
-- + sizeof (".cdtor.c") + 1);
-+ + sizeof (CDTOR_C_NAME) + 1);
- strcpy (c_file, output_file);
-- strcat (c_file, ".cdtor.c");
-+ strcat (c_file, CDTOR_C_NAME);
- o_file = (char *) xmalloc (strlen (output_file)
-- + sizeof (".cdtor.o") + 1);
-+ + sizeof (CDTOR_O_NAME) + 1);
- strcpy (o_file, output_file);
-- strcat (o_file, ".cdtor.o");
-+ strcat (o_file, CDTOR_O_NAME);
- }
- else
- {
-- c_file = make_temp_file (".cdtor.c");
-- o_file = make_temp_file (".cdtor.o");
-+ c_file = make_temp_file (CDTOR_C_NAME);
-+ o_file = make_temp_file (CDTOR_O_NAME);
- }
- #ifdef COLLECT_EXPORT_LIST
- export_file = make_temp_file (".x");
diff --git a/gcc/config/i386/xm-djgpp.h b/gcc/config/i386/xm-djgpp.h
-index 8cb8bc6939c..6e152a69bfc 100644
+index 299ef0a4810..a376a3f9146 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
@@ -163,7 +122,7 @@ index 8cb8bc6939c..6e152a69bfc 100644
#define MAX_OFILE_ALIGNMENT 128
diff --git a/gcc/gcov-tool.c b/gcc/gcov-tool.c
-index 5bb1ccac6be..161da5caed3 100644
+index f8f1cb5d29b..bd26e1f2443 100644
--- a/gcc/gcov-tool.c
+++ b/gcc/gcov-tool.c
@@ -56,11 +56,18 @@ static bool verbose;
@@ -197,8 +156,25 @@ index 5bb1ccac6be..161da5caed3 100644
#else
return -1;
#endif
+diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
+index 0d528cf455c..c6d4134bb36 100644
+--- a/gcc/ggc-common.c
++++ b/gcc/ggc-common.c
+@@ -31,6 +31,12 @@ along with GCC; see the file COPYING3. If not see
+ #include "plugin.h"
+ #include "options.h"
+
++#ifdef __DJGPP__
++extern "C" {
++#include <libc/malldbg.h>
++}
++#endif
++
+ /* When set, ggc_collect will do collection. */
+ bool ggc_force_collect;
+
diff --git a/gcc/ginclude/float.h b/gcc/ginclude/float.h
-index 4767d7b9dfb..15e83f703a4 100644
+index 9c4b0385568..986639a3bc9 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
@@ -213,7 +189,7 @@ index 4767d7b9dfb..15e83f703a4 100644
#define _FLOAT_H___
diff --git a/include/libiberty.h b/include/libiberty.h
-index 57476135026..276cc7a4981 100644
+index 141cb886a85..e2462fc3332 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -108,6 +108,7 @@ extern int countargv (char * const *);
@@ -225,10 +201,10 @@ index 57476135026..276cc7a4981 100644
extern char *basename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
#else
diff --git a/libcpp/files.c b/libcpp/files.c
-index b0ac22be6ba..0ad0403c050 100644
+index 260e787c329..d8a63d43bea 100644
--- a/libcpp/files.c
+++ b/libcpp/files.c
-@@ -740,6 +740,10 @@ read_file_guts (cpp_reader *pfile, _cpp_file *file, location_t loc)
+@@ -747,6 +747,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);
@@ -240,7 +216,7 @@ index b0ac22be6ba..0ad0403c050 100644
CPP_OPTION (pfile, input_charset),
buf, size + 16, total,
diff --git a/libcpp/lex.c b/libcpp/lex.c
-index eedfcbb3146..fab1e12c9d2 100644
+index 56ac3a1dd73..ba95b0c6dba 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -502,6 +502,13 @@ init_vectorized_lexer (void)
@@ -267,10 +243,10 @@ index eedfcbb3146..fab1e12c9d2 100644
}
diff --git a/libcpp/macro.c b/libcpp/macro.c
-index 30d3686451c..57d4de1e993 100644
+index 2573f316bf5..9f3b3e7f8de 100644
--- a/libcpp/macro.c
+++ b/libcpp/macro.c
-@@ -516,17 +516,22 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node,
+@@ -612,17 +612,22 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node,
&& pfile->cb.get_source_date_epoch != NULL)
pfile->source_date_epoch = pfile->cb.get_source_date_epoch (pfile);
@@ -318,7 +294,7 @@ 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 ae0dd017204..08b04d292a2 100644
+index 449638bc4b6..218ee34b269 100644
--- a/libgcc/libgcov-util.c
+++ b/libgcc/libgcov-util.c
@@ -391,7 +391,11 @@ read_gcda_file (const char *filename)
@@ -334,7 +310,7 @@ index ae0dd017204..08b04d292a2 100644
{
int filename_len;
diff --git a/libgfortran/intrinsics/chmod.c b/libgfortran/intrinsics/chmod.c
-index 9bfe52439f3..d116e89adde 100644
+index 7377834be69..7480d3ce17e 100644
--- a/libgfortran/intrinsics/chmod.c
+++ b/libgfortran/intrinsics/chmod.c
@@ -442,7 +442,7 @@ clause_done:
@@ -365,29 +341,20 @@ index 9bfe52439f3..d116e89adde 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 1a471632172..5956fbfd7bd 100644
+index 71d61a766ad..03b92333b25 100644
--- a/libgfortran/intrinsics/execute_command_line.c
+++ b/libgfortran/intrinsics/execute_command_line.c
-@@ -65,7 +65,7 @@ set_cmdstat (int *cmdstat, int value)
- }
-
+@@ -93,7 +93,7 @@ execute_command_line (const char *command, bool wait, int *exitstat,
--#if defined(HAVE_WAITPID) && defined(HAVE_SIGACTION)
-+#if defined(HAVE_WAITPID) && defined(HAVE_SIGACTION) && !defined(__DJGPP__)
- static void
- sigchld_handler (int signum __attribute__((unused)))
- {
-@@ -85,7 +85,7 @@ execute_command_line (const char *command, bool wait, int *exitstat,
- /* Flush all I/O units before executing the command. */
- flush_all_units();
+ set_cmdstat (cmdstat, EXEC_NOERROR);
--#if defined(HAVE_POSIX_SPAWN) || defined(HAVE_FORK)
-+#if (defined(HAVE_POSIX_SPAWN) || defined(HAVE_FORK)) && !defined(__DJGPP__)
- if (!wait)
- {
- /* Asynchronous execution. */
+-#if defined(HAVE_SIGACTION) && defined(HAVE_WAITPID)
++#if defined(HAVE_SIGACTION) && defined(HAVE_WAITPID) && !defined(__DJGPP__)
+ static bool sig_init_saved;
+ 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 42792976c4b..3418a4af1e9 100644
+index 563c7cb64cc..e8d681735ba 100644
--- a/libgfortran/io/unix.c
+++ b/libgfortran/io/unix.c
@@ -221,6 +221,9 @@ typedef struct
@@ -429,7 +396,7 @@ index 42792976c4b..3418a4af1e9 100644
return NULL;
diff --git a/libiberty/make-relative-prefix.c b/libiberty/make-relative-prefix.c
-index ec0b0ee7494..1ed86db2a09 100644
+index e3f9f920df4..836de31c156 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}.
@@ -440,7 +407,7 @@ index ec0b0ee7494..1ed86db2a09 100644
#ifndef R_OK
#define R_OK 4
-@@ -337,7 +338,7 @@ make_relative_prefix_1 (const char *progname, const char *bin_prefix,
+@@ -340,7 +341,7 @@ make_relative_prefix_1 (const char *progname, const char *bin_prefix,
{
for (i = 0; i < bin_num; i++)
{
@@ -449,7 +416,7 @@ index ec0b0ee7494..1ed86db2a09 100644
break;
}
-@@ -353,7 +354,7 @@ make_relative_prefix_1 (const char *progname, const char *bin_prefix,
+@@ -356,7 +357,7 @@ make_relative_prefix_1 (const char *progname, const char *bin_prefix,
n = (prefix_num < bin_num) ? prefix_num : bin_num;
for (common = 0; common < n; common++)
{
@@ -459,7 +426,7 @@ index ec0b0ee7494..1ed86db2a09 100644
}
diff --git a/libiberty/make-temp-file.c b/libiberty/make-temp-file.c
-index 2c66e35cc1f..f058c39dc3d 100644
+index cb08c27af6f..d7701e4b38a 100644
--- a/libiberty/make-temp-file.c
+++ b/libiberty/make-temp-file.c
@@ -47,6 +47,7 @@ Boston, MA 02110-1301, USA. */
@@ -481,7 +448,7 @@ index 2c66e35cc1f..f058c39dc3d 100644
memoized_tmpdir = tmpdir;
#else /* defined(_WIN32) && !defined(__CYGWIN__) */
diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c
-index 3d49f339631..75f2ca4e2f4 100644
+index c62d5bba551..9e1a2c68a3f 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,
@@ -518,7 +485,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 7b8810d62f1..9795a81aa70 100644
+index e0a67bc8d6d..d6ccf4195d6 100644
--- a/libstdc++-v3/config/os/djgpp/error_constants.h
+++ b/libstdc++-v3/config/os/djgpp/error_constants.h
@@ -33,6 +33,15 @@
@@ -557,7 +524,7 @@ index 7b8810d62f1..9795a81aa70 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 64089b432eb..f6b287d8d55 100644
+index d7234c08a00..bf31e8184cb 100644
--- a/libstdc++-v3/include/experimental/bits/fs_path.h
+++ b/libstdc++-v3/include/experimental/bits/fs_path.h
@@ -53,6 +53,11 @@
@@ -572,7 +539,7 @@ index 64089b432eb..f6b287d8d55 100644
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-@@ -493,6 +498,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
+@@ -516,6 +521,8 @@ namespace __detail
{
#ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
return __ch == L'/' || __ch == preferred_separator;
@@ -581,7 +548,7 @@ index 64089b432eb..f6b287d8d55 100644
#else
return __ch == '/';
#endif
-@@ -874,6 +881,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
+@@ -964,6 +971,9 @@ namespace __detail
#ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
std::replace(_M_pathname.begin(), _M_pathname.end(), L'/',
preferred_separator);
@@ -591,7 +558,7 @@ index 64089b432eb..f6b287d8d55 100644
#endif
return *this;
}
-@@ -1075,7 +1085,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
+@@ -1187,7 +1197,7 @@ namespace __detail
inline bool
path::is_absolute() const
{
@@ -600,8 +567,24 @@ index 64089b432eb..f6b287d8d55 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 162dd6db2f4..2d4108ed64b 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 edf7c67c01b..af343bcee28 100644
+index 59eeadc2c0d..158936910bd 100644
--- a/libstdc++-v3/src/filesystem/path.cc
+++ b/libstdc++-v3/src/filesystem/path.cc
@@ -408,8 +408,13 @@ path::_M_split_cmpts()