gcc: update to 7.2.0
This commit is contained in:
parent
637230b81c
commit
1c2290eec1
|
@ -59,7 +59,7 @@ libgcc_s.so.1 libgcc-4.4.0_1
|
|||
libgcj.so.17 libgcj-6.3.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
|
||||
libgo.so.11 libgo-7.2.0_1
|
||||
libmpx.so.2 libmpx-6.2.1_1
|
||||
libmpxwrappers.so.2 libmpx-6.2.1_1
|
||||
libperl.so.5.26 perl-5.26.0_1
|
||||
|
@ -786,7 +786,7 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
|
|||
libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
|
||||
libseed-gtk3.so.0 libseed-3.0.0_1
|
||||
libquadmath.so.0 libquadmath-4.4.0_1
|
||||
libgfortran.so.3 libgfortran-4.4.0_1
|
||||
libgfortran.so.4 libgfortran-7.2.0_1
|
||||
libmozjs185.so.1.0 js-1.8.5_1
|
||||
libwebp.so.7 libwebp-0.6.0_1
|
||||
libwebpmux.so.3 libwebp-0.6.0_1
|
||||
|
@ -1605,7 +1605,7 @@ libextractor_common.so.1 libextractor-1.1_1
|
|||
libpano13.so.3 libpano13-2.9.19_1
|
||||
libubsan.so.0 libsanitizer-6.3.0_1
|
||||
libtsan.so.0 libsanitizer-6.3.0_1
|
||||
libasan.so.3 libsanitizer-6.3.0_1
|
||||
libasan.so.4 libsanitizer-7.2.0_1
|
||||
liblsan.so.0 libsanitizer-6.3.0_1
|
||||
libcilkrts.so.5 libcilkrts-6.3.0_1
|
||||
libvtv.so.0 libvtv-6.3.0_1
|
||||
|
|
|
@ -1,544 +0,0 @@
|
|||
# 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
|
||||
@@ -274,6 +274,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
|
||||
@@ -2475,6 +2475,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 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
|
||||
@@ -40497,10 +40497,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
|
||||
@@ -696,7 +696,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;
|
||||
@@ -1167,7 +1167,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;
|
||||
@@ -1387,7 +1387,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
|
||||
@@ -1909,7 +1909,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
|
|
@ -1,211 +0,0 @@
|
|||
Cherry picked the gcc commits 14c2f22a1877f6b60a2f7c2f83ffb032759456a6
|
||||
and 72edc2c02f8b4768ad660f46a1c7e2400c0a8e06 changes and edited
|
||||
to apply with patch_args -p0
|
||||
|
||||
--- libgcc/config/aarch64/linux-unwind.h
|
||||
+++ libgcc/config/aarch64/linux-unwind.h
|
||||
@@ -55,7 +55,7 @@ aarch64_fallback_frame_state (struct _Unwind_Context *context,
|
||||
struct rt_sigframe
|
||||
{
|
||||
siginfo_t info;
|
||||
- struct ucontext uc;
|
||||
+ ucontext_t uc;
|
||||
};
|
||||
|
||||
struct rt_sigframe *rt_;
|
||||
--- libgcc/config/alpha/linux-unwind.h
|
||||
+++ libgcc/config/alpha/linux-unwind.h
|
||||
@@ -51,7 +51,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
|
||||
{
|
||||
struct rt_sigframe {
|
||||
siginfo_t info;
|
||||
- struct ucontext uc;
|
||||
+ ucontext_t uc;
|
||||
} *rt_ = context->cfa;
|
||||
sc = &rt_->uc.uc_mcontext;
|
||||
}
|
||||
--- libgcc/config/bfin/linux-unwind.h
|
||||
+++ libgcc/config/bfin/linux-unwind.h
|
||||
@@ -52,7 +52,7 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
|
||||
void *puc;
|
||||
char retcode[8];
|
||||
siginfo_t info;
|
||||
- struct ucontext uc;
|
||||
+ ucontext_t uc;
|
||||
} *rt_ = context->cfa;
|
||||
|
||||
/* The void * cast is necessary to avoid an aliasing warning.
|
||||
--- libgcc/config/i386/linux-unwind.h
|
||||
+++ libgcc/config/i386/linux-unwind.h
|
||||
@@ -58,7 +58,7 @@ x86_64_fallback_frame_state (struct _Unwind_Context *context,
|
||||
if (*(unsigned char *)(pc+0) == 0x48
|
||||
&& *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
|
||||
{
|
||||
- struct ucontext *uc_ = context->cfa;
|
||||
+ ucontext_t *uc_ = context->cfa;
|
||||
/* The void * cast is necessary to avoid an aliasing warning.
|
||||
The aliasing warning is correct, but should not be a problem
|
||||
because it does not alias anything. */
|
||||
@@ -138,7 +138,7 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
|
||||
siginfo_t *pinfo;
|
||||
void *puc;
|
||||
siginfo_t info;
|
||||
- struct ucontext uc;
|
||||
+ ucontext_t uc;
|
||||
} *rt_ = context->cfa;
|
||||
/* The void * cast is necessary to avoid an aliasing warning.
|
||||
The aliasing warning is correct, but should not be a problem
|
||||
--- libgcc/config/m68k/linux-unwind.h
|
||||
+++ libgcc/config/m68k/linux-unwind.h
|
||||
@@ -33,7 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
/* <sys/ucontext.h> is unfortunately broken right now. */
|
||||
struct uw_ucontext {
|
||||
unsigned long uc_flags;
|
||||
- struct ucontext *uc_link;
|
||||
+ ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
unsigned long uc_filler[80];
|
||||
--- libgcc/config/nios2/linux-unwind.h
|
||||
+++ libgcc/config/nios2/linux-unwind.h
|
||||
@@ -38,7 +38,7 @@ struct nios2_mcontext {
|
||||
|
||||
struct nios2_ucontext {
|
||||
unsigned long uc_flags;
|
||||
- struct ucontext *uc_link;
|
||||
+ ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
struct nios2_mcontext uc_mcontext;
|
||||
sigset_t uc_sigmask; /* mask last for extensibility */
|
||||
--- libgcc/config/pa/linux-unwind.h
|
||||
+++ libgcc/config/pa/linux-unwind.h
|
||||
@@ -80,7 +80,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
|
||||
struct sigcontext *sc;
|
||||
struct rt_sigframe {
|
||||
siginfo_t info;
|
||||
- struct ucontext uc;
|
||||
+ ucontext_t uc;
|
||||
} *frame;
|
||||
|
||||
/* rt_sigreturn trampoline:
|
||||
--- libgcc/config/sh/linux-unwind.h
|
||||
+++ libgcc/config/sh/linux-unwind.h
|
||||
@@ -82,7 +82,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
|
||||
{
|
||||
struct rt_sigframe {
|
||||
siginfo_t info;
|
||||
- struct ucontext uc;
|
||||
+ ucontext_t uc;
|
||||
} *rt_ = context->cfa;
|
||||
/* The void * cast is necessary to avoid an aliasing warning.
|
||||
The aliasing warning is correct, but should not be a problem
|
||||
--- libgcc/config/tilepro/linux-unwind.h
|
||||
+++ libgcc/config/tilepro/linux-unwind.h
|
||||
@@ -61,7 +61,7 @@ tile_fallback_frame_state (struct _Unwind_Context *context,
|
||||
struct rt_sigframe {
|
||||
unsigned char save_area[C_ABI_SAVE_AREA_SIZE];
|
||||
siginfo_t info;
|
||||
- struct ucontext uc;
|
||||
+ ucontext_t uc;
|
||||
} *rt_;
|
||||
|
||||
/* Return if this is not a signal handler. */
|
||||
--- libgcc/config/xtensa/linux-unwind.h
|
||||
+++ libgcc/config/xtensa/linux-unwind.h
|
||||
@@ -67,7 +67,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
|
||||
|
||||
struct rt_sigframe {
|
||||
siginfo_t info;
|
||||
- struct ucontext uc;
|
||||
+ ucontext_t uc;
|
||||
} *rt_;
|
||||
|
||||
/* movi a2, __NR_rt_sigreturn; syscall */
|
||||
|
||||
--- libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 2015-10-21 09:32:45.000000000 +0200
|
||||
+++ libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 2017-08-05 18:16:36.004549680 +0200
|
||||
@@ -267,7 +267,7 @@
|
||||
|
||||
// Alternate stack for signal handling.
|
||||
InternalScopedBuffer<char> handler_stack_memory(kHandlerStackSize);
|
||||
- struct sigaltstack handler_stack;
|
||||
+ stack_t handler_stack;
|
||||
internal_memset(&handler_stack, 0, sizeof(handler_stack));
|
||||
handler_stack.ss_sp = handler_stack_memory.data();
|
||||
handler_stack.ss_size = kHandlerStackSize;
|
||||
--- libsanitizer/sanitizer_common/sanitizer_linux.cc 2015-11-23 10:07:18.000000000 +0100
|
||||
+++ libsanitizer/sanitizer_common/sanitizer_linux.cc 2017-08-05 19:03:06.916498311 +0200
|
||||
@@ -546,8 +546,7 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
-uptr internal_sigaltstack(const struct sigaltstack *ss,
|
||||
- struct sigaltstack *oss) {
|
||||
+uptr internal_sigaltstack(const void *ss, void *oss) {
|
||||
return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss);
|
||||
}
|
||||
|
||||
--- libsanitizer/sanitizer_common/sanitizer_linux.h 2015-10-21 09:32:45.000000000 +0200
|
||||
+++ libsanitizer/sanitizer_common/sanitizer_linux.h 2017-08-05 19:03:47.631527380 +0200
|
||||
@@ -20,6 +20,5 @@
|
||||
|
||||
struct link_map; // Opaque type returned by dlopen().
|
||||
-struct sigaltstack;
|
||||
|
||||
namespace __sanitizer {
|
||||
// Dirent structure for getdents(). Note that this structure is different from
|
||||
@@ -28,8 +29,7 @@
|
||||
|
||||
// Syscall wrappers.
|
||||
uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count);
|
||||
-uptr internal_sigaltstack(const struct sigaltstack* ss,
|
||||
- struct sigaltstack* oss);
|
||||
+uptr internal_sigaltstack(const void* ss, void* oss);
|
||||
uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set,
|
||||
__sanitizer_sigset_t *oldset);
|
||||
void internal_sigfillset(__sanitizer_sigset_t *set);
|
||||
--- libsanitizer/tsan/tsan_platform_linux.cc
|
||||
+++ libsanitizer/tsan/tsan_platform_linux.cc
|
||||
@@ -287,7 +287,7 @@ void InitializePlatform() {
|
||||
int ExtractResolvFDs(void *state, int *fds, int nfd) {
|
||||
#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
int cnt = 0;
|
||||
- __res_state *statp = (__res_state*)state;
|
||||
+ struct __res_state *statp = (struct __res_state*)state;
|
||||
for (int i = 0; i < MAXNS && cnt < nfd; i++) {
|
||||
if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1)
|
||||
fds[cnt++] = statp->_u._ext.nssocks[i];
|
||||
|
||||
--- libjava/include/i386-signal.h 2011-12-20 13:18:26.000000000 +0100
|
||||
+++ libjava/include/i386-signal.h 2017-08-07 16:28:12.038745548 +0200
|
||||
@@ -29,7 +29,7 @@
|
||||
#define HANDLE_DIVIDE_OVERFLOW \
|
||||
do \
|
||||
{ \
|
||||
- struct ucontext *_uc = (struct ucontext *)_p; \
|
||||
+ ucontext_t *_uc = (ucontext_t *)_p; \
|
||||
gregset_t &_gregs = _uc->uc_mcontext.gregs; \
|
||||
unsigned char *_eip = (unsigned char *)_gregs[REG_EIP]; \
|
||||
\
|
||||
--- libjava/include/s390-signal.h 2011-01-03 21:52:22.000000000 +0100
|
||||
+++ libjava/include/s390-signal.h 2017-08-07 16:28:25.206763588 +0200
|
||||
@@ -51,7 +51,7 @@
|
||||
struct \
|
||||
{ \
|
||||
unsigned long int uc_flags; \
|
||||
- struct ucontext *uc_link; \
|
||||
+ ucontext_t *uc_link; \
|
||||
stack_t uc_stack; \
|
||||
mcontext_t uc_mcontext; \
|
||||
unsigned long sigmask[2]; \
|
||||
--- libjava/include/x86_64-signal.h 2013-01-04 13:49:55.000000000 +0100
|
||||
+++ libjava/include/x86_64-signal.h 2017-08-07 16:28:36.446778971 +0200
|
||||
@@ -28,7 +28,7 @@
|
||||
#define HANDLE_DIVIDE_OVERFLOW \
|
||||
do \
|
||||
{ \
|
||||
- struct ucontext *_uc = (struct ucontext *)_p; \
|
||||
+ ucontext_t *_uc = (ucontext_t *)_p; \
|
||||
gregset_t &_gregs = _uc->uc_mcontext.gregs; \
|
||||
unsigned char *_rip = (unsigned char *)_gregs[REG_RIP]; \
|
||||
\
|
|
@ -1,60 +0,0 @@
|
|||
Based on https://gcc.gnu.org/ml/gcc-patches/2015-06/txtLtaPOCTgpq.txt
|
||||
|
||||
Support for deterministic builds with externally defined
|
||||
values for the macros __DATE__, __TIME__ and __DATETIME__.
|
||||
|
||||
If the environment variable SOURCE_DATE_EPOCH is defined,
|
||||
use its value instead of the time(2) return value as
|
||||
seconds since the Epoch.
|
||||
|
||||
Use strtoll() to convert SOURCE_DATE_EPOCH just in case
|
||||
time_t is some day promoted to a 64 bit value.
|
||||
|
||||
--- libcpp/macro.c
|
||||
+++ libcpp/macro.c
|
||||
@@ -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;
|
||||
+ char *source_date_epoch;
|
||||
|
||||
- /* (time_t) -1 is a legitimate value for "number of seconds
|
||||
- since the Epoch", so we have to do a little dance to
|
||||
- distinguish that from a genuine error. */
|
||||
- errno = 0;
|
||||
- tt = time(NULL);
|
||||
- if (tt != (time_t)-1 || errno == 0)
|
||||
- tb = localtime (&tt);
|
||||
+ /* Allow the date and time to be set externally by an exported
|
||||
+ environment variable to enable reproducible builds. */
|
||||
+ source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
|
||||
+ if (source_date_epoch)
|
||||
+ {
|
||||
+ errno = 0;
|
||||
+ tt = (time_t) strtoll (source_date_epoch, NULL, 10);
|
||||
+ if (errno == 0)
|
||||
+ {
|
||||
+ tb = gmtime (&tt);
|
||||
+ if (tb == NULL)
|
||||
+ cpp_error (pfile, CPP_DL_ERROR,
|
||||
+ "SOURCE_DATE_EPOCH=\"%s\" is not a valid date",
|
||||
+ source_date_epoch);
|
||||
+ }
|
||||
+ else
|
||||
+ cpp_error (pfile, CPP_DL_ERROR,
|
||||
+ "SOURCE_DATE_EPOCH=\"%s\" is not a valid number",
|
||||
+ source_date_epoch);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ /* (time_t) -1 is a legitimate value for "number of seconds
|
||||
+ since the Epoch", so we have to do a little dance to
|
||||
+ distinguish that from a genuine error. */
|
||||
+ errno = 0;
|
||||
+ tt = time(NULL);
|
||||
+ if (tt != (time_t)-1 || errno == 0)
|
||||
+ tb = localtime (&tt);
|
||||
+ }
|
||||
|
||||
if (tb)
|
||||
{
|
|
@ -0,0 +1,23 @@
|
|||
--- gcc/targhooks.c 2017-02-07 12:29:06.644837000 +0100
|
||||
+++ gcc/targhooks.c 2017-10-29 17:08:58.318032821 +0100
|
||||
@@ -856,8 +856,8 @@
|
||||
if (t == NULL_TREE)
|
||||
{
|
||||
t = build_function_type_list (void_type_node, NULL_TREE);
|
||||
- t = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL,
|
||||
- get_identifier ("__stack_chk_fail_local"), t);
|
||||
+ t = build_decl (UNKNOWN_LOCATION,
|
||||
+ FUNCTION_DECL, get_identifier ("__stack_chk_fail"), t);
|
||||
TREE_STATIC (t) = 1;
|
||||
TREE_PUBLIC (t) = 1;
|
||||
DECL_EXTERNAL (t) = 1;
|
||||
@@ -866,8 +866,8 @@
|
||||
TREE_NOTHROW (t) = 1;
|
||||
DECL_ARTIFICIAL (t) = 1;
|
||||
DECL_IGNORED_P (t) = 1;
|
||||
+ DECL_VISIBILITY (t) = VISIBILITY_DEFAULT;
|
||||
DECL_VISIBILITY_SPECIFIED (t) = 1;
|
||||
- DECL_VISIBILITY (t) = VISIBILITY_HIDDEN;
|
||||
|
||||
stack_chk_fail_decl = t;
|
||||
}
|
|
@ -1,16 +1,15 @@
|
|||
# Template build file for 'gcc'
|
||||
_majorver=6.3
|
||||
_gcjrel=17
|
||||
_majorver=7.2
|
||||
|
||||
pkgname=gcc
|
||||
version=${_majorver}.0
|
||||
revision=5
|
||||
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=f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f
|
||||
distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz"
|
||||
checksum=1cf7adf8ff4b5aa49041c8734bbcf1ad18cc4c94d0029aae0f4e48841088479a
|
||||
|
||||
nopie=yes
|
||||
lib32disabled=yes
|
||||
|
@ -27,12 +26,9 @@ subpackages="libgcc libgomp libgomp-devel libatomic libatomic-devel"
|
|||
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) # Go won't link for musl libc
|
||||
;;
|
||||
|
@ -82,11 +78,22 @@ esac
|
|||
replaces="gcc-c++>=0"
|
||||
|
||||
pre_configure() {
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-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
|
||||
|
||||
if [ -n "$nopie" ]; then
|
||||
# Fix configure failures by adding -no-pie when linking conftest.c files
|
||||
find -name configure -exec sed -i {} \
|
||||
-e 's;$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS;& -no-pie;' \
|
||||
\;
|
||||
# Fix linking error for fixincl by adding -no-pie
|
||||
sed -i fixincludes/Makefile.in \
|
||||
-e 's;-o $(FI);-no-pie &;' \
|
||||
-e 's;-o $@;-no-pie &;'
|
||||
# Fix linking error for gotools by adding -no-pie
|
||||
sed -i gotools/Makefile.in \
|
||||
-e 's;LINK = .*;& -no-pie;'
|
||||
fi
|
||||
}
|
||||
do_configure() {
|
||||
local _langs _args _hash
|
||||
|
@ -131,7 +138,7 @@ do_configure() {
|
|||
_args+=" --with-mpc=${XBPS_MASTERDIR}/usr"
|
||||
_args+=" --build=${_triplet}"
|
||||
else
|
||||
_langs="c,c++,objc,obj-c++,fortran,lto,java"
|
||||
_langs="c,c++,objc,obj-c++,fortran,lto"
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl) # Linking libgo.so is broken for musl libc
|
||||
;;
|
||||
|
@ -139,7 +146,6 @@ do_configure() {
|
|||
;;
|
||||
esac
|
||||
_args+=" --build=${_triplet}"
|
||||
_args+=" --enable-java-gc=boehm"
|
||||
_args+=" --enable-fast-character"
|
||||
fi
|
||||
fi
|
||||
|
@ -159,7 +165,6 @@ do_configure() {
|
|||
|
||||
export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}"
|
||||
export CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}"
|
||||
export glibcxx_cv_c99_math_cxx98=yes glibcxx_cv_c99_math_cxx11=yes
|
||||
|
||||
_args+=" --prefix=/usr"
|
||||
_args+=" --mandir=/usr/share/man"
|
||||
|
@ -177,6 +182,8 @@ do_configure() {
|
|||
_args+=" --enable-serial-configure"
|
||||
_args+=" --disable-werror"
|
||||
_args+=" --disable-nls"
|
||||
_args+=" --enable-default-pie"
|
||||
_args+=" --enable-default-ssp"
|
||||
_args+=" --enable-checking=release"
|
||||
_args+=" --disable-libstdcxx-pch"
|
||||
_args+=" --with-isl"
|
||||
|
@ -189,9 +196,9 @@ do_configure() {
|
|||
mkdir -p build
|
||||
cd build
|
||||
CONFIG_SHELL=/bin/bash ${wrksrc}/configure ${_args}
|
||||
|
||||
}
|
||||
do_build() {
|
||||
export glibcxx_cv_c99_math_cxx98=yes glibcxx_cv_c99_math_cxx11=yes
|
||||
if [ -z "$CHROOT_READY" ]; then
|
||||
export LD_LIBRARY_PATH="${XBPS_MASTERDIR}/usr/lib"
|
||||
fi
|
||||
|
@ -262,73 +269,6 @@ do_install() {
|
|||
esac
|
||||
}
|
||||
|
||||
gcc-gcj_package() {
|
||||
lib32disabled=yes
|
||||
depends="gcc>=${_majorver} libgcj-devel>=${_majorver}"
|
||||
short_desc+=" - Java compiler frontend"
|
||||
pkg_install() {
|
||||
for f in gcj jv-convert gjarsigner gjar grmic jcf-dump \
|
||||
gtnameserv gcjh gnative2ascii gserialver gkeytool \
|
||||
gij grmiregistry grmid gorbd gcj-dbtool gjavah \
|
||||
gc-analyze gappletviewer rebuild-gcj-db aot-compile; do
|
||||
vmove usr/bin/${f}
|
||||
done
|
||||
for f in gcj jv-convert gjarsigner gjar grmic jcf-dump gjdoc \
|
||||
gtnameserv gcjh gnative2ascii gserialver gkeytool \
|
||||
gij grmiregistry grmid gorbd gcj-dbtool gjavah \
|
||||
gc-analyze gappletviewer rebuild-gcj-db aot-compile; do
|
||||
if [ -f ${DESTDIR}/usr/share/man/man1/${f}.1 ]; then
|
||||
vmove usr/share/man/man1/${f}.1
|
||||
fi
|
||||
done
|
||||
vmove usr/bin/${_triplet}-gcj
|
||||
vmove usr/lib/gcc/${_triplet}/${_majorver}/jc1
|
||||
vmove usr/lib/gcc/${_triplet}/${_majorver}/jvgenmain
|
||||
vmove usr/share/info/gcj.info
|
||||
touch ${PKGDESTDIR}/usr/share/info/dir
|
||||
}
|
||||
}
|
||||
gcc-gcj-jdk-compat_package() {
|
||||
lib32disabled=yes
|
||||
depends="gcc-gcj fastjar"
|
||||
short_desc+=" - JDK compatiblity layer"
|
||||
pkg_install() {
|
||||
local jvm_dir=$PKGDESTDIR/usr/lib/jvm
|
||||
local jdk_dir=$jvm_dir/java-1.5-gcj
|
||||
local jdk_bin_dir=$jdk_dir/bin
|
||||
local jre_dir=$jdk_dir/jre
|
||||
local jre_bin_dir=$jre_dir/bin
|
||||
local jre_lib_dir=$jre_dir/lib
|
||||
|
||||
local arch=
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
i686*) arch=i386 ;;
|
||||
x86_64*) arch=amd64 ;;
|
||||
arm*) arch=arm ;;
|
||||
esac
|
||||
|
||||
mkdir -p $jdk_bin_dir
|
||||
ln -sfr $PKGDESTDIR/usr/bin/gij $jdk_bin_dir/java
|
||||
ln -sfr $PKGDESTDIR/usr/bin/fastjar $jdk_bin_dir/fastjar
|
||||
ln -sfr $PKGDESTDIR/usr/bin/grmic $jdk_bin_dir/rmic
|
||||
ln -sfr $PKGDESTDIR/usr/bin/gjavah $jdk_bin_dir/javah
|
||||
ln -sfr $PKGDESTDIR/usr/bin/ecj1 $jdk_bin_dir/javac
|
||||
ln -sfr $PKGDESTDIR/usr/bin/gappletviewer $jdk_bin_dir/appletviewer
|
||||
ln -sfr $PKGDESTDIR/usr/bin/gjarsigner $jdk_bin_dir/jarsigner
|
||||
ln -sfr $PKGDESTDIR/usr/bin/grmiregistry $jdk_bin_dir/rmiregistry
|
||||
ln -sfr $PKGDESTDIR/usr/bin/gkeytool $jdk_bin_dir/keytool
|
||||
|
||||
mkdir -p $jre_bin_dir $jre_lib_dir/$arch
|
||||
ln -sfr $PKGDESTDIR/usr/bin/gij $jre_bin_dir/java
|
||||
ln -sfr $PKGDESTDIR/usr/bin/grmiregistry $jre_bin_dir/rmiregistry
|
||||
ln -sfr $PKGDESTDIR/usr/bin/gkeytool $jre_bin_dir/keytool
|
||||
ln -sfr $PKGDESTDIR/usr/share/java/libgcj-$gccver.jar $jre_lib_dir/rt.jar
|
||||
ln -sfr $PKGDESTDIR/usr/share/java/libgcj-tools-$gccver.jar $jre_lib_dir/tools.jar
|
||||
ln -sfr $PKGDESTDIR/usr/lib/gcj-$version-$_gcjrel/libjvm.so $jre_lib_dir/$arch
|
||||
ln -sfr $PKGDESTDIR/usr/lib/gcj-$version-$_gcjrel/libjavamath.so $jre_lib_dir/$arch
|
||||
ln -sfr $PKGDESTDIR/usr/lib/gcj-$version-$_gcjrel/classmap.db $jre_lib_dir/$arch
|
||||
}
|
||||
}
|
||||
gcc-go_package() {
|
||||
lib32disabled=yes
|
||||
depends="gcc>=${_majorver} libgo-devel>=${_majorver}"
|
||||
|
@ -391,35 +331,6 @@ gcc-objc_package() {
|
|||
vmove usr/lib/gcc/${_triplet}/${_majorver}/cc1obj
|
||||
}
|
||||
}
|
||||
libgcj-devel_package() {
|
||||
short_desc+=" - Java library - development files"
|
||||
pkg_install() {
|
||||
vmove usr/include/c++/${_majorver}/gnu
|
||||
vmove usr/include/c++/${_majorver}/java
|
||||
vmove usr/include/c++/${_majorver}/javax
|
||||
vmove usr/include/c++/${_majorver}/sun
|
||||
vmove usr/include/c++/${_majorver}/gcj
|
||||
vmove usr/include/c++/${_majorver}/org
|
||||
vmove usr/lib/gcc/${_triplet}/${_majorver}/plugin/include/java
|
||||
vmove "usr/lib/gcc/${_triplet}/${_majorver}/include/jni*"
|
||||
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
|
||||
}
|
||||
}
|
||||
libgcj_package() {
|
||||
short_desc+=" - Java libraries"
|
||||
pkg_install() {
|
||||
vmove "usr/lib/libgcj*.so*"
|
||||
vmove "usr/lib/libgij.so*"
|
||||
vmove usr/lib/gcj-${version}-$_gcjrel
|
||||
vmove usr/lib/logging.properties
|
||||
vmove usr/lib/libgcj.spec
|
||||
vmove usr/lib/security/classpath.security
|
||||
vmove usr/share/java
|
||||
}
|
||||
}
|
||||
libgfortran-devel_package() {
|
||||
depends="libgfortran>=${_majorver}"
|
||||
short_desc+=" - Fortran library - development files"
|
||||
|
@ -444,7 +355,6 @@ libgo-devel_package() {
|
|||
short_desc+=" - Go library - development files"
|
||||
pkg_install() {
|
||||
vmove usr/lib/libgo.a
|
||||
vmove usr/lib/libnetgo.a
|
||||
vmove usr/lib/libgobegin.a
|
||||
vmove usr/lib/libgolibbegin.a
|
||||
vmove usr/lib/libgo.so
|
||||
|
|
4
xbps-src
4
xbps-src
|
@ -405,8 +405,8 @@ 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=6
|
||||
readonly XBPS_GCC_VERSION_MINOR=3
|
||||
readonly XBPS_GCC_VERSION_MAJOR=7
|
||||
readonly XBPS_GCC_VERSION_MINOR=2
|
||||
readonly XBPS_GCC_VERSION_BUILD=0
|
||||
readonly XBPS_GCC_VERSION=${XBPS_GCC_VERSION_MAJOR}.${XBPS_GCC_VERSION_MINOR}.${XBPS_GCC_VERSION_BUILD}
|
||||
|
||||
|
|
Loading…
Reference in New Issue