gcc: update to 6.2.1.
This commit is contained in:
parent
82de3192d9
commit
a0e3cb9a42
13 changed files with 6120 additions and 908 deletions
|
@ -50,13 +50,18 @@ libmvec.so.1 glibc-2.22_1
|
|||
libz.so.1 zlib-1.2.3_1
|
||||
libbz2.so.1 bzip2-1.0.5_1
|
||||
libarchive.so.13 libarchive-3.1.2_1
|
||||
libcc1.so.0 gcc-6.2.1_1
|
||||
libcc1plugin.so.0 gcc-6.2.1_1
|
||||
libitm.so.1 libitm-4.7.3_1
|
||||
libgcj_bc.so.1 libgcj-4.7.3_1
|
||||
liblto_plugin.so.0 gcc-4.7.3_1
|
||||
libgcc_s.so.1 libgcc-4.4.0_1
|
||||
libgcj.so.15 libgcj-4.9.0_1
|
||||
libgcj-tools.so.15 libgcj-4.9.0_1
|
||||
libgij.so.15 libgcj-4.9.0_1
|
||||
libgcj.so.17 libgcj-6.2.0_1
|
||||
libgcj-tools.so.17 libgcj-6.2.1_1
|
||||
libgij.so.17 libgcj-6.2.1_1
|
||||
libgo.so.9 libgo-6.2.1_1
|
||||
libmpx.so.2 libmpx-6.2.1_1
|
||||
libmpxwrappers.so.2 libmpx-6.2.1_1
|
||||
libperl.so.5.24 perl-5.24.0_1
|
||||
libmp.so.3 gmp-5.0.1_1
|
||||
libgmp.so.10 gmp-5.0.1_1
|
||||
|
@ -1652,7 +1657,7 @@ libextractor_common.so.1 libextractor-1.1_1
|
|||
libpano13.so.3 libpano13-2.9.19_1
|
||||
libubsan.so.0 libsanitizer-4.9.0_1
|
||||
libtsan.so.0 libsanitizer-4.9.0_1
|
||||
libasan.so.1 libsanitizer-4.9.0_1
|
||||
libasan.so.3 libsanitizer-6.2.0_1
|
||||
liblsan.so.0 libsanitizer-4.9.0_1
|
||||
libcilkrts.so.5 libcilkrts-4.9.0_1
|
||||
libvtv.so.0 libvtv-4.9.0_1
|
||||
|
|
5414
srcpkgs/gcc/c18caf6dbf178664c7b31174e08f2366be40e13b.patch
Normal file
5414
srcpkgs/gcc/c18caf6dbf178664c7b31174e08f2366be40e13b.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,730 +0,0 @@
|
|||
820c77b17a4a
|
||||
# HG changeset patch
|
||||
# Parent 1f830bec5a3f04b2718ce1395743d8e35c26341c
|
||||
Use the generic implementation of libstdc++ primitives when we're on musl, not the glibc one.
|
||||
|
||||
diff -r 1f830bec5a3f libstdc++-v3/configure.host
|
||||
--- a/libstdc++-v3/configure.host Thu Jan 29 14:04:56 2015 -0500
|
||||
+++ b/libstdc++-v3/configure.host Thu Jan 29 14:06:11 2015 -0500
|
||||
@@ -264,6 +264,13 @@
|
||||
os_include_dir="os/bsd/freebsd"
|
||||
;;
|
||||
gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
|
||||
+ # check for musl by target
|
||||
+ case "${host_os}" in
|
||||
+ *-musl*)
|
||||
+ os_include_dir="os/generic"
|
||||
+ ;;
|
||||
+ *)
|
||||
+
|
||||
if [ "$uclibc" = "yes" ]; then
|
||||
os_include_dir="os/uclibc"
|
||||
elif [ "$bionic" = "yes" ]; then
|
||||
@@ -272,6 +279,9 @@
|
||||
os_include_dir="os/gnu-linux"
|
||||
fi
|
||||
;;
|
||||
+
|
||||
+ esac
|
||||
+ ;;
|
||||
hpux*)
|
||||
os_include_dir="os/hpux"
|
||||
;;
|
||||
# HG changeset patch
|
||||
# Parent fc7bb9343dcd071463a63dfc1b356d579eb0872f
|
||||
Adding -mmusl as a musl libc specifier, and the necessary hacks for it to know how to find musl's dynamic linker.
|
||||
|
||||
diff -r fc7bb9343dcd gcc/config.gcc
|
||||
--- a/gcc/config.gcc Thu Jan 29 14:06:11 2015 -0500
|
||||
+++ b/gcc/config.gcc Thu Jan 29 14:06:13 2015 -0500
|
||||
@@ -594,7 +594,7 @@
|
||||
esac
|
||||
|
||||
# Common C libraries.
|
||||
-tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
|
||||
+tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
|
||||
|
||||
# 32-bit x86 processors supported by --with-arch=. Each processor
|
||||
# MUST be separated by exactly one space.
|
||||
@@ -719,6 +719,9 @@
|
||||
*-*-*uclibc*)
|
||||
tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
|
||||
;;
|
||||
+ *-*-*musl*)
|
||||
+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
|
||||
+ ;;
|
||||
*)
|
||||
tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
|
||||
;;
|
||||
diff -r fc7bb9343dcd gcc/config/linux.h
|
||||
--- a/gcc/config/linux.h Thu Jan 29 14:06:11 2015 -0500
|
||||
+++ b/gcc/config/linux.h Thu Jan 29 14:06:13 2015 -0500
|
||||
@@ -32,10 +32,12 @@
|
||||
#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
|
||||
#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
|
||||
#define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
|
||||
+#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL)
|
||||
#else
|
||||
#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
|
||||
#define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
|
||||
#define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
|
||||
+#define OPTION_MUSL (linux_libc == LIBC_MUSL)
|
||||
#endif
|
||||
|
||||
#define GNU_USER_TARGET_OS_CPP_BUILTINS() \
|
||||
@@ -53,18 +55,21 @@
|
||||
uClibc or Bionic is the default C library and whether
|
||||
-muclibc or -mglibc or -mbionic has been passed to change the default. */
|
||||
|
||||
-#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LD1, LD2, LD3) \
|
||||
- "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:" LD1 "}}"
|
||||
+#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LIBC4, LD1, LD2, LD3, LD4) \
|
||||
+ "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:%{" LIBC4 ":" LD4 ";:" LD1 "}}}"
|
||||
|
||||
#if DEFAULT_LIBC == LIBC_GLIBC
|
||||
-#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
|
||||
- CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", G, U, B)
|
||||
+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
|
||||
+ CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", "mmusl", G, U, B, M)
|
||||
#elif DEFAULT_LIBC == LIBC_UCLIBC
|
||||
-#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
|
||||
- CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", U, G, B)
|
||||
+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
|
||||
+ CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", "mmusl", U, G, B, M)
|
||||
#elif DEFAULT_LIBC == LIBC_BIONIC
|
||||
-#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
|
||||
- CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", B, G, U)
|
||||
+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
|
||||
+ CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", "mmusl", B, G, U, M)
|
||||
+#elif DEFAULT_LIBC == LIBC_MUSL
|
||||
+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
|
||||
+ CHOOSE_DYNAMIC_LINKER1 ("mmusl", "mglibc", "muclibc", "mbionic", M, G, U, B)
|
||||
#else
|
||||
#error "Unsupported DEFAULT_LIBC"
|
||||
#endif /* DEFAULT_LIBC */
|
||||
@@ -84,21 +89,92 @@
|
||||
|
||||
#define GNU_USER_DYNAMIC_LINKER \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
|
||||
- BIONIC_DYNAMIC_LINKER)
|
||||
+ BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER)
|
||||
#define GNU_USER_DYNAMIC_LINKER32 \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \
|
||||
- BIONIC_DYNAMIC_LINKER32)
|
||||
+ BIONIC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32)
|
||||
#define GNU_USER_DYNAMIC_LINKER64 \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \
|
||||
- BIONIC_DYNAMIC_LINKER64)
|
||||
+ BIONIC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64)
|
||||
#define GNU_USER_DYNAMIC_LINKERX32 \
|
||||
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERX32, UCLIBC_DYNAMIC_LINKERX32, \
|
||||
- BIONIC_DYNAMIC_LINKERX32)
|
||||
+ BIONIC_DYNAMIC_LINKERX32, MUSL_DYNAMIC_LINKERX32)
|
||||
|
||||
/* Whether we have Bionic libc runtime */
|
||||
#undef TARGET_HAS_BIONIC
|
||||
#define TARGET_HAS_BIONIC (OPTION_BIONIC)
|
||||
|
||||
+/* musl avoids problematic includes by rearranging the include directories.
|
||||
+ * Unfortunately, this is mostly duplicated from cppdefault.c */
|
||||
+#if DEFAULT_LIBC == LIBC_MUSL
|
||||
+#define INCLUDE_DEFAULTS_MUSL_GPP \
|
||||
+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, \
|
||||
+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, \
|
||||
+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, \
|
||||
+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, \
|
||||
+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \
|
||||
+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
|
||||
+
|
||||
+#ifdef LOCAL_INCLUDE_DIR
|
||||
+#define INCLUDE_DEFAULTS_MUSL_LOCAL \
|
||||
+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \
|
||||
+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
|
||||
+#else
|
||||
+#define INCLUDE_DEFAULTS_MUSL_LOCAL
|
||||
+#endif
|
||||
+
|
||||
+#ifdef PREFIX_INCLUDE_DIR
|
||||
+#define INCLUDE_DEFAULTS_MUSL_PREFIX \
|
||||
+ { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
|
||||
+#else
|
||||
+#define INCLUDE_DEFAULTS_MUSL_PREFIX
|
||||
+#endif
|
||||
+
|
||||
+#ifdef CROSS_INCLUDE_DIR
|
||||
+#define INCLUDE_DEFAULTS_MUSL_CROSS \
|
||||
+ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
|
||||
+#else
|
||||
+#define INCLUDE_DEFAULTS_MUSL_CROSS
|
||||
+#endif
|
||||
+
|
||||
+#ifdef TOOL_INCLUDE_DIR
|
||||
+#define INCLUDE_DEFAULTS_MUSL_TOOL \
|
||||
+ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
|
||||
+#else
|
||||
+#define INCLUDE_DEFAULTS_MUSL_TOOL
|
||||
+#endif
|
||||
+
|
||||
+#ifdef NATIVE_SYSTEM_HEADER_DIR
|
||||
+#define INCLUDE_DEFAULTS_MUSL_NATIVE \
|
||||
+ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \
|
||||
+ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
|
||||
+#else
|
||||
+#define INCLUDE_DEFAULTS_MUSL_NATIVE
|
||||
+#endif
|
||||
+
|
||||
+#if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT)
|
||||
+# undef INCLUDE_DEFAULTS_MUSL_LOCAL
|
||||
+# define INCLUDE_DEFAULTS_MUSL_LOCAL
|
||||
+# undef INCLUDE_DEFAULTS_MUSL_NATIVE
|
||||
+# define INCLUDE_DEFAULTS_MUSL_NATIVE
|
||||
+#else
|
||||
+# undef INCLUDE_DEFAULTS_MUSL_CROSS
|
||||
+# define INCLUDE_DEFAULTS_MUSL_CROSS
|
||||
+#endif
|
||||
+
|
||||
+#undef INCLUDE_DEFAULTS
|
||||
+#define INCLUDE_DEFAULTS \
|
||||
+ { \
|
||||
+ INCLUDE_DEFAULTS_MUSL_GPP \
|
||||
+ INCLUDE_DEFAULTS_MUSL_PREFIX \
|
||||
+ INCLUDE_DEFAULTS_MUSL_CROSS \
|
||||
+ INCLUDE_DEFAULTS_MUSL_TOOL \
|
||||
+ INCLUDE_DEFAULTS_MUSL_NATIVE \
|
||||
+ { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \
|
||||
+ { 0, 0, 0, 0, 0, 0 } \
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
#if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */
|
||||
/* This is a *uclinux* target. We don't define below macros to normal linux
|
||||
versions, because doing so would require *uclinux* targets to include
|
||||
diff -r fc7bb9343dcd gcc/config/linux.opt
|
||||
--- a/gcc/config/linux.opt Thu Jan 29 14:06:11 2015 -0500
|
||||
+++ b/gcc/config/linux.opt Thu Jan 29 14:06:13 2015 -0500
|
||||
@@ -30,3 +30,7 @@
|
||||
muclibc
|
||||
Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic)
|
||||
Use uClibc C library
|
||||
+
|
||||
+mmusl
|
||||
+Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mglibc)
|
||||
+Use musl C library
|
||||
diff -r fc7bb9343dcd gcc/ginclude/stddef.h
|
||||
--- a/gcc/ginclude/stddef.h Thu Jan 29 14:06:11 2015 -0500
|
||||
+++ b/gcc/ginclude/stddef.h Thu Jan 29 14:06:13 2015 -0500
|
||||
@@ -181,6 +181,7 @@
|
||||
#ifndef _GCC_SIZE_T
|
||||
#ifndef _SIZET_
|
||||
#ifndef __size_t
|
||||
+#ifndef __DEFINED_size_t /* musl */
|
||||
#define __size_t__ /* BeOS */
|
||||
#define __SIZE_T__ /* Cray Unicos/Mk */
|
||||
#define _SIZE_T
|
||||
@@ -197,6 +198,7 @@
|
||||
#define ___int_size_t_h
|
||||
#define _GCC_SIZE_T
|
||||
#define _SIZET_
|
||||
+#define __DEFINED_size_t /* musl */
|
||||
#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
|
||||
|| defined(__FreeBSD_kernel__)
|
||||
/* __size_t is a typedef on FreeBSD 5, must not trash it. */
|
||||
@@ -214,6 +216,7 @@
|
||||
typedef long ssize_t;
|
||||
#endif /* __BEOS__ */
|
||||
#endif /* !(defined (__GNUG__) && defined (size_t)) */
|
||||
+#endif /* __DEFINED_size_t */
|
||||
#endif /* __size_t */
|
||||
#endif /* _SIZET_ */
|
||||
#endif /* _GCC_SIZE_T */
|
||||
# HG changeset patch
|
||||
# Parent ad6952ac547606025a6fb8496584cbfe1b73a8b7
|
||||
A fix for libgomp to correctly request a POSIX version for time support.
|
||||
|
||||
diff -r ad6952ac5476 libgomp/config/posix/time.c
|
||||
--- a/libgomp/config/posix/time.c Thu Jan 29 14:06:13 2015 -0500
|
||||
+++ b/libgomp/config/posix/time.c Thu Jan 29 14:06:16 2015 -0500
|
||||
@@ -28,6 +28,8 @@
|
||||
The following implementation uses the most simple POSIX routines.
|
||||
If present, POSIX 4 clocks should be used instead. */
|
||||
|
||||
+#define _POSIX_C_SOURCE 199309L /* for clocks */
|
||||
+
|
||||
#include "libgomp.h"
|
||||
#include <unistd.h>
|
||||
#if TIME_WITH_SYS_TIME
|
||||
diff -r ffa879f29d52 libgcc/unwind-dw2-fde-dip.c
|
||||
--- a/libgcc/unwind-dw2-fde-dip.c Thu Jan 29 14:06:15 2015 -0500
|
||||
+++ b/libgcc/unwind-dw2-fde-dip.c Thu Jan 29 14:06:18 2015 -0500
|
||||
@@ -46,33 +46,13 @@
|
||||
#include "unwind-compat.h"
|
||||
#include "gthr.h"
|
||||
|
||||
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
|
||||
- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
|
||||
- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
|
||||
+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR)
|
||||
# define USE_PT_GNU_EH_FRAME
|
||||
-#endif
|
||||
-
|
||||
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
|
||||
- && defined(__BIONIC__)
|
||||
-# define USE_PT_GNU_EH_FRAME
|
||||
-#endif
|
||||
-
|
||||
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
|
||||
- && defined(__FreeBSD__) && __FreeBSD__ >= 7
|
||||
-# define ElfW __ElfN
|
||||
-# define USE_PT_GNU_EH_FRAME
|
||||
-#endif
|
||||
-
|
||||
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
|
||||
- && defined(__OpenBSD__)
|
||||
-# define ElfW(type) Elf_##type
|
||||
-# define USE_PT_GNU_EH_FRAME
|
||||
-#endif
|
||||
-
|
||||
-#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
|
||||
- && defined(TARGET_DL_ITERATE_PHDR) \
|
||||
- && defined(__sun__) && defined(__svr4__)
|
||||
-# define USE_PT_GNU_EH_FRAME
|
||||
+# ifdef __OpenBSD__
|
||||
+# define ElfW(type) Elf_##type
|
||||
+# elif defined(__FreeBSD__) && __FreeBSD__ >= 7
|
||||
+# define ElfW __ElfN
|
||||
+# endif
|
||||
#endif
|
||||
|
||||
#if defined(USE_PT_GNU_EH_FRAME)
|
||||
diff -r b35df09b819f gcc/configure
|
||||
--- a/gcc/configure Thu Jan 29 14:06:18 2015 -0500
|
||||
+++ b/gcc/configure Thu Jan 29 14:06:20 2015 -0500
|
||||
@@ -27356,6 +27356,9 @@
|
||||
else
|
||||
gcc_cv_libc_provides_ssp=no
|
||||
case "$target" in
|
||||
+ *-*-musl*)
|
||||
+ # All versions of musl provide stack protector
|
||||
+ gcc_cv_libc_provides_ssp=yes;;
|
||||
*-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
|
||||
# glibc 2.4 and later provides __stack_chk_fail and
|
||||
# either __stack_chk_guard, or TLS access to stack guard canary.
|
||||
@@ -27388,6 +27391,7 @@
|
||||
# <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now
|
||||
# simply assert that glibc does provide this, which is true for all
|
||||
# realistically usable GNU/Hurd configurations.
|
||||
+ # All supported versions of musl provide it as well
|
||||
gcc_cv_libc_provides_ssp=yes;;
|
||||
*-*-darwin* | *-*-freebsd*)
|
||||
ac_fn_c_check_func "$LINENO" "__stack_chk_fail" "ac_cv_func___stack_chk_fail"
|
||||
@@ -27477,6 +27481,9 @@
|
||||
gcc_cv_target_dl_iterate_phdr=no
|
||||
fi
|
||||
;;
|
||||
+ *-linux-musl*)
|
||||
+ gcc_cv_target_dl_iterate_phdr=yes
|
||||
+ ;;
|
||||
esac
|
||||
|
||||
if test x$gcc_cv_target_dl_iterate_phdr = xyes; then
|
||||
diff -r b35df09b819f gcc/configure.ac
|
||||
--- a/gcc/configure.ac Thu Jan 29 14:06:18 2015 -0500
|
||||
+++ b/gcc/configure.ac Thu Jan 29 14:06:20 2015 -0500
|
||||
@@ -5039,6 +5039,9 @@
|
||||
gcc_cv_libc_provides_ssp,
|
||||
[gcc_cv_libc_provides_ssp=no
|
||||
case "$target" in
|
||||
+ *-*-musl*)
|
||||
+ # All versions of musl provide stack protector
|
||||
+ gcc_cv_libc_provides_ssp=yes;;
|
||||
*-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
|
||||
# glibc 2.4 and later provides __stack_chk_fail and
|
||||
# either __stack_chk_guard, or TLS access to stack guard canary.
|
||||
@@ -5065,6 +5068,7 @@
|
||||
# <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now
|
||||
# simply assert that glibc does provide this, which is true for all
|
||||
# realistically usable GNU/Hurd configurations.
|
||||
+ # All supported versions of musl provide it as well
|
||||
gcc_cv_libc_provides_ssp=yes;;
|
||||
*-*-darwin* | *-*-freebsd*)
|
||||
AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
|
||||
@@ -5131,6 +5135,9 @@
|
||||
gcc_cv_target_dl_iterate_phdr=no
|
||||
fi
|
||||
;;
|
||||
+ *-linux-musl*)
|
||||
+ gcc_cv_target_dl_iterate_phdr=yes
|
||||
+ ;;
|
||||
esac
|
||||
GCC_TARGET_TEMPLATE([TARGET_DL_ITERATE_PHDR])
|
||||
if test x$gcc_cv_target_dl_iterate_phdr = xyes; then
|
||||
# HG changeset patch
|
||||
# Parent b6a339cae9f0607a291a2fe8de80caecd48f1ebd
|
||||
Get rid of ever-broken fixincludes on musl.
|
||||
|
||||
diff -r b6a339cae9f0 fixincludes/mkfixinc.sh
|
||||
--- a/fixincludes/mkfixinc.sh Thu Jan 29 14:06:20 2015 -0500
|
||||
+++ b/fixincludes/mkfixinc.sh Thu Jan 29 14:06:22 2015 -0500
|
||||
@@ -19,7 +19,8 @@
|
||||
powerpc-*-eabi* | \
|
||||
powerpc-*-rtems* | \
|
||||
powerpcle-*-eabisim* | \
|
||||
- powerpcle-*-eabi* )
|
||||
+ powerpcle-*-eabi* | \
|
||||
+ *-musl* )
|
||||
# IF there is no include fixing,
|
||||
# THEN create a no-op fixer and exit
|
||||
(echo "#! /bin/sh" ; echo "exit 0" ) > ${target}
|
||||
# HG changeset patch
|
||||
# Parent 6c0bb7083dd2eba825f2693dc30d0e39359c1a66
|
||||
Support for i386-linux-musl and x86_64-linux-musl.
|
||||
|
||||
diff -r 6c0bb7083dd2 gcc/config/i386/linux.h
|
||||
--- a/gcc/config/i386/linux.h Thu Jan 29 14:06:22 2015 -0500
|
||||
+++ b/gcc/config/i386/linux.h Thu Jan 29 14:06:25 2015 -0500
|
||||
@@ -21,3 +21,4 @@
|
||||
|
||||
#define GNU_USER_LINK_EMULATION "elf_i386"
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
|
||||
diff -r 6c0bb7083dd2 gcc/config/i386/linux64.h
|
||||
--- a/gcc/config/i386/linux64.h Thu Jan 29 14:06:22 2015 -0500
|
||||
+++ b/gcc/config/i386/linux64.h Thu Jan 29 14:06:25 2015 -0500
|
||||
@@ -30,3 +30,7 @@
|
||||
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
|
||||
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
|
||||
#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
|
||||
+
|
||||
+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
|
||||
+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1"
|
||||
+#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
|
||||
diff -r 6c0bb7083dd2 libitm/config/linux/x86/tls.h
|
||||
--- a/libitm/config/linux/x86/tls.h Thu Jan 29 14:06:22 2015 -0500
|
||||
+++ b/libitm/config/linux/x86/tls.h Thu Jan 29 14:06:25 2015 -0500
|
||||
@@ -25,16 +25,19 @@
|
||||
#ifndef LIBITM_X86_TLS_H
|
||||
#define LIBITM_X86_TLS_H 1
|
||||
|
||||
-#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10)
|
||||
+#if defined(__GLIBC_PREREQ)
|
||||
+#if __GLIBC_PREREQ(2, 10)
|
||||
/* Use slots in the TCB head rather than __thread lookups.
|
||||
GLIBC has reserved words 10 through 13 for TM. */
|
||||
#define HAVE_ARCH_GTM_THREAD 1
|
||||
#define HAVE_ARCH_GTM_THREAD_DISP 1
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#include "config/generic/tls.h"
|
||||
|
||||
-#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10)
|
||||
+#if defined(__GLIBC_PREREQ)
|
||||
+#if __GLIBC_PREREQ(2, 10)
|
||||
namespace GTM HIDDEN {
|
||||
|
||||
#ifdef __x86_64__
|
||||
@@ -101,5 +104,6 @@
|
||||
|
||||
} // namespace GTM
|
||||
#endif /* >= GLIBC 2.10 */
|
||||
+#endif
|
||||
|
||||
#endif // LIBITM_X86_TLS_H
|
||||
# HG changeset patch
|
||||
# Parent 4802c181abe099c2f903184ace267c6a527ca91c
|
||||
Support for arm-linux-musl.
|
||||
|
||||
diff -r 4802c181abe0 gcc/config/arm/linux-eabi.h
|
||||
--- a/gcc/config/arm/linux-eabi.h Thu Jan 29 14:06:25 2015 -0500
|
||||
+++ b/gcc/config/arm/linux-eabi.h Thu Jan 29 14:06:27 2015 -0500
|
||||
@@ -77,6 +77,23 @@
|
||||
%{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
|
||||
%{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
|
||||
|
||||
+/* For ARM musl currently supports four dynamic linkers:
|
||||
+ - ld-musl-arm.so.1 - for the EABI-derived soft-float ABI
|
||||
+ - ld-musl-armhf.so.1 - for the EABI-derived hard-float ABI
|
||||
+ - ld-musl-armeb.so.1 - for the EABI-derived soft-float ABI, EB
|
||||
+ - ld-musl-armebhf.so.1 - for the EABI-derived hard-float ABI, EB
|
||||
+ musl does not support the legacy OABI mode.
|
||||
+ All the dynamic linkers live in /lib.
|
||||
+ We default to soft-float, EL. */
|
||||
+#undef MUSL_DYNAMIC_LINKER
|
||||
+#if TARGET_BIG_ENDIAN_DEFAULT
|
||||
+#define MUSL_DYNAMIC_LINKER_E "%{mlittle-endian:;:eb}"
|
||||
+#else
|
||||
+#define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}"
|
||||
+#endif
|
||||
+#define MUSL_DYNAMIC_LINKER \
|
||||
+ "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
|
||||
+
|
||||
/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
|
||||
use the GNU/Linux version, not the generic BPABI version. */
|
||||
#undef LINK_SPEC
|
||||
diff -r 4802c181abe0 libitm/config/arm/hwcap.cc
|
||||
--- a/libitm/config/arm/hwcap.cc Thu Jan 29 14:06:25 2015 -0500
|
||||
+++ b/libitm/config/arm/hwcap.cc Thu Jan 29 14:06:27 2015 -0500
|
||||
@@ -40,7 +40,11 @@
|
||||
|
||||
#ifdef __linux__
|
||||
#include <unistd.h>
|
||||
+#ifdef __GLIBC__
|
||||
#include <sys/fcntl.h>
|
||||
+#else
|
||||
+#include <fcntl.h>
|
||||
+#endif
|
||||
#include <elf.h>
|
||||
|
||||
static void __attribute__((constructor))
|
||||
# HG changeset patch
|
||||
# Parent f34ce414667f8513979b8a0507f3d6b934f1ebeb
|
||||
Support for mips-linux-musl.
|
||||
|
||||
diff -r f34ce414667f gcc/config/mips/linux.h
|
||||
--- a/gcc/config/mips/linux.h Thu Jan 29 14:06:27 2015 -0500
|
||||
+++ b/gcc/config/mips/linux.h Thu Jan 29 14:06:29 2015 -0500
|
||||
@@ -23,3 +23,10 @@
|
||||
#undef UCLIBC_DYNAMIC_LINKER
|
||||
#define UCLIBC_DYNAMIC_LINKER \
|
||||
"%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
|
||||
+
|
||||
+#if TARGET_ENDIAN_DEFAULT == 0 /* LE */
|
||||
+#define MUSL_DYNAMIC_LINKER_E "%{EB:;:el}"
|
||||
+#else
|
||||
+#define MUSL_DYNAMIC_LINKER_E "%{EL:el}"
|
||||
+#endif
|
||||
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E ".so.1"
|
||||
# HG changeset patch
|
||||
# Parent d4bad9a6572b0e8eacc08d2b1c40d03a6608bee5
|
||||
Support for powerpc-linux-musl.
|
||||
|
||||
diff -r d4bad9a6572b gcc/config.gcc
|
||||
--- a/gcc/config.gcc Thu Jan 29 14:06:29 2015 -0500
|
||||
+++ b/gcc/config.gcc Thu Jan 29 14:06:32 2015 -0500
|
||||
@@ -2334,6 +2334,10 @@
|
||||
powerpc*-*-linux*paired*)
|
||||
tm_file="${tm_file} rs6000/750cl.h" ;;
|
||||
esac
|
||||
+ case ${target} in
|
||||
+ *-linux*-musl*)
|
||||
+ enable_secureplt=yes ;;
|
||||
+ esac
|
||||
if test x${enable_secureplt} = xyes; then
|
||||
tm_file="rs6000/secureplt.h ${tm_file}"
|
||||
fi
|
||||
diff -r d4bad9a6572b gcc/config/rs6000/linux64.h
|
||||
--- a/gcc/config/rs6000/linux64.h Thu Jan 29 14:06:29 2015 -0500
|
||||
+++ b/gcc/config/rs6000/linux64.h Thu Jan 29 14:06:32 2015 -0500
|
||||
@@ -375,17 +375,21 @@
|
||||
#endif
|
||||
#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
|
||||
#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
|
||||
+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-powerpc.so.1"
|
||||
+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-powerpc64.so.1"
|
||||
#if DEFAULT_LIBC == LIBC_UCLIBC
|
||||
-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
|
||||
+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}"
|
||||
#elif DEFAULT_LIBC == LIBC_GLIBC
|
||||
-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
|
||||
+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}"
|
||||
+#elif DEFAULT_LIBC == LIBC_MUSL
|
||||
+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}"
|
||||
#else
|
||||
#error "Unsupported DEFAULT_LIBC"
|
||||
#endif
|
||||
#define GNU_USER_DYNAMIC_LINKER32 \
|
||||
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32)
|
||||
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32)
|
||||
#define GNU_USER_DYNAMIC_LINKER64 \
|
||||
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
|
||||
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64)
|
||||
|
||||
#undef DEFAULT_ASM_ENDIAN
|
||||
#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
|
||||
diff -r d4bad9a6572b gcc/config/rs6000/secureplt.h
|
||||
--- a/gcc/config/rs6000/secureplt.h Thu Jan 29 14:06:29 2015 -0500
|
||||
+++ b/gcc/config/rs6000/secureplt.h Thu Jan 29 14:06:32 2015 -0500
|
||||
@@ -18,3 +18,4 @@
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
|
||||
+#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
|
||||
diff -r d4bad9a6572b gcc/config/rs6000/sysv4.h
|
||||
--- a/gcc/config/rs6000/sysv4.h Thu Jan 29 14:06:29 2015 -0500
|
||||
+++ b/gcc/config/rs6000/sysv4.h Thu Jan 29 14:06:32 2015 -0500
|
||||
@@ -537,6 +537,9 @@
|
||||
#ifndef CC1_SECURE_PLT_DEFAULT_SPEC
|
||||
#define CC1_SECURE_PLT_DEFAULT_SPEC ""
|
||||
#endif
|
||||
+#ifndef LINK_SECURE_PLT_DEFAULT_SPEC
|
||||
+#define LINK_SECURE_PLT_DEFAULT_SPEC ""
|
||||
+#endif
|
||||
|
||||
/* Pass -G xxx to the compiler. */
|
||||
#define CC1_SPEC "%{G*} %(cc1_cpu)" \
|
||||
@@ -585,7 +588,8 @@
|
||||
|
||||
/* Override the default target of the linker. */
|
||||
#define LINK_TARGET_SPEC \
|
||||
- ENDIAN_SELECT("", " --oformat elf32-powerpcle", "")
|
||||
+ ENDIAN_SELECT("", " --oformat elf32-powerpcle", "") \
|
||||
+ "%{!mbss-plt: %{!msecure-plt: %(link_secure_plt_default)}}"
|
||||
|
||||
/* Any specific OS flags. */
|
||||
#define LINK_OS_SPEC "\
|
||||
@@ -763,15 +767,18 @@
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
|
||||
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-powerpc.so.1"
|
||||
#if DEFAULT_LIBC == LIBC_UCLIBC
|
||||
-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
|
||||
+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}"
|
||||
+#elif DEFAULT_LIBC == LIBC_MUSL
|
||||
+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}"
|
||||
#elif !defined (DEFAULT_LIBC) || DEFAULT_LIBC == LIBC_GLIBC
|
||||
-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
|
||||
+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}"
|
||||
#else
|
||||
#error "Unsupported DEFAULT_LIBC"
|
||||
#endif
|
||||
#define GNU_USER_DYNAMIC_LINKER \
|
||||
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
|
||||
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER)
|
||||
|
||||
#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
@@ -894,6 +901,7 @@
|
||||
{ "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \
|
||||
{ "link_os_default", LINK_OS_DEFAULT_SPEC }, \
|
||||
{ "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
|
||||
+ { "link_secure_plt_default", LINK_SECURE_PLT_DEFAULT_SPEC }, \
|
||||
{ "cpp_os_ads", CPP_OS_ADS_SPEC }, \
|
||||
{ "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
|
||||
{ "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
|
||||
diff -r 47a8492e5aa7 gcc/config/aarch64/aarch64-linux.h
|
||||
--- a/gcc/config/aarch64/aarch64-linux.h Thu Jan 29 14:06:31 2015 -0500
|
||||
+++ b/gcc/config/aarch64/aarch64-linux.h Thu Jan 29 14:06:34 2015 -0500
|
||||
@@ -23,6 +23,8 @@
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}.so.1"
|
||||
|
||||
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64.so.1"
|
||||
+
|
||||
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
|
||||
|
||||
#define LINUX_TARGET_LINK_SPEC "%{h*} \
|
||||
# HG changeset patch
|
||||
# Parent 9f4208089e8987637569ce7b294256c536396299
|
||||
Microblaze support (again).
|
||||
|
||||
diff -r 9f4208089e89 gcc/config/microblaze/linux.h
|
||||
--- a/gcc/config/microblaze/linux.h Thu Jan 29 14:06:34 2015 -0500
|
||||
+++ b/gcc/config/microblaze/linux.h Thu Jan 29 14:06:36 2015 -0500
|
||||
@@ -25,7 +25,22 @@
|
||||
#undef TLS_NEEDS_GOT
|
||||
#define TLS_NEEDS_GOT 1
|
||||
|
||||
-#define DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
+#if TARGET_BIG_ENDIAN_DEFAULT == 0 /* LE */
|
||||
+#define MUSL_DYNAMIC_LINKER_E "%{EB:;:el}"
|
||||
+#else
|
||||
+#define MUSL_DYNAMIC_LINKER_E "%{EL:el}"
|
||||
+#endif
|
||||
+
|
||||
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
|
||||
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
+
|
||||
+#if DEFAULT_LIBC == LIBC_MUSL
|
||||
+#define DYNAMIC_LINKER MUSL_DYNAMIC_LINKER
|
||||
+#else
|
||||
+#define DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "dynamic_linker", DYNAMIC_LINKER }
|
||||
From 478ee0c03a08e2ef9371fd88d516738936943e78 Mon Sep 17 00:00:00 2001
|
||||
From: David Holsgrove <david.holsgrove@xilinx.com>
|
||||
Date: Fri, 28 Sep 2012 16:32:03 +1000
|
||||
Subject: [PATCH 06/11] [Patch, microblaze]: Add SIZE_TYPE and PTRDIFF_TYPE to
|
||||
microblaze.h
|
||||
|
||||
Fixes warnings like;
|
||||
|
||||
warning: format '%zX' expects argument of type 'size_t',
|
||||
but argument 3 has type 'unsigned int' [-Wformat]
|
||||
|
||||
Changelog
|
||||
|
||||
2013-03-18 David Holsgrove <david.holsgrove@xilinx.com>
|
||||
|
||||
* gcc/config/microblaze/microblaze.h: Define SIZE_TYPE
|
||||
and PTRDIFF_TYPE.
|
||||
|
||||
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
|
||||
---
|
||||
gcc/config/microblaze/microblaze.h | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff -r 0dbe9a3f7670 gcc/config/microblaze/microblaze.h
|
||||
--- a/gcc/config/microblaze/microblaze.h Thu Jan 29 14:06:36 2015 -0500
|
||||
+++ b/gcc/config/microblaze/microblaze.h Thu Jan 29 14:06:38 2015 -0500
|
||||
@@ -218,6 +218,12 @@
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "int"
|
||||
|
||||
+#undef SIZE_TYPE
|
||||
+#define SIZE_TYPE "unsigned int"
|
||||
+
|
||||
+#undef PTRDIFF_TYPE
|
||||
+#define PTRDIFF_TYPE "int"
|
||||
+
|
||||
#define CONSTANT_ALIGNMENT(EXP, ALIGN) \
|
||||
((TREE_CODE (EXP) == STRING_CST || TREE_CODE (EXP) == CONSTRUCTOR) \
|
||||
&& (ALIGN) < BITS_PER_WORD \
|
||||
diff -r 94ebb0799454 gcc/config/sh/linux.h
|
||||
--- a/gcc/config/sh/linux.h Fri Sep 28 16:32:03 2012 +1000
|
||||
+++ b/gcc/config/sh/linux.h Thu Jan 29 14:06:41 2015 -0500
|
||||
@@ -43,7 +43,14 @@
|
||||
|
||||
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
|
||||
+#if TARGET_BIG_ENDIAN_DEFAULT /* BE */
|
||||
+#define MUSL_DYNAMIC_LINKER_E "eb"
|
||||
+#else
|
||||
+#define MUSL_DYNAMIC_LINKER_E
|
||||
+#endif
|
||||
+
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E ".so.1"
|
||||
|
||||
#undef SUBTARGET_LINK_EMUL_SUFFIX
|
||||
#define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
|
||||
|
||||
Use libc write(2) instead of undefined __write() to get rid
|
||||
of an error when later linking against libgcc.a
|
||||
This should fix the webkitgtk build, see:
|
||||
http://build.voidlinux.eu/builders/armv6l-musl_builder/builds/2991/steps/shell_3/logs/stdio
|
||||
|
||||
--- a/libgcc/config/arm/linux-atomic-64bit.c 2014-01-02 23:25:22.000000000 +0100
|
||||
+++ b/libgcc/config/arm/linux-atomic-64bit.c 2015-08-14 10:56:03.383219614 +0200
|
||||
@@ -33,7 +33,7 @@
|
||||
kernels; we check for that in an init section and bail out rather
|
||||
unceremoneously. */
|
||||
|
||||
-extern unsigned int __write (int fd, const void *buf, unsigned int count);
|
||||
+extern unsigned int write (int fd, const void *buf, unsigned int count);
|
||||
extern void abort (void);
|
||||
|
||||
/* Kernel helper for compare-and-exchange. */
|
||||
@@ -56,7 +56,7 @@
|
||||
for the user - I'm not sure I can rely on much else being
|
||||
available at this point, so do the same as generic-morestack.c
|
||||
write () and abort (). */
|
||||
- __write (2 /* stderr. */, err, sizeof (err));
|
||||
+ write (2 /* stderr. */, err, sizeof (err));
|
||||
abort ();
|
||||
}
|
||||
};
|
556
srcpkgs/gcc/files/gcc-6.2.1-musl.diff
Normal file
556
srcpkgs/gcc/files/gcc-6.2.1-musl.diff
Normal file
|
@ -0,0 +1,556 @@
|
|||
# HG changeset patch
|
||||
# Parent 90a7a3809a7ccb60e357b5e88382260877f82257
|
||||
Use the generic implementation of libstdc++ primitives when we're on musl, not the glibc one.
|
||||
|
||||
diff -r 90a7a3809a7c libstdc++-v3/configure.host
|
||||
--- a/libstdc++-v3/configure.host Thu Dec 24 11:22:15 2015 -0500
|
||||
+++ b/libstdc++-v3/configure.host Thu Dec 24 11:24:45 2015 -0500
|
||||
@@ -266,6 +266,13 @@
|
||||
os_include_dir="os/bsd/freebsd"
|
||||
;;
|
||||
gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
|
||||
+ # check for musl by target
|
||||
+ case "${host_os}" in
|
||||
+ *-musl*)
|
||||
+ os_include_dir="os/generic"
|
||||
+ ;;
|
||||
+ *)
|
||||
+
|
||||
if [ "$uclibc" = "yes" ]; then
|
||||
os_include_dir="os/uclibc"
|
||||
elif [ "$bionic" = "yes" ]; then
|
||||
@@ -281,6 +281,9 @@
|
||||
os_include_dir="os/gnu-linux"
|
||||
fi
|
||||
;;
|
||||
+
|
||||
+ esac
|
||||
+ ;;
|
||||
hpux*)
|
||||
os_include_dir="os/hpux"
|
||||
;;
|
||||
diff -r 30a957f60ddb gcc/ginclude/stddef.h
|
||||
--- a/gcc/ginclude/stddef.h Thu Dec 24 11:24:45 2015 -0500
|
||||
+++ b/gcc/ginclude/stddef.h Thu Dec 24 11:24:47 2015 -0500
|
||||
@@ -184,6 +184,7 @@
|
||||
#ifndef _GCC_SIZE_T
|
||||
#ifndef _SIZET_
|
||||
#ifndef __size_t
|
||||
+#ifndef __DEFINED_size_t /* musl */
|
||||
#define __size_t__ /* BeOS */
|
||||
#define __SIZE_T__ /* Cray Unicos/Mk */
|
||||
#define _SIZE_T
|
||||
@@ -200,6 +201,7 @@
|
||||
#define ___int_size_t_h
|
||||
#define _GCC_SIZE_T
|
||||
#define _SIZET_
|
||||
+#define __DEFINED_size_t /* musl */
|
||||
#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
|
||||
|| defined(__DragonFly__) \
|
||||
|| defined(__FreeBSD_kernel__)
|
||||
@@ -218,6 +220,7 @@
|
||||
typedef long ssize_t;
|
||||
#endif /* __BEOS__ */
|
||||
#endif /* !(defined (__GNUG__) && defined (size_t)) */
|
||||
+#endif /* __DEFINED_size_t */
|
||||
#endif /* __size_t */
|
||||
#endif /* _SIZET_ */
|
||||
#endif /* _GCC_SIZE_T */
|
||||
# HG changeset patch
|
||||
# Parent 90228af47e55eb338c7f672e4aca5ac81cf5f14c
|
||||
A fix for libgomp to correctly request a POSIX version for time support.
|
||||
|
||||
diff -r 90228af47e55 libgomp/config/posix/time.c
|
||||
--- a/libgomp/config/posix/time.c Thu Dec 24 11:24:47 2015 -0500
|
||||
+++ b/libgomp/config/posix/time.c Thu Dec 24 11:24:49 2015 -0500
|
||||
@@ -29,6 +29,8 @@
|
||||
The following implementation uses the most simple POSIX routines.
|
||||
If present, POSIX 4 clocks should be used instead. */
|
||||
|
||||
+#define _POSIX_C_SOURCE 199309L /* for clocks */
|
||||
+
|
||||
#include "libgomp.h"
|
||||
#include <unistd.h>
|
||||
#if TIME_WITH_SYS_TIME
|
||||
diff -r b08d4bc3d2ba libgcc/unwind-dw2-fde-dip.c
|
||||
--- a/libgcc/unwind-dw2-fde-dip.c Thu Dec 24 11:24:49 2015 -0500
|
||||
+++ b/libgcc/unwind-dw2-fde-dip.c Thu Dec 24 11:24:51 2015 -0500
|
||||
@@ -46,6 +46,10 @@
|
||||
#include "unwind-compat.h"
|
||||
#include "gthr.h"
|
||||
|
||||
+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR)
|
||||
+# define USE_PT_GNU_EH_FRAME
|
||||
+#endif
|
||||
+
|
||||
#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
|
||||
&& (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
|
||||
|| (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
|
||||
diff -r 1f375ed3689f gcc/gcc.c
|
||||
--- a/gcc/gcc.c Thu Dec 24 11:24:53 2015 -0500
|
||||
+++ b/gcc/gcc.c Thu Dec 24 11:24:56 2015 -0500
|
||||
@@ -860,7 +860,7 @@
|
||||
#ifndef LINK_SSP_SPEC
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
- "|fstack-protector-strong|fstack-protector-explicit:}"
|
||||
+ "|fstack-protector-strong|fstack-protector-explicit:-lssp_nonshared}"
|
||||
#else
|
||||
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
"|fstack-protector-strong|fstack-protector-explicit" \
|
||||
# HG changeset patch
|
||||
# Parent 76b553fabcf19eec5df2df7f05ce15a4bf8c3996
|
||||
Support for mips-linux-musl.
|
||||
|
||||
diff -r 76b553fabcf1 gcc/config/mips/linux.h
|
||||
--- a/gcc/config/mips/linux.h Thu Dec 24 11:25:02 2015 -0500
|
||||
+++ b/gcc/config/mips/linux.h Thu Dec 24 11:25:04 2015 -0500
|
||||
@@ -31,6 +31,13 @@
|
||||
#undef UCLIBC_DYNAMIC_LINKER32
|
||||
#define UCLIBC_DYNAMIC_LINKER32 \
|
||||
"%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
|
||||
+
|
||||
+#undef MUSL_DYNAMIC_LINKER32
|
||||
+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips%{EL:el}%{msoft-float:-sf}.so.1"
|
||||
+#undef MUSL_DYNAMIC_LINKER64
|
||||
+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips64%{EL:el}%{msoft-float:-sf}.so.1"
|
||||
+#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mipsn32%{EL:el}%{msoft-float:-sf}.so.1"
|
||||
+
|
||||
#undef UCLIBC_DYNAMIC_LINKER64
|
||||
#define UCLIBC_DYNAMIC_LINKER64 \
|
||||
"%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}"
|
||||
# HG changeset patch
|
||||
# Parent 971d410411735f0b04eb07236659097986926213
|
||||
Support for powerpc-linux-musl.
|
||||
|
||||
diff -r 971d41041173 gcc/config.gcc
|
||||
--- a/gcc/config.gcc Fri Dec 25 08:44:09 2015 -0500
|
||||
+++ b/gcc/config.gcc Fri Dec 25 09:42:16 2015 -0500
|
||||
@@ -2464,6 +2464,10 @@
|
||||
powerpc*-*-linux*paired*)
|
||||
tm_file="${tm_file} rs6000/750cl.h" ;;
|
||||
esac
|
||||
+ case ${target} in
|
||||
+ *-linux*-musl*)
|
||||
+ enable_secureplt=yes ;;
|
||||
+ esac
|
||||
if test x${enable_secureplt} = xyes; then
|
||||
tm_file="rs6000/secureplt.h ${tm_file}"
|
||||
fi
|
||||
diff -r 9555ffb5873b gcc/config/aarch64/aarch64-linux.h
|
||||
--- a/gcc/config/aarch64/aarch64-linux.h Thu Dec 24 11:25:06 2015 -0500
|
||||
+++ b/gcc/config/aarch64/aarch64-linux.h Thu Dec 24 11:25:09 2015 -0500
|
||||
@@ -32,6 +32,8 @@
|
||||
#undef CC1_SPEC
|
||||
#define CC1_SPEC GNU_USER_TARGET_CC1_SPEC ASAN_CC1_SPEC
|
||||
|
||||
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64.so.1"
|
||||
+
|
||||
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
|
||||
|
||||
#define LINUX_TARGET_LINK_SPEC "%{h*} \
|
||||
diff -r a522e4b04c77 gcc/config/microblaze/microblaze.h
|
||||
--- a/gcc/config/microblaze/microblaze.h Thu Dec 24 11:25:11 2015 -0500
|
||||
+++ b/gcc/config/microblaze/microblaze.h Thu Dec 24 11:25:13 2015 -0500
|
||||
@@ -218,6 +218,12 @@
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "int"
|
||||
|
||||
+#undef SIZE_TYPE
|
||||
+#define SIZE_TYPE "unsigned int"
|
||||
+
|
||||
+#undef PTRDIFF_TYPE
|
||||
+#define PTRDIFF_TYPE "int"
|
||||
+
|
||||
#define CONSTANT_ALIGNMENT(EXP, ALIGN) \
|
||||
((TREE_CODE (EXP) == STRING_CST || TREE_CODE (EXP) == CONSTRUCTOR) \
|
||||
&& (ALIGN) < BITS_PER_WORD \
|
||||
diff -r f2936ad874dd gcc/config/sh/linux.h
|
||||
--- a/gcc/config/sh/linux.h Fri Sep 28 16:32:03 2012 +1000
|
||||
+++ b/gcc/config/sh/linux.h Thu Dec 24 11:25:15 2015 -0500
|
||||
@@ -64,7 +64,14 @@
|
||||
|
||||
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
|
||||
+#if TARGET_BIG_ENDIAN_DEFAULT /* BE */
|
||||
+#define MUSL_DYNAMIC_LINKER_E "eb"
|
||||
+#else
|
||||
+#define MUSL_DYNAMIC_LINKER_E
|
||||
+#endif
|
||||
+
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E ".so.1"
|
||||
|
||||
#undef SUBTARGET_LINK_EMUL_SUFFIX
|
||||
#define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
|
||||
Do not use weak references on any targets for gthread. Necessary on musl, safe elsewhere.
|
||||
|
||||
diff -r e180e4cfc879 libgcc/gthr.h
|
||||
--- a/libgcc/gthr.h Thu Dec 24 11:25:15 2015 -0500
|
||||
+++ b/libgcc/gthr.h Thu Dec 24 11:25:17 2015 -0500
|
||||
@@ -136,10 +136,8 @@
|
||||
/* The pe-coff weak support isn't fully compatible to ELF's weak.
|
||||
For static libraries it might would work, but as we need to deal
|
||||
with shared versions too, we disable it for mingw-targets. */
|
||||
-#ifdef __MINGW32__
|
||||
#undef GTHREAD_USE_WEAK
|
||||
#define GTHREAD_USE_WEAK 0
|
||||
-#endif
|
||||
|
||||
#ifndef GTHREAD_USE_WEAK
|
||||
#define GTHREAD_USE_WEAK 1
|
||||
From 0a9ed0479203cb7e69c3745b0c259007410f39ba Mon Sep 17 00:00:00 2001
|
||||
From: Szabolcs Nagy <nsz@port70.net>
|
||||
Date: Sat, 24 Oct 2015 20:09:53 +0000
|
||||
Subject: [PATCH 47/47] libgcc_s: Use alias for __cpu_indicator_init instead of
|
||||
symver
|
||||
|
||||
Adapter from
|
||||
|
||||
https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html
|
||||
|
||||
This fix was debated but hasnt been applied gcc upstream since
|
||||
they expect musl to support '@' in symbol versioning which is
|
||||
a sun/gnu versioning extention. This patch however avoids the
|
||||
need for the '@' symbols at all
|
||||
|
||||
libgcc/Changelog:
|
||||
|
||||
2015-05-11 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
||||
|
||||
* config/i386/cpuinfo.c (__cpu_indicator_init_local): Add.
|
||||
(__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove.
|
||||
|
||||
* config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER.
|
||||
|
||||
gcc/Changelog:
|
||||
|
||||
2015-05-11 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
||||
|
||||
* config/i386/i386.c (ix86_expand_builtin): Make __builtin_cpu_init
|
||||
call __cpu_indicator_init_local instead of __cpu_indicator_init.
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Rejected
|
||||
|
||||
gcc/config/i386/i386.c | 4 ++--
|
||||
libgcc/config/i386/cpuinfo.c | 6 +++---
|
||||
libgcc/config/i386/t-linux | 2 +-
|
||||
3 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
|
||||
index 861a029..1c97d72 100644
|
||||
--- a/gcc/config/i386/i386.c
|
||||
+++ b/gcc/config/i386/i386.c
|
||||
@@ -40323,10 +40323,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
|
||||
{
|
||||
case IX86_BUILTIN_CPU_INIT:
|
||||
{
|
||||
- /* Make it call __cpu_indicator_init in libgcc. */
|
||||
+ /* Make it call __cpu_indicator_init_local in libgcc.a. */
|
||||
tree call_expr, fndecl, type;
|
||||
type = build_function_type_list (integer_type_node, NULL_TREE);
|
||||
- fndecl = build_fn_decl ("__cpu_indicator_init", type);
|
||||
+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
|
||||
call_expr = build_call_expr (fndecl, 0);
|
||||
return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
|
||||
}
|
||||
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
|
||||
index 8c2248d..6c82f15 100644
|
||||
--- a/libgcc/config/i386/cpuinfo.c
|
||||
+++ b/libgcc/config/i386/cpuinfo.c
|
||||
@@ -485,7 +485,7 @@ __cpu_indicator_init (void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-#if defined SHARED && defined USE_ELF_SYMVER
|
||||
-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0");
|
||||
-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0");
|
||||
+#ifndef SHARED
|
||||
+int __cpu_indicator_init_local (void)
|
||||
+ __attribute__ ((weak, alias ("__cpu_indicator_init")));
|
||||
#endif
|
||||
diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
|
||||
index 11bb46e..4f47f7b 100644
|
||||
--- a/libgcc/config/i386/t-linux
|
||||
+++ b/libgcc/config/i386/t-linux
|
||||
@@ -3,4 +3,4 @@
|
||||
# t-slibgcc-elf-ver and t-linux
|
||||
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
|
||||
|
||||
-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER
|
||||
+HOST_LIBGCC2_CFLAGS += -mlong-double-80
|
||||
--
|
||||
2.9.0
|
||||
|
||||
--- a/boehm-gc/os_dep.c 2013-09-17 07:46:00.969884340 +0000
|
||||
+++ b/boehm-gc/os_dep.c 2013-09-17 06:53:53.629884946 +0000
|
||||
@@ -26,7 +26,7 @@
|
||||
# define __KERNEL__
|
||||
# include <asm/signal.h>
|
||||
# undef __KERNEL__
|
||||
-# else
|
||||
+# elif defined(__GLIBC__)
|
||||
/* Kernels prior to 2.1.1 defined struct sigcontext_struct instead of */
|
||||
/* struct sigcontext. libc6 (glibc2) uses "struct sigcontext" in */
|
||||
/* prototypes, so we have to include the top-level sigcontext.h to */
|
||||
--- a/boehm-gc/dyn_load.c
|
||||
+++ b/boehm-gc/dyn_load.c
|
||||
@@ -459,9 +459,7 @@
|
||||
/* For glibc 2.2.4+. Unfortunately, it doesn't work for older */
|
||||
/* versions. Thanks to Jakub Jelinek for most of the code. */
|
||||
|
||||
-# if (defined(LINUX) || defined (__GLIBC__)) /* Are others OK here, too? */ \
|
||||
- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
|
||||
- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
|
||||
+# if (defined(LINUX) || defined (__GLIBC__))
|
||||
|
||||
/* We have the header files for a glibc that includes dl_iterate_phdr. */
|
||||
/* It may still not be available in the library on the target system. */
|
||||
--- a/boehm-gc/include/private/gcconfig.h
|
||||
+++ b/boehm-gc/include/private/gcconfig.h
|
||||
@@ -684,7 +684,7 @@
|
||||
# ifdef __ELF__
|
||||
# define DYNAMIC_LOADING
|
||||
# include <features.h>
|
||||
-# if defined(__GLIBC__)&& __GLIBC__>=2
|
||||
+# if 1
|
||||
# define SEARCH_FOR_DATA_START
|
||||
# else /* !GLIBC2 */
|
||||
extern char **__environ;
|
||||
@@ -1147,7 +1147,7 @@
|
||||
# define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff))
|
||||
# endif
|
||||
# include <features.h>
|
||||
-# if defined(__GLIBC__) && __GLIBC__ >= 2
|
||||
+# if 1
|
||||
# define SEARCH_FOR_DATA_START
|
||||
# else
|
||||
extern char **__environ;
|
||||
@@ -1367,7 +1367,7 @@
|
||||
# define HBLKSIZE 4096
|
||||
# endif
|
||||
# define USE_GENERIC_PUSH_REGS
|
||||
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2 || __GLIBC__ > 2
|
||||
+# if 1
|
||||
# define LINUX_STACKBOTTOM
|
||||
# else
|
||||
# define STACKBOTTOM 0x80000000
|
||||
@@ -1858,7 +1858,7 @@
|
||||
# ifdef __ELF__
|
||||
# define DYNAMIC_LOADING
|
||||
# include <features.h>
|
||||
-# if defined(__GLIBC__) && __GLIBC__ >= 2
|
||||
+# if 1
|
||||
# define SEARCH_FOR_DATA_START
|
||||
# else
|
||||
extern char **__environ;
|
||||
--- a/libjava/gnu/gcj/convert/natIconv.cc
|
||||
+++ b/libjava/gnu/gcj/convert/natIconv.cc
|
||||
@@ -24,6 +24,13 @@
|
||||
|
||||
#ifdef HAVE_ICONV
|
||||
#include <iconv.h>
|
||||
+#include <endian.h>
|
||||
+
|
||||
+#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
+#define UCS2_CHARSET "UCS-2BE"
|
||||
+#else
|
||||
+#define UCS2_CHARSET "UCS-2LE"
|
||||
+#endif
|
||||
|
||||
template<typename T>
|
||||
static inline size_t
|
||||
@@ -45,7 +52,7 @@
|
||||
_Jv_GetStringUTFRegion (encoding, 0, encoding->length(), buffer);
|
||||
buffer[len] = '\0';
|
||||
|
||||
- iconv_t h = iconv_open ("UCS-2", buffer);
|
||||
+ iconv_t h = iconv_open (UCS2_CHARSET, buffer);
|
||||
if (h == (iconv_t) -1)
|
||||
throw new ::java::io::UnsupportedEncodingException (encoding);
|
||||
|
||||
@@ -99,18 +106,6 @@
|
||||
throw new ::java::io::CharConversionException ();
|
||||
}
|
||||
|
||||
- if (iconv_byte_swap)
|
||||
- {
|
||||
- size_t max = (old_out - outavail) / sizeof (jchar);
|
||||
- for (size_t i = 0; i < max; ++i)
|
||||
- {
|
||||
- // Byte swap.
|
||||
- jchar c = (((out[outpos + i] & 0xff) << 8)
|
||||
- | ((out[outpos + i] >> 8) & 0xff));
|
||||
- outbuf[i] = c;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
inpos += old_in - inavail;
|
||||
return (old_out - outavail) / sizeof (jchar);
|
||||
#else /* HAVE_ICONV */
|
||||
@@ -145,7 +140,7 @@
|
||||
_Jv_GetStringUTFRegion (encoding, 0, encoding->length(), buffer);
|
||||
buffer[len] = '\0';
|
||||
|
||||
- iconv_t h = iconv_open (buffer, "UCS-2");
|
||||
+ iconv_t h = iconv_open (buffer, UCS2_CHARSET);
|
||||
if (h == (iconv_t) -1)
|
||||
throw new ::java::io::UnsupportedEncodingException (encoding);
|
||||
|
||||
@@ -187,20 +182,6 @@
|
||||
char *inbuf = (char *) &chars[inpos];
|
||||
char *outbuf = (char *) &out[count];
|
||||
|
||||
- if (iconv_byte_swap)
|
||||
- {
|
||||
- // Ugly performance penalty -- don't use losing systems!
|
||||
- temp_buffer = (jchar *) _Jv_Malloc (inlength * sizeof (jchar));
|
||||
- for (int i = 0; i < inlength; ++i)
|
||||
- {
|
||||
- // Byte swap.
|
||||
- jchar c = (((chars[inpos + i] & 0xff) << 8)
|
||||
- | ((chars[inpos + i] >> 8) & 0xff));
|
||||
- temp_buffer[i] = c;
|
||||
- }
|
||||
- inbuf = (char *) temp_buffer;
|
||||
- }
|
||||
-
|
||||
size_t loop_old_in = old_in;
|
||||
while (1)
|
||||
{
|
||||
@@ -252,44 +233,7 @@
|
||||
jboolean
|
||||
gnu::gcj::convert::IOConverter::iconv_init (void)
|
||||
{
|
||||
- // Some versions of iconv() always return their UCS-2 results in
|
||||
- // big-endian order, and they also require UCS-2 inputs to be in
|
||||
- // big-endian order. For instance, glibc 2.1.3 does this. If the
|
||||
- // UTF-8=>UCS-2 iconv converter has this feature, then we assume
|
||||
- // that all UCS-2 converters do. (This might not be the best
|
||||
- // heuristic, but is is all we've got.)
|
||||
- jboolean result = false;
|
||||
-#ifdef HAVE_ICONV
|
||||
- iconv_t handle = iconv_open ("UCS-2", "UTF-8");
|
||||
- if (handle != (iconv_t) -1)
|
||||
- {
|
||||
- jchar c;
|
||||
- unsigned char in[4];
|
||||
- char *inp, *outp;
|
||||
- size_t inc, outc, r;
|
||||
-
|
||||
- // This is the UTF-8 encoding of \ufeff. At least Tru64 UNIX libiconv
|
||||
- // needs the trailing NUL byte, otherwise iconv fails with EINVAL.
|
||||
- in[0] = 0xef;
|
||||
- in[1] = 0xbb;
|
||||
- in[2] = 0xbf;
|
||||
- in[3] = 0x00;
|
||||
-
|
||||
- inp = (char *) in;
|
||||
- inc = 4;
|
||||
- outp = (char *) &c;
|
||||
- outc = 2;
|
||||
-
|
||||
- r = iconv_adapter (iconv, handle, &inp, &inc, &outp, &outc);
|
||||
- // Conversion must be complete for us to use the result.
|
||||
- if (r != (size_t) -1 && inc == 0 && outc == 0)
|
||||
- result = (c != 0xfeff);
|
||||
-
|
||||
- // Release iconv handle.
|
||||
- iconv_close (handle);
|
||||
- }
|
||||
-#endif /* HAVE_ICONV */
|
||||
- return result;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
void
|
||||
--- a/libjava/gnu/classpath/natSystemProperties.cc
|
||||
+++ b/libjava/gnu/classpath/natSystemProperties.cc
|
||||
@@ -289,7 +289,7 @@
|
||||
// just default to `en_US'.
|
||||
setlocale (LC_ALL, "");
|
||||
char *locale = setlocale (LC_MESSAGES, "");
|
||||
- if (locale && strlen (locale) >= 2)
|
||||
+ if (locale && strlen (locale) >= 2 && (locale[2] == '\0' || locale[2] == '_'))
|
||||
{
|
||||
char buf[3];
|
||||
buf[2] = '\0';
|
||||
--- a/libjava/posix-threads.cc
|
||||
+++ b/libjava/posix-threads.cc
|
||||
@@ -657,6 +657,7 @@
|
||||
struct sched_param param;
|
||||
pthread_attr_t attr;
|
||||
struct starter *info;
|
||||
+ size_t ss;
|
||||
|
||||
if (data->flags & FLAG_START)
|
||||
return;
|
||||
@@ -675,8 +676,25 @@
|
||||
// Set stack size if -Xss option was given.
|
||||
if (gcj::stack_size > 0)
|
||||
{
|
||||
- int e = pthread_attr_setstacksize (&attr, gcj::stack_size);
|
||||
+ ss = gcj::stack_size;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ int e = pthread_attr_getstacksize (&attr, &ss);
|
||||
+ if (e != 0)
|
||||
+ JvFail (strerror (e));
|
||||
+
|
||||
+ // Request at least 1meg of stack
|
||||
+ if (ss >= 1024 * 1024)
|
||||
+ ss = 0;
|
||||
+ else
|
||||
+ ss = 1024 * 1024;
|
||||
+ }
|
||||
+
|
||||
+ if (ss)
|
||||
+ {
|
||||
+ int e = pthread_attr_setstacksize (&attr, ss);
|
||||
if (e != 0)
|
||||
JvFail (strerror (e));
|
||||
}
|
||||
|
||||
info = (struct starter *) _Jv_AllocBytes (sizeof (struct starter));
|
||||
--- a/libgo/mksysinfo.sh
|
||||
+++ b/libgo/mksysinfo.sh
|
||||
@@ -166,6 +166,13 @@ cat > sysinfo.c <<EOF
|
||||
#if defined(HAVE_SCHED_H)
|
||||
#include <sched.h>
|
||||
#endif
|
||||
+#if !defined(__GLIBC__)
|
||||
+#include <sys/types.h>
|
||||
+#undef off64_t
|
||||
+#undef loff_t
|
||||
+typedef off_t loff_t;
|
||||
+typedef off_t off64_t;
|
||||
+#endif
|
||||
|
||||
/* Constants that may only be defined as expressions on some systems,
|
||||
expressions too complex for -fdump-go-spec to handle. These are
|
||||
--- a/libgo/runtime/proc.c 2016-09-23 16:17:22.000000000 +0200
|
||||
+++ b/libgo/runtime/proc.c 2016-10-03 07:33:42.186000000 +0200
|
||||
@@ -150,6 +150,20 @@
|
||||
asm ("st %%g7, %0" : "=m"(c->uc_mcontext.gregs[REG_G7]));
|
||||
}
|
||||
|
||||
+# elif !defined(__GLIBC__)
|
||||
+
|
||||
+static inline void
|
||||
+initcontext(void)
|
||||
+{
|
||||
+ // FIXME: Do we need to save (part of) the current context?
|
||||
+}
|
||||
+
|
||||
+static inline void
|
||||
+fixcontext(ucontext_t *c __attribute__ ((unused)))
|
||||
+{
|
||||
+ // FIXME: Do we need to restore (part of) the current context?
|
||||
+}
|
||||
+
|
||||
# else
|
||||
|
||||
# error unknown case for SETCONTEXT_CLOBBERS_TLS
|
10
srcpkgs/gcc/patches/fix-cxxflags-passing.patch
Normal file
10
srcpkgs/gcc/patches/fix-cxxflags-passing.patch
Normal file
|
@ -0,0 +1,10 @@
|
|||
--- Makefile.in.orig
|
||||
+++ Makefile.in
|
||||
@@ -169,6 +169,7 @@
|
||||
# built for the build system to override those in BASE_FLAGS_TO_PASSS.
|
||||
EXTRA_BUILD_FLAGS = \
|
||||
CFLAGS="$(CFLAGS_FOR_BUILD)" \
|
||||
+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
|
||||
LDFLAGS="$(LDFLAGS_FOR_BUILD)"
|
||||
|
||||
# This is the list of directories to built for the host system.
|
33
srcpkgs/gcc/patches/fix-musl-execinfo.patch
Normal file
33
srcpkgs/gcc/patches/fix-musl-execinfo.patch
Normal file
|
@ -0,0 +1,33 @@
|
|||
There is no <execinfo.h> in musl libc
|
||||
|
||||
--- libvtv/vtv_rts.cc 2016-09-23 16:17:11.000000000 +0200
|
||||
+++ libvtc/vtv_rts.cc 2016-09-25 15:08:57.896000000 +0200
|
||||
@@ -124,7 +124,7 @@
|
||||
#include <windows.h>
|
||||
#include <winternl.h>
|
||||
#include <psapi.h>
|
||||
-#else
|
||||
+#elif defined (__GLIBC__)
|
||||
#include <execinfo.h>
|
||||
#endif
|
||||
|
||||
--- libvtv/vtv_utils.cc 2016-09-23 16:17:11.000000000 +0200
|
||||
+++ libvtv/vtv_utils.cc 2016-09-25 15:15:35.529000000 +0200
|
||||
@@ -34,7 +34,7 @@
|
||||
#include <string.h>
|
||||
#if defined (__CYGWIN__) || defined (__MINGW32__)
|
||||
#include <windows.h>
|
||||
-#else
|
||||
+#elif defined (__GLIBC__)
|
||||
#include <execinfo.h>
|
||||
#endif
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
|
||||
__vtv_add_to_log (vtv_failures_log_fd, "%s", log_msg);
|
||||
|
||||
-#if !defined (__CYGWIN__) && !defined (__MINGW32__)
|
||||
+#if !defined (__CYGWIN__) && !defined (__MINGW32__) && defined(__GLIBC__)
|
||||
if (generate_backtrace)
|
||||
{
|
||||
#define STACK_DEPTH 20
|
|
@ -1,87 +0,0 @@
|
|||
2013-08-22 Magnus Granberg <zorry@gentoo.org>
|
||||
|
||||
* gcc/gcc.c (main): Add support for external spec file via the GCC_SPECS env var
|
||||
and move the process of the user specifed specs.
|
||||
|
||||
This allows us to easily control pie/ssp defaults with gcc-config profiles.
|
||||
Original patch by Rob Holland
|
||||
Extended to support multiple entries separated by ':' by Kevin F. Quinn
|
||||
Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill
|
||||
Modified to process the GCC_SPECS env var befor DRIVER_SELF_SPECS by Magnus Granberg
|
||||
|
||||
--- gcc/gcc.c 2013-02-05 16:55:31.000000000 +0100
|
||||
+++ gcc/gcc.c 2013-07-26 02:32:14.625089864 +0200
|
||||
@@ -6427,6 +6428,48 @@ main (int argc, char **argv)
|
||||
do_option_spec (option_default_specs[i].name,
|
||||
option_default_specs[i].spec);
|
||||
|
||||
+#if !(defined (__MSDOS__) || defined (OS2) || defined (VMS) || defined (WIN32))
|
||||
+ /* Add specs listed in GCC_SPECS. Note; in the process of separating
|
||||
+ * each spec listed, the string is overwritten at token boundaries
|
||||
+ * (':') with '\0', an effect of strtok_r().
|
||||
+ */
|
||||
+ specs_file = getenv ("GCC_SPECS");
|
||||
+ if (specs_file && (strlen(specs_file) > 0))
|
||||
+ {
|
||||
+ char *spec, *saveptr;
|
||||
+ for (spec=strtok_r(specs_file,":",&saveptr);
|
||||
+ spec!=NULL;
|
||||
+ spec=strtok_r(NULL,":",&saveptr))
|
||||
+ {
|
||||
+ struct user_specs *user = (struct user_specs *)
|
||||
+ xmalloc (sizeof (struct user_specs));
|
||||
+ user->next = (struct user_specs *) 0;
|
||||
+ user->filename = spec;
|
||||
+ if (user_specs_tail)
|
||||
+ user_specs_tail->next = user;
|
||||
+ else
|
||||
+ user_specs_head = user;
|
||||
+ user_specs_tail = user;
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+ /* Process any user specified specs in the order given on the command
|
||||
+ * line. */
|
||||
+ for (uptr = user_specs_head; uptr; uptr = uptr->next)
|
||||
+ {
|
||||
+ char *filename = find_a_file (&startfile_prefixes, uptr->filename,
|
||||
+ R_OK, true);
|
||||
+ read_specs (filename ? filename : uptr->filename, false, true);
|
||||
+ }
|
||||
+ /* Process any user self specs. */
|
||||
+ {
|
||||
+ struct spec_list *sl;
|
||||
+ for (sl = specs; sl; sl = sl->next)
|
||||
+ if (sl->name_len == sizeof "self_spec" - 1
|
||||
+ && !strcmp (sl->name, "self_spec"))
|
||||
+ do_self_spec (*sl->ptr_spec);
|
||||
+ }
|
||||
+
|
||||
/* Process DRIVER_SELF_SPECS, adding any new options to the end
|
||||
of the command line. */
|
||||
|
||||
@@ -6535,24 +6578,6 @@ main (int argc, char **argv)
|
||||
PREFIX_PRIORITY_LAST, 0, 1);
|
||||
}
|
||||
|
||||
- /* Process any user specified specs in the order given on the command
|
||||
- line. */
|
||||
- for (uptr = user_specs_head; uptr; uptr = uptr->next)
|
||||
- {
|
||||
- char *filename = find_a_file (&startfile_prefixes, uptr->filename,
|
||||
- R_OK, true);
|
||||
- read_specs (filename ? filename : uptr->filename, false, true);
|
||||
- }
|
||||
-
|
||||
- /* Process any user self specs. */
|
||||
- {
|
||||
- struct spec_list *sl;
|
||||
- for (sl = specs; sl; sl = sl->next)
|
||||
- if (sl->name_len == sizeof "self_spec" - 1
|
||||
- && !strcmp (sl->name, "self_spec"))
|
||||
- do_self_spec (*sl->ptr_spec);
|
||||
- }
|
||||
-
|
||||
if (compare_debug)
|
||||
{
|
||||
enum save_temps save;
|
|
@ -12,7 +12,7 @@ time_t is some day promoted to a 64 bit value.
|
|||
|
||||
--- libcpp/macro.c
|
||||
+++ libcpp/macro.c
|
||||
@@ -349,14 +349,38 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node)
|
||||
@@ -356,14 +356,38 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node)
|
||||
slow on some systems. */
|
||||
time_t tt;
|
||||
struct tm *tb = NULL;
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
diff --git gcc/config/i386/pmm_malloc.h gcc/config/i386/pmm_malloc.h
|
||||
index 901001b..321fcd3 100644
|
||||
--- gcc/config/i386/pmm_malloc.h
|
||||
+++ gcc/config/i386/pmm_malloc.h
|
||||
@@ -27,12 +27,13 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
/* We can't depend on <stdlib.h> since the prototype of posix_memalign
|
||||
- may not be visible. */
|
||||
+ may not be visible and we can't pollute the namespace either. */
|
||||
#ifndef __cplusplus
|
||||
-extern int posix_memalign (void **, size_t, size_t);
|
||||
+extern int __gcc_posix_memalign (void **, size_t, size_t)
|
||||
#else
|
||||
-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
|
||||
+extern "C" int __gcc_posix_memalign (void **, size_t, size_t) throw ()
|
||||
#endif
|
||||
+__asm__("posix_memalign");
|
||||
|
||||
static __inline void *
|
||||
_mm_malloc (size_t size, size_t alignment)
|
||||
@@ -42,7 +43,7 @@ _mm_malloc (size_t size, size_t alignment)
|
||||
return malloc (size);
|
||||
if (alignment == 2 || (sizeof (void *) == 8 && alignment == 4))
|
||||
alignment = sizeof (void *);
|
||||
- if (posix_memalign (&ptr, alignment, size) == 0)
|
||||
+ if (__gcc_posix_memalign (&ptr, alignment, size) == 0)
|
||||
return ptr;
|
||||
else
|
||||
return NULL;
|
|
@ -1,15 +1,16 @@
|
|||
# Template build file for 'gcc'
|
||||
_majorver=6.2
|
||||
_gcjrel=17
|
||||
|
||||
pkgname=gcc
|
||||
_majorver=4.9
|
||||
version=${_majorver}.4
|
||||
version=${_majorver}.1
|
||||
revision=1
|
||||
short_desc="The GNU C Compiler"
|
||||
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
||||
homepage="http://gcc.gnu.org"
|
||||
license="GFDL-1.2, GPL-3, LGPL-2.1"
|
||||
distfiles="${GNU_SITE}/gcc/gcc-$version/gcc-$version.tar.bz2"
|
||||
checksum=6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092
|
||||
_gcjrel=15
|
||||
distfiles="https://repo.voidlinux.eu/distfiles/gcc-$version.tar.xz"
|
||||
checksum=a7addd2d4e42e66c3b56ced8baee5a11ef7fb577e23615a4f43877273eaf9409
|
||||
|
||||
nopie=yes
|
||||
lib32disabled=yes
|
||||
|
@ -18,25 +19,24 @@ bootstrap=yes
|
|||
if [ "$CHROOT_READY" ]; then
|
||||
hostmakedepends="perl flex"
|
||||
fi
|
||||
makedepends="zlib-devel libmpc-devel cloog-devel"
|
||||
depends="binutils libgcc-devel-${version}_${revision}"
|
||||
makedepends="zlib-devel libmpc-devel isl15-devel"
|
||||
depends="binutils libgcc-devel-${version}_${revision}
|
||||
libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}"
|
||||
|
||||
subpackages="libgcc libgomp libgomp-devel libatomic libatomic-devel"
|
||||
subpackages+=" libssp libssp-devel gcc-c++"
|
||||
subpackages+=" libssp libssp-devel"
|
||||
|
||||
if [ -n "$CHROOT_READY" -a -z "$CROSS_BUILD" ]; then
|
||||
# Required by gcj
|
||||
hostmakedepends+=" zip unzip"
|
||||
subpackages+=" gcc-fortran gcc-objc gcc-objc++"
|
||||
subpackages+=" libgfortran-devel libgfortran"
|
||||
subpackages+=" libobjc-devel libobjc"
|
||||
|
||||
subpackages+=" gcc-gcj libgcj-devel libgcj gcc-gcj-jdk-compat"
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl)
|
||||
# XXX disable go and java with musl
|
||||
*-musl) # Go won't link for musl libc
|
||||
;;
|
||||
*)
|
||||
# Required by gcj
|
||||
hostmakedepends+=" zip unzip"
|
||||
subpackages+=" gcc-go libgo-devel libgo gcc-gcj libgcj-devel libgcj gcc-gcj-jdk-compat"
|
||||
*) subpackages+=" gcc-go libgo-devel libgo"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
@ -74,19 +74,19 @@ case "$XBPS_TARGET_MACHINE" in
|
|||
esac
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
mips*) ;;
|
||||
x86_64*|i686*) subpackages+=" libitm libitm-devel libmpx libmpx-devel";;
|
||||
*) subpackages+=" libitm libitm-devel";;
|
||||
esac
|
||||
|
||||
# gcc-c++ merged in main pkg
|
||||
replaces="gcc-c++>=0"
|
||||
|
||||
pre_configure() {
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl) patch -Np1 -i ${FILESDIR}/gcc-4.9.2-musl.diff;;
|
||||
*-musl) patch -Np1 -i ${FILESDIR}/gcc-${version}-musl.diff;;
|
||||
esac
|
||||
# _FORTIFY_SOURCE needs an optimization level.
|
||||
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {gcc,libiberty}/configure
|
||||
# As specified in the LFS book, disable installing libiberty.
|
||||
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
|
||||
# Do not run fixincludes
|
||||
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
|
||||
}
|
||||
do_configure() {
|
||||
local _langs _args _hash
|
||||
|
@ -118,7 +118,9 @@ do_configure() {
|
|||
export GCC_FOR_TARGET="$CC"
|
||||
export CXX_FOR_TARGET="$CXX"
|
||||
|
||||
_args+=" --disable-multilib --host=$XBPS_CROSS_TRIPLET --with-build-sysroot=${XBPS_CROSS_BASE}"
|
||||
_args+=" --disable-multilib"
|
||||
_args+=" --host=$XBPS_CROSS_TRIPLET"
|
||||
_args+=" --with-build-sysroot=${XBPS_CROSS_BASE}"
|
||||
_args+=" --enable-sjlj-exceptions=no"
|
||||
else
|
||||
if [ -z "$CHROOT_READY" ]; then
|
||||
|
@ -127,15 +129,18 @@ do_configure() {
|
|||
_args+=" --with-mpfr=${XBPS_MASTERDIR}/usr"
|
||||
_args+=" --with-isl=${XBPS_MASTERDIR}/usr"
|
||||
_args+=" --with-mpc=${XBPS_MASTERDIR}/usr"
|
||||
_args+=" --with-cloog=${XBPS_MASTERDIR}/usr"
|
||||
_args+=" --build=${_triplet}"
|
||||
else
|
||||
_langs="c,c++,objc,obj-c++,fortran,lto,java"
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
# XXX disable go and java with musl
|
||||
*-musl) _langs="c,c++,objc,obj-c++,fortran,lto";;
|
||||
*) _langs="c,c++,objc,obj-c++,fortran,lto,go,java";;
|
||||
*-musl) # Linking libgo.so is broken for musl libc
|
||||
;;
|
||||
*) _langs+=",go"
|
||||
;;
|
||||
esac
|
||||
_args+=" --build=${_triplet} --enable-java-gc=boehm --enable-fast-character"
|
||||
_args+=" --build=${_triplet}"
|
||||
_args+=" --enable-java-gc=boehm"
|
||||
_args+=" --enable-fast-character"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -143,34 +148,60 @@ do_configure() {
|
|||
aarch64*|*-musl) _args+=" --disable-libsanitizer";;
|
||||
esac
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl) _args+=" --disable-symvers libat_cv_have_ifunc=no";;
|
||||
*-musl) _args+=" --disable-symvers"
|
||||
_args+=" libat_cv_have_ifunc=no"
|
||||
;;
|
||||
esac
|
||||
|
||||
export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
|
||||
export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
|
||||
|
||||
CONFIG_SHELL=/bin/bash \
|
||||
./configure --prefix=/usr --mandir=/usr/share/man \
|
||||
--infodir=/usr/share/info --libexecdir=/usr/lib --libdir=/usr/lib \
|
||||
--enable-threads=posix --enable-__cxa_atexit --disable-multilib \
|
||||
--with-system-zlib --enable-shared --enable-lto \
|
||||
--enable-linker-build-id --disable-werror --disable-nls \
|
||||
--enable-checking=release --disable-libstdcxx-pch \
|
||||
--enable-cloog-backend=isl --with-linker-hash-style=$_hash \
|
||||
--enable-languages=${_langs} ${_args}
|
||||
_args+=" --prefix=/usr"
|
||||
_args+=" --mandir=/usr/share/man"
|
||||
_args+=" --infodir=/usr/share/info"
|
||||
_args+=" --libexecdir=/usr/lib"
|
||||
_args+=" --libdir=/usr/lib"
|
||||
_args+=" --enable-threads=posix"
|
||||
_args+=" --enable-__cxa_atexit"
|
||||
_args+=" --disable-multilib"
|
||||
_args+=" --with-system-zlib"
|
||||
_args+=" --enable-shared"
|
||||
_args+=" --enable-lto"
|
||||
_args+=" --enable-vtable-verify"
|
||||
_args+=" --enable-linker-build-id"
|
||||
_args+=" --enable-serial-configure"
|
||||
_args+=" --disable-werror"
|
||||
_args+=" --disable-nls"
|
||||
_args+=" --enable-checking=release"
|
||||
_args+=" --disable-libstdcxx-pch"
|
||||
_args+=" --with-isl"
|
||||
_args+=" --with-linker-hash-style=$_hash"
|
||||
_args+=" --disable-libunwind-exceptions"
|
||||
_args+=" --disable-target-libiberty"
|
||||
_args+=" --with-default-libstdcxx-abi=gcc4-compatible"
|
||||
_args+=" --enable-languages=${_langs}"
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
CONFIG_SHELL=/bin/bash ${wrksrc}/configure ${_args}
|
||||
}
|
||||
do_build() {
|
||||
if [ -z "$CHROOT_READY" ]; then
|
||||
export LD_LIBRARY_PATH="${XBPS_MASTERDIR}/usr/lib"
|
||||
fi
|
||||
cd build
|
||||
make ${makejobs}
|
||||
}
|
||||
pre_install() {
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
# XXX otherwise links to host libpthread
|
||||
for f in $(find ${wrksrc}/${XBPS_CROSS_TRIPLET} -type f -name libtool); do
|
||||
for f in $(find ${wrksrc}/build/${XBPS_CROSS_TRIPLET} -type f -name libtool); do
|
||||
sed -e "s,add_dir=\"-L\$libdir\",add_dir=\"-L${XBPS_CROSS_BASE}\$libdir\",g" -i $f
|
||||
done
|
||||
fi
|
||||
}
|
||||
do_install() {
|
||||
cd build
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
x86_64*|aarch64*)
|
||||
vmkdir usr/lib
|
||||
|
@ -325,7 +356,7 @@ gcc-fortran_package() {
|
|||
}
|
||||
gcc-objc++_package() {
|
||||
lib32disabled=yes
|
||||
depends="gcc-c++>=${_majorver} gcc-objc>=${_majorver}"
|
||||
depends="gcc-objc>=${_majorver}"
|
||||
short_desc+=" - Objective-C++ support"
|
||||
pkg_install() {
|
||||
vmove usr/lib/gcc/${_triplet}/${_majorver}/cc1objplus
|
||||
|
@ -354,7 +385,7 @@ libgcj-devel_package() {
|
|||
vmove "usr/lib/gcc/${_triplet}/${_majorver}/include/gcj*"
|
||||
vmove "usr/lib/gcc/${_triplet}/${_majorver}/include/jvm*"
|
||||
vmove "usr/lib/gcc/${_triplet}/${_majorver}/include/jawt*"
|
||||
vmove usr/lib/pkgconfig/libgcj-${_majorver}.pc
|
||||
vmove usr/lib/pkgconfig/libgcj-${_majorver%.*}.pc
|
||||
}
|
||||
}
|
||||
libgcj_package() {
|
||||
|
@ -374,7 +405,10 @@ libgfortran-devel_package() {
|
|||
short_desc+=" - Fortran library - development files"
|
||||
pkg_install() {
|
||||
vmove usr/lib/libgfortran.a
|
||||
vmove usr/lib/gcc/${_triplet}/${_majorver}/libgfortranbegin.a
|
||||
# This does not seem to exist anymore?
|
||||
if [ -f usr/lib/gcc/${_triplet}/${_majorver}/libgfortranbegin.a ]; then
|
||||
vmove usr/lib/gcc/${_triplet}/${_majorver}/libgfortranbegin.a
|
||||
fi
|
||||
}
|
||||
}
|
||||
libgfortran_package() {
|
||||
|
@ -391,6 +425,7 @@ libgo-devel_package() {
|
|||
pkg_install() {
|
||||
vmove usr/lib/libgo.a
|
||||
vmove usr/lib/libgobegin.a
|
||||
vmove usr/lib/libgo.so
|
||||
}
|
||||
}
|
||||
libgo_package() {
|
||||
|
@ -529,6 +564,23 @@ libitm_package() {
|
|||
vmove "usr/lib/libitm.so.*"
|
||||
}
|
||||
}
|
||||
libmpx-devel_package() {
|
||||
depends="libmpx>=${_majorver}"
|
||||
short_desc+=" - Intel MPX support - development files"
|
||||
pkg_install() {
|
||||
vmove usr/lib/libmpx.a
|
||||
vmove usr/lib/libmpx.so
|
||||
vmove usr/lib/libmpxwrappers.so
|
||||
vmove usr/lib/libmpxwrappers.a
|
||||
}
|
||||
}
|
||||
libmpx_package() {
|
||||
short_desc+=" - Intel MPX support"
|
||||
pkg_install() {
|
||||
vmove usr/lib/libmpx.so.*
|
||||
vmove usr/lib/libmpxwrappers.so.*
|
||||
}
|
||||
}
|
||||
libsanitizer-devel_package() {
|
||||
depends="libsanitizer>=${_majorver}"
|
||||
short_desc+=" - Sanitizer libraries - development files"
|
||||
|
@ -546,7 +598,7 @@ libsanitizer_package() {
|
|||
}
|
||||
}
|
||||
libssp-devel_package() {
|
||||
depends="glibc-devel libssp>=${_majorver}"
|
||||
depends="libssp>=${_majorver}"
|
||||
short_desc+=" - SSP (StackSmashingProtection) library - development files"
|
||||
pkg_install() {
|
||||
vmove "usr/lib/libssp*.a"
|
||||
|
@ -576,15 +628,3 @@ libstdc++_package() {
|
|||
vlicense ${wrksrc}/COPYING.RUNTIME RUNTIME.LIBRARY.EXCEPTION
|
||||
}
|
||||
}
|
||||
gcc-c++_package() {
|
||||
lib32disabled=yes
|
||||
depends="gcc>=${_majorver} libstdc++-devel>=${_majorver}"
|
||||
short_desc+=" - C++ support"
|
||||
pkg_install() {
|
||||
for f in g++ c++ ${_triplet}-g++ ${_triplet}-c++; do
|
||||
vmove usr/bin/${f}
|
||||
done
|
||||
vmove usr/lib/gcc/${_triplet}/${_majorver}/cc1plus
|
||||
vmove usr/share/man/man1/g++.1
|
||||
}
|
||||
}
|
||||
|
|
1
srcpkgs/libmpx-devel
Symbolic link
1
srcpkgs/libmpx-devel
Symbolic link
|
@ -0,0 +1 @@
|
|||
gcc
|
6
xbps-src
6
xbps-src
|
@ -403,9 +403,9 @@ readonly XBPS_VERSION_REQ="0.46"
|
|||
readonly XBPS_VERSION=$(xbps-uhelper -V|awk '{print $2}')
|
||||
readonly XBPS_SRC_VERSION="113"
|
||||
export XBPS_MACHINE=$(xbps-uhelper arch)
|
||||
readonly XBPS_GCC_VERSION_MAJOR=4
|
||||
readonly XBPS_GCC_VERSION_MINOR=9
|
||||
readonly XBPS_GCC_VERSION_BUILD=4
|
||||
readonly XBPS_GCC_VERSION_MAJOR=6
|
||||
readonly XBPS_GCC_VERSION_MINOR=2
|
||||
readonly XBPS_GCC_VERSION_BUILD=1
|
||||
readonly XBPS_GCC_VERSION=${XBPS_GCC_VERSION_MAJOR}.${XBPS_GCC_VERSION_MINOR}.${XBPS_GCC_VERSION_BUILD}
|
||||
|
||||
#
|
||||
|
|
Loading…
Reference in a new issue