diff options
Diffstat (limited to 'gcc-djgpp.diff')
-rw-r--r-- | gcc-djgpp.diff | 163 |
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() |