Skip to content

Commit

Permalink
Merge pull request #958 from stilor/gcc8
Browse files Browse the repository at this point in the history
Add GCC 8.1
  • Loading branch information
stilor committed May 6, 2018
2 parents 9bd5782 + 906cfda commit ca3701b
Show file tree
Hide file tree
Showing 20 changed files with 1,375 additions and 0 deletions.
18 changes: 18 additions & 0 deletions packages/gcc/8.1.0/0000-libtool-leave-framework-alone.patch
@@ -0,0 +1,18 @@
---
libtool-ldflags | 5 +++++
1 file changed, 5 insertions(+)

--- a/libtool-ldflags
+++ b/libtool-ldflags
@@ -36,6 +36,11 @@
for arg
do
case $arg in
+ -framework)
+ # libtool handles this option. It should not be prefixed with
+ # -Xcompiler, as that would split it from the argument that
+ # follows.
+ ;;
-f*|--*|-static-lib*|-shared-lib*|-B*)
# Libtool does not ascribe any special meaning options
# that begin with -f or with a double-dash. So, it will
17 changes: 17 additions & 0 deletions packages/gcc/8.1.0/0001-uclibc-conf.patch
@@ -0,0 +1,17 @@
---
contrib/regression/objs-gcc.sh | 4 ++++
1 file changed, 4 insertions(+)

--- a/contrib/regression/objs-gcc.sh
+++ b/contrib/regression/objs-gcc.sh
@@ -106,6 +106,10 @@
then
make all-gdb all-dejagnu all-ld || exit 1
make install-gdb install-dejagnu install-ld || exit 1
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
+ then
+ make all-gdb all-dejagnu all-ld || exit 1
+ make install-gdb install-dejagnu install-ld || exit 1
elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
make bootstrap || exit 1
make install || exit 1
@@ -0,0 +1,163 @@
---
config/gcc-plugin.m4 | 18 +++++++++++++-----
gcc/configure | 22 +++++++++++++++-------
libcc1/configure | 22 +++++++++++++++-------
3 files changed, 43 insertions(+), 19 deletions(-)

--- a/config/gcc-plugin.m4
+++ b/config/gcc-plugin.m4
@@ -21,6 +21,9 @@
pluginlibs=
plugin_check=yes

+ PICFLAG="-fPIC"
+ UNDEFINEDPREAMBLE="extern int X;"
+ UNDEFINEDCODE="return X == 0;"
case "${host}" in
*-*-mingw*)
# Since plugin support under MinGW is not as straightforward as on
@@ -43,6 +46,11 @@
export_sym_check=
fi
;;
+ *-*-mingw*|*-*-cygwin*|*-*-msys*)
+ PICFLAG=""
+ UNDEFINEDPREAMBLE=""
+ UNDEFINEDCODE=""
+ ;;
*)
if test x$build = x$host; then
export_sym_check="objdump${exeext} -T"
@@ -94,17 +102,17 @@
case "${host}" in
*-*-darwin*)
CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
- CFLAGS="$CFLAGS -fPIC"
+ CFLAGS="$CFLAGS ${PICFLAG}"
LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
;;
*)
- CFLAGS="$CFLAGS -fPIC"
- LDFLAGS="$LDFLAGS -fPIC -shared"
+ CFLAGS="$CFLAGS ${PICFLAG}"
+ LDFLAGS="$LDFLAGS ${PICFLAG} -shared"
;;
esac
- AC_MSG_CHECKING([for -fPIC -shared])
+ AC_MSG_CHECKING([for ${PICFLAG} -shared])
AC_TRY_LINK(
- [extern int X;],[return X == 0;],
+ [${UNDEFINEDPREAMBLE}],[${UNDEFINEDCODE}],
[AC_MSG_RESULT([yes]); have_pic_shared=yes],
[AC_MSG_RESULT([no]); have_pic_shared=no])
if test x"$have_pic_shared" != x"yes" -o x"$ac_cv_search_dlopen" = x"no"; then
--- a/gcc/configure
+++ b/gcc/configure
@@ -29805,6 +29805,9 @@
pluginlibs=
plugin_check=yes

