util/crossgcc: update to gcc 8.1.0 and binutils 2.30
Also update patches as necessary. Change-Id: I1e8074954d5d7a4eff590abb7439e9be7d3762aa Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-on: https://review.coreboot.org/25997 Reviewed-by: Nico Huber <nico.h@gmx.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
1ce225b5a3
commit
b1d26f0e92
|
@ -18,8 +18,8 @@
|
||||||
|
|
||||||
cd $(dirname $0)
|
cd $(dirname $0)
|
||||||
|
|
||||||
CROSSGCC_DATE="June 3rd, 2018"
|
CROSSGCC_DATE="June 11th, 2018"
|
||||||
CROSSGCC_VERSION="1.51"
|
CROSSGCC_VERSION="1.52"
|
||||||
CROSSGCC_COMMIT=$( git describe )
|
CROSSGCC_COMMIT=$( git describe )
|
||||||
|
|
||||||
# default settings
|
# default settings
|
||||||
|
@ -38,9 +38,9 @@ THREADS=1
|
||||||
GMP_VERSION=6.1.2
|
GMP_VERSION=6.1.2
|
||||||
MPFR_VERSION=3.1.5
|
MPFR_VERSION=3.1.5
|
||||||
MPC_VERSION=1.0.3
|
MPC_VERSION=1.0.3
|
||||||
GCC_VERSION=6.3.0
|
GCC_VERSION=8.1.0
|
||||||
GCC_AUTOCONF_VERSION=2.69
|
GCC_AUTOCONF_VERSION=2.69
|
||||||
BINUTILS_VERSION=2.29.1
|
BINUTILS_VERSION=2.30
|
||||||
GDB_VERSION=8.0
|
GDB_VERSION=8.0
|
||||||
IASL_VERSION=20180531
|
IASL_VERSION=20180531
|
||||||
PYTHON_VERSION=3.5.1
|
PYTHON_VERSION=3.5.1
|
||||||
|
@ -57,7 +57,7 @@ CMAKE_VERSION=3.11.3
|
||||||
GMP_ARCHIVE="https://ftpmirror.gnu.org/gmp/gmp-${GMP_VERSION}.tar.xz"
|
GMP_ARCHIVE="https://ftpmirror.gnu.org/gmp/gmp-${GMP_VERSION}.tar.xz"
|
||||||
MPFR_ARCHIVE="https://ftpmirror.gnu.org/mpfr/mpfr-${MPFR_VERSION}.tar.xz"
|
MPFR_ARCHIVE="https://ftpmirror.gnu.org/mpfr/mpfr-${MPFR_VERSION}.tar.xz"
|
||||||
MPC_ARCHIVE="https://ftpmirror.gnu.org/mpc/mpc-${MPC_VERSION}.tar.gz"
|
MPC_ARCHIVE="https://ftpmirror.gnu.org/mpc/mpc-${MPC_VERSION}.tar.gz"
|
||||||
GCC_ARCHIVE="https://ftpmirror.gnu.org/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.bz2"
|
GCC_ARCHIVE="https://ftpmirror.gnu.org/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.xz"
|
||||||
BINUTILS_ARCHIVE="https://ftpmirror.gnu.org/binutils/binutils-${BINUTILS_VERSION}.tar.xz"
|
BINUTILS_ARCHIVE="https://ftpmirror.gnu.org/binutils/binutils-${BINUTILS_VERSION}.tar.xz"
|
||||||
GDB_ARCHIVE="https://ftpmirror.gnu.org/gdb/gdb-${GDB_VERSION}.tar.xz"
|
GDB_ARCHIVE="https://ftpmirror.gnu.org/gdb/gdb-${GDB_VERSION}.tar.xz"
|
||||||
IASL_ARCHIVE="https://acpica.org/sites/acpica/files/acpica-unix2-${IASL_VERSION}.tar.gz"
|
IASL_ARCHIVE="https://acpica.org/sites/acpica/files/acpica-unix2-${IASL_VERSION}.tar.gz"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,11 +0,0 @@
|
||||||
--- gcc-6.3.0/gcc/ada/raise.c.orig 2017-06-24 07:06:41.524685169 +0200
|
|
||||||
+++ gcc-6.3.0/gcc/ada/raise.c 2017-06-24 07:07:12.945162120 +0200
|
|
||||||
@@ -55,7 +55,7 @@
|
|
||||||
void
|
|
||||||
_gnat_builtin_longjmp (void *ptr, int flag ATTRIBUTE_UNUSED)
|
|
||||||
{
|
|
||||||
- __builtin_longjmp (ptr, 1);
|
|
||||||
+ __builtin_longjmp ((void **)ptr, 1);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,87 +0,0 @@
|
||||||
diff -urN gcc-4.9.2/gcc/config/i386/t-elf64 gcc-4.9.2/gcc/config/i386/t-elf64
|
|
||||||
--- gcc-4.9.2/gcc/config/i386/t-elf64 1969-12-31 16:00:00.000000000 -0800
|
|
||||||
+++ gcc-6.1.0/gcc/config/i386/t-elf64 2015-06-17 11:20:08.032513005 -0700
|
|
||||||
@@ -0,0 +1,38 @@
|
|
||||||
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
|
||||||
+#
|
|
||||||
+# This file is part of GCC.
|
|
||||||
+#
|
|
||||||
+# GCC is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 3, or (at your option)
|
|
||||||
+# any later version.
|
|
||||||
+#
|
|
||||||
+# GCC is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+#
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with GCC; see the file COPYING3. If not see
|
|
||||||
+# <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+# On Debian, Ubuntu and other derivative distributions, the 32bit libraries
|
|
||||||
+# are found in /lib32 and /usr/lib32, /lib64 and /usr/lib64 are symlinks to
|
|
||||||
+# /lib and /usr/lib, while other distributions install libraries into /lib64
|
|
||||||
+# and /usr/lib64. The LSB does not enforce the use of /lib64 and /usr/lib64,
|
|
||||||
+# it doesn't tell anything about the 32bit libraries on those systems. Set
|
|
||||||
+# MULTILIB_OSDIRNAMES according to what is found on the target.
|
|
||||||
+
|
|
||||||
+# To support i386, x86-64 and x32 libraries, the directory structrue
|
|
||||||
+# should be:
|
|
||||||
+#
|
|
||||||
+# /lib has i386 libraries.
|
|
||||||
+# /lib64 has x86-64 libraries.
|
|
||||||
+# /libx32 has x32 libraries.
|
|
||||||
+#
|
|
||||||
+comma=,
|
|
||||||
+MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
|
|
||||||
+MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
|
|
||||||
+MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-elf)
|
|
||||||
+MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-elf)
|
|
||||||
+MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-elf-x32)
|
|
||||||
diff -urN gcc-4.9.2/gcc/config.gcc gcc-4.9.2/gcc/config.gcc
|
|
||||||
--- gcc-4.9.2/gcc/config.gcc 2015-06-17 11:20:57.841008182 -0700
|
|
||||||
+++ gcc-6.1.0/gcc/config.gcc 2015-06-17 11:17:24.818890200 -0700
|
|
||||||
@@ -1353,6 +1353,30 @@
|
|
||||||
;;
|
|
||||||
x86_64-*-elf*)
|
|
||||||
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
|
|
||||||
+ tmake_file="${tmake_file} i386/t-elf64"
|
|
||||||
+ x86_multilibs="${with_multilib_list}"
|
|
||||||
+ if test "$x86_multilibs" = "default"; then
|
|
||||||
+ case ${with_abi} in
|
|
||||||
+ x32 | mx32)
|
|
||||||
+ x86_multilibs="mx32"
|
|
||||||
+ ;;
|
|
||||||
+ *)
|
|
||||||
+ x86_multilibs="m64,m32"
|
|
||||||
+ ;;
|
|
||||||
+ esac
|
|
||||||
+ fi
|
|
||||||
+ x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
|
|
||||||
+ for x86_multilib in ${x86_multilibs}; do
|
|
||||||
+ case ${x86_multilib} in
|
|
||||||
+ m32 | m64 | mx32)
|
|
||||||
+ TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
|
|
||||||
+ ;;
|
|
||||||
+ *)
|
|
||||||
+ echo "--with-multilib-list=${x86_with_multilib} not supported."
|
|
||||||
+ exit 1
|
|
||||||
+ esac
|
|
||||||
+ done
|
|
||||||
+ TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
|
|
||||||
;;
|
|
||||||
i[34567]86-*-rdos*)
|
|
||||||
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
|
|
||||||
--- gcc-6.1.0/gcc/config/i386/x86-64.h.orig 2015-08-20 17:17:34.555919593 +0200
|
|
||||||
+++ gcc-6.1.0/gcc/config/i386/x86-64.h 2015-08-20 17:17:42.615908670 +0200
|
|
||||||
@@ -49,7 +49,7 @@
|
|
||||||
#define WCHAR_TYPE_SIZE 32
|
|
||||||
|
|
||||||
#undef ASM_SPEC
|
|
||||||
-#define ASM_SPEC "%{m32:--32} %{m64:--64} %{mx32:--x32}"
|
|
||||||
+#define ASM_SPEC "%{m16|m32:--32} %{m64:--64} %{mx32:--x32}"
|
|
||||||
|
|
||||||
#undef ASM_OUTPUT_ALIGNED_BSS
|
|
||||||
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
|
|
|
@ -1,416 +0,0 @@
|
||||||
commit ea36272bdc2602a690019b9612d23594571d3d2b
|
|
||||||
Author: thopre01 <thopre01@138bc75d-0d04-0410-961f-82ee72b054a4>
|
|
||||||
Date: Mon Sep 26 17:20:39 2016 +0000
|
|
||||||
|
|
||||||
2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
|
||||||
|
|
||||||
gcc/
|
|
||||||
* tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
|
|
||||||
is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
|
|
||||||
is_mm_seq_cst, is_mm_sync): Move to ...
|
|
||||||
* memmodel.h: This. New file.
|
|
||||||
* builtins.c: Include memmodel.h.
|
|
||||||
* optabs.c: Likewise.
|
|
||||||
* tsan.c: Likewise.
|
|
||||||
* config/aarch64/aarch64.c: Likewise.
|
|
||||||
* config/alpha/alpha.c: Likewise.
|
|
||||||
* config/arm/arm.c: Likewise.
|
|
||||||
* config/i386/i386.c: Likewise.
|
|
||||||
* config/ia64/ia64.c: Likewise.
|
|
||||||
* config/mips/mips.c: Likewise.
|
|
||||||
* config/rs6000/rs6000.c: Likewise.
|
|
||||||
* config/sparc/sparc.c: Likewise.
|
|
||||||
* genconditions.c: Include memmodel.h in generated file.
|
|
||||||
* genemit.c: Likewise.
|
|
||||||
* genoutput.c: Likewise.
|
|
||||||
* genpeep.c: Likewise.
|
|
||||||
* genpreds.c: Likewise.
|
|
||||||
* genrecog.c: Likewise.
|
|
||||||
|
|
||||||
gcc/c-family/
|
|
||||||
* c-common.c: Include memmodel.h.
|
|
||||||
|
|
||||||
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240504 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
||||||
|
|
||||||
diff --git a/gcc/builtins.c b/gcc/builtins.c
|
|
||||||
index 93cbe15ad3c..04dcf95acd2 100644
|
|
||||||
--- a/gcc/builtins.c
|
|
||||||
+++ b/gcc/builtins.c
|
|
||||||
@@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see
|
|
||||||
#include "target.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "gimple.h"
|
|
||||||
#include "predict.h"
|
|
||||||
#include "tm_p.h"
|
|
||||||
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
|
|
||||||
index e9f619fd3af..2652259a312 100644
|
|
||||||
--- a/gcc/c-family/c-common.c
|
|
||||||
+++ b/gcc/c-family/c-common.c
|
|
||||||
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
|
|
||||||
#include "target.h"
|
|
||||||
#include "function.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "c-common.h"
|
|
||||||
#include "gimple-expr.h"
|
|
||||||
#include "tm_p.h"
|
|
||||||
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
|
|
||||||
index 6078b163548..c65b826b0cc 100644
|
|
||||||
--- a/gcc/config/aarch64/aarch64.c
|
|
||||||
+++ b/gcc/config/aarch64/aarch64.c
|
|
||||||
@@ -26,6 +26,7 @@
|
|
||||||
#include "target.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "gimple.h"
|
|
||||||
#include "cfghooks.h"
|
|
||||||
#include "cfgloop.h"
|
|
||||||
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
|
|
||||||
index 6d4af04dd7d..d646879e7e8 100644
|
|
||||||
--- a/gcc/config/alpha/alpha.c
|
|
||||||
+++ b/gcc/config/alpha/alpha.c
|
|
||||||
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
|
|
||||||
#include "target.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "gimple.h"
|
|
||||||
#include "df.h"
|
|
||||||
#include "tm_p.h"
|
|
||||||
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
|
|
||||||
index 619c3291c87..feb54cbc64a 100644
|
|
||||||
--- a/gcc/config/arm/arm.c
|
|
||||||
+++ b/gcc/config/arm/arm.c
|
|
||||||
@@ -27,6 +27,7 @@
|
|
||||||
#include "target.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "cfghooks.h"
|
|
||||||
#include "df.h"
|
|
||||||
#include "tm_p.h"
|
|
||||||
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
|
|
||||||
index 143b905a341..01e2ad8e1b2 100644
|
|
||||||
--- a/gcc/config/i386/i386.c
|
|
||||||
+++ b/gcc/config/i386/i386.c
|
|
||||||
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
|
|
||||||
#include "backend.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "gimple.h"
|
|
||||||
#include "cfghooks.h"
|
|
||||||
#include "cfgloop.h"
|
|
||||||
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
|
|
||||||
index 5f0bf43a103..573872eb85f 100644
|
|
||||||
--- a/gcc/config/ia64/ia64.c
|
|
||||||
+++ b/gcc/config/ia64/ia64.c
|
|
||||||
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
|
|
||||||
#include "target.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "cfghooks.h"
|
|
||||||
#include "df.h"
|
|
||||||
#include "tm_p.h"
|
|
||||||
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
|
|
||||||
index 88f4038224a..3586a1001e7 100644
|
|
||||||
--- a/gcc/config/mips/mips.c
|
|
||||||
+++ b/gcc/config/mips/mips.c
|
|
||||||
@@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see
|
|
||||||
#include "target.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "gimple.h"
|
|
||||||
#include "cfghooks.h"
|
|
||||||
#include "df.h"
|
|
||||||
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
|
|
||||||
index d76f479d9e5..6897b5c260d 100644
|
|
||||||
--- a/gcc/config/rs6000/rs6000.c
|
|
||||||
+++ b/gcc/config/rs6000/rs6000.c
|
|
||||||
@@ -24,6 +24,7 @@
|
|
||||||
#include "backend.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "gimple.h"
|
|
||||||
#include "cfghooks.h"
|
|
||||||
#include "cfgloop.h"
|
|
||||||
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
|
|
||||||
index 5efed3dc52f..5936f96bd80 100644
|
|
||||||
--- a/gcc/config/sparc/sparc.c
|
|
||||||
+++ b/gcc/config/sparc/sparc.c
|
|
||||||
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
|
|
||||||
#include "target.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "gimple.h"
|
|
||||||
#include "df.h"
|
|
||||||
#include "tm_p.h"
|
|
||||||
diff --git a/gcc/genconditions.c b/gcc/genconditions.c
|
|
||||||
index e4f45b097cd..d8b0ebba56b 100644
|
|
||||||
--- a/gcc/genconditions.c
|
|
||||||
+++ b/gcc/genconditions.c
|
|
||||||
@@ -94,6 +94,7 @@ write_header (void)
|
|
||||||
#include \"resource.h\"\n\
|
|
||||||
#include \"diagnostic-core.h\"\n\
|
|
||||||
#include \"reload.h\"\n\
|
|
||||||
+#include \"memmodel.h\"\n\
|
|
||||||
#include \"tm-constrs.h\"\n");
|
|
||||||
|
|
||||||
if (saw_eh_return)
|
|
||||||
diff --git a/gcc/genemit.c b/gcc/genemit.c
|
|
||||||
index 33040aac36d..d5e07a97a6d 100644
|
|
||||||
--- a/gcc/genemit.c
|
|
||||||
+++ b/gcc/genemit.c
|
|
||||||
@@ -792,6 +792,7 @@ from the machine description file `md'. */\n\n");
|
|
||||||
printf ("#include \"reload.h\"\n");
|
|
||||||
printf ("#include \"diagnostic-core.h\"\n");
|
|
||||||
printf ("#include \"regs.h\"\n");
|
|
||||||
+ printf ("#include \"memmodel.h\"\n");
|
|
||||||
printf ("#include \"tm-constrs.h\"\n");
|
|
||||||
printf ("#include \"ggc.h\"\n");
|
|
||||||
printf ("#include \"dumpfile.h\"\n");
|
|
||||||
diff --git a/gcc/genoutput.c b/gcc/genoutput.c
|
|
||||||
index f8c25ac4df0..59092580e49 100644
|
|
||||||
--- a/gcc/genoutput.c
|
|
||||||
+++ b/gcc/genoutput.c
|
|
||||||
@@ -231,6 +231,7 @@ output_prologue (void)
|
|
||||||
printf ("#include \"diagnostic-core.h\"\n");
|
|
||||||
printf ("#include \"output.h\"\n");
|
|
||||||
printf ("#include \"target.h\"\n");
|
|
||||||
+ printf ("#include \"memmodel.h\"\n");
|
|
||||||
printf ("#include \"tm-constrs.h\"\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/gcc/genpeep.c b/gcc/genpeep.c
|
|
||||||
index 132cdced690..e1997e03e47 100644
|
|
||||||
--- a/gcc/genpeep.c
|
|
||||||
+++ b/gcc/genpeep.c
|
|
||||||
@@ -373,6 +373,7 @@ from the machine description file `md'. */\n\n");
|
|
||||||
printf ("#include \"except.h\"\n");
|
|
||||||
printf ("#include \"diagnostic-core.h\"\n");
|
|
||||||
printf ("#include \"flags.h\"\n");
|
|
||||||
+ printf ("#include \"memmodel.h\"\n");
|
|
||||||
printf ("#include \"tm-constrs.h\"\n\n");
|
|
||||||
|
|
||||||
printf ("extern rtx peep_operand[];\n\n");
|
|
||||||
diff --git a/gcc/genpreds.c b/gcc/genpreds.c
|
|
||||||
index d18ebd2ab5a..6db1b7b0301 100644
|
|
||||||
--- a/gcc/genpreds.c
|
|
||||||
+++ b/gcc/genpreds.c
|
|
||||||
@@ -1580,6 +1580,7 @@ write_insn_preds_c (void)
|
|
||||||
#include \"reload.h\"\n\
|
|
||||||
#include \"regs.h\"\n\
|
|
||||||
#include \"emit-rtl.h\"\n\
|
|
||||||
+#include \"memmodel.h\"\n\
|
|
||||||
#include \"tm-constrs.h\"\n");
|
|
||||||
|
|
||||||
FOR_ALL_PREDICATES (p)
|
|
||||||
diff --git a/gcc/genrecog.c b/gcc/genrecog.c
|
|
||||||
index 056798c82f7..77861074492 100644
|
|
||||||
--- a/gcc/genrecog.c
|
|
||||||
+++ b/gcc/genrecog.c
|
|
||||||
@@ -4192,6 +4192,7 @@ write_header (void)
|
|
||||||
#include \"diagnostic-core.h\"\n\
|
|
||||||
#include \"reload.h\"\n\
|
|
||||||
#include \"regs.h\"\n\
|
|
||||||
+#include \"memmodel.h\"\n\
|
|
||||||
#include \"tm-constrs.h\"\n\
|
|
||||||
\n");
|
|
||||||
|
|
||||||
diff --git a/gcc/memmodel.h b/gcc/memmodel.h
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000000..d53eb7bc9d9
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/gcc/memmodel.h
|
|
||||||
@@ -0,0 +1,86 @@
|
|
||||||
+/* Prototypes of memory model helper functions.
|
|
||||||
+ Copyright (C) 2015-2016 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+This file is part of GCC.
|
|
||||||
+
|
|
||||||
+GCC is free software; you can redistribute it and/or modify it under
|
|
||||||
+the terms of the GNU General Public License as published by the Free
|
|
||||||
+Software Foundation; either version 3, or (at your option) any later
|
|
||||||
+version.
|
|
||||||
+
|
|
||||||
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
+for more details.
|
|
||||||
+
|
|
||||||
+You should have received a copy of the GNU General Public License
|
|
||||||
+along with GCC; see the file COPYING3. If not see
|
|
||||||
+<http://www.gnu.org/licenses/>. */
|
|
||||||
+
|
|
||||||
+#ifndef GCC_MEMMODEL_H
|
|
||||||
+#define GCC_MEMMODEL_H
|
|
||||||
+
|
|
||||||
+/* Return the memory model from a host integer. */
|
|
||||||
+static inline enum memmodel
|
|
||||||
+memmodel_from_int (unsigned HOST_WIDE_INT val)
|
|
||||||
+{
|
|
||||||
+ return (enum memmodel) (val & MEMMODEL_MASK);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Return the base memory model from a host integer. */
|
|
||||||
+static inline enum memmodel
|
|
||||||
+memmodel_base (unsigned HOST_WIDE_INT val)
|
|
||||||
+{
|
|
||||||
+ return (enum memmodel) (val & MEMMODEL_BASE_MASK);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Return TRUE if the memory model is RELAXED. */
|
|
||||||
+static inline bool
|
|
||||||
+is_mm_relaxed (enum memmodel model)
|
|
||||||
+{
|
|
||||||
+ return (model & MEMMODEL_BASE_MASK) == MEMMODEL_RELAXED;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Return TRUE if the memory model is CONSUME. */
|
|
||||||
+static inline bool
|
|
||||||
+is_mm_consume (enum memmodel model)
|
|
||||||
+{
|
|
||||||
+ return (model & MEMMODEL_BASE_MASK) == MEMMODEL_CONSUME;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Return TRUE if the memory model is ACQUIRE. */
|
|
||||||
+static inline bool
|
|
||||||
+is_mm_acquire (enum memmodel model)
|
|
||||||
+{
|
|
||||||
+ return (model & MEMMODEL_BASE_MASK) == MEMMODEL_ACQUIRE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Return TRUE if the memory model is RELEASE. */
|
|
||||||
+static inline bool
|
|
||||||
+is_mm_release (enum memmodel model)
|
|
||||||
+{
|
|
||||||
+ return (model & MEMMODEL_BASE_MASK) == MEMMODEL_RELEASE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Return TRUE if the memory model is ACQ_REL. */
|
|
||||||
+static inline bool
|
|
||||||
+is_mm_acq_rel (enum memmodel model)
|
|
||||||
+{
|
|
||||||
+ return (model & MEMMODEL_BASE_MASK) == MEMMODEL_ACQ_REL;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Return TRUE if the memory model is SEQ_CST. */
|
|
||||||
+static inline bool
|
|
||||||
+is_mm_seq_cst (enum memmodel model)
|
|
||||||
+{
|
|
||||||
+ return (model & MEMMODEL_BASE_MASK) == MEMMODEL_SEQ_CST;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Return TRUE if the memory model is a SYNC variant. */
|
|
||||||
+static inline bool
|
|
||||||
+is_mm_sync (enum memmodel model)
|
|
||||||
+{
|
|
||||||
+ return (model & MEMMODEL_SYNC);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#endif /* GCC_MEMMODEL_H */
|
|
||||||
diff --git a/gcc/optabs.c b/gcc/optabs.c
|
|
||||||
index e41747a630f..c5e9b4f8e13 100644
|
|
||||||
--- a/gcc/optabs.c
|
|
||||||
+++ b/gcc/optabs.c
|
|
||||||
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
|
|
||||||
#include "target.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "predict.h"
|
|
||||||
#include "tm_p.h"
|
|
||||||
#include "expmed.h"
|
|
||||||
diff --git a/gcc/tree.h b/gcc/tree.h
|
|
||||||
index 0d9ad0198fa..563e6d9e287 100644
|
|
||||||
--- a/gcc/tree.h
|
|
||||||
+++ b/gcc/tree.h
|
|
||||||
@@ -4675,69 +4675,6 @@ extern void warn_deprecated_use (tree, tree);
|
|
||||||
extern void cache_integer_cst (tree);
|
|
||||||
extern const char *combined_fn_name (combined_fn);
|
|
||||||
|
|
||||||
-/* Return the memory model from a host integer. */
|
|
||||||
-static inline enum memmodel
|
|
||||||
-memmodel_from_int (unsigned HOST_WIDE_INT val)
|
|
||||||
-{
|
|
||||||
- return (enum memmodel) (val & MEMMODEL_MASK);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/* Return the base memory model from a host integer. */
|
|
||||||
-static inline enum memmodel
|
|
||||||
-memmodel_base (unsigned HOST_WIDE_INT val)
|
|
||||||
-{
|
|
||||||
- return (enum memmodel) (val & MEMMODEL_BASE_MASK);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/* Return TRUE if the memory model is RELAXED. */
|
|
||||||
-static inline bool
|
|
||||||
-is_mm_relaxed (enum memmodel model)
|
|
||||||
-{
|
|
||||||
- return (model & MEMMODEL_BASE_MASK) == MEMMODEL_RELAXED;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/* Return TRUE if the memory model is CONSUME. */
|
|
||||||
-static inline bool
|
|
||||||
-is_mm_consume (enum memmodel model)
|
|
||||||
-{
|
|
||||||
- return (model & MEMMODEL_BASE_MASK) == MEMMODEL_CONSUME;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/* Return TRUE if the memory model is ACQUIRE. */
|
|
||||||
-static inline bool
|
|
||||||
-is_mm_acquire (enum memmodel model)
|
|
||||||
-{
|
|
||||||
- return (model & MEMMODEL_BASE_MASK) == MEMMODEL_ACQUIRE;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/* Return TRUE if the memory model is RELEASE. */
|
|
||||||
-static inline bool
|
|
||||||
-is_mm_release (enum memmodel model)
|
|
||||||
-{
|
|
||||||
- return (model & MEMMODEL_BASE_MASK) == MEMMODEL_RELEASE;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/* Return TRUE if the memory model is ACQ_REL. */
|
|
||||||
-static inline bool
|
|
||||||
-is_mm_acq_rel (enum memmodel model)
|
|
||||||
-{
|
|
||||||
- return (model & MEMMODEL_BASE_MASK) == MEMMODEL_ACQ_REL;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/* Return TRUE if the memory model is SEQ_CST. */
|
|
||||||
-static inline bool
|
|
||||||
-is_mm_seq_cst (enum memmodel model)
|
|
||||||
-{
|
|
||||||
- return (model & MEMMODEL_BASE_MASK) == MEMMODEL_SEQ_CST;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/* Return TRUE if the memory model is a SYNC variant. */
|
|
||||||
-static inline bool
|
|
||||||
-is_mm_sync (enum memmodel model)
|
|
||||||
-{
|
|
||||||
- return (model & MEMMODEL_SYNC);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
/* Compare and hash for any structure which begins with a canonical
|
|
||||||
pointer. Assumes all pointers are interchangeable, which is sort
|
|
||||||
of already assumed by gcc elsewhere IIRC. */
|
|
||||||
diff --git a/gcc/tsan.c b/gcc/tsan.c
|
|
||||||
index 91dbd41a0b4..cc194749665 100644
|
|
||||||
--- a/gcc/tsan.c
|
|
||||||
+++ b/gcc/tsan.c
|
|
||||||
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
|
|
||||||
#include "backend.h"
|
|
||||||
#include "rtl.h"
|
|
||||||
#include "tree.h"
|
|
||||||
+#include "memmodel.h"
|
|
||||||
#include "gimple.h"
|
|
||||||
#include "tree-pass.h"
|
|
||||||
#include "ssa.h"
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,15 +0,0 @@
|
||||||
--- gcc-6.3.0/gcc/ada/gcc-interface/Makefile.in.orig 2017-07-17 12:52:05.541815635 +0200
|
|
||||||
+++ gcc-6.3.0/gcc/ada/gcc-interface/Makefile.in 2017-07-17 12:52:18.693764268 +0200
|
|
||||||
@@ -2637,10 +2637,10 @@
|
|
||||||
# stamp target in the parent directory whenever gnat1 is rebuilt
|
|
||||||
|
|
||||||
# Likewise for the tools
|
|
||||||
-../../gnatmake$(exeext): $(P) b_gnatm.o $(GNATMAKE_OBJS)
|
|
||||||
+../../gnatmake$(exeext): b_gnatm.o $(GNATMAKE_OBJS)
|
|
||||||
+$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) $(TOOLS_LIBS) $(TOOLS1_LIBS)
|
|
||||||
|
|
||||||
-../../gnatlink$(exeext): $(P) b_gnatl.o $(GNATLINK_OBJS)
|
|
||||||
+../../gnatlink$(exeext): b_gnatl.o $(GNATLINK_OBJS)
|
|
||||||
+$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) $(TOOLS_LIBS) $(TOOLS1_LIBS)
|
|
||||||
|
|
||||||
../stamp-gnatlib-$(RTSDIR):
|
|
|
@ -1,27 +0,0 @@
|
||||||
From 8db2cf6353c13f2a84cbe49b689654897906c499 Mon Sep 17 00:00:00 2001
|
|
||||||
From: kyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>
|
|
||||||
Date: Sat, 3 Sep 2016 10:57:05 +0000
|
|
||||||
Subject: [PATCH] gcc/ * ubsan.c (ubsan_use_new_style_p): Fix check for empty
|
|
||||||
string.
|
|
||||||
|
|
||||||
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239971 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
||||||
---
|
|
||||||
gcc/ubsan.c | 2 +-
|
|
||||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
|
|
||||||
index 5cbc98dbabb..d3bd8e3393d 100644
|
|
||||||
--- a/gcc/ubsan.c
|
|
||||||
+++ b/gcc/ubsan.c
|
|
||||||
@@ -1469,7 +1469,7 @@ ubsan_use_new_style_p (location_t loc)
|
|
||||||
|
|
||||||
expanded_location xloc = expand_location (loc);
|
|
||||||
if (xloc.file == NULL || strncmp (xloc.file, "\1", 2) == 0
|
|
||||||
- || xloc.file == '\0' || xloc.file[0] == '\xff'
|
|
||||||
+ || xloc.file[0] == '\0' || xloc.file[0] == '\xff'
|
|
||||||
|| xloc.file[1] == '\xff')
|
|
||||||
return false;
|
|
||||||
|
|
||||||
--
|
|
||||||
2.13.0
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,8 @@
|
||||||
diff -urp gcc-6.3.0.bak/gcc/ada/adaint.c gcc-6.3.0/gcc/ada/adaint.c
|
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
|
||||||
--- gcc-6.3.0.bak/gcc/ada/adaint.c 2017-12-08 20:39:08.024709803 +0000
|
index 3b0aea92c05..998f2c66289 100644
|
||||||
+++ gcc-6.3.0/gcc/ada/adaint.c 2017-12-08 20:06:13.674636566 +0000
|
--- a/gcc/ada/adaint.c
|
||||||
@@ -103,6 +103,15 @@
|
+++ b/gcc/ada/adaint.c
|
||||||
|
@@ -107,6 +107,15 @@
|
||||||
#define xmalloc(S) malloc (S)
|
#define xmalloc(S) malloc (S)
|
||||||
#define xrealloc(V,S) realloc (V,S)
|
#define xrealloc(V,S) realloc (V,S)
|
||||||
#else
|
#else
|
||||||
|
@ -17,7 +18,7 @@ diff -urp gcc-6.3.0.bak/gcc/ada/adaint.c gcc-6.3.0/gcc/ada/adaint.c
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
@@ -3096,7 +3105,7 @@ __gnat_lwp_self (void)
|
@@ -3265,7 +3274,7 @@ __gnat_lwp_self (void)
|
||||||
|
|
||||||
/* Dynamic cpu sets */
|
/* Dynamic cpu sets */
|
||||||
|
|
||||||
|
@ -26,7 +27,7 @@ diff -urp gcc-6.3.0.bak/gcc/ada/adaint.c gcc-6.3.0/gcc/ada/adaint.c
|
||||||
__gnat_cpu_alloc (size_t count)
|
__gnat_cpu_alloc (size_t count)
|
||||||
{
|
{
|
||||||
return CPU_ALLOC (count);
|
return CPU_ALLOC (count);
|
||||||
@@ -3109,33 +3118,33 @@ __gnat_cpu_alloc_size (size_t count)
|
@@ -3278,33 +3287,33 @@ __gnat_cpu_alloc_size (size_t count)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -67,7 +68,7 @@ diff -urp gcc-6.3.0.bak/gcc/ada/adaint.c gcc-6.3.0/gcc/ada/adaint.c
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
@@ -3145,23 +3154,23 @@ __gnat_cpu_alloc_size (size_t count ATTR
|
@@ -3314,23 +3323,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -95,10 +96,11 @@ diff -urp gcc-6.3.0.bak/gcc/ada/adaint.c gcc-6.3.0/gcc/ada/adaint.c
|
||||||
}
|
}
|
||||||
#endif /* !CPU_ALLOC */
|
#endif /* !CPU_ALLOC */
|
||||||
#endif /* __linux__ */
|
#endif /* __linux__ */
|
||||||
diff -urp gcc-6.3.0.bak/gcc/ada/adaint.h gcc-6.3.0/gcc/ada/adaint.h
|
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
|
||||||
--- gcc-6.3.0.bak/gcc/ada/adaint.h 2017-12-08 20:39:08.024709803 +0000
|
index 0d12f7e9020..7b3def03fb0 100644
|
||||||
+++ gcc-6.3.0/gcc/ada/adaint.h 2017-12-08 19:52:31.627939406 +0000
|
--- a/gcc/ada/adaint.h
|
||||||
@@ -287,13 +287,11 @@ extern void *__gnat_lwp_self (voi
|
+++ b/gcc/ada/adaint.h
|
||||||
|
@@ -316,13 +316,11 @@ extern void *__gnat_lwp_self (void);
|
||||||
|
|
||||||
/* Routines for interface to required CPU set primitives */
|
/* Routines for interface to required CPU set primitives */
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
Taken from https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=260158
|
||||||
|
--- gcc-8-branch/gcc/config/arm/arm-cpus.in 2018/05/11 09:28:10 260157
|
||||||
|
+++ gcc-8-branch/gcc/config/arm/arm-cpus.in 2018/05/11 09:30:49 260158
|
||||||
|
@@ -446,6 +446,8 @@
|
||||||
|
isa ARMv6m
|
||||||
|
end arch armv6-m
|
||||||
|
|
||||||
|
+# This is now equivalent to armv6-m, but we keep it because some
|
||||||
|
+# versions of GAS still distinguish between the two.
|
||||||
|
begin arch armv6s-m
|
||||||
|
tune for cortex-m1
|
||||||
|
base 6M
|
||||||
|
@@ -1168,21 +1170,21 @@
|
||||||
|
begin cpu cortex-m1
|
||||||
|
cname cortexm1
|
||||||
|
tune flags LDSCHED
|
||||||
|
- architecture armv6-m
|
||||||
|
+ architecture armv6s-m
|
||||||
|
costs v6m
|
||||||
|
end cpu cortex-m1
|
||||||
|
|
||||||
|
begin cpu cortex-m0
|
||||||
|
cname cortexm0
|
||||||
|
tune flags LDSCHED
|
||||||
|
- architecture armv6-m
|
||||||
|
+ architecture armv6s-m
|
||||||
|
costs v6m
|
||||||
|
end cpu cortex-m0
|
||||||
|
|
||||||
|
begin cpu cortex-m0plus
|
||||||
|
cname cortexm0plus
|
||||||
|
tune flags LDSCHED
|
||||||
|
- architecture armv6-m
|
||||||
|
+ architecture armv6s-m
|
||||||
|
costs v6m
|
||||||
|
end cpu cortex-m0plus
|
||||||
|
|
||||||
|
@@ -1192,7 +1194,7 @@
|
||||||
|
cname cortexm1smallmultiply
|
||||||
|
tune for cortex-m1
|
||||||
|
tune flags LDSCHED SMALLMUL
|
||||||
|
- architecture armv6-m
|
||||||
|
+ architecture armv6s-m
|
||||||
|
costs v6m
|
||||||
|
end cpu cortex-m1.small-multiply
|
||||||
|
|
||||||
|
@@ -1200,7 +1202,7 @@
|
||||||
|
cname cortexm0smallmultiply
|
||||||
|
tune for cortex-m0
|
||||||
|
tune flags LDSCHED SMALLMUL
|
||||||
|
- architecture armv6-m
|
||||||
|
+ architecture armv6s-m
|
||||||
|
costs v6m
|
||||||
|
end cpu cortex-m0.small-multiply
|
||||||
|
|
||||||
|
@@ -1208,7 +1210,7 @@
|
||||||
|
cname cortexm0plussmallmultiply
|
||||||
|
tune for cortex-m0plus
|
||||||
|
tune flags LDSCHED SMALLMUL
|
||||||
|
- architecture armv6-m
|
||||||
|
+ architecture armv6s-m
|
||||||
|
costs v6m
|
||||||
|
end cpu cortex-m0plus.small-multiply
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
# Extra flags to pass to recursive makes.
|
# Extra flags to pass to recursive makes.
|
||||||
-COMMON_ADAFLAGS= -gnatpg
|
-COMMON_ADAFLAGS= -gnatpg
|
||||||
+COMMON_ADAFLAGS= -gnatpg -gnatwG
|
+COMMON_ADAFLAGS= -gnatpg -gnatwGUR
|
||||||
ifeq ($(TREECHECKING),)
|
ifeq ($(TREECHECKING),)
|
||||||
CHECKING_ADAFLAGS=
|
CHECKING_ADAFLAGS=
|
||||||
else
|
else
|
|
@ -1,6 +1,9 @@
|
||||||
|
This enables building on Mac OS and FreeBSD by adding support to their
|
||||||
|
variants of the sed utility.
|
||||||
|
|
||||||
diff -urN gcc-5.2.0.orig/libgcc/config/t-hardfp gcc-5.2.0/libgcc/config/t-hardfp
|
diff -urN gcc-5.2.0.orig/libgcc/config/t-hardfp gcc-5.2.0/libgcc/config/t-hardfp
|
||||||
--- gcc-5.2.0.orig/libgcc/config/t-hardfp 2015-01-05 04:33:28.000000000 -0800
|
--- gcc-5.2.0.orig/libgcc/config/t-hardfp 2015-01-05 04:33:28.000000000 -0800
|
||||||
+++ gcc-6.1.0/libgcc/config/t-hardfp 2016-04-06 12:04:51.000000000 -0700
|
+++ gcc-8.1.0/libgcc/config/t-hardfp 2016-04-06 12:04:51.000000000 -0700
|
||||||
@@ -59,21 +59,52 @@
|
@@ -59,21 +59,52 @@
|
||||||
|
|
||||||
hardfp_func_list := $(filter-out $(hardfp_exclusions),$(hardfp_func_list))
|
hardfp_func_list := $(filter-out $(hardfp_exclusions),$(hardfp_func_list))
|
File diff suppressed because it is too large
Load Diff
|
@ -1 +0,0 @@
|
||||||
172244a349d07ec205c39c0321cbc354c125e78e tarballs/binutils-2.29.tar.xz
|
|
|
@ -0,0 +1 @@
|
||||||
|
574d3b5650413d6ee65195a4f5ecbddc3a38f718 tarballs/binutils-2.30.tar.xz
|
|
@ -1 +0,0 @@
|
||||||
928ab552666ee08eed645ff20ceb49d139205dea tarballs/gcc-6.3.0.tar.bz2
|
|
|
@ -0,0 +1 @@
|
||||||
|
b34031ba9ff3e248b2c62de0825e49a1e0e01998 tarballs/gcc-8.1.0.tar.xz
|
Loading…
Reference in New Issue