summaryrefslogtreecommitdiff
path: root/debian/patches/gdc-versym-os.diff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2017-05-13 13:54:49 +0300
committerIgor Pashev <pashev.igor@gmail.com>2017-05-13 13:54:49 +0300
commit42156b5190f4fa150e1fab6777eb81e69d4db8c9 (patch)
tree3bf47de81cf1f89892789535a036d2d55d93a136 /debian/patches/gdc-versym-os.diff
downloadgcc-6-debian.tar.gz
Imported gcc-6 (6.3.0-17)debian/6.3.0-17debian
Diffstat (limited to 'debian/patches/gdc-versym-os.diff')
-rw-r--r--debian/patches/gdc-versym-os.diff430
1 files changed, 430 insertions, 0 deletions
diff --git a/debian/patches/gdc-versym-os.diff b/debian/patches/gdc-versym-os.diff
new file mode 100644
index 0000000..49453f2
--- /dev/null
+++ b/debian/patches/gdc-versym-os.diff
@@ -0,0 +1,430 @@
+# DP: Implements D OS version conditions.
+
+This implements the following official versions:
+* Windows
+** Win32
+** Win64
+** Cygwin
+** MinGW
+* linux
+* OSX
+* FreeBSD
+* OpenBSD
+* NetBSD
+* Solaris
+* Posix
+* AIX
+* SysV4
+* Hurd
+* Android
+
+These gdc specific versions are also implemented:
+* GNU_MinGW64 (for mingw-w64)
+* GNU_OpenSolaris (for opensolaris)
+* GNU_GLibc (implemented for linux & bsd & opensolaris)
+* GNU_UCLibc (implemented for linux)
+* GNU_Bionic (implemented for linux)
+
+These official OS versions are not implemented:
+* DragonFlyBSD
+* BSD (other BSDs)
+* Haiku
+* SkyOS
+* SysV3
+
+Index: b/src/gcc/config/alpha/linux.h
+===================================================================
+--- a/src/gcc/config/alpha/linux.h
++++ b/src/gcc/config/alpha/linux.h
+@@ -33,6 +33,16 @@ along with GCC; see the file COPYING3.
+ builtin_define ("_GNU_SOURCE"); \
+ } while (0)
+
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do { \
++ if (OPTION_GLIBC) \
++ builtin_define ("GNU_GLibc"); \
++ \
++ builtin_define ("linux"); \
++ builtin_define ("Posix"); \
++ } while (0)
++
+ #undef LIB_SPEC
+ #define LIB_SPEC \
+ "%{pthread:-lpthread} \
+Index: b/src/gcc/config/arm/linux-eabi.h
+===================================================================
+--- a/src/gcc/config/arm/linux-eabi.h
++++ b/src/gcc/config/arm/linux-eabi.h
+@@ -30,6 +30,15 @@
+ } \
+ while (false)
+
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do \
++ { \
++ TARGET_GENERIC_LINUX_OS_D_BUILTINS(); \
++ ANDROID_TARGET_OS_D_BUILTINS(); \
++ } \
++ while (false)
++
+ /* We default to a soft-float ABI so that binaries can run on all
+ target hardware. If you override this to use the hard-float ABI then
+ change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */
+Index: b/src/gcc/config/darwin.h
+===================================================================
+--- a/src/gcc/config/darwin.h
++++ b/src/gcc/config/darwin.h
+@@ -977,4 +977,10 @@ extern void darwin_driver_init (unsigned
+ #define DEF_LD64 LD64_VERSION
+ #endif
+
++#define TARGET_OS_D_BUILTINS() \
++ do { \
++ builtin_define ("OSX"); \
++ builtin_define ("Posix"); \
++ } while (0)
++
+ #endif /* CONFIG_DARWIN_H */
+Index: b/src/gcc/config/freebsd.h
+===================================================================
+--- a/src/gcc/config/freebsd.h
++++ b/src/gcc/config/freebsd.h
+@@ -32,6 +32,13 @@ along with GCC; see the file COPYING3.
+ #undef TARGET_OS_CPP_BUILTINS
+ #define TARGET_OS_CPP_BUILTINS() FBSD_TARGET_OS_CPP_BUILTINS()
+
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do { \
++ builtin_define ("FreeBSD"); \
++ builtin_define ("Posix"); \
++ } while (0)
++
+ #undef CPP_SPEC
+ #define CPP_SPEC FBSD_CPP_SPEC
+
+Index: b/src/gcc/config/gnu.h
+===================================================================
+--- a/src/gcc/config/gnu.h
++++ b/src/gcc/config/gnu.h
+@@ -31,3 +31,11 @@ along with GCC. If not, see <http://www
+ builtin_assert ("system=unix"); \
+ builtin_assert ("system=posix"); \
+ } while (0)
++
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do { \
++ \
++ builtin_define ("Hurd"); \
++ builtin_define ("Posix"); \
++ } while (0)
+Index: b/src/gcc/config/i386/cygwin.h
+===================================================================
+--- a/src/gcc/config/i386/cygwin.h
++++ b/src/gcc/config/i386/cygwin.h
+@@ -29,6 +29,13 @@ along with GCC; see the file COPYING3.
+ } \
+ while (0)
+
++#define TARGET_OS_D_BUILTINS() \
++ do { \
++ builtin_define ("Windows"); \
++ builtin_define ("Cygwin"); \
++ builtin_define ("Posix"); \
++ } while (0)
++
+ #undef CPP_SPEC
+ #define CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} \
+ %{!ansi:-Dunix} \
+Index: b/src/gcc/config/i386/linux-common.h
+===================================================================
+--- a/src/gcc/config/i386/linux-common.h
++++ b/src/gcc/config/i386/linux-common.h
+@@ -27,6 +27,15 @@ along with GCC; see the file COPYING3.
+ } \
+ while (0)
+
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do \
++ { \
++ TARGET_GENERIC_LINUX_OS_D_BUILTINS(); \
++ ANDROID_TARGET_OS_D_BUILTINS(); \
++ } \
++ while (0)
++
+ #undef CC1_SPEC
+ #define CC1_SPEC \
+ LINUX_OR_ANDROID_CC (GNU_USER_TARGET_CC1_SPEC, \
+Index: b/src/gcc/config/i386/mingw-w64.h
+===================================================================
+--- a/src/gcc/config/i386/mingw-w64.h
++++ b/src/gcc/config/i386/mingw-w64.h
+@@ -89,3 +89,10 @@ along with GCC; see the file COPYING3.
+ %{static:-Bstatic} %{!static:-Bdynamic} \
+ %{shared|mdll: " SUB_LINK_ENTRY " --enable-auto-image-base} \
+ %(shared_libgcc_undefs)"
++
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do { \
++ TARGET_GENERIC_MINGW_OS_D_BUILTINS(); \
++ builtin_define ("GNU_MinGW64"); \
++ } while (0)
+Index: b/src/gcc/config/i386/mingw32.h
+===================================================================
+--- a/src/gcc/config/i386/mingw32.h
++++ b/src/gcc/config/i386/mingw32.h
+@@ -53,6 +53,18 @@ along with GCC; see the file COPYING3.
+ } \
+ while (0)
+
++#define TARGET_OS_D_BUILTINS() TARGET_GENERIC_MINGW_OS_D_BUILTINS()
++#define TARGET_GENERIC_MINGW_OS_D_BUILTINS() \
++ do { \
++ builtin_define ("Windows"); \
++ builtin_define ("MinGW"); \
++ \
++ if (TARGET_64BIT && ix86_abi == MS_ABI) \
++ builtin_define ("Win64"); \
++ else if (!TARGET_64BIT) \
++ builtin_define ("Win32"); \
++ } while (0)
++
+ #ifndef TARGET_USE_PTHREAD_BY_DEFAULT
+ #define SPEC_PTHREAD1 "pthread"
+ #define SPEC_PTHREAD2 "!no-pthread"
+Index: b/src/gcc/config/kfreebsd-gnu.h
+===================================================================
+--- a/src/gcc/config/kfreebsd-gnu.h
++++ b/src/gcc/config/kfreebsd-gnu.h
+@@ -29,6 +29,14 @@ along with GCC; see the file COPYING3.
+ } \
+ while (0)
+
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do { \
++ builtin_define ("FreeBSD"); \
++ builtin_define ("Posix"); \
++ builtin_define ("GNU_GLibc"); \
++ } while (0)
++
+ #define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
+ #define GNU_USER_DYNAMIC_LINKER32 GLIBC_DYNAMIC_LINKER32
+ #define GNU_USER_DYNAMIC_LINKER64 GLIBC_DYNAMIC_LINKER64
+Index: b/src/gcc/config/knetbsd-gnu.h
+===================================================================
+--- a/src/gcc/config/knetbsd-gnu.h
++++ b/src/gcc/config/knetbsd-gnu.h
+@@ -30,6 +30,16 @@ along with GCC; see the file COPYING3.
+ } \
+ while (0)
+
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do \
++ { \
++ builtin_define ("NetBSD"); \
++ builtin_define ("Posix"); \
++ builtin_define ("GNU_GLibc"); \
++ } \
++ while (0)
++
+
+ #undef GNU_USER_DYNAMIC_LINKER
+ #define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
+Index: b/src/gcc/config/kopensolaris-gnu.h
+===================================================================
+--- a/src/gcc/config/kopensolaris-gnu.h
++++ b/src/gcc/config/kopensolaris-gnu.h
+@@ -30,5 +30,15 @@ along with GCC; see the file COPYING3.
+ } \
+ while (0)
+
++#define TARGET_OS_D_BUILTINS() \
++ do \
++ { \
++ builtin_define ("Solaris"); \
++ builtin_define ("Posix"); \
++ builtin_define ("GNU_OpenSolaris"); \
++ builtin_define ("GNU_GLibc"); \
++ } \
++ while (0)
++
+ #undef GNU_USER_DYNAMIC_LINKER
+ #define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
+Index: b/src/gcc/config/linux-android.h
+===================================================================
+--- a/src/gcc/config/linux-android.h
++++ b/src/gcc/config/linux-android.h
+@@ -25,6 +25,12 @@
+ builtin_define ("__ANDROID__"); \
+ } while (0)
+
++#define ANDROID_TARGET_OS_D_BUILTINS() \
++ do { \
++ if (TARGET_ANDROID) \
++ builtin_define ("Android"); \
++ } while (0)
++
+ #if ANDROID_DEFAULT
+ # define NOANDROID "mno-android"
+ #else
+Index: b/src/gcc/config/linux.h
+===================================================================
+--- a/src/gcc/config/linux.h
++++ b/src/gcc/config/linux.h
+@@ -53,6 +53,28 @@ see the files COPYING3 and COPYING.RUNTI
+ builtin_assert ("system=posix"); \
+ } while (0)
+
++#define TARGET_OS_D_BUILTINS() TARGET_GENERIC_LINUX_OS_D_BUILTINS()
++#define TARGET_GENERIC_LINUX_OS_D_BUILTINS() \
++ do { \
++ if (OPTION_GLIBC) \
++ { \
++ builtin_define ("GNU_GLibc"); \
++ builtin_define ("CRuntime_Glibc"); \
++ } \
++ else if (OPTION_UCLIBC) \
++ { \
++ builtin_define ("GNU_UCLibc"); \
++ } \
++ else if (OPTION_BIONIC) \
++ { \
++ builtin_define ("GNU_Bionic"); \
++ builtin_define ("CRuntime_Bionic"); \
++ } \
++ \
++ builtin_define ("linux"); \
++ builtin_define ("Posix"); \
++ } while (0)
++
+ /* Determine which dynamic linker to use depending on whether GLIBC or
+ uClibc or Bionic or musl is the default C library and whether
+ -muclibc or -mglibc or -mbionic or -mmusl has been passed to change
+Index: b/src/gcc/config/mips/linux-common.h
+===================================================================
+--- a/src/gcc/config/mips/linux-common.h
++++ b/src/gcc/config/mips/linux-common.h
+@@ -27,6 +27,15 @@ along with GCC; see the file COPYING3.
+ ANDROID_TARGET_OS_CPP_BUILTINS(); \
+ } while (0)
+
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do \
++ { \
++ TARGET_GENERIC_LINUX_OS_D_BUILTINS(); \
++ ANDROID_TARGET_OS_D_BUILTINS(); \
++ } \
++ while (0)
++
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+ LINUX_OR_ANDROID_LD (GNU_USER_TARGET_LINK_SPEC, \
+Index: b/src/gcc/config/netbsd.h
+===================================================================
+--- a/src/gcc/config/netbsd.h
++++ b/src/gcc/config/netbsd.h
+@@ -29,6 +29,14 @@ along with GCC; see the file COPYING3.
+ } \
+ while (0)
+
++#define TARGET_OS_D_BUILTINS() \
++ do \
++ { \
++ builtin_define ("NetBSD"); \
++ builtin_define ("Posix"); \
++ } \
++ while (0)
++
+ /* CPP_SPEC parts common to all NetBSD targets. */
+ #define NETBSD_CPP_SPEC \
+ "%{posix:-D_POSIX_SOURCE} \
+Index: b/src/gcc/config/openbsd.h
+===================================================================
+--- a/src/gcc/config/openbsd.h
++++ b/src/gcc/config/openbsd.h
+@@ -84,6 +84,14 @@ along with GCC; see the file COPYING3.
+ } \
+ while (0)
+
++#define TARGET_OS_D_BUILTINS() \
++ do \
++ { \
++ builtin_define ("OpenBSD"); \
++ builtin_define ("Posix"); \
++ } \
++ while (0)
++
+ /* TARGET_OS_CPP_BUILTINS() common to all OpenBSD ELF targets. */
+ #define OPENBSD_OS_CPP_BUILTINS_ELF() \
+ do \
+Index: b/src/gcc/config/rs6000/aix.h
+===================================================================
+--- a/src/gcc/config/rs6000/aix.h
++++ b/src/gcc/config/rs6000/aix.h
+@@ -129,6 +129,13 @@
+ } \
+ while (0)
+
++#define TARGET_OS_D_BUILTINS() \
++ do { \
++ \
++ builtin_define ("AIX"); \
++ builtin_define ("Posix"); \
++ } while (0)
++
+ /* Define appropriate architecture macros for preprocessor depending on
+ target switches. */
+
+Index: b/src/gcc/config/rs6000/linux.h
+===================================================================
+--- a/src/gcc/config/rs6000/linux.h
++++ b/src/gcc/config/rs6000/linux.h
+@@ -57,6 +57,17 @@
+ } \
+ while (0)
+
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do \
++ { \
++ builtin_define ("linux"); \
++ builtin_define ("Posix"); \
++ if (OPTION_GLIBC) \
++ builtin_define ("GNU_GLibc"); \
++ } \
++ while (0)
++
+ #undef CPP_OS_DEFAULT_SPEC
+ #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)"
+
+Index: b/src/gcc/config/rs6000/linux64.h
+===================================================================
+--- a/src/gcc/config/rs6000/linux64.h
++++ b/src/gcc/config/rs6000/linux64.h
+@@ -391,6 +391,17 @@ extern int dot_symbols;
+ } \
+ while (0)
+
++#undef TARGET_OS_D_BUILTINS
++#define TARGET_OS_D_BUILTINS() \
++ do \
++ { \
++ builtin_define ("linux"); \
++ builtin_define ("Posix"); \
++ if (OPTION_GLIBC) \
++ builtin_define ("GNU_GLibc"); \
++ } \
++ while (0)
++
+ #undef CPP_OS_DEFAULT_SPEC
+ #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux) %(include_extra)"
+