+ PICFLAG="-fPIC"
+ UNDEFINEDPREAMBLE="extern int X;"
+ UNDEFINEDCODE="return X == 0;"
case "${host}" in
*-*-mingw*)
# Since plugin support under MinGW is not as straightforward as on
@@ -29827,6 +29830,11 @@
export_sym_check=
fi
;;
+ *-*-mingw*|*-*-cygwin*|*-*-msys*)
+ PICFLAG=""
+ UNDEFINEDPREAMBLE=""
+ UNDEFINEDCODE=""
+ ;;
*)
if test x$build = x$host; then
export_sym_check="objdump${exeext} -T"
@@ -29939,23 +29947,23 @@
case "${host}" in
*-*-darwin*)
CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
- CFLAGS="$CFLAGS -fPIC"
+ CFLAGS="$CFLAGS ${PICFLAG}"
LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
;;
*)
- CFLAGS="$CFLAGS -fPIC"
- LDFLAGS="$LDFLAGS -fPIC -shared"
+ CFLAGS="$CFLAGS ${PICFLAG}"
+ LDFLAGS="$LDFLAGS ${PICFLAG} -shared"
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fPIC -shared" >&5
-$as_echo_n "checking for -fPIC -shared... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${PICFLAG} -shared" >&5
+$as_echo_n "checking for ${PICFLAG} -shared... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-extern int X;
+${UNDEFINEDPREAMBLE}
int
main ()
{
-return X == 0;
+${UNDEFINEDCODE}
;
return 0;
}
--- a/libcc1/configure
+++ b/libcc1/configure
@@ -14554,6 +14554,9 @@
pluginlibs=
plugin_check=yes

+ PICFLAG="-fPIC"
+ UNDEFINEDPREAMBLE="extern int X;"
+ UNDEFINEDCODE="return X == 0;"
case "${host}" in
*-*-mingw*)
# Since plugin support under MinGW is not as straightforward as on
@@ -14576,6 +14579,11 @@
export_sym_check=
fi
;;
+ *-*-mingw*|*-*-cygwin*|*-*-msys*)
+ PICFLAG=""
+ UNDEFINEDPREAMBLE=""
+ UNDEFINEDCODE=""
+ ;;
*)
if test x$build = x$host; then
export_sym_check="objdump${exeext} -T"
@@ -14688,23 +14696,23 @@
case "${host}" in
*-*-darwin*)
CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
- CFLAGS="$CFLAGS -fPIC"
+ CFLAGS="$CFLAGS ${PICFLAG}"
LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
;;
*)
- CFLAGS="$CFLAGS -fPIC"
- LDFLAGS="$LDFLAGS -fPIC -shared"
+ CFLAGS="$CFLAGS ${PICFLAG}"
+ LDFLAGS="$LDFLAGS ${PICFLAG} -shared"
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fPIC -shared" >&5
-$as_echo_n "checking for -fPIC -shared... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${PICFLAG} -shared" >&5
+$as_echo_n "checking for ${PICFLAG} -shared... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-extern int X;
+${UNDEFINEDPREAMBLE}
int
main ()
{
-return X == 0;
+${UNDEFINEDCODE}
;
return 0;
}
@@ -0,0 +1,14 @@
---
libcc1/connection.cc | 1 +
1 file changed, 1 insertion(+)

--- a/libcc1/connection.cc
+++ b/libcc1/connection.cc
@@ -21,6 +21,7 @@
#include <string>
#include <unistd.h>
#include <sys/types.h>
+#include <sys/select.h>
#include <string.h>
#include <errno.h>
#include "marshall.hh"
31 changes: 31 additions & 0 deletions packages/gcc/8.1.0/0004-arm-softfloat-libgcc.patch
@@ -0,0 +1,31 @@
---
gcc/config/arm/linux-elf.h | 2 +-
libgcc/config/arm/t-linux | 7 ++++++-
2 files changed, 7 insertions(+), 2 deletions(-)

--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -58,7 +58,7 @@
%{shared:-lc} \
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"

-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
+#define LIBGCC_SPEC "-lgcc"

#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"

--- a/libgcc/config/arm/t-linux
+++ b/libgcc/config/arm/t-linux
@@ -1,6 +1,11 @@
LIB1ASMSRC = arm/lib1funcs.S
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
+ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \
+ _arm_addsubdf3 _arm_addsubsf3 \
+ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
+ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
+ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
+ _arm_fixsfsi _arm_fixunssfsi

# Just for these, we omit the frame pointer since it makes such a big
# difference.
21 changes: 21 additions & 0 deletions packages/gcc/8.1.0/0005-fix-m68k-uclinux.patch
@@ -0,0 +1,21 @@
avoids internal compiler error while compiling linux-atomic.c
See here:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53833

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>

---
libgcc/config.host | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -847,7 +847,7 @@
m68k*-*-openbsd*)
;;
m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc
- tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
+ tmake_file="$tmake_file m68k/t-floatlib"
md_unwind_header=m68k/linux-unwind.h
;;
m68k-*-linux*) # Motorola m68k's running GNU/Linux
14 changes: 14 additions & 0 deletions packages/gcc/8.1.0/0006-libgfortran-missing-include.patch
@@ -0,0 +1,14 @@
---
libgfortran/io/close.c | 1 +
1 file changed, 1 insertion(+)

--- a/libgfortran/io/close.c
+++ b/libgfortran/io/close.c
@@ -25,6 +25,7 @@
#include "io.h"
#include "unix.h"
#include <limits.h>
+#include <stdlib.h>

