This file is part of MXE. See LICENSE.md for licensing information. Contains ad hoc patches for cross building. From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Tony Theodore Date: Sun, 10 May 2020 15:06:47 +1000 Subject: [PATCH 1/4] allow native cpu detection when building with clang function was disabled for non-gcc5 in: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=b587c12551143c14f023860a1dbdf7316ae71f27;hp=43096b526a9f23008b9769372f11475ae63487bc clang can build it correctly and this should probably be a feature test diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c index 1111111..2222222 100644 --- a/gcc/config/i386/driver-i386.c +++ b/gcc/config/i386/driver-i386.c @@ -26,7 +26,7 @@ along with GCC; see the file COPYING3. If not see const char *host_detect_local_cpu (int argc, const char **argv); -#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__)) +#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__)) || defined(__clang__) #include "cpuid.h" #include "common/config/i386/cpuinfo.h" #include "common/config/i386/i386-isas.h" From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Tony Theodore Date: Sun, 10 May 2020 15:09:58 +1000 Subject: [PATCH 2/4] remove hard-coded mingw from paths diff --git a/gcc/config.gcc b/gcc/config.gcc index 1111111..2222222 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -2223,7 +2223,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) tmake_file="${tmake_file} i386/t-mingw-w32" ;; esac - native_system_header_dir=/mingw/include + native_system_header_dir=/include target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c" extra_options="${extra_options} i386/cygming.opt i386/mingw.opt" case ${target} in diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h index 1111111..2222222 100644 --- a/gcc/config/i386/mingw32.h +++ b/gcc/config/i386/mingw32.h @@ -206,7 +206,7 @@ along with GCC; see the file COPYING3. If not see /* Override startfile prefix defaults. */ #ifndef STANDARD_STARTFILE_PREFIX_1 -#define STANDARD_STARTFILE_PREFIX_1 "/mingw/lib/" +#define STANDARD_STARTFILE_PREFIX_1 "/lib/" #endif #ifndef STANDARD_STARTFILE_PREFIX_2 #define STANDARD_STARTFILE_PREFIX_2 "" @@ -215,7 +215,7 @@ along with GCC; see the file COPYING3. If not see /* For native mingw-version we need to take care that NATIVE_SYSTEM_HEADER_DIR macro contains POSIX-style path. See bug 52947. */ #undef NATIVE_SYSTEM_HEADER_DIR -#define NATIVE_SYSTEM_HEADER_DIR "/mingw/include" +#define NATIVE_SYSTEM_HEADER_DIR "/include" /* Output STRING, a string representing a filename, to FILE. We canonicalize it to be in Unix format (backslashes are replaced From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Liu Hao Date: Wed, 6 May 2020 21:49:18 +0800 Subject: [PATCH 3/4] libgomp: Don't hard-code MS printf attributes Source: https://github.com/msys2/MINGW-packages/blob/9501ee2afc8d01dc7d85383e4b22e91c30d93ca7/mingw-w64-gcc/0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch Following discussion at https://www.spinics.net/lists/gcchelp/msg51246.html diff --git a/libgomp/libgomp.h b/libgomp/libgomp.h index 1111111..2222222 100644 --- a/libgomp/libgomp.h +++ b/libgomp/libgomp.h @@ -69,6 +69,14 @@ # endif #endif +#include +#include +#ifdef __MINGW_PRINTF_FORMAT +#define PRINTF_FORMAT __MINGW_PRINTF_FORMAT +#else +#define PRINTF_FORMAT printf +#endif + #ifdef HAVE_ATTRIBUTE_VISIBILITY # pragma GCC visibility push(hidden) #endif @@ -173,7 +181,7 @@ team_free (void *ptr) extern void gomp_vdebug (int, const char *, va_list); extern void gomp_debug (int, const char *, ...) - __attribute__ ((format (printf, 2, 3))); + __attribute__ ((format (PRINTF_FORMAT, 2, 3))); #define gomp_vdebug(KIND, FMT, VALIST) \ do { \ if (__builtin_expect (gomp_debug_var, 0)) \ @@ -186,11 +194,11 @@ extern void gomp_debug (int, const char *, ...) } while (0) extern void gomp_verror (const char *, va_list); extern void gomp_error (const char *, ...) - __attribute__ ((format (printf, 1, 2))); + __attribute__ ((format (PRINTF_FORMAT, 1, 2))); extern void gomp_vfatal (const char *, va_list) __attribute__ ((noreturn)); extern void gomp_fatal (const char *, ...) - __attribute__ ((noreturn, format (printf, 1, 2))); + __attribute__ ((noreturn, format (PRINTF_FORMAT, 1, 2))); struct gomp_task; struct gomp_taskgroup; From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Taj Morton Date: Mon, 24 Mar 2025 16:47:31 +0000 Subject: [PATCH 4/4] HAVE_DECL_GETPAGESIZE is defined to 0 if getpagesize() us unavailable. AC_CHECK_DECLS(getpagesize) will define HAVE_DECL_GETPAGESIZE to 0 or 1 based on if it is present or not. This adjusts the preprocessor logic so that getpagesize() will be declared (using the same logic used to check for strnlen in libbacktrace). diff --git a/libbacktrace/mmap.c b/libbacktrace/mmap.c index 1111111..2222222 100644 --- a/libbacktrace/mmap.c +++ b/libbacktrace/mmap.c @@ -42,7 +42,7 @@ POSSIBILITY OF SUCH DAMAGE. */ #include "backtrace.h" #include "internal.h" -#ifndef HAVE_DECL_GETPAGESIZE +#if !defined(HAVE_DECL_GETPAGESIZE) || !HAVE_DECL_GETPAGESIZE extern int getpagesize (void); #endif diff --git a/libbacktrace/mmapio.c b/libbacktrace/mmapio.c index 1111111..2222222 100644 --- a/libbacktrace/mmapio.c +++ b/libbacktrace/mmapio.c @@ -40,7 +40,7 @@ POSSIBILITY OF SUCH DAMAGE. */ #include "backtrace.h" #include "internal.h" -#ifndef HAVE_DECL_GETPAGESIZE +#if !defined(HAVE_DECL_GETPAGESIZE) || !HAVE_DECL_GETPAGESIZE extern int getpagesize (void); #endif