typedef enum
{ CLOSE_DELETE, CLOSE_KEEP, CLOSE_UNSPECIFIED }
31 changes: 31 additions & 0 deletions packages/gcc/8.1.0/0007-nios2-bad-multilib-default.patch
@@ -0,0 +1,31 @@
---
gcc/config/nios2/nios2.h | 4 ++--
gcc/config/nios2/t-nios2 | 3 +--
2 files changed, 3 insertions(+), 4 deletions(-)

--- a/gcc/config/nios2/nios2.h
+++ b/gcc/config/nios2/nios2.h
@@ -63,11 +63,11 @@
#if TARGET_ENDIAN_DEFAULT == 0
# define ASM_SPEC "%{!meb:-EL} %{meb:-EB} %{march=*:-march=%*}"
# define LINK_SPEC_ENDIAN "%{!meb:-EL} %{meb:-EB}"
-# define MULTILIB_DEFAULTS { "EL" }
+# define MULTILIB_DEFAULTS { "mel" }
#else
# define ASM_SPEC "%{!mel:-EB} %{mel:-EL} %{march=*:-march=%*}"
# define LINK_SPEC_ENDIAN "%{!mel:-EB} %{mel:-EL}"
-# define MULTILIB_DEFAULTS { "EB" }
+# define MULTILIB_DEFAULTS { "meb" }
#endif

#define LINK_SPEC LINK_SPEC_ENDIAN \
--- a/gcc/config/nios2/t-nios2
+++ b/gcc/config/nios2/t-nios2
@@ -22,6 +22,5 @@
# MULTILIB_DIRNAMES = nomul mulx fpu-60-1 fpu-60-2
# MULTILIB_EXCEPTIONS =

-# MULTILIB_OPTIONS += EL/EB
+# MULTILIB_OPTIONS += mel/meb
# MULTILIB_DIRNAMES += le be
-# MULTILIB_MATCHES += EL=mel EB=meb
17 changes: 17 additions & 0 deletions packages/gcc/8.1.0/0008-libgcc-disable-split-stack-nothreads.patch
@@ -0,0 +1,17 @@
disable split-stack for non-thread builds

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>

---
libgcc/config/t-stack | 2 ++
1 file changed, 2 insertions(+)

--- a/libgcc/config/t-stack
+++ b/libgcc/config/t-stack
@@ -1,4 +1,6 @@
# Makefile fragment to provide generic support for -fsplit-stack.
# This should be used in config.host for any host which supports
# -fsplit-stack.
+ifeq ($(enable_threads),yes)
LIB2ADD_ST += $(srcdir)/generic-morestack.c $(srcdir)/generic-morestack-thread.c
+endif
60 changes: 60 additions & 0 deletions packages/gcc/8.1.0/0009-bionic-ndk.patch
@@ -0,0 +1,60 @@
commit d38d37bdfe24b7ce1bdcb55642fb6b904718e68f
Author: Howard Chu <hyc@symas.com>
Date: Tue Apr 25 19:02:18 2017 -0700

Fix ctype for newer NDK headers

---
libstdc++-v3/config/os/bionic/ctype_base.h | 34 +++++++++++++++++++----------
1 file changed, 23 insertions(+), 11 deletions(-)

--- a/libstdc++-v3/config/os/bionic/ctype_base.h
+++ b/libstdc++-v3/config/os/bionic/ctype_base.h
@@ -28,6 +28,18 @@

// Information as gleaned from /usr/include/ctype.h

+// _CTYPE prefix was added in NDK r14 unified headers
+#ifndef _CTYPE_U
+#define _CTYPE_U _U
+#define _CTYPE_L _L
+#define _CTYPE_D _N
+#define _CTYPE_S _S
+#define _CTYPE_P _P
+#define _CTYPE_C _C
+#define _CTYPE_X _X
+#define _CTYPE_B _B
+#endif
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -41,17 +53,17 @@
// NB: Offsets into ctype<char>::_M_table force a particular size
// on the mask type. Because of this, we don't use an enum.
typedef char mask;
- static const mask upper = _U;
- static const mask lower = _L;
- static const mask alpha = _U | _L;
- static const mask digit = _N;
- static const mask xdigit = _X | _N;
- static const mask space = _S;
- static const mask print = _P | _U | _L | _N | _B;
- static const mask graph = _P | _U | _L | _N;
- static const mask cntrl = _C;
- static const mask punct = _P;
- static const mask alnum = _U | _L | _N;
+ static const mask upper = _CTYPE_U;
+ static const mask lower = _CTYPE_L;
+ static const mask alpha = _CTYPE_U | _CTYPE_L;
+ static const mask digit = _CTYPE_D;
+ static const mask xdigit = _CTYPE_X | _CTYPE_D;
+ static const mask space = _CTYPE_S;
+ static const mask print = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_D | _CTYPE_B;
+ static const mask graph = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_D;
+ static const mask cntrl = _CTYPE_C;
+ static const mask punct = _CTYPE_P;
+ static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_D;
#if __cplusplus >= 201103L
static const mask blank = space;
#endif

0 comments on commit ca3701b

Please sign in to comment.