RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/gcc#26a9740f02970892dd1cccc47c31f7027345a28f
This commit is contained in:
parent
08ae89473c
commit
784d3b4766
20
.gitignore
vendored
20
.gitignore
vendored
@ -0,0 +1,20 @@
|
|||||||
|
/gcc-10.0.1-20200118.tar.xz
|
||||||
|
/newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz
|
||||||
|
/nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz
|
||||||
|
/gcc-10.0.1-20200121.tar.xz
|
||||||
|
/gcc-10.0.1-20200123.tar.xz
|
||||||
|
/gcc-10.0.1-20200126.tar.xz
|
||||||
|
/gcc-10.0.1-20200130.tar.xz
|
||||||
|
/gcc-10.0.1-20200216.tar.xz
|
||||||
|
/gcc-10.0.1-20200311.tar.xz
|
||||||
|
/gcc-10.0.1-20200325.tar.xz
|
||||||
|
/gcc-10.0.1-20200328.tar.xz
|
||||||
|
/gcc-10.0.1-20200420.tar.xz
|
||||||
|
/gcc-10.0.1-20200501.tar.xz
|
||||||
|
/gcc-10.1.1-20200507.tar.xz
|
||||||
|
/gcc-10.1.1-20200618.tar.xz
|
||||||
|
/gcc-10.2.1-20200723.tar.xz
|
||||||
|
/gcc-10.2.1-20200804.tar.xz
|
||||||
|
/gcc-10.2.1-20200826.tar.xz
|
||||||
|
/gcc-10.2.1-20200916.tar.xz
|
||||||
|
/gcc-10.2.1-20201005.tar.xz
|
35
STAGE1-gcc
Normal file
35
STAGE1-gcc
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
srpm gcc
|
||||||
|
mcd $BUILDDIR/gcc
|
||||||
|
|
||||||
|
# These are for gcc cross-tools (politics sometime result in slightly
|
||||||
|
# different arch names)
|
||||||
|
GCC_CONFIGARGS="--prefix=$PREFIX
|
||||||
|
--libdir=$PREFIX/lib${SUFFIX}
|
||||||
|
--target=$TARGET
|
||||||
|
${GCC_CONFIG_EXTRA}
|
||||||
|
--enable-languages=c,c++
|
||||||
|
--with-sysroot=$ROOTFS
|
||||||
|
--with-build-sysroot=$ROOTFS
|
||||||
|
--cache-file=config.cache
|
||||||
|
--disable-bootstrap
|
||||||
|
--enable-threads=posix
|
||||||
|
--enable-64-bit-bfd
|
||||||
|
--disable-lto
|
||||||
|
$WITHPPL
|
||||||
|
"
|
||||||
|
|
||||||
|
# prefill gcc cache
|
||||||
|
echo 'lt_cv_shlibpath_overrides_runpath=no' > config.cache
|
||||||
|
echo 'gcc_cv_libc_provides_ssp=yes' >> config.cache
|
||||||
|
|
||||||
|
if [ ! "$BUILDER_ARCH" = "$TARGET_ARCH" ]; then
|
||||||
|
WITH_HEADERS="--with-headers=$ROOTFS/usr/include"
|
||||||
|
fi
|
||||||
|
|
||||||
|
$SRC/gcc-*/configure $GCC_CONFIGARGS $WITH_HEADERS
|
||||||
|
notparallel
|
||||||
|
make $J
|
||||||
|
make $J install
|
||||||
|
mcd $ROOTFS/lib${SUFFIX}/gcc
|
||||||
|
rsync -av $PREFIX/lib${SUFFIX}/gcc/ $ROOTFS/lib${SUFFIX}/gcc/
|
||||||
|
rsync -av $PREFIX/$TARGET/lib/ $ROOTFS/lib${SUFFIX}/
|
48
STAGE1-gcc-host
Normal file
48
STAGE1-gcc-host
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
srpm gcc
|
||||||
|
mcd $BUILDDIR/gcc-host
|
||||||
|
|
||||||
|
# These are for gcc cross-tools (politics sometime result in slightly
|
||||||
|
# different arch names)
|
||||||
|
GCC_CONFIGARGS="--prefix=$PREFIX
|
||||||
|
--libdir=$PREFIX/lib${SUFFIX}
|
||||||
|
--target=$TARGET
|
||||||
|
${GCC_CONFIG_EXTRA}
|
||||||
|
--enable-languages=c,c++
|
||||||
|
--with-sysroot=$ROOTFS
|
||||||
|
--with-build-sysroot=$ROOTFS
|
||||||
|
--cache-file=config.cache
|
||||||
|
--disable-bootstrap
|
||||||
|
--enable-threads=posix
|
||||||
|
--enable-64-bit-bfd
|
||||||
|
--disable-lto
|
||||||
|
$WITHPPL
|
||||||
|
"
|
||||||
|
|
||||||
|
# prefill gcc cache
|
||||||
|
echo 'lt_cv_shlibpath_overrides_runpath=no' > config.cache
|
||||||
|
echo 'gcc_cv_libc_provides_ssp=yes' >> config.cache
|
||||||
|
|
||||||
|
if [ ! "$BUILDER_ARCH" = "$TARGET_ARCH" ]; then
|
||||||
|
WITH_HEADERS="--with-headers=$ROOTFS/usr/include"
|
||||||
|
fi
|
||||||
|
|
||||||
|
$SRC/gcc-*/configure $GCC_CONFIGARGS $WITH_HEADERS
|
||||||
|
notparallel
|
||||||
|
|
||||||
|
# Pass gcc_cv_libc_provides_ssp down, because the config.cache
|
||||||
|
# version is not passed down to the gcc subdir.
|
||||||
|
make $J all-host gcc_cv_libc_provides_ssp=yes
|
||||||
|
make $J install-host gcc_cv_libc_provides_ssp=yes
|
||||||
|
|
||||||
|
|
||||||
|
if false; then
|
||||||
|
mkdirp $ROOTFS/usr/lib${SUFFIX}
|
||||||
|
for o in crt Scrt1 crti crtbegin crtbeginS crtend crtendS crtn
|
||||||
|
do
|
||||||
|
$TARGET-gcc -nostdlib -nostartfiles -c -x c /dev/null -c -o $ROOTFS/usr/lib${SUFFIX}/$o.o
|
||||||
|
done
|
||||||
|
for so in gcc gcc_s c
|
||||||
|
do
|
||||||
|
$TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $ROOTFS/usr/lib${SUFFIX}/lib$so.so
|
||||||
|
done
|
||||||
|
fi
|
34
STAGE1-gcc-libgcc
Normal file
34
STAGE1-gcc-libgcc
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
srpm gcc
|
||||||
|
mcd $BUILDDIR/gcc-libgcc
|
||||||
|
|
||||||
|
# These are for gcc cross-tools (politics sometime result in slightly
|
||||||
|
# different arch names)
|
||||||
|
GCC_CONFIGARGS="--prefix=$PREFIX
|
||||||
|
--libdir=$PREFIX/lib${SUFFIX}
|
||||||
|
--target=$TARGET
|
||||||
|
${GCC_CONFIG_EXTRA}
|
||||||
|
--enable-languages=c,c++
|
||||||
|
--with-sysroot=$ROOTFS
|
||||||
|
--with-build-sysroot=$ROOTFS
|
||||||
|
--cache-file=config.cache
|
||||||
|
--disable-bootstrap
|
||||||
|
--enable-threads=posix
|
||||||
|
--enable-64-bit-bfd
|
||||||
|
--disable-lto
|
||||||
|
$WITHPPL
|
||||||
|
"
|
||||||
|
|
||||||
|
# prefill gcc cache
|
||||||
|
echo 'lt_cv_shlibpath_overrides_runpath=no' > config.cache
|
||||||
|
echo 'gcc_cv_libc_provides_ssp=yes' >> config.cache
|
||||||
|
|
||||||
|
if [ ! "$BUILDER_ARCH" = "$TARGET_ARCH" ]; then
|
||||||
|
WITH_HEADERS="--with-headers=$ROOTFS/usr/include"
|
||||||
|
fi
|
||||||
|
|
||||||
|
$SRC/gcc-*/configure $GCC_CONFIGARGS $WITH_HEADERS
|
||||||
|
notparallel
|
||||||
|
# Pass gcc_cv_libc_provides_ssp down, because the config.cache
|
||||||
|
# version is not passed down to the gcc subdir.
|
||||||
|
make $J all-target-libgcc all-target-libssp gcc_cv_libc_provides_ssp=yes
|
||||||
|
make $J install-target-libgcc install-target-libssp gcc_cv_libc_provides_ssp=yes
|
28
STAGE1-t-gcc
Normal file
28
STAGE1-t-gcc
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
srpm gcc
|
||||||
|
mcd $BUILDDIR/t-gcc
|
||||||
|
|
||||||
|
GCC_TCONFIGARGS="--prefix=/usr
|
||||||
|
--libdir=/usr/lib${SUFFIX}
|
||||||
|
--with-sysroot=/
|
||||||
|
--with-build-sysroot=$ROOTFS
|
||||||
|
--build=$BUILD
|
||||||
|
--host=$TARGET
|
||||||
|
--target=$TARGET
|
||||||
|
--disable-bootstrap
|
||||||
|
--enable-werror=no
|
||||||
|
--enable-cxx
|
||||||
|
${GCC_CONFIG_EXTRA}
|
||||||
|
--enable-languages=c,c++
|
||||||
|
--enable-threads=posix
|
||||||
|
--enable-linker-build-id
|
||||||
|
"
|
||||||
|
|
||||||
|
$SRC/gcc-*/configure $GCC_TCONFIGARGS
|
||||||
|
notparallel
|
||||||
|
make $J
|
||||||
|
make $J install DESTDIR=${ROOTFS}
|
||||||
|
test -e ${ROOTFS}/usr/bin/cc && rm ${ROOTFS}/usr/bin/cc
|
||||||
|
ln -s gcc ${ROOTFS}/usr/bin/cc
|
||||||
|
mkdir -p ${ROOTFS}/usr/share/gdb/auto-load/usr/lib${SUFFIX}
|
||||||
|
mv -f ${ROOTFS}/usr/lib${SUFFIX}/libstdc++*gdb.py* \
|
||||||
|
${ROOTFS}/usr/share/gdb/auto-load/usr/lib${SUFFIX}
|
27
gcc10-Wno-format-security.patch
Normal file
27
gcc10-Wno-format-security.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
2017-02-25 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* configure.ac: When adding -Wno-format, also add -Wno-format-security.
|
||||||
|
* configure: Regenerated.
|
||||||
|
|
||||||
|
--- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100
|
||||||
|
+++ gcc/configure.ac 2017-02-25 12:42:32.859175403 +0100
|
||||||
|
@@ -480,7 +480,7 @@ AC_ARG_ENABLE(build-format-warnings,
|
||||||
|
AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]),
|
||||||
|
[],[enable_build_format_warnings=yes])
|
||||||
|
AS_IF([test $enable_build_format_warnings = no],
|
||||||
|
- [wf_opt=-Wno-format],[wf_opt=])
|
||||||
|
+ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=])
|
||||||
|
ACX_PROG_CXX_WARNING_OPTS(
|
||||||
|
m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings ],
|
||||||
|
[-Wcast-qual -Wno-error=format-diag $wf_opt])),
|
||||||
|
--- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100
|
||||||
|
+++ gcc/configure 2017-02-25 12:42:50.041946391 +0100
|
||||||
|
@@ -6647,7 +6647,7 @@ else
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $enable_build_format_warnings = no; then :
|
||||||
|
- wf_opt=-Wno-format
|
||||||
|
+ wf_opt="-Wno-format -Wno-format-security"
|
||||||
|
else
|
||||||
|
wf_opt=
|
||||||
|
fi
|
20
gcc10-d-shared-libphobos.patch
Normal file
20
gcc10-d-shared-libphobos.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
2019-01-17 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* d-spec.cc (lang_specific_driver): Make -shared-libphobos
|
||||||
|
the default rather than -static-libphobos.
|
||||||
|
|
||||||
|
--- gcc/d/d-spec.cc.jj 2019-01-01 12:37:49.502444257 +0100
|
||||||
|
+++ gcc/d/d-spec.cc 2019-01-17 17:09:45.364949246 +0100
|
||||||
|
@@ -408,9 +408,9 @@ lang_specific_driver (cl_decoded_option
|
||||||
|
/* Add `-lgphobos' if we haven't already done so. */
|
||||||
|
if (phobos_library != PHOBOS_NOLINK)
|
||||||
|
{
|
||||||
|
- /* Default to static linking. */
|
||||||
|
- if (phobos_library != PHOBOS_DYNAMIC)
|
||||||
|
- phobos_library = PHOBOS_STATIC;
|
||||||
|
+ /* Default to shared linking. */
|
||||||
|
+ if (phobos_library != PHOBOS_STATIC)
|
||||||
|
+ phobos_library = PHOBOS_DYNAMIC;
|
||||||
|
|
||||||
|
#ifdef HAVE_LD_STATIC_DYNAMIC
|
||||||
|
if (phobos_library == PHOBOS_STATIC && !static_link)
|
122
gcc10-foffload-default.patch
Normal file
122
gcc10-foffload-default.patch
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
2019-01-17 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* gcc.c (offload_targets_default): New variable.
|
||||||
|
(process_command): Set it if -foffload is defaulted.
|
||||||
|
(driver::maybe_putenv_OFFLOAD_TARGETS): Add OFFLOAD_TARGET_DEFAULT=1
|
||||||
|
into environment if -foffload has been defaulted.
|
||||||
|
* lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
|
||||||
|
(compile_offload_image): If OFFLOAD_TARGET_DEFAULT
|
||||||
|
is in the environment, don't fail if corresponding mkoffload
|
||||||
|
can't be found.
|
||||||
|
(compile_images_for_offload_targets): Likewise. Free and clear
|
||||||
|
offload_names if no valid offload is found.
|
||||||
|
libgomp/
|
||||||
|
* target.c (gomp_load_plugin_for_device): If a plugin can't be
|
||||||
|
dlopened, assume it has no devices silently.
|
||||||
|
|
||||||
|
--- gcc/gcc.c.jj 2017-01-17 10:28:40.000000000 +0100
|
||||||
|
+++ gcc/gcc.c 2017-01-20 16:26:29.649962902 +0100
|
||||||
|
@@ -290,6 +290,10 @@ static const char *spec_host_machine = D
|
||||||
|
|
||||||
|
static char *offload_targets = NULL;
|
||||||
|
|
||||||
|
+/* Set to true if -foffload has not been used and offload_targets
|
||||||
|
+ is set to the configured in default. */
|
||||||
|
+static bool offload_targets_default;
|
||||||
|
+
|
||||||
|
/* Nonzero if cross-compiling.
|
||||||
|
When -b is used, the value comes from the `specs' file. */
|
||||||
|
|
||||||
|
@@ -4457,7 +4461,10 @@ process_command (unsigned int decoded_op
|
||||||
|
/* If the user didn't specify any, default to all configured offload
|
||||||
|
targets. */
|
||||||
|
if (ENABLE_OFFLOADING && offload_targets == NULL)
|
||||||
|
- handle_foffload_option (OFFLOAD_TARGETS);
|
||||||
|
+ {
|
||||||
|
+ handle_foffload_option (OFFLOAD_TARGETS);
|
||||||
|
+ offload_targets_default = true;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (output_file
|
||||||
|
&& strcmp (output_file, "-") != 0
|
||||||
|
@@ -7693,6 +7700,8 @@ driver::maybe_putenv_OFFLOAD_TARGETS ()
|
||||||
|
obstack_grow (&collect_obstack, offload_targets,
|
||||||
|
strlen (offload_targets) + 1);
|
||||||
|
xputenv (XOBFINISH (&collect_obstack, char *));
|
||||||
|
+ if (offload_targets_default)
|
||||||
|
+ xputenv ("OFFLOAD_TARGET_DEFAULT=1");
|
||||||
|
}
|
||||||
|
|
||||||
|
free (offload_targets);
|
||||||
|
--- gcc/lto-wrapper.c.jj 2017-01-01 12:45:34.000000000 +0100
|
||||||
|
+++ gcc/lto-wrapper.c 2017-01-20 16:34:18.294016997 +0100
|
||||||
|
@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3.
|
||||||
|
/* Environment variable, used for passing the names of offload targets from GCC
|
||||||
|
driver to lto-wrapper. */
|
||||||
|
#define OFFLOAD_TARGET_NAMES_ENV "OFFLOAD_TARGET_NAMES"
|
||||||
|
+#define OFFLOAD_TARGET_DEFAULT_ENV "OFFLOAD_TARGET_DEFAULT"
|
||||||
|
|
||||||
|
enum lto_mode_d {
|
||||||
|
LTO_MODE_NONE, /* Not doing LTO. */
|
||||||
|
@@ -822,6 +823,12 @@ compile_offload_image (const char *targe
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (!compiler && getenv (OFFLOAD_TARGET_DEFAULT_ENV))
|
||||||
|
+ {
|
||||||
|
+ free_array_of_ptrs ((void **) paths, n_paths);
|
||||||
|
+ return NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (!compiler)
|
||||||
|
fatal_error (input_location,
|
||||||
|
"could not find %s in %s (consider using %<-B%>)",
|
||||||
|
@@ -885,6 +892,7 @@ compile_images_for_offload_targets (unsi
|
||||||
|
unsigned num_targets = parse_env_var (target_names, &names, NULL);
|
||||||
|
|
||||||
|
int next_name_entry = 0;
|
||||||
|
+ bool hsa_seen = false;
|
||||||
|
const char *compiler_path = getenv ("COMPILER_PATH");
|
||||||
|
if (!compiler_path)
|
||||||
|
goto out;
|
||||||
|
@@ -897,18 +905,26 @@ compile_images_for_offload_targets (unsi
|
||||||
|
/* HSA does not use LTO-like streaming and a different compiler, skip
|
||||||
|
it. */
|
||||||
|
if (strcmp (names[i], "hsa") == 0)
|
||||||
|
- continue;
|
||||||
|
+ {
|
||||||
|
+ hsa_seen = true;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
offload_names[next_name_entry]
|
||||||
|
= compile_offload_image (names[i], compiler_path, in_argc, in_argv,
|
||||||
|
compiler_opts, compiler_opt_count,
|
||||||
|
linker_opts, linker_opt_count);
|
||||||
|
if (!offload_names[next_name_entry])
|
||||||
|
- fatal_error (input_location,
|
||||||
|
- "problem with building target image for %s", names[i]);
|
||||||
|
+ continue;
|
||||||
|
next_name_entry++;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (next_name_entry == 0 && !hsa_seen)
|
||||||
|
+ {
|
||||||
|
+ free (offload_names);
|
||||||
|
+ offload_names = NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
out:
|
||||||
|
free_array_of_ptrs ((void **) names, num_targets);
|
||||||
|
}
|
||||||
|
--- libgomp/target.c.jj 2017-01-01 12:45:52.000000000 +0100
|
||||||
|
+++ libgomp/target.c 2017-01-20 20:12:13.756710875 +0100
|
||||||
|
@@ -2356,7 +2356,7 @@ gomp_load_plugin_for_device (struct gomp
|
||||||
|
|
||||||
|
void *plugin_handle = dlopen (plugin_name, RTLD_LAZY);
|
||||||
|
if (!plugin_handle)
|
||||||
|
- goto dl_fail;
|
||||||
|
+ return 0;
|
||||||
|
|
||||||
|
/* Check if all required functions are available in the plugin and store
|
||||||
|
their handlers. None of the symbols can legitimately be NULL,
|
126
gcc10-hack.patch
Normal file
126
gcc10-hack.patch
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
--- libada/Makefile.in.jj 2019-01-09 13:01:18.015608205 +0100
|
||||||
|
+++ libada/Makefile.in 2019-01-11 18:16:23.441726931 +0100
|
||||||
|
@@ -71,18 +71,40 @@ version := $(shell @get_gcc_base_ver@ $(
|
||||||
|
libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
|
||||||
|
ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
|
||||||
|
|
||||||
|
+DEFAULTMULTIFLAGS :=
|
||||||
|
+ifeq ($(MULTISUBDIR),)
|
||||||
|
+targ:=$(subst -, ,$(target))
|
||||||
|
+arch:=$(word 1,$(targ))
|
||||||
|
+ifeq ($(words $(targ)),2)
|
||||||
|
+osys:=$(word 2,$(targ))
|
||||||
|
+else
|
||||||
|
+osys:=$(word 3,$(targ))
|
||||||
|
+endif
|
||||||
|
+ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),)
|
||||||
|
+ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64)
|
||||||
|
+DEFAULTMULTIFLAGS := -m64
|
||||||
|
+else
|
||||||
|
+ifeq ($(strip $(filter-out s390%, $(arch))),)
|
||||||
|
+DEFAULTMULTIFLAGS := -m31
|
||||||
|
+else
|
||||||
|
+DEFAULTMULTIFLAGS := -m32
|
||||||
|
+endif
|
||||||
|
+endif
|
||||||
|
+endif
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
# exeext should not be used because it's the *host* exeext. We're building
|
||||||
|
# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
|
||||||
|
# definitions just in case something slips through the safety net provided
|
||||||
|
# by recursive make invocations in gcc/ada/Makefile.in
|
||||||
|
LIBADA_FLAGS_TO_PASS = \
|
||||||
|
"MAKEOVERRIDES=" \
|
||||||
|
- "LDFLAGS=$(LDFLAGS)" \
|
||||||
|
+ "LDFLAGS=$(LDFLAGS) $(DEFAULTMULTIFLAGS)" \
|
||||||
|
"LN_S=$(LN_S)" \
|
||||||
|
"SHELL=$(SHELL)" \
|
||||||
|
- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
|
||||||
|
- "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
|
||||||
|
- "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
|
||||||
|
+ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
|
||||||
|
+ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
|
||||||
|
+ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
|
||||||
|
"PICFLAG_FOR_TARGET=$(PICFLAG)" \
|
||||||
|
"THREAD_KIND=$(THREAD_KIND)" \
|
||||||
|
"TRACE=$(TRACE)" \
|
||||||
|
@@ -93,7 +115,7 @@ LIBADA_FLAGS_TO_PASS = \
|
||||||
|
"exeext=.exeext.should.not.be.used " \
|
||||||
|
'CC=the.host.compiler.should.not.be.needed' \
|
||||||
|
"GCC_FOR_TARGET=$(CC)" \
|
||||||
|
- "CFLAGS=$(CFLAGS)"
|
||||||
|
+ "CFLAGS=$(CFLAGS) $(DEFAULTMULTIFLAGS)"
|
||||||
|
|
||||||
|
.PHONY: libada gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx osconstool
|
||||||
|
|
||||||
|
--- config-ml.in.jj 2019-01-09 12:50:16.646501448 +0100
|
||||||
|
+++ config-ml.in 2019-01-11 18:16:23.442726914 +0100
|
||||||
|
@@ -511,6 +511,8 @@ multi-do:
|
||||||
|
ADAFLAGS="$(ADAFLAGS) $${flags}" \
|
||||||
|
prefix="$(prefix)" \
|
||||||
|
exec_prefix="$(exec_prefix)" \
|
||||||
|
+ mandir="$(mandir)" \
|
||||||
|
+ infodir="$(infodir)" \
|
||||||
|
GOCFLAGS="$(GOCFLAGS) $${flags}" \
|
||||||
|
GDCFLAGS="$(GDCFLAGS) $${flags}" \
|
||||||
|
CXXFLAGS="$(CXXFLAGS) $${flags}" \
|
||||||
|
--- libcpp/macro.c.jj 2019-01-09 13:01:21.420552123 +0100
|
||||||
|
+++ libcpp/macro.c 2019-01-11 18:18:17.736876285 +0100
|
||||||
|
@@ -3256,8 +3256,6 @@ static cpp_macro *
|
||||||
|
create_iso_definition (cpp_reader *pfile)
|
||||||
|
{
|
||||||
|
bool following_paste_op = false;
|
||||||
|
- const char *paste_op_error_msg =
|
||||||
|
- N_("'##' cannot appear at either end of a macro expansion");
|
||||||
|
unsigned int num_extra_tokens = 0;
|
||||||
|
unsigned nparms = 0;
|
||||||
|
cpp_hashnode **params = NULL;
|
||||||
|
@@ -3382,7 +3380,9 @@ create_iso_definition (cpp_reader *pfile
|
||||||
|
function-like macros, but not at the end. */
|
||||||
|
if (following_paste_op)
|
||||||
|
{
|
||||||
|
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
|
||||||
|
+ cpp_error (pfile, CPP_DL_ERROR,
|
||||||
|
+ "'##' cannot appear at either end of a macro "
|
||||||
|
+ "expansion");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
if (!vaopt_tracker.completed ())
|
||||||
|
@@ -3397,7 +3397,9 @@ create_iso_definition (cpp_reader *pfile
|
||||||
|
function-like macros, but not at the beginning. */
|
||||||
|
if (macro->count == 1)
|
||||||
|
{
|
||||||
|
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
|
||||||
|
+ cpp_error (pfile, CPP_DL_ERROR,
|
||||||
|
+ "'##' cannot appear at either end of a macro "
|
||||||
|
+ "expansion");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
--- libcpp/expr.c.jj 2019-01-09 13:01:22.415535734 +0100
|
||||||
|
+++ libcpp/expr.c 2019-01-11 18:16:23.444726882 +0100
|
||||||
|
@@ -788,16 +788,17 @@ cpp_classify_number (cpp_reader *pfile,
|
||||||
|
if ((result & CPP_N_WIDTH) == CPP_N_LARGE
|
||||||
|
&& CPP_OPTION (pfile, cpp_warn_long_long))
|
||||||
|
{
|
||||||
|
- const char *message = CPP_OPTION (pfile, cplusplus)
|
||||||
|
- ? N_("use of C++11 long long integer constant")
|
||||||
|
- : N_("use of C99 long long integer constant");
|
||||||
|
-
|
||||||
|
if (CPP_OPTION (pfile, c99))
|
||||||
|
cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
|
||||||
|
- 0, message);
|
||||||
|
+ 0, CPP_OPTION (pfile, cplusplus)
|
||||||
|
+ ? N_("use of C++11 long long integer constant")
|
||||||
|
+ : N_("use of C99 long long integer constant"));
|
||||||
|
else
|
||||||
|
cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG,
|
||||||
|
- virtual_location, 0, message);
|
||||||
|
+ virtual_location, 0,
|
||||||
|
+ CPP_OPTION (pfile, cplusplus)
|
||||||
|
+ ? N_("use of C++11 long long integer constant")
|
||||||
|
+ : N_("use of C99 long long integer constant"));
|
||||||
|
}
|
||||||
|
|
||||||
|
result |= CPP_N_INTEGER;
|
11
gcc10-i386-libgomp.patch
Normal file
11
gcc10-i386-libgomp.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100
|
||||||
|
+++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100
|
||||||
|
@@ -67,7 +67,7 @@ if test $enable_linux_futex = yes; then
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if test -z "$with_arch"; then
|
||||||
|
- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
|
||||||
|
+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
|
||||||
|
fi
|
||||||
|
esac
|
||||||
|
;;
|
715
gcc10-isl-dl.patch
Normal file
715
gcc10-isl-dl.patch
Normal file
@ -0,0 +1,715 @@
|
|||||||
|
--- gcc/Makefile.in.jj 2015-06-06 10:00:25.000000000 +0200
|
||||||
|
+++ gcc/Makefile.in 2015-11-04 14:56:02.643536437 +0100
|
||||||
|
@@ -1063,7 +1063,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
|
||||||
|
# and the system's installed libraries.
|
||||||
|
LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \
|
||||||
|
$(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS)
|
||||||
|
-BACKENDLIBS = $(ISLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
|
||||||
|
+BACKENDLIBS = $(if $(ISLLIBS),-ldl) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
|
||||||
|
$(ZLIB) $(ZSTD_LIB)
|
||||||
|
# Any system libraries needed just for GNAT.
|
||||||
|
SYSLIBS = @GNAT_LIBEXC@
|
||||||
|
@@ -2302,6 +2302,15 @@ $(out_object_file): $(out_file)
|
||||||
|
$(common_out_object_file): $(common_out_file)
|
||||||
|
$(COMPILE) $<
|
||||||
|
$(POSTCOMPILE)
|
||||||
|
+
|
||||||
|
+graphite%.o : \
|
||||||
|
+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
|
||||||
|
+graphite.o : \
|
||||||
|
+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
|
||||||
|
+graphite%.o : \
|
||||||
|
+ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
|
||||||
|
+graphite.o : \
|
||||||
|
+ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
|
||||||
|
#
|
||||||
|
# Generate header and source files from the machine description,
|
||||||
|
# and compile them.
|
||||||
|
--- gcc/graphite.h.jj 2016-01-27 12:44:06.000000000 +0100
|
||||||
|
+++ gcc/graphite.h 2016-01-27 13:26:38.309876856 +0100
|
||||||
|
@@ -39,6 +39,590 @@ along with GCC; see the file COPYING3.
|
||||||
|
#include <isl/schedule_node.h>
|
||||||
|
#include <isl/id.h>
|
||||||
|
#include <isl/space.h>
|
||||||
|
+#include <isl/version.h>
|
||||||
|
+#include <dlfcn.h>
|
||||||
|
+
|
||||||
|
+#define DYNSYMS \
|
||||||
|
+ DYNSYM (isl_aff_add_coefficient_si); \
|
||||||
|
+ DYNSYM (isl_aff_free); \
|
||||||
|
+ DYNSYM (isl_aff_get_space); \
|
||||||
|
+ DYNSYM (isl_aff_set_coefficient_si); \
|
||||||
|
+ DYNSYM (isl_aff_set_constant_si); \
|
||||||
|
+ DYNSYM (isl_aff_zero_on_domain); \
|
||||||
|
+ DYNSYM (isl_band_free); \
|
||||||
|
+ DYNSYM (isl_band_get_children); \
|
||||||
|
+ DYNSYM (isl_band_get_partial_schedule); \
|
||||||
|
+ DYNSYM (isl_band_has_children); \
|
||||||
|
+ DYNSYM (isl_band_list_free); \
|
||||||
|
+ DYNSYM (isl_band_list_get_band); \
|
||||||
|
+ DYNSYM (isl_band_list_get_ctx); \
|
||||||
|
+ DYNSYM (isl_band_list_n_band); \
|
||||||
|
+ DYNSYM (isl_band_n_member); \
|
||||||
|
+ DYNSYM (isl_basic_map_add_constraint); \
|
||||||
|
+ DYNSYM (isl_basic_map_project_out); \
|
||||||
|
+ DYNSYM (isl_basic_map_universe); \
|
||||||
|
+ DYNSYM (isl_constraint_set_coefficient_si); \
|
||||||
|
+ DYNSYM (isl_constraint_set_constant_si); \
|
||||||
|
+ DYNSYM (isl_ctx_alloc); \
|
||||||
|
+ DYNSYM (isl_ctx_free); \
|
||||||
|
+ DYNSYM (isl_equality_alloc); \
|
||||||
|
+ DYNSYM (isl_id_alloc); \
|
||||||
|
+ DYNSYM (isl_id_copy); \
|
||||||
|
+ DYNSYM (isl_id_free); \
|
||||||
|
+ DYNSYM (isl_inequality_alloc); \
|
||||||
|
+ DYNSYM (isl_local_space_copy); \
|
||||||
|
+ DYNSYM (isl_local_space_free); \
|
||||||
|
+ DYNSYM (isl_local_space_from_space); \
|
||||||
|
+ DYNSYM (isl_local_space_range); \
|
||||||
|
+ DYNSYM (isl_map_add_constraint); \
|
||||||
|
+ DYNSYM (isl_map_add_dims); \
|
||||||
|
+ DYNSYM (isl_map_align_params); \
|
||||||
|
+ DYNSYM (isl_map_apply_range); \
|
||||||
|
+ DYNSYM (isl_map_copy); \
|
||||||
|
+ DYNSYM (isl_map_dim); \
|
||||||
|
+ DYNSYM (isl_map_dump); \
|
||||||
|
+ DYNSYM (isl_map_equate); \
|
||||||
|
+ DYNSYM (isl_map_fix_si); \
|
||||||
|
+ DYNSYM (isl_map_flat_product); \
|
||||||
|
+ DYNSYM (isl_map_flat_range_product); \
|
||||||
|
+ DYNSYM (isl_map_free); \
|
||||||
|
+ DYNSYM (isl_map_from_basic_map); \
|
||||||
|
+ DYNSYM (isl_map_from_pw_aff); \
|
||||||
|
+ DYNSYM (isl_map_from_union_map); \
|
||||||
|
+ DYNSYM (isl_map_get_ctx); \
|
||||||
|
+ DYNSYM (isl_map_get_space); \
|
||||||
|
+ DYNSYM (isl_map_get_tuple_id); \
|
||||||
|
+ DYNSYM (isl_map_insert_dims); \
|
||||||
|
+ DYNSYM (isl_map_intersect); \
|
||||||
|
+ DYNSYM (isl_map_intersect_domain); \
|
||||||
|
+ DYNSYM (isl_map_intersect_range); \
|
||||||
|
+ DYNSYM (isl_map_is_empty); \
|
||||||
|
+ DYNSYM (isl_map_lex_ge); \
|
||||||
|
+ DYNSYM (isl_map_lex_le); \
|
||||||
|
+ DYNSYM (isl_map_n_out); \
|
||||||
|
+ DYNSYM (isl_map_range); \
|
||||||
|
+ DYNSYM (isl_map_set_tuple_id); \
|
||||||
|
+ DYNSYM (isl_map_universe); \
|
||||||
|
+ DYNSYM (isl_options_set_on_error); \
|
||||||
|
+ DYNSYM (isl_options_set_schedule_serialize_sccs); \
|
||||||
|
+ DYNSYM (isl_printer_set_yaml_style); \
|
||||||
|
+ DYNSYM (isl_options_set_schedule_max_constant_term); \
|
||||||
|
+ DYNSYM (isl_options_set_schedule_maximize_band_depth); \
|
||||||
|
+ DYNSYM (isl_printer_free); \
|
||||||
|
+ DYNSYM (isl_printer_print_aff); \
|
||||||
|
+ DYNSYM (isl_printer_print_constraint); \
|
||||||
|
+ DYNSYM (isl_printer_print_map); \
|
||||||
|
+ DYNSYM (isl_printer_print_set); \
|
||||||
|
+ DYNSYM (isl_printer_to_file); \
|
||||||
|
+ DYNSYM (isl_pw_aff_add); \
|
||||||
|
+ DYNSYM (isl_pw_aff_alloc); \
|
||||||
|
+ DYNSYM (isl_pw_aff_copy); \
|
||||||
|
+ DYNSYM (isl_pw_aff_eq_set); \
|
||||||
|
+ DYNSYM (isl_pw_aff_free); \
|
||||||
|
+ DYNSYM (isl_pw_aff_from_aff); \
|
||||||
|
+ DYNSYM (isl_pw_aff_ge_set); \
|
||||||
|
+ DYNSYM (isl_pw_aff_gt_set); \
|
||||||
|
+ DYNSYM (isl_pw_aff_is_cst); \
|
||||||
|
+ DYNSYM (isl_pw_aff_le_set); \
|
||||||
|
+ DYNSYM (isl_pw_aff_lt_set); \
|
||||||
|
+ DYNSYM (isl_pw_aff_mul); \
|
||||||
|
+ DYNSYM (isl_pw_aff_ne_set); \
|
||||||
|
+ DYNSYM (isl_pw_aff_nonneg_set); \
|
||||||
|
+ DYNSYM (isl_pw_aff_set_tuple_id); \
|
||||||
|
+ DYNSYM (isl_pw_aff_sub); \
|
||||||
|
+ DYNSYM (isl_pw_aff_zero_set); \
|
||||||
|
+ DYNSYM (isl_schedule_free); \
|
||||||
|
+ DYNSYM (isl_schedule_get_band_forest); \
|
||||||
|
+ DYNSYM (isl_set_add_constraint); \
|
||||||
|
+ DYNSYM (isl_set_add_dims); \
|
||||||
|
+ DYNSYM (isl_set_apply); \
|
||||||
|
+ DYNSYM (isl_set_coalesce); \
|
||||||
|
+ DYNSYM (isl_set_copy); \
|
||||||
|
+ DYNSYM (isl_set_dim); \
|
||||||
|
+ DYNSYM (isl_set_fix_si); \
|
||||||
|
+ DYNSYM (isl_set_free); \
|
||||||
|
+ DYNSYM (isl_set_get_space); \
|
||||||
|
+ DYNSYM (isl_set_get_tuple_id); \
|
||||||
|
+ DYNSYM (isl_set_intersect); \
|
||||||
|
+ DYNSYM (isl_set_is_empty); \
|
||||||
|
+ DYNSYM (isl_set_n_dim); \
|
||||||
|
+ DYNSYM (isl_set_nat_universe); \
|
||||||
|
+ DYNSYM (isl_set_project_out); \
|
||||||
|
+ DYNSYM (isl_set_set_tuple_id); \
|
||||||
|
+ DYNSYM (isl_set_universe); \
|
||||||
|
+ DYNSYM (isl_space_add_dims); \
|
||||||
|
+ DYNSYM (isl_space_alloc); \
|
||||||
|
+ DYNSYM (isl_space_copy); \
|
||||||
|
+ DYNSYM (isl_space_dim); \
|
||||||
|
+ DYNSYM (isl_space_domain); \
|
||||||
|
+ DYNSYM (isl_space_find_dim_by_id); \
|
||||||
|
+ DYNSYM (isl_space_free); \
|
||||||
|
+ DYNSYM (isl_space_from_domain); \
|
||||||
|
+ DYNSYM (isl_space_get_tuple_id); \
|
||||||
|
+ DYNSYM (isl_space_params_alloc); \
|
||||||
|
+ DYNSYM (isl_space_range); \
|
||||||
|
+ DYNSYM (isl_space_set_alloc); \
|
||||||
|
+ DYNSYM (isl_space_set_dim_id); \
|
||||||
|
+ DYNSYM (isl_space_set_tuple_id); \
|
||||||
|
+ DYNSYM (isl_union_map_add_map); \
|
||||||
|
+ DYNSYM (isl_union_map_align_params); \
|
||||||
|
+ DYNSYM (isl_union_map_apply_domain); \
|
||||||
|
+ DYNSYM (isl_union_map_apply_range); \
|
||||||
|
+ DYNSYM (isl_union_map_compute_flow); \
|
||||||
|
+ DYNSYM (isl_union_map_copy); \
|
||||||
|
+ DYNSYM (isl_union_map_empty); \
|
||||||
|
+ DYNSYM (isl_union_map_flat_range_product); \
|
||||||
|
+ DYNSYM (isl_union_map_foreach_map); \
|
||||||
|
+ DYNSYM (isl_union_map_free); \
|
||||||
|
+ DYNSYM (isl_union_map_from_map); \
|
||||||
|
+ DYNSYM (isl_union_map_get_ctx); \
|
||||||
|
+ DYNSYM (isl_union_map_get_space); \
|
||||||
|
+ DYNSYM (isl_union_map_gist_domain); \
|
||||||
|
+ DYNSYM (isl_union_map_gist_range); \
|
||||||
|
+ DYNSYM (isl_union_map_intersect_domain); \
|
||||||
|
+ DYNSYM (isl_union_map_is_empty); \
|
||||||
|
+ DYNSYM (isl_union_map_subtract); \
|
||||||
|
+ DYNSYM (isl_union_map_union); \
|
||||||
|
+ DYNSYM (isl_union_set_add_set); \
|
||||||
|
+ DYNSYM (isl_union_set_compute_schedule); \
|
||||||
|
+ DYNSYM (isl_union_set_copy); \
|
||||||
|
+ DYNSYM (isl_union_set_empty); \
|
||||||
|
+ DYNSYM (isl_union_set_from_set); \
|
||||||
|
+ DYNSYM (isl_aff_add_constant_val); \
|
||||||
|
+ DYNSYM (isl_aff_get_coefficient_val); \
|
||||||
|
+ DYNSYM (isl_aff_get_ctx); \
|
||||||
|
+ DYNSYM (isl_aff_mod_val); \
|
||||||
|
+ DYNSYM (isl_ast_build_ast_from_schedule); \
|
||||||
|
+ DYNSYM (isl_ast_build_free); \
|
||||||
|
+ DYNSYM (isl_ast_build_from_context); \
|
||||||
|
+ DYNSYM (isl_ast_build_get_ctx); \
|
||||||
|
+ DYNSYM (isl_ast_build_get_schedule); \
|
||||||
|
+ DYNSYM (isl_ast_build_get_schedule_space); \
|
||||||
|
+ DYNSYM (isl_ast_build_set_before_each_for); \
|
||||||
|
+ DYNSYM (isl_ast_build_set_options); \
|
||||||
|
+ DYNSYM (isl_ast_expr_free); \
|
||||||
|
+ DYNSYM (isl_ast_expr_from_val); \
|
||||||
|
+ DYNSYM (isl_ast_expr_get_ctx); \
|
||||||
|
+ DYNSYM (isl_ast_expr_get_id); \
|
||||||
|
+ DYNSYM (isl_ast_expr_get_op_arg); \
|
||||||
|
+ DYNSYM (isl_ast_expr_get_op_n_arg); \
|
||||||
|
+ DYNSYM (isl_ast_expr_get_op_type); \
|
||||||
|
+ DYNSYM (isl_ast_expr_get_type); \
|
||||||
|
+ DYNSYM (isl_ast_expr_get_val); \
|
||||||
|
+ DYNSYM (isl_ast_expr_sub); \
|
||||||
|
+ DYNSYM (isl_ast_node_block_get_children); \
|
||||||
|
+ DYNSYM (isl_ast_node_for_get_body); \
|
||||||
|
+ DYNSYM (isl_ast_node_for_get_cond); \
|
||||||
|
+ DYNSYM (isl_ast_node_for_get_inc); \
|
||||||
|
+ DYNSYM (isl_ast_node_for_get_init); \
|
||||||
|
+ DYNSYM (isl_ast_node_for_get_iterator); \
|
||||||
|
+ DYNSYM (isl_ast_node_free); \
|
||||||
|
+ DYNSYM (isl_ast_node_get_annotation); \
|
||||||
|
+ DYNSYM (isl_ast_node_get_type); \
|
||||||
|
+ DYNSYM (isl_ast_node_if_get_cond); \
|
||||||
|
+ DYNSYM (isl_ast_node_if_get_else); \
|
||||||
|
+ DYNSYM (isl_ast_node_if_get_then); \
|
||||||
|
+ DYNSYM (isl_ast_node_list_free); \
|
||||||
|
+ DYNSYM (isl_ast_node_list_get_ast_node); \
|
||||||
|
+ DYNSYM (isl_ast_node_list_n_ast_node); \
|
||||||
|
+ DYNSYM (isl_ast_node_user_get_expr); \
|
||||||
|
+ DYNSYM (isl_constraint_set_coefficient_val); \
|
||||||
|
+ DYNSYM (isl_constraint_set_constant_val); \
|
||||||
|
+ DYNSYM (isl_id_get_user); \
|
||||||
|
+ DYNSYM (isl_local_space_get_ctx); \
|
||||||
|
+ DYNSYM (isl_map_fix_val); \
|
||||||
|
+ DYNSYM (isl_options_set_ast_build_atomic_upper_bound); \
|
||||||
|
+ DYNSYM (isl_printer_print_ast_node); \
|
||||||
|
+ DYNSYM (isl_printer_print_str); \
|
||||||
|
+ DYNSYM (isl_printer_set_output_format); \
|
||||||
|
+ DYNSYM (isl_pw_aff_mod_val); \
|
||||||
|
+ DYNSYM (isl_schedule_constraints_compute_schedule); \
|
||||||
|
+ DYNSYM (isl_schedule_constraints_on_domain); \
|
||||||
|
+ DYNSYM (isl_schedule_constraints_set_coincidence); \
|
||||||
|
+ DYNSYM (isl_schedule_constraints_set_proximity); \
|
||||||
|
+ DYNSYM (isl_schedule_constraints_set_validity); \
|
||||||
|
+ DYNSYM (isl_set_get_dim_id); \
|
||||||
|
+ DYNSYM (isl_set_max_val); \
|
||||||
|
+ DYNSYM (isl_set_min_val); \
|
||||||
|
+ DYNSYM (isl_set_params); \
|
||||||
|
+ DYNSYM (isl_space_align_params); \
|
||||||
|
+ DYNSYM (isl_space_map_from_domain_and_range); \
|
||||||
|
+ DYNSYM (isl_space_set_tuple_name); \
|
||||||
|
+ DYNSYM (isl_space_wrap); \
|
||||||
|
+ DYNSYM (isl_union_map_from_domain_and_range); \
|
||||||
|
+ DYNSYM (isl_union_map_range); \
|
||||||
|
+ DYNSYM (isl_union_set_union); \
|
||||||
|
+ DYNSYM (isl_union_set_universe); \
|
||||||
|
+ DYNSYM (isl_val_2exp); \
|
||||||
|
+ DYNSYM (isl_val_add_ui); \
|
||||||
|
+ DYNSYM (isl_val_copy); \
|
||||||
|
+ DYNSYM (isl_val_free); \
|
||||||
|
+ DYNSYM (isl_val_int_from_si); \
|
||||||
|
+ DYNSYM (isl_val_int_from_ui); \
|
||||||
|
+ DYNSYM (isl_val_mul); \
|
||||||
|
+ DYNSYM (isl_val_neg); \
|
||||||
|
+ DYNSYM (isl_val_sub); \
|
||||||
|
+ DYNSYM (isl_printer_print_union_map); \
|
||||||
|
+ DYNSYM (isl_pw_aff_get_ctx); \
|
||||||
|
+ DYNSYM (isl_val_is_int); \
|
||||||
|
+ DYNSYM (isl_ctx_get_max_operations); \
|
||||||
|
+ DYNSYM (isl_ctx_set_max_operations); \
|
||||||
|
+ DYNSYM (isl_ctx_last_error); \
|
||||||
|
+ DYNSYM (isl_ctx_reset_operations); \
|
||||||
|
+ DYNSYM (isl_map_coalesce); \
|
||||||
|
+ DYNSYM (isl_printer_print_schedule); \
|
||||||
|
+ DYNSYM (isl_set_set_dim_id); \
|
||||||
|
+ DYNSYM (isl_union_map_coalesce); \
|
||||||
|
+ DYNSYM (isl_multi_val_set_val); \
|
||||||
|
+ DYNSYM (isl_multi_val_zero); \
|
||||||
|
+ DYNSYM (isl_options_set_schedule_max_coefficient); \
|
||||||
|
+ DYNSYM (isl_options_set_tile_scale_tile_loops); \
|
||||||
|
+ DYNSYM (isl_schedule_copy); \
|
||||||
|
+ DYNSYM (isl_schedule_get_map); \
|
||||||
|
+ DYNSYM (isl_schedule_map_schedule_node_bottom_up); \
|
||||||
|
+ DYNSYM (isl_schedule_node_band_get_permutable); \
|
||||||
|
+ DYNSYM (isl_schedule_node_band_get_space); \
|
||||||
|
+ DYNSYM (isl_schedule_node_band_tile); \
|
||||||
|
+ DYNSYM (isl_schedule_node_child); \
|
||||||
|
+ DYNSYM (isl_schedule_node_free); \
|
||||||
|
+ DYNSYM (isl_schedule_node_get_child); \
|
||||||
|
+ DYNSYM (isl_schedule_node_get_ctx); \
|
||||||
|
+ DYNSYM (isl_schedule_node_get_type); \
|
||||||
|
+ DYNSYM (isl_schedule_node_n_children); \
|
||||||
|
+ DYNSYM (isl_union_map_is_equal); \
|
||||||
|
+ DYNSYM (isl_union_access_info_compute_flow); \
|
||||||
|
+ DYNSYM (isl_union_access_info_from_sink); \
|
||||||
|
+ DYNSYM (isl_union_access_info_set_may_source); \
|
||||||
|
+ DYNSYM (isl_union_access_info_set_must_source); \
|
||||||
|
+ DYNSYM (isl_union_access_info_set_schedule); \
|
||||||
|
+ DYNSYM (isl_union_flow_free); \
|
||||||
|
+ DYNSYM (isl_union_flow_get_may_dependence); \
|
||||||
|
+ DYNSYM (isl_union_flow_get_must_dependence); \
|
||||||
|
+ DYNSYM (isl_aff_var_on_domain); \
|
||||||
|
+ DYNSYM (isl_multi_aff_from_aff); \
|
||||||
|
+ DYNSYM (isl_schedule_get_ctx); \
|
||||||
|
+ DYNSYM (isl_multi_aff_set_tuple_id); \
|
||||||
|
+ DYNSYM (isl_multi_aff_dim); \
|
||||||
|
+ DYNSYM (isl_schedule_get_domain); \
|
||||||
|
+ DYNSYM (isl_union_set_is_empty); \
|
||||||
|
+ DYNSYM (isl_union_set_get_space); \
|
||||||
|
+ DYNSYM (isl_union_pw_multi_aff_empty); \
|
||||||
|
+ DYNSYM (isl_union_set_foreach_set); \
|
||||||
|
+ DYNSYM (isl_union_set_free); \
|
||||||
|
+ DYNSYM (isl_multi_union_pw_aff_from_union_pw_multi_aff); \
|
||||||
|
+ DYNSYM (isl_multi_union_pw_aff_apply_multi_aff); \
|
||||||
|
+ DYNSYM (isl_schedule_insert_partial_schedule); \
|
||||||
|
+ DYNSYM (isl_union_pw_multi_aff_free); \
|
||||||
|
+ DYNSYM (isl_pw_multi_aff_project_out_map); \
|
||||||
|
+ DYNSYM (isl_union_pw_multi_aff_add_pw_multi_aff); \
|
||||||
|
+ DYNSYM (isl_schedule_from_domain); \
|
||||||
|
+ DYNSYM (isl_schedule_sequence); \
|
||||||
|
+ DYNSYM (isl_ast_build_node_from_schedule); \
|
||||||
|
+ DYNSYM (isl_ast_node_mark_get_node); \
|
||||||
|
+ DYNSYM (isl_schedule_node_band_member_get_ast_loop_type); \
|
||||||
|
+ DYNSYM (isl_schedule_node_band_member_set_ast_loop_type); \
|
||||||
|
+ DYNSYM (isl_val_n_abs_num_chunks); \
|
||||||
|
+ DYNSYM (isl_val_get_abs_num_chunks); \
|
||||||
|
+ DYNSYM (isl_val_int_from_chunks); \
|
||||||
|
+ DYNSYM (isl_val_is_neg); \
|
||||||
|
+ DYNSYM (isl_version); \
|
||||||
|
+ DYNSYM (isl_options_get_on_error); \
|
||||||
|
+ DYNSYM (isl_ctx_reset_error);
|
||||||
|
+
|
||||||
|
+extern struct isl_pointers_s__
|
||||||
|
+{
|
||||||
|
+ bool inited;
|
||||||
|
+ void *h;
|
||||||
|
+#define DYNSYM(x) __typeof (x) *p_##x
|
||||||
|
+ DYNSYMS
|
||||||
|
+#undef DYNSYM
|
||||||
|
+} isl_pointers__;
|
||||||
|
+
|
||||||
|
+#define isl_aff_add_coefficient_si (*isl_pointers__.p_isl_aff_add_coefficient_si)
|
||||||
|
+#define isl_aff_free (*isl_pointers__.p_isl_aff_free)
|
||||||
|
+#define isl_aff_get_space (*isl_pointers__.p_isl_aff_get_space)
|
||||||
|
+#define isl_aff_set_coefficient_si (*isl_pointers__.p_isl_aff_set_coefficient_si)
|
||||||
|
+#define isl_aff_set_constant_si (*isl_pointers__.p_isl_aff_set_constant_si)
|
||||||
|
+#define isl_aff_zero_on_domain (*isl_pointers__.p_isl_aff_zero_on_domain)
|
||||||
|
+#define isl_band_free (*isl_pointers__.p_isl_band_free)
|
||||||
|
+#define isl_band_get_children (*isl_pointers__.p_isl_band_get_children)
|
||||||
|
+#define isl_band_get_partial_schedule (*isl_pointers__.p_isl_band_get_partial_schedule)
|
||||||
|
+#define isl_band_has_children (*isl_pointers__.p_isl_band_has_children)
|
||||||
|
+#define isl_band_list_free (*isl_pointers__.p_isl_band_list_free)
|
||||||
|
+#define isl_band_list_get_band (*isl_pointers__.p_isl_band_list_get_band)
|
||||||
|
+#define isl_band_list_get_ctx (*isl_pointers__.p_isl_band_list_get_ctx)
|
||||||
|
+#define isl_band_list_n_band (*isl_pointers__.p_isl_band_list_n_band)
|
||||||
|
+#define isl_band_n_member (*isl_pointers__.p_isl_band_n_member)
|
||||||
|
+#define isl_basic_map_add_constraint (*isl_pointers__.p_isl_basic_map_add_constraint)
|
||||||
|
+#define isl_basic_map_project_out (*isl_pointers__.p_isl_basic_map_project_out)
|
||||||
|
+#define isl_basic_map_universe (*isl_pointers__.p_isl_basic_map_universe)
|
||||||
|
+#define isl_constraint_set_coefficient_si (*isl_pointers__.p_isl_constraint_set_coefficient_si)
|
||||||
|
+#define isl_constraint_set_constant_si (*isl_pointers__.p_isl_constraint_set_constant_si)
|
||||||
|
+#define isl_ctx_alloc (*isl_pointers__.p_isl_ctx_alloc)
|
||||||
|
+#define isl_ctx_free (*isl_pointers__.p_isl_ctx_free)
|
||||||
|
+#define isl_equality_alloc (*isl_pointers__.p_isl_equality_alloc)
|
||||||
|
+#define isl_id_alloc (*isl_pointers__.p_isl_id_alloc)
|
||||||
|
+#define isl_id_copy (*isl_pointers__.p_isl_id_copy)
|
||||||
|
+#define isl_id_free (*isl_pointers__.p_isl_id_free)
|
||||||
|
+#define isl_inequality_alloc (*isl_pointers__.p_isl_inequality_alloc)
|
||||||
|
+#define isl_local_space_copy (*isl_pointers__.p_isl_local_space_copy)
|
||||||
|
+#define isl_local_space_free (*isl_pointers__.p_isl_local_space_free)
|
||||||
|
+#define isl_local_space_from_space (*isl_pointers__.p_isl_local_space_from_space)
|
||||||
|
+#define isl_local_space_range (*isl_pointers__.p_isl_local_space_range)
|
||||||
|
+#define isl_map_add_constraint (*isl_pointers__.p_isl_map_add_constraint)
|
||||||
|
+#define isl_map_add_dims (*isl_pointers__.p_isl_map_add_dims)
|
||||||
|
+#define isl_map_align_params (*isl_pointers__.p_isl_map_align_params)
|
||||||
|
+#define isl_map_apply_range (*isl_pointers__.p_isl_map_apply_range)
|
||||||
|
+#define isl_map_copy (*isl_pointers__.p_isl_map_copy)
|
||||||
|
+#define isl_map_dim (*isl_pointers__.p_isl_map_dim)
|
||||||
|
+#define isl_map_dump (*isl_pointers__.p_isl_map_dump)
|
||||||
|
+#define isl_map_equate (*isl_pointers__.p_isl_map_equate)
|
||||||
|
+#define isl_map_fix_si (*isl_pointers__.p_isl_map_fix_si)
|
||||||
|
+#define isl_map_flat_product (*isl_pointers__.p_isl_map_flat_product)
|
||||||
|
+#define isl_map_flat_range_product (*isl_pointers__.p_isl_map_flat_range_product)
|
||||||
|
+#define isl_map_free (*isl_pointers__.p_isl_map_free)
|
||||||
|
+#define isl_map_from_basic_map (*isl_pointers__.p_isl_map_from_basic_map)
|
||||||
|
+#define isl_map_from_pw_aff (*isl_pointers__.p_isl_map_from_pw_aff)
|
||||||
|
+#define isl_map_from_union_map (*isl_pointers__.p_isl_map_from_union_map)
|
||||||
|
+#define isl_map_get_ctx (*isl_pointers__.p_isl_map_get_ctx)
|
||||||
|
+#define isl_map_get_space (*isl_pointers__.p_isl_map_get_space)
|
||||||
|
+#define isl_map_get_tuple_id (*isl_pointers__.p_isl_map_get_tuple_id)
|
||||||
|
+#define isl_map_insert_dims (*isl_pointers__.p_isl_map_insert_dims)
|
||||||
|
+#define isl_map_intersect (*isl_pointers__.p_isl_map_intersect)
|
||||||
|
+#define isl_map_intersect_domain (*isl_pointers__.p_isl_map_intersect_domain)
|
||||||
|
+#define isl_map_intersect_range (*isl_pointers__.p_isl_map_intersect_range)
|
||||||
|
+#define isl_map_is_empty (*isl_pointers__.p_isl_map_is_empty)
|
||||||
|
+#define isl_map_lex_ge (*isl_pointers__.p_isl_map_lex_ge)
|
||||||
|
+#define isl_map_lex_le (*isl_pointers__.p_isl_map_lex_le)
|
||||||
|
+#define isl_map_n_out (*isl_pointers__.p_isl_map_n_out)
|
||||||
|
+#define isl_map_range (*isl_pointers__.p_isl_map_range)
|
||||||
|
+#define isl_map_set_tuple_id (*isl_pointers__.p_isl_map_set_tuple_id)
|
||||||
|
+#define isl_map_universe (*isl_pointers__.p_isl_map_universe)
|
||||||
|
+#define isl_options_set_on_error (*isl_pointers__.p_isl_options_set_on_error)
|
||||||
|
+#define isl_options_set_schedule_serialize_sccs (*isl_pointers__.p_isl_options_set_schedule_serialize_sccs)
|
||||||
|
+#define isl_printer_set_yaml_style (*isl_pointers__.p_isl_printer_set_yaml_style)
|
||||||
|
+#define isl_options_set_schedule_max_constant_term (*isl_pointers__.p_isl_options_set_schedule_max_constant_term)
|
||||||
|
+#define isl_options_set_schedule_maximize_band_depth (*isl_pointers__.p_isl_options_set_schedule_maximize_band_depth)
|
||||||
|
+#define isl_printer_free (*isl_pointers__.p_isl_printer_free)
|
||||||
|
+#define isl_printer_print_aff (*isl_pointers__.p_isl_printer_print_aff)
|
||||||
|
+#define isl_printer_print_constraint (*isl_pointers__.p_isl_printer_print_constraint)
|
||||||
|
+#define isl_printer_print_map (*isl_pointers__.p_isl_printer_print_map)
|
||||||
|
+#define isl_printer_print_set (*isl_pointers__.p_isl_printer_print_set)
|
||||||
|
+#define isl_printer_to_file (*isl_pointers__.p_isl_printer_to_file)
|
||||||
|
+#define isl_pw_aff_add (*isl_pointers__.p_isl_pw_aff_add)
|
||||||
|
+#define isl_pw_aff_alloc (*isl_pointers__.p_isl_pw_aff_alloc)
|
||||||
|
+#define isl_pw_aff_copy (*isl_pointers__.p_isl_pw_aff_copy)
|
||||||
|
+#define isl_pw_aff_eq_set (*isl_pointers__.p_isl_pw_aff_eq_set)
|
||||||
|
+#define isl_pw_aff_free (*isl_pointers__.p_isl_pw_aff_free)
|
||||||
|
+#define isl_pw_aff_from_aff (*isl_pointers__.p_isl_pw_aff_from_aff)
|
||||||
|
+#define isl_pw_aff_ge_set (*isl_pointers__.p_isl_pw_aff_ge_set)
|
||||||
|
+#define isl_pw_aff_gt_set (*isl_pointers__.p_isl_pw_aff_gt_set)
|
||||||
|
+#define isl_pw_aff_is_cst (*isl_pointers__.p_isl_pw_aff_is_cst)
|
||||||
|
+#define isl_pw_aff_le_set (*isl_pointers__.p_isl_pw_aff_le_set)
|
||||||
|
+#define isl_pw_aff_lt_set (*isl_pointers__.p_isl_pw_aff_lt_set)
|
||||||
|
+#define isl_pw_aff_mul (*isl_pointers__.p_isl_pw_aff_mul)
|
||||||
|
+#define isl_pw_aff_ne_set (*isl_pointers__.p_isl_pw_aff_ne_set)
|
||||||
|
+#define isl_pw_aff_nonneg_set (*isl_pointers__.p_isl_pw_aff_nonneg_set)
|
||||||
|
+#define isl_pw_aff_set_tuple_id (*isl_pointers__.p_isl_pw_aff_set_tuple_id)
|
||||||
|
+#define isl_pw_aff_sub (*isl_pointers__.p_isl_pw_aff_sub)
|
||||||
|
+#define isl_pw_aff_zero_set (*isl_pointers__.p_isl_pw_aff_zero_set)
|
||||||
|
+#define isl_schedule_free (*isl_pointers__.p_isl_schedule_free)
|
||||||
|
+#define isl_schedule_get_band_forest (*isl_pointers__.p_isl_schedule_get_band_forest)
|
||||||
|
+#define isl_set_add_constraint (*isl_pointers__.p_isl_set_add_constraint)
|
||||||
|
+#define isl_set_add_dims (*isl_pointers__.p_isl_set_add_dims)
|
||||||
|
+#define isl_set_apply (*isl_pointers__.p_isl_set_apply)
|
||||||
|
+#define isl_set_coalesce (*isl_pointers__.p_isl_set_coalesce)
|
||||||
|
+#define isl_set_copy (*isl_pointers__.p_isl_set_copy)
|
||||||
|
+#define isl_set_dim (*isl_pointers__.p_isl_set_dim)
|
||||||
|
+#define isl_set_fix_si (*isl_pointers__.p_isl_set_fix_si)
|
||||||
|
+#define isl_set_free (*isl_pointers__.p_isl_set_free)
|
||||||
|
+#define isl_set_get_space (*isl_pointers__.p_isl_set_get_space)
|
||||||
|
+#define isl_set_get_tuple_id (*isl_pointers__.p_isl_set_get_tuple_id)
|
||||||
|
+#define isl_set_intersect (*isl_pointers__.p_isl_set_intersect)
|
||||||
|
+#define isl_set_is_empty (*isl_pointers__.p_isl_set_is_empty)
|
||||||
|
+#define isl_set_n_dim (*isl_pointers__.p_isl_set_n_dim)
|
||||||
|
+#define isl_set_nat_universe (*isl_pointers__.p_isl_set_nat_universe)
|
||||||
|
+#define isl_set_project_out (*isl_pointers__.p_isl_set_project_out)
|
||||||
|
+#define isl_set_set_tuple_id (*isl_pointers__.p_isl_set_set_tuple_id)
|
||||||
|
+#define isl_set_universe (*isl_pointers__.p_isl_set_universe)
|
||||||
|
+#define isl_space_add_dims (*isl_pointers__.p_isl_space_add_dims)
|
||||||
|
+#define isl_space_alloc (*isl_pointers__.p_isl_space_alloc)
|
||||||
|
+#define isl_space_copy (*isl_pointers__.p_isl_space_copy)
|
||||||
|
+#define isl_space_dim (*isl_pointers__.p_isl_space_dim)
|
||||||
|
+#define isl_space_domain (*isl_pointers__.p_isl_space_domain)
|
||||||
|
+#define isl_space_find_dim_by_id (*isl_pointers__.p_isl_space_find_dim_by_id)
|
||||||
|
+#define isl_space_free (*isl_pointers__.p_isl_space_free)
|
||||||
|
+#define isl_space_from_domain (*isl_pointers__.p_isl_space_from_domain)
|
||||||
|
+#define isl_space_get_tuple_id (*isl_pointers__.p_isl_space_get_tuple_id)
|
||||||
|
+#define isl_space_params_alloc (*isl_pointers__.p_isl_space_params_alloc)
|
||||||
|
+#define isl_space_range (*isl_pointers__.p_isl_space_range)
|
||||||
|
+#define isl_space_set_alloc (*isl_pointers__.p_isl_space_set_alloc)
|
||||||
|
+#define isl_space_set_dim_id (*isl_pointers__.p_isl_space_set_dim_id)
|
||||||
|
+#define isl_space_set_tuple_id (*isl_pointers__.p_isl_space_set_tuple_id)
|
||||||
|
+#define isl_union_map_add_map (*isl_pointers__.p_isl_union_map_add_map)
|
||||||
|
+#define isl_union_map_align_params (*isl_pointers__.p_isl_union_map_align_params)
|
||||||
|
+#define isl_union_map_apply_domain (*isl_pointers__.p_isl_union_map_apply_domain)
|
||||||
|
+#define isl_union_map_apply_range (*isl_pointers__.p_isl_union_map_apply_range)
|
||||||
|
+#define isl_union_map_compute_flow (*isl_pointers__.p_isl_union_map_compute_flow)
|
||||||
|
+#define isl_union_map_copy (*isl_pointers__.p_isl_union_map_copy)
|
||||||
|
+#define isl_union_map_empty (*isl_pointers__.p_isl_union_map_empty)
|
||||||
|
+#define isl_union_map_flat_range_product (*isl_pointers__.p_isl_union_map_flat_range_product)
|
||||||
|
+#define isl_union_map_foreach_map (*isl_pointers__.p_isl_union_map_foreach_map)
|
||||||
|
+#define isl_union_map_free (*isl_pointers__.p_isl_union_map_free)
|
||||||
|
+#define isl_union_map_from_map (*isl_pointers__.p_isl_union_map_from_map)
|
||||||
|
+#define isl_union_map_get_ctx (*isl_pointers__.p_isl_union_map_get_ctx)
|
||||||
|
+#define isl_union_map_get_space (*isl_pointers__.p_isl_union_map_get_space)
|
||||||
|
+#define isl_union_map_gist_domain (*isl_pointers__.p_isl_union_map_gist_domain)
|
||||||
|
+#define isl_union_map_gist_range (*isl_pointers__.p_isl_union_map_gist_range)
|
||||||
|
+#define isl_union_map_intersect_domain (*isl_pointers__.p_isl_union_map_intersect_domain)
|
||||||
|
+#define isl_union_map_is_empty (*isl_pointers__.p_isl_union_map_is_empty)
|
||||||
|
+#define isl_union_map_subtract (*isl_pointers__.p_isl_union_map_subtract)
|
||||||
|
+#define isl_union_map_union (*isl_pointers__.p_isl_union_map_union)
|
||||||
|
+#define isl_union_set_add_set (*isl_pointers__.p_isl_union_set_add_set)
|
||||||
|
+#define isl_union_set_compute_schedule (*isl_pointers__.p_isl_union_set_compute_schedule)
|
||||||
|
+#define isl_union_set_copy (*isl_pointers__.p_isl_union_set_copy)
|
||||||
|
+#define isl_union_set_empty (*isl_pointers__.p_isl_union_set_empty)
|
||||||
|
+#define isl_union_set_from_set (*isl_pointers__.p_isl_union_set_from_set)
|
||||||
|
+#define isl_aff_add_constant_val (*isl_pointers__.p_isl_aff_add_constant_val)
|
||||||
|
+#define isl_aff_get_coefficient_val (*isl_pointers__.p_isl_aff_get_coefficient_val)
|
||||||
|
+#define isl_aff_get_ctx (*isl_pointers__.p_isl_aff_get_ctx)
|
||||||
|
+#define isl_aff_mod_val (*isl_pointers__.p_isl_aff_mod_val)
|
||||||
|
+#define isl_ast_build_ast_from_schedule (*isl_pointers__.p_isl_ast_build_ast_from_schedule)
|
||||||
|
+#define isl_ast_build_free (*isl_pointers__.p_isl_ast_build_free)
|
||||||
|
+#define isl_ast_build_from_context (*isl_pointers__.p_isl_ast_build_from_context)
|
||||||
|
+#define isl_ast_build_get_ctx (*isl_pointers__.p_isl_ast_build_get_ctx)
|
||||||
|
+#define isl_ast_build_get_schedule (*isl_pointers__.p_isl_ast_build_get_schedule)
|
||||||
|
+#define isl_ast_build_get_schedule_space (*isl_pointers__.p_isl_ast_build_get_schedule_space)
|
||||||
|
+#define isl_ast_build_set_before_each_for (*isl_pointers__.p_isl_ast_build_set_before_each_for)
|
||||||
|
+#define isl_ast_build_set_options (*isl_pointers__.p_isl_ast_build_set_options)
|
||||||
|
+#define isl_ast_expr_free (*isl_pointers__.p_isl_ast_expr_free)
|
||||||
|
+#define isl_ast_expr_from_val (*isl_pointers__.p_isl_ast_expr_from_val)
|
||||||
|
+#define isl_ast_expr_get_ctx (*isl_pointers__.p_isl_ast_expr_get_ctx)
|
||||||
|
+#define isl_ast_expr_get_id (*isl_pointers__.p_isl_ast_expr_get_id)
|
||||||
|
+#define isl_ast_expr_get_op_arg (*isl_pointers__.p_isl_ast_expr_get_op_arg)
|
||||||
|
+#define isl_ast_expr_get_op_n_arg (*isl_pointers__.p_isl_ast_expr_get_op_n_arg)
|
||||||
|
+#define isl_ast_expr_get_op_type (*isl_pointers__.p_isl_ast_expr_get_op_type)
|
||||||
|
+#define isl_ast_expr_get_type (*isl_pointers__.p_isl_ast_expr_get_type)
|
||||||
|
+#define isl_ast_expr_get_val (*isl_pointers__.p_isl_ast_expr_get_val)
|
||||||
|
+#define isl_ast_expr_sub (*isl_pointers__.p_isl_ast_expr_sub)
|
||||||
|
+#define isl_ast_node_block_get_children (*isl_pointers__.p_isl_ast_node_block_get_children)
|
||||||
|
+#define isl_ast_node_for_get_body (*isl_pointers__.p_isl_ast_node_for_get_body)
|
||||||
|
+#define isl_ast_node_for_get_cond (*isl_pointers__.p_isl_ast_node_for_get_cond)
|
||||||
|
+#define isl_ast_node_for_get_inc (*isl_pointers__.p_isl_ast_node_for_get_inc)
|
||||||
|
+#define isl_ast_node_for_get_init (*isl_pointers__.p_isl_ast_node_for_get_init)
|
||||||
|
+#define isl_ast_node_for_get_iterator (*isl_pointers__.p_isl_ast_node_for_get_iterator)
|
||||||
|
+#define isl_ast_node_free (*isl_pointers__.p_isl_ast_node_free)
|
||||||
|
+#define isl_ast_node_get_annotation (*isl_pointers__.p_isl_ast_node_get_annotation)
|
||||||
|
+#define isl_ast_node_get_type (*isl_pointers__.p_isl_ast_node_get_type)
|
||||||
|
+#define isl_ast_node_if_get_cond (*isl_pointers__.p_isl_ast_node_if_get_cond)
|
||||||
|
+#define isl_ast_node_if_get_else (*isl_pointers__.p_isl_ast_node_if_get_else)
|
||||||
|
+#define isl_ast_node_if_get_then (*isl_pointers__.p_isl_ast_node_if_get_then)
|
||||||
|
+#define isl_ast_node_list_free (*isl_pointers__.p_isl_ast_node_list_free)
|
||||||
|
+#define isl_ast_node_list_get_ast_node (*isl_pointers__.p_isl_ast_node_list_get_ast_node)
|
||||||
|
+#define isl_ast_node_list_n_ast_node (*isl_pointers__.p_isl_ast_node_list_n_ast_node)
|
||||||
|
+#define isl_ast_node_user_get_expr (*isl_pointers__.p_isl_ast_node_user_get_expr)
|
||||||
|
+#define isl_constraint_set_coefficient_val (*isl_pointers__.p_isl_constraint_set_coefficient_val)
|
||||||
|
+#define isl_constraint_set_constant_val (*isl_pointers__.p_isl_constraint_set_constant_val)
|
||||||
|
+#define isl_id_get_user (*isl_pointers__.p_isl_id_get_user)
|
||||||
|
+#define isl_local_space_get_ctx (*isl_pointers__.p_isl_local_space_get_ctx)
|
||||||
|
+#define isl_map_fix_val (*isl_pointers__.p_isl_map_fix_val)
|
||||||
|
+#define isl_options_set_ast_build_atomic_upper_bound (*isl_pointers__.p_isl_options_set_ast_build_atomic_upper_bound)
|
||||||
|
+#define isl_printer_print_ast_node (*isl_pointers__.p_isl_printer_print_ast_node)
|
||||||
|
+#define isl_printer_print_str (*isl_pointers__.p_isl_printer_print_str)
|
||||||
|
+#define isl_printer_set_output_format (*isl_pointers__.p_isl_printer_set_output_format)
|
||||||
|
+#define isl_pw_aff_mod_val (*isl_pointers__.p_isl_pw_aff_mod_val)
|
||||||
|
+#define isl_schedule_constraints_compute_schedule (*isl_pointers__.p_isl_schedule_constraints_compute_schedule)
|
||||||
|
+#define isl_schedule_constraints_on_domain (*isl_pointers__.p_isl_schedule_constraints_on_domain)
|
||||||
|
+#define isl_schedule_constraints_set_coincidence (*isl_pointers__.p_isl_schedule_constraints_set_coincidence)
|
||||||
|
+#define isl_schedule_constraints_set_proximity (*isl_pointers__.p_isl_schedule_constraints_set_proximity)
|
||||||
|
+#define isl_schedule_constraints_set_validity (*isl_pointers__.p_isl_schedule_constraints_set_validity)
|
||||||
|
+#define isl_set_get_dim_id (*isl_pointers__.p_isl_set_get_dim_id)
|
||||||
|
+#define isl_set_max_val (*isl_pointers__.p_isl_set_max_val)
|
||||||
|
+#define isl_set_min_val (*isl_pointers__.p_isl_set_min_val)
|
||||||
|
+#define isl_set_params (*isl_pointers__.p_isl_set_params)
|
||||||
|
+#define isl_space_align_params (*isl_pointers__.p_isl_space_align_params)
|
||||||
|
+#define isl_space_map_from_domain_and_range (*isl_pointers__.p_isl_space_map_from_domain_and_range)
|
||||||
|
+#define isl_space_set_tuple_name (*isl_pointers__.p_isl_space_set_tuple_name)
|
||||||
|
+#define isl_space_wrap (*isl_pointers__.p_isl_space_wrap)
|
||||||
|
+#define isl_union_map_from_domain_and_range (*isl_pointers__.p_isl_union_map_from_domain_and_range)
|
||||||
|
+#define isl_union_map_range (*isl_pointers__.p_isl_union_map_range)
|
||||||
|
+#define isl_union_set_union (*isl_pointers__.p_isl_union_set_union)
|
||||||
|
+#define isl_union_set_universe (*isl_pointers__.p_isl_union_set_universe)
|
||||||
|
+#define isl_val_2exp (*isl_pointers__.p_isl_val_2exp)
|
||||||
|
+#define isl_val_add_ui (*isl_pointers__.p_isl_val_add_ui)
|
||||||
|
+#define isl_val_copy (*isl_pointers__.p_isl_val_copy)
|
||||||
|
+#define isl_val_free (*isl_pointers__.p_isl_val_free)
|
||||||
|
+#define isl_val_int_from_si (*isl_pointers__.p_isl_val_int_from_si)
|
||||||
|
+#define isl_val_int_from_ui (*isl_pointers__.p_isl_val_int_from_ui)
|
||||||
|
+#define isl_val_mul (*isl_pointers__.p_isl_val_mul)
|
||||||
|
+#define isl_val_neg (*isl_pointers__.p_isl_val_neg)
|
||||||
|
+#define isl_val_sub (*isl_pointers__.p_isl_val_sub)
|
||||||
|
+#define isl_printer_print_union_map (*isl_pointers__.p_isl_printer_print_union_map)
|
||||||
|
+#define isl_pw_aff_get_ctx (*isl_pointers__.p_isl_pw_aff_get_ctx)
|
||||||
|
+#define isl_val_is_int (*isl_pointers__.p_isl_val_is_int)
|
||||||
|
+#define isl_ctx_get_max_operations (*isl_pointers__.p_isl_ctx_get_max_operations)
|
||||||
|
+#define isl_ctx_set_max_operations (*isl_pointers__.p_isl_ctx_set_max_operations)
|
||||||
|
+#define isl_ctx_last_error (*isl_pointers__.p_isl_ctx_last_error)
|
||||||
|
+#define isl_ctx_reset_operations (*isl_pointers__.p_isl_ctx_reset_operations)
|
||||||
|
+#define isl_map_coalesce (*isl_pointers__.p_isl_map_coalesce)
|
||||||
|
+#define isl_printer_print_schedule (*isl_pointers__.p_isl_printer_print_schedule)
|
||||||
|
+#define isl_set_set_dim_id (*isl_pointers__.p_isl_set_set_dim_id)
|
||||||
|
+#define isl_union_map_coalesce (*isl_pointers__.p_isl_union_map_coalesce)
|
||||||
|
+#define isl_multi_val_set_val (*isl_pointers__.p_isl_multi_val_set_val)
|
||||||
|
+#define isl_multi_val_zero (*isl_pointers__.p_isl_multi_val_zero)
|
||||||
|
+#define isl_options_set_schedule_max_coefficient (*isl_pointers__.p_isl_options_set_schedule_max_coefficient)
|
||||||
|
+#define isl_options_set_tile_scale_tile_loops (*isl_pointers__.p_isl_options_set_tile_scale_tile_loops)
|
||||||
|
+#define isl_schedule_copy (*isl_pointers__.p_isl_schedule_copy)
|
||||||
|
+#define isl_schedule_get_map (*isl_pointers__.p_isl_schedule_get_map)
|
||||||
|
+#define isl_schedule_map_schedule_node_bottom_up (*isl_pointers__.p_isl_schedule_map_schedule_node_bottom_up)
|
||||||
|
+#define isl_schedule_node_band_get_permutable (*isl_pointers__.p_isl_schedule_node_band_get_permutable)
|
||||||
|
+#define isl_schedule_node_band_get_space (*isl_pointers__.p_isl_schedule_node_band_get_space)
|
||||||
|
+#define isl_schedule_node_band_tile (*isl_pointers__.p_isl_schedule_node_band_tile)
|
||||||
|
+#define isl_schedule_node_child (*isl_pointers__.p_isl_schedule_node_child)
|
||||||
|
+#define isl_schedule_node_free (*isl_pointers__.p_isl_schedule_node_free)
|
||||||
|
+#define isl_schedule_node_get_child (*isl_pointers__.p_isl_schedule_node_get_child)
|
||||||
|
+#define isl_schedule_node_get_ctx (*isl_pointers__.p_isl_schedule_node_get_ctx)
|
||||||
|
+#define isl_schedule_node_get_type (*isl_pointers__.p_isl_schedule_node_get_type)
|
||||||
|
+#define isl_schedule_node_n_children (*isl_pointers__.p_isl_schedule_node_n_children)
|
||||||
|
+#define isl_union_map_is_equal (*isl_pointers__.p_isl_union_map_is_equal)
|
||||||
|
+#define isl_union_access_info_compute_flow (*isl_pointers__.p_isl_union_access_info_compute_flow)
|
||||||
|
+#define isl_union_access_info_from_sink (*isl_pointers__.p_isl_union_access_info_from_sink)
|
||||||
|
+#define isl_union_access_info_set_may_source (*isl_pointers__.p_isl_union_access_info_set_may_source)
|
||||||
|
+#define isl_union_access_info_set_must_source (*isl_pointers__.p_isl_union_access_info_set_must_source)
|
||||||
|
+#define isl_union_access_info_set_schedule (*isl_pointers__.p_isl_union_access_info_set_schedule)
|
||||||
|
+#define isl_union_flow_free (*isl_pointers__.p_isl_union_flow_free)
|
||||||
|
+#define isl_union_flow_get_may_dependence (*isl_pointers__.p_isl_union_flow_get_may_dependence)
|
||||||
|
+#define isl_union_flow_get_must_dependence (*isl_pointers__.p_isl_union_flow_get_must_dependence)
|
||||||
|
+#define isl_aff_var_on_domain (*isl_pointers__.p_isl_aff_var_on_domain)
|
||||||
|
+#define isl_multi_aff_from_aff (*isl_pointers__.p_isl_multi_aff_from_aff)
|
||||||
|
+#define isl_schedule_get_ctx (*isl_pointers__.p_isl_schedule_get_ctx)
|
||||||
|
+#define isl_multi_aff_set_tuple_id (*isl_pointers__.p_isl_multi_aff_set_tuple_id)
|
||||||
|
+#define isl_multi_aff_dim (*isl_pointers__.p_isl_multi_aff_dim)
|
||||||
|
+#define isl_schedule_get_domain (*isl_pointers__.p_isl_schedule_get_domain)
|
||||||
|
+#define isl_union_set_is_empty (*isl_pointers__.p_isl_union_set_is_empty)
|
||||||
|
+#define isl_union_set_get_space (*isl_pointers__.p_isl_union_set_get_space)
|
||||||
|
+#define isl_union_pw_multi_aff_empty (*isl_pointers__.p_isl_union_pw_multi_aff_empty)
|
||||||
|
+#define isl_union_set_foreach_set (*isl_pointers__.p_isl_union_set_foreach_set)
|
||||||
|
+#define isl_union_set_free (*isl_pointers__.p_isl_union_set_free)
|
||||||
|
+#define isl_multi_union_pw_aff_from_union_pw_multi_aff (*isl_pointers__.p_isl_multi_union_pw_aff_from_union_pw_multi_aff)
|
||||||
|
+#define isl_multi_union_pw_aff_apply_multi_aff (*isl_pointers__.p_isl_multi_union_pw_aff_apply_multi_aff)
|
||||||
|
+#define isl_schedule_insert_partial_schedule (*isl_pointers__.p_isl_schedule_insert_partial_schedule)
|
||||||
|
+#define isl_union_pw_multi_aff_free (*isl_pointers__.p_isl_union_pw_multi_aff_free)
|
||||||
|
+#define isl_pw_multi_aff_project_out_map (*isl_pointers__.p_isl_pw_multi_aff_project_out_map)
|
||||||
|
+#define isl_union_pw_multi_aff_add_pw_multi_aff (*isl_pointers__.p_isl_union_pw_multi_aff_add_pw_multi_aff)
|
||||||
|
+#define isl_schedule_from_domain (*isl_pointers__.p_isl_schedule_from_domain)
|
||||||
|
+#define isl_schedule_sequence (*isl_pointers__.p_isl_schedule_sequence)
|
||||||
|
+#define isl_ast_build_node_from_schedule (*isl_pointers__.p_isl_ast_build_node_from_schedule)
|
||||||
|
+#define isl_ast_node_mark_get_node (*isl_pointers__.p_isl_ast_node_mark_get_node)
|
||||||
|
+#define isl_schedule_node_band_member_get_ast_loop_type (*isl_pointers__.p_isl_schedule_node_band_member_get_ast_loop_type)
|
||||||
|
+#define isl_schedule_node_band_member_set_ast_loop_type (*isl_pointers__.p_isl_schedule_node_band_member_set_ast_loop_type)
|
||||||
|
+#define isl_val_n_abs_num_chunks (*isl_pointers__.p_isl_val_n_abs_num_chunks)
|
||||||
|
+#define isl_val_get_abs_num_chunks (*isl_pointers__.p_isl_val_get_abs_num_chunks)
|
||||||
|
+#define isl_val_int_from_chunks (*isl_pointers__.p_isl_val_int_from_chunks)
|
||||||
|
+#define isl_val_is_neg (*isl_pointers__.p_isl_val_is_neg)
|
||||||
|
+#define isl_version (*isl_pointers__.p_isl_version)
|
||||||
|
+#define isl_options_get_on_error (*isl_pointers__.p_isl_options_get_on_error)
|
||||||
|
+#define isl_ctx_reset_error (*isl_pointers__.p_isl_ctx_reset_error)
|
||||||
|
|
||||||
|
typedef struct poly_dr *poly_dr_p;
|
||||||
|
|
||||||
|
@@ -461,5 +1045,6 @@ extern void build_scops (vec<scop_p> *);
|
||||||
|
extern void dot_all_sese (FILE *, vec<sese_l> &);
|
||||||
|
extern void dot_sese (sese_l &);
|
||||||
|
extern void dot_cfg ();
|
||||||
|
+extern const char *get_isl_version (bool);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
--- gcc/graphite.c.jj 2015-11-04 14:15:32.000000000 +0100
|
||||||
|
+++ gcc/graphite.c 2015-11-04 14:56:02.645536409 +0100
|
||||||
|
@@ -60,6 +60,35 @@ along with GCC; see the file COPYING3.
|
||||||
|
#include "tree-into-ssa.h"
|
||||||
|
#include "graphite.h"
|
||||||
|
|
||||||
|
+__typeof (isl_pointers__) isl_pointers__;
|
||||||
|
+
|
||||||
|
+static bool
|
||||||
|
+init_isl_pointers (void)
|
||||||
|
+{
|
||||||
|
+ void *h;
|
||||||
|
+
|
||||||
|
+ if (isl_pointers__.inited)
|
||||||
|
+ return isl_pointers__.h != NULL;
|
||||||
|
+ h = dlopen ("libisl.so.15", RTLD_LAZY);
|
||||||
|
+ isl_pointers__.h = h;
|
||||||
|
+ if (h == NULL)
|
||||||
|
+ return false;
|
||||||
|
+#define DYNSYM(x) \
|
||||||
|
+ do \
|
||||||
|
+ { \
|
||||||
|
+ union { __typeof (isl_pointers__.p_##x) p; void *q; } u; \
|
||||||
|
+ u.q = dlsym (h, #x); \
|
||||||
|
+ if (u.q == NULL) \
|
||||||
|
+ return false; \
|
||||||
|
+ isl_pointers__.p_##x = u.p; \
|
||||||
|
+ } \
|
||||||
|
+ while (0)
|
||||||
|
+ DYNSYMS
|
||||||
|
+#undef DYNSYM
|
||||||
|
+ isl_pointers__.inited = true;
|
||||||
|
+ return true;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* Print global statistics to FILE. */
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -365,6 +394,15 @@ graphite_transform_loops (void)
|
||||||
|
if (parallelized_function_p (cfun->decl))
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ if (number_of_loops (cfun) <= 1)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ if (!init_isl_pointers ())
|
||||||
|
+ {
|
||||||
|
+ sorry ("Graphite loop optimizations cannot be used");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
calculate_dominance_info (CDI_DOMINATORS);
|
||||||
|
|
||||||
|
/* We rely on post-dominators during merging of SESE regions so those
|
||||||
|
@@ -455,6 +493,14 @@ graphite_transform_loops (void)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+const char *
|
||||||
|
+get_isl_version (bool force)
|
||||||
|
+{
|
||||||
|
+ if (force)
|
||||||
|
+ init_isl_pointers ();
|
||||||
|
+ return (isl_pointers__.inited && isl_version) ? isl_version () : "none";
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#else /* If isl is not available: #ifndef HAVE_isl. */
|
||||||
|
|
||||||
|
static void
|
||||||
|
--- gcc/toplev.c.jj 2017-02-19 13:02:31.000000000 +0100
|
||||||
|
+++ gcc/toplev.c 2017-02-19 16:50:25.536301350 +0100
|
||||||
|
@@ -94,6 +94,7 @@ along with GCC; see the file COPYING3.
|
||||||
|
|
||||||
|
#ifdef HAVE_isl
|
||||||
|
#include <isl/version.h>
|
||||||
|
+extern const char *get_isl_version (bool);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void general_init (const char *, bool);
|
||||||
|
@@ -683,7 +684,7 @@ print_version (FILE *file, const char *i
|
||||||
|
#ifndef HAVE_isl
|
||||||
|
"none"
|
||||||
|
#else
|
||||||
|
- isl_version ()
|
||||||
|
+ get_isl_version (*indent == 0)
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
if (strcmp (GCC_GMP_STRINGIFY_VERSION, gmp_version))
|
17
gcc10-libgomp-omp_h-multilib.patch
Normal file
17
gcc10-libgomp-omp_h-multilib.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
2008-06-09 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* omp.h.in (omp_nest_lock_t): Fix up for Linux multilibs.
|
||||||
|
|
||||||
|
--- libgomp/omp.h.in.jj 2008-06-09 13:34:05.000000000 +0200
|
||||||
|
+++ libgomp/omp.h.in 2008-06-09 13:34:48.000000000 +0200
|
||||||
|
@@ -42,8 +42,8 @@ typedef struct
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
- unsigned char _x[@OMP_NEST_LOCK_SIZE@]
|
||||||
|
- __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@)));
|
||||||
|
+ unsigned char _x[8 + sizeof (void *)]
|
||||||
|
+ __attribute__((__aligned__(sizeof (void *))));
|
||||||
|
} omp_nest_lock_t;
|
||||||
|
#endif
|
||||||
|
|
24
gcc10-libstdc++-docs.patch
Normal file
24
gcc10-libstdc++-docs.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
--- libstdc++-v3/doc/html/index.html.jj 2011-01-03 12:53:21.282829010 +0100
|
||||||
|
+++ libstdc++-v3/doc/html/index.html 2011-01-04 18:06:28.999851145 +0100
|
||||||
|
@@ -5,6 +5,8 @@
|
||||||
|
<a class="link" href="https://www.fsf.org" target="_top">FSF
|
||||||
|
</a>
|
||||||
|
</p><p>
|
||||||
|
+ Release 10.2.1
|
||||||
|
+ </p><p>
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU Free Documentation
|
||||||
|
License, Version 1.2 or any later version published by the
|
||||||
|
--- libstdc++-v3/doc/html/api.html.jj 2011-01-03 12:53:21.000000000 +0100
|
||||||
|
+++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
|
||||||
|
@@ -20,7 +20,9 @@
|
||||||
|
member functions for the library classes, finding out what is in a
|
||||||
|
particular include file, looking at inheritance diagrams, etc.
|
||||||
|
</p><p>
|
||||||
|
- The API documentation, rendered into HTML, can be viewed online
|
||||||
|
+ The API documentation, rendered into HTML, can be viewed locally
|
||||||
|
+ <a class="link" href="api/index.html" target="_top">for the 10.2.1 release</a>,
|
||||||
|
+ online
|
||||||
|
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
|
||||||
|
and
|
||||||
|
<a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">
|
27
gcc10-libtool-no-rpath.patch
Normal file
27
gcc10-libtool-no-rpath.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
libtool sucks.
|
||||||
|
--- ltmain.sh.jj 2007-12-07 14:53:21.000000000 +0100
|
||||||
|
+++ ltmain.sh 2008-09-05 21:51:48.000000000 +0200
|
||||||
|
@@ -5394,6 +5394,7 @@ EOF
|
||||||
|
rpath="$finalize_rpath"
|
||||||
|
test "$mode" != relink && rpath="$compile_rpath$rpath"
|
||||||
|
for libdir in $rpath; do
|
||||||
|
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
|
||||||
|
if test -n "$hardcode_libdir_flag_spec"; then
|
||||||
|
if test -n "$hardcode_libdir_separator"; then
|
||||||
|
if test -z "$hardcode_libdirs"; then
|
||||||
|
@@ -6071,6 +6072,7 @@ EOF
|
||||||
|
rpath=
|
||||||
|
hardcode_libdirs=
|
||||||
|
for libdir in $compile_rpath $finalize_rpath; do
|
||||||
|
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
|
||||||
|
if test -n "$hardcode_libdir_flag_spec"; then
|
||||||
|
if test -n "$hardcode_libdir_separator"; then
|
||||||
|
if test -z "$hardcode_libdirs"; then
|
||||||
|
@@ -6120,6 +6122,7 @@ EOF
|
||||||
|
rpath=
|
||||||
|
hardcode_libdirs=
|
||||||
|
for libdir in $finalize_rpath; do
|
||||||
|
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
|
||||||
|
if test -n "$hardcode_libdir_flag_spec"; then
|
||||||
|
if test -n "$hardcode_libdir_separator"; then
|
||||||
|
if test -z "$hardcode_libdirs"; then
|
37
gcc10-no-add-needed.patch
Normal file
37
gcc10-no-add-needed.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
2010-02-08 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
|
* config/gnu-user.h (LINK_EH_SPEC): Pass --no-add-needed to the linker.
|
||||||
|
* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
|
||||||
|
* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
|
||||||
|
|
||||||
|
--- gcc/config/alpha/elf.h.jj 2011-01-03 12:52:31.118056764 +0100
|
||||||
|
+++ gcc/config/alpha/elf.h 2011-01-04 18:14:10.931874160 +0100
|
||||||
|
@@ -168,5 +168,5 @@ extern int alpha_this_gpdisp_sequence_nu
|
||||||
|
I imagine that other systems will catch up. In the meantime, it
|
||||||
|
doesn't harm to make sure that the data exists to be used later. */
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||||
|
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
|
||||||
|
+#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} "
|
||||||
|
#endif
|
||||||
|
--- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100
|
||||||
|
+++ gcc/config/ia64/linux.h 2011-01-04 18:14:10.931874160 +0100
|
||||||
|
@@ -76,7 +76,7 @@ do { \
|
||||||
|
Signalize that because we have fde-glibc, we don't need all C shared libs
|
||||||
|
linked against -lgcc_s. */
|
||||||
|
#undef LINK_EH_SPEC
|
||||||
|
-#define LINK_EH_SPEC ""
|
||||||
|
+#define LINK_EH_SPEC "--no-add-needed "
|
||||||
|
|
||||||
|
#undef TARGET_INIT_LIBFUNCS
|
||||||
|
#define TARGET_INIT_LIBFUNCS ia64_soft_fp_init_libfuncs
|
||||||
|
--- gcc/config/gnu-user.h.jj 2011-01-03 12:53:03.739057299 +0100
|
||||||
|
+++ gcc/config/gnu-user.h 2011-01-04 18:14:10.932814884 +0100
|
||||||
|
@@ -106,7 +106,7 @@ see the files COPYING3 and COPYING.RUNTI
|
||||||
|
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
|
||||||
|
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||||
|
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
|
||||||
|
+#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \
|
236
gcc10-pr96383.patch
Normal file
236
gcc10-pr96383.patch
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
2020-07-30 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR debug/96383
|
||||||
|
* langhooks-def.h (lhd_finalize_early_debug): Declare.
|
||||||
|
(LANG_HOOKS_FINALIZE_EARLY_DEBUG): Define.
|
||||||
|
(LANG_HOOKS_INITIALIZER): Amend.
|
||||||
|
* langhooks.c: Include cgraph.h and debug.h.
|
||||||
|
(lhd_finalize_early_debug): Default implementation from
|
||||||
|
former code in finalize_compilation_unit.
|
||||||
|
* langhooks.h (lang_hooks::finalize_early_debug): Add.
|
||||||
|
* cgraphunit.c (symbol_table::finalize_compilation_unit):
|
||||||
|
Call the finalize_early_debug langhook.
|
||||||
|
|
||||||
|
gcc/c-family/
|
||||||
|
* c-common.h (c_common_finalize_early_debug): Declare.
|
||||||
|
* c-common.c: Include debug.h.
|
||||||
|
(c_common_finalize_early_debug): finalize_early_debug langhook
|
||||||
|
implementation generating debug for extern declarations.
|
||||||
|
|
||||||
|
gcc/c/
|
||||||
|
* c-objc-common.h (LANG_HOOKS_FINALIZE_EARLY_DEBUG):
|
||||||
|
Define to c_common_finalize_early_debug.
|
||||||
|
|
||||||
|
gcc/cp/
|
||||||
|
* cp-objcp-common.h (LANG_HOOKS_FINALIZE_EARLY_DEBUG):
|
||||||
|
Define to c_common_finalize_early_debug.
|
||||||
|
|
||||||
|
gcc/testsuite/
|
||||||
|
* gcc.dg/debug/dwarf2/pr96383-1.c: New testcase.
|
||||||
|
* gcc.dg/debug/dwarf2/pr96383-2.c: Likewise.
|
||||||
|
|
||||||
|
libstdc++-v3/
|
||||||
|
* testsuite/20_util/assume_aligned/3.cc: Use -g0.
|
||||||
|
|
||||||
|
--- gcc/c-family/c-common.c
|
||||||
|
+++ gcc/c-family/c-common.c
|
||||||
|
@@ -50,6 +50,7 @@ along with GCC; see the file COPYING3. If not see
|
||||||
|
#include "spellcheck.h"
|
||||||
|
#include "c-spellcheck.h"
|
||||||
|
#include "selftest.h"
|
||||||
|
+#include "debug.h"
|
||||||
|
|
||||||
|
cpp_reader *parse_in; /* Declared in c-pragma.h. */
|
||||||
|
|
||||||
|
@@ -9086,4 +9087,20 @@ braced_lists_to_strings (tree type, tree ctor)
|
||||||
|
return braced_lists_to_strings (type, ctor, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
+
|
||||||
|
+/* Emit debug for functions before finalizing early debug. */
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+c_common_finalize_early_debug (void)
|
||||||
|
+{
|
||||||
|
+ /* Emit early debug for reachable functions, and by consequence,
|
||||||
|
+ locally scoped symbols. Also emit debug for extern declared
|
||||||
|
+ functions that are still reachable at this point. */
|
||||||
|
+ struct cgraph_node *cnode;
|
||||||
|
+ FOR_EACH_FUNCTION (cnode)
|
||||||
|
+ if (!cnode->alias && !cnode->thunk.thunk_p
|
||||||
|
+ && (cnode->has_gimple_body_p () || !DECL_IS_BUILTIN (cnode->decl)))
|
||||||
|
+ (*debug_hooks->early_global_decl) (cnode->decl);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#include "gt-c-family-c-common.h"
|
||||||
|
--- gcc/c-family/c-common.h
|
||||||
|
+++ gcc/c-family/c-common.h
|
||||||
|
@@ -885,6 +885,8 @@ extern bool bool_promoted_to_int_p (tree);
|
||||||
|
extern tree fold_for_warn (tree);
|
||||||
|
extern tree c_common_get_narrower (tree, int *);
|
||||||
|
extern bool get_attribute_operand (tree, unsigned HOST_WIDE_INT *);
|
||||||
|
+extern void c_common_finalize_early_debug (void);
|
||||||
|
+
|
||||||
|
|
||||||
|
#define c_sizeof(LOC, T) c_sizeof_or_alignof_type (LOC, T, true, false, 1)
|
||||||
|
#define c_alignof(LOC, T) c_sizeof_or_alignof_type (LOC, T, false, false, 1)
|
||||||
|
--- gcc/c/c-objc-common.h
|
||||||
|
+++ gcc/c/c-objc-common.h
|
||||||
|
@@ -65,6 +65,8 @@ along with GCC; see the file COPYING3. If not see
|
||||||
|
c_simulate_builtin_function_decl
|
||||||
|
#undef LANG_HOOKS_EMITS_BEGIN_STMT
|
||||||
|
#define LANG_HOOKS_EMITS_BEGIN_STMT true
|
||||||
|
+#undef LANG_HOOKS_FINALIZE_EARLY_DEBUG
|
||||||
|
+#define LANG_HOOKS_FINALIZE_EARLY_DEBUG c_common_finalize_early_debug
|
||||||
|
|
||||||
|
/* Attribute hooks. */
|
||||||
|
#undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE
|
||||||
|
--- gcc/cgraphunit.c
|
||||||
|
+++ gcc/cgraphunit.c
|
||||||
|
@@ -2998,11 +2998,9 @@ symbol_table::finalize_compilation_unit (void)
|
||||||
|
|
||||||
|
if (!seen_error ())
|
||||||
|
{
|
||||||
|
- /* Emit early debug for reachable functions, and by consequence,
|
||||||
|
- locally scoped symbols. */
|
||||||
|
- struct cgraph_node *cnode;
|
||||||
|
- FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (cnode)
|
||||||
|
- (*debug_hooks->early_global_decl) (cnode->decl);
|
||||||
|
+ /* Give the frontends the chance to emit early debug based on
|
||||||
|
+ what is still reachable in the TU. */
|
||||||
|
+ (*lang_hooks.finalize_early_debug) ();
|
||||||
|
|
||||||
|
/* Clean up anything that needs cleaning up after initial debug
|
||||||
|
generation. */
|
||||||
|
--- gcc/cp/cp-objcp-common.h
|
||||||
|
+++ gcc/cp/cp-objcp-common.h
|
||||||
|
@@ -115,6 +115,8 @@ extern tree cxx_simulate_enum_decl (location_t, const char *,
|
||||||
|
#define LANG_HOOKS_BLOCK_MAY_FALLTHRU cxx_block_may_fallthru
|
||||||
|
#undef LANG_HOOKS_EMITS_BEGIN_STMT
|
||||||
|
#define LANG_HOOKS_EMITS_BEGIN_STMT true
|
||||||
|
+#undef LANG_HOOKS_FINALIZE_EARLY_DEBUG
|
||||||
|
+#define LANG_HOOKS_FINALIZE_EARLY_DEBUG c_common_finalize_early_debug
|
||||||
|
|
||||||
|
/* Attribute hooks. */
|
||||||
|
#undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE
|
||||||
|
--- gcc/langhooks-def.h
|
||||||
|
+++ gcc/langhooks-def.h
|
||||||
|
@@ -92,6 +92,7 @@ extern const char *lhd_get_substring_location (const substring_loc &,
|
||||||
|
location_t *out_loc);
|
||||||
|
extern int lhd_decl_dwarf_attribute (const_tree, int);
|
||||||
|
extern int lhd_type_dwarf_attribute (const_tree, int);
|
||||||
|
+extern void lhd_finalize_early_debug (void);
|
||||||
|
|
||||||
|
#define LANG_HOOKS_NAME "GNU unknown"
|
||||||
|
#define LANG_HOOKS_IDENTIFIER_SIZE sizeof (struct lang_identifier)
|
||||||
|
@@ -139,6 +140,7 @@ extern int lhd_type_dwarf_attribute (const_tree, int);
|
||||||
|
#define LANG_HOOKS_EMITS_BEGIN_STMT false
|
||||||
|
#define LANG_HOOKS_RUN_LANG_SELFTESTS lhd_do_nothing
|
||||||
|
#define LANG_HOOKS_GET_SUBSTRING_LOCATION lhd_get_substring_location
|
||||||
|
+#define LANG_HOOKS_FINALIZE_EARLY_DEBUG lhd_finalize_early_debug
|
||||||
|
|
||||||
|
/* Attribute hooks. */
|
||||||
|
#define LANG_HOOKS_ATTRIBUTE_TABLE NULL
|
||||||
|
@@ -364,7 +366,8 @@ extern void lhd_end_section (void);
|
||||||
|
LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS, \
|
||||||
|
LANG_HOOKS_EMITS_BEGIN_STMT, \
|
||||||
|
LANG_HOOKS_RUN_LANG_SELFTESTS, \
|
||||||
|
- LANG_HOOKS_GET_SUBSTRING_LOCATION \
|
||||||
|
+ LANG_HOOKS_GET_SUBSTRING_LOCATION, \
|
||||||
|
+ LANG_HOOKS_FINALIZE_EARLY_DEBUG \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* GCC_LANG_HOOKS_DEF_H */
|
||||||
|
--- gcc/langhooks.c
|
||||||
|
+++ gcc/langhooks.c
|
||||||
|
@@ -36,6 +36,8 @@ along with GCC; see the file COPYING3. If not see
|
||||||
|
#include "output.h"
|
||||||
|
#include "timevar.h"
|
||||||
|
#include "stor-layout.h"
|
||||||
|
+#include "cgraph.h"
|
||||||
|
+#include "debug.h"
|
||||||
|
|
||||||
|
/* Do nothing; in many cases the default hook. */
|
||||||
|
|
||||||
|
@@ -866,6 +868,18 @@ lhd_unit_size_without_reusable_padding (tree t)
|
||||||
|
return TYPE_SIZE_UNIT (t);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Default implementation for the finalize_early_debug hook. */
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+lhd_finalize_early_debug (void)
|
||||||
|
+{
|
||||||
|
+ /* Emit early debug for reachable functions, and by consequence,
|
||||||
|
+ locally scoped symbols. */
|
||||||
|
+ struct cgraph_node *cnode;
|
||||||
|
+ FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (cnode)
|
||||||
|
+ (*debug_hooks->early_global_decl) (cnode->decl);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* Returns true if the current lang_hooks represents the GNU C frontend. */
|
||||||
|
|
||||||
|
bool
|
||||||
|
--- gcc/langhooks.h
|
||||||
|
+++ gcc/langhooks.h
|
||||||
|
@@ -580,6 +580,9 @@ struct lang_hooks
|
||||||
|
const char *(*get_substring_location) (const substring_loc &,
|
||||||
|
location_t *out_loc);
|
||||||
|
|
||||||
|
+ /* Invoked before the early_finish debug hook is invoked. */
|
||||||
|
+ void (*finalize_early_debug) (void);
|
||||||
|
+
|
||||||
|
/* Whenever you add entries here, make sure you adjust langhooks-def.h
|
||||||
|
and langhooks.c accordingly. */
|
||||||
|
};
|
||||||
|
--- gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-1.c
|
||||||
|
+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-1.c
|
||||||
|
@@ -0,0 +1,17 @@
|
||||||
|
+/* { dg-do compile } */
|
||||||
|
+/* { dg-options "-g -gdwarf -dA" } */
|
||||||
|
+
|
||||||
|
+extern void foo (int);
|
||||||
|
+extern void unusedbar (int);
|
||||||
|
+
|
||||||
|
+int main()
|
||||||
|
+{
|
||||||
|
+ foo (1);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/* We want subprogram DIEs for both foo and main and a DIE for
|
||||||
|
+ the formal parameter of foo. We do not want a DIE for
|
||||||
|
+ unusedbar. */
|
||||||
|
+/* { dg-final { scan-assembler-times "DW_TAG_subprogram" 4 } } */
|
||||||
|
+/* { dg-final { scan-assembler-times "DW_TAG_formal_parameter" 2 } } */
|
||||||
|
+/* { dg-final { scan-assembler-not "unusedbar" } } */
|
||||||
|
--- gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-2.c
|
||||||
|
+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr96383-2.c
|
||||||
|
@@ -0,0 +1,17 @@
|
||||||
|
+/* { dg-do compile } */
|
||||||
|
+/* { dg-options "-g -O2 -gdwarf -dA" } */
|
||||||
|
+
|
||||||
|
+extern void foo (int);
|
||||||
|
+extern void unusedbar (int);
|
||||||
|
+
|
||||||
|
+int main()
|
||||||
|
+{
|
||||||
|
+ foo (1);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/* We want subprogram DIEs for both foo and main and a DIE for
|
||||||
|
+ the formal parameter of foo. We do not want a DIE for
|
||||||
|
+ unusedbar. */
|
||||||
|
+/* { dg-final { scan-assembler-times "DW_TAG_subprogram" 4 } } */
|
||||||
|
+/* { dg-final { scan-assembler-times "DW_TAG_formal_parameter" 2 } } */
|
||||||
|
+/* { dg-final { scan-assembler-not "unusedbar" } } */
|
||||||
|
--- libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
|
||||||
|
+++ libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
|
||||||
|
@@ -15,7 +15,7 @@
|
||||||
|
// with this library; see the file COPYING3. If not see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
-// { dg-options "-std=gnu++2a -O2" }
|
||||||
|
+// { dg-options "-std=gnu++2a -O2 -g0" }
|
||||||
|
// { dg-do compile { target c++2a } }
|
||||||
|
// { dg-final { scan-assembler-not "undefined" } }
|
||||||
|
|
51
gcc10-pr96939-2.patch
Normal file
51
gcc10-pr96939-2.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
2020-09-09 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* config/arm/arm.c (arm_override_options_after_change_1): Add opts_set
|
||||||
|
argument, test opts_set->x_str_align_functions rather than
|
||||||
|
opts->x_str_align_functions.
|
||||||
|
(arm_override_options_after_change, arm_option_override_internal,
|
||||||
|
arm_set_current_function): Adjust callers.
|
||||||
|
|
||||||
|
--- gcc/config/arm/arm.c.jj 2020-09-09 09:19:42.911419411 +0200
|
||||||
|
+++ gcc/config/arm/arm.c 2020-09-09 09:28:02.392897384 +0200
|
||||||
|
@@ -3024,10 +3024,11 @@ static GTY(()) bool thumb_flipper;
|
||||||
|
static GTY(()) tree init_optimize;
|
||||||
|
|
||||||
|
static void
|
||||||
|
-arm_override_options_after_change_1 (struct gcc_options *opts)
|
||||||
|
+arm_override_options_after_change_1 (struct gcc_options *opts,
|
||||||
|
+ struct gcc_options *opts_set)
|
||||||
|
{
|
||||||
|
/* -falign-functions without argument: supply one. */
|
||||||
|
- if (opts->x_flag_align_functions && !opts->x_str_align_functions)
|
||||||
|
+ if (opts->x_flag_align_functions && !opts_set->x_str_align_functions)
|
||||||
|
opts->x_str_align_functions = TARGET_THUMB_P (opts->x_target_flags)
|
||||||
|
&& opts->x_optimize_size ? "2" : "4";
|
||||||
|
}
|
||||||
|
@@ -3037,7 +3038,7 @@ arm_override_options_after_change_1 (str
|
||||||
|
static void
|
||||||
|
arm_override_options_after_change (void)
|
||||||
|
{
|
||||||
|
- arm_override_options_after_change_1 (&global_options);
|
||||||
|
+ arm_override_options_after_change_1 (&global_options, &global_options_set);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Implement TARGET_OPTION_SAVE. */
|
||||||
|
@@ -3065,7 +3066,7 @@ static void
|
||||||
|
arm_option_override_internal (struct gcc_options *opts,
|
||||||
|
struct gcc_options *opts_set)
|
||||||
|
{
|
||||||
|
- arm_override_options_after_change_1 (opts);
|
||||||
|
+ arm_override_options_after_change_1 (opts, opts_set);
|
||||||
|
|
||||||
|
if (TARGET_INTERWORK && !bitmap_bit_p (arm_active_target.isa, isa_bit_thumb))
|
||||||
|
{
|
||||||
|
@@ -32335,7 +32336,7 @@ arm_set_current_function (tree fndecl)
|
||||||
|
|
||||||
|
save_restore_target_globals (new_tree);
|
||||||
|
|
||||||
|
- arm_override_options_after_change_1 (&global_options);
|
||||||
|
+ arm_override_options_after_change_1 (&global_options, &global_options_set);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Implement TARGET_OPTION_PRINT. */
|
111
gcc10-pr96939-3.patch
Normal file
111
gcc10-pr96939-3.patch
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
2020-09-13 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* config/arm/arm.opt (arm_arch_specified, arm_cpu_specified,
|
||||||
|
arm_tune_specified): New TargetVariables.
|
||||||
|
* config/arm/arm.c (arm_configure_build_target): Comment out
|
||||||
|
opts_set argument name. Use opts->x_arm_*_specified instead
|
||||||
|
of opts_set->x_arm_*_string.
|
||||||
|
* common/config/arm/arm-common.c (arm_handle_option): New function.
|
||||||
|
(TARGET_HANDLE_OPTION): Redefine.
|
||||||
|
|
||||||
|
--- gcc/config/arm/arm.opt.jj 2020-09-12 13:36:27.619716335 +0200
|
||||||
|
+++ gcc/config/arm/arm.opt 2020-09-12 13:38:48.547661292 +0200
|
||||||
|
@@ -30,6 +30,15 @@ const char *x_arm_cpu_string
|
||||||
|
TargetSave
|
||||||
|
const char *x_arm_tune_string
|
||||||
|
|
||||||
|
+TargetVariable
|
||||||
|
+unsigned char arm_arch_specified = 0
|
||||||
|
+
|
||||||
|
+TargetVariable
|
||||||
|
+unsigned char arm_cpu_specified = 0
|
||||||
|
+
|
||||||
|
+TargetVariable
|
||||||
|
+unsigned char arm_tune_specified = 0
|
||||||
|
+
|
||||||
|
Enum
|
||||||
|
Name(tls_type) Type(enum arm_tls_type)
|
||||||
|
TLS dialect to use:
|
||||||
|
--- gcc/config/arm/arm.c.jj 2020-09-12 13:36:27.619716335 +0200
|
||||||
|
+++ gcc/config/arm/arm.c 2020-09-12 13:49:26.166363387 +0200
|
||||||
|
@@ -3181,7 +3181,7 @@ static sbitmap isa_quirkbits;
|
||||||
|
void
|
||||||
|
arm_configure_build_target (struct arm_build_target *target,
|
||||||
|
struct cl_target_option *opts,
|
||||||
|
- struct gcc_options *opts_set,
|
||||||
|
+ struct gcc_options */* opts_set */,
|
||||||
|
bool warn_compatible)
|
||||||
|
{
|
||||||
|
const cpu_option *arm_selected_tune = NULL;
|
||||||
|
@@ -3196,7 +3196,7 @@ arm_configure_build_target (struct arm_b
|
||||||
|
target->core_name = NULL;
|
||||||
|
target->arch_name = NULL;
|
||||||
|
|
||||||
|
- if (opts_set->x_arm_arch_string)
|
||||||
|
+ if (opts->x_arm_arch_specified)
|
||||||
|
{
|
||||||
|
arm_selected_arch = arm_parse_arch_option_name (all_architectures,
|
||||||
|
"-march",
|
||||||
|
@@ -3204,7 +3204,7 @@ arm_configure_build_target (struct arm_b
|
||||||
|
arch_opts = strchr (opts->x_arm_arch_string, '+');
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (opts_set->x_arm_cpu_string)
|
||||||
|
+ if (opts->x_arm_cpu_specified)
|
||||||
|
{
|
||||||
|
arm_selected_cpu = arm_parse_cpu_option_name (all_cores, "-mcpu",
|
||||||
|
opts->x_arm_cpu_string);
|
||||||
|
@@ -3214,7 +3214,7 @@ arm_configure_build_target (struct arm_b
|
||||||
|
options for tuning. */
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (opts_set->x_arm_tune_string)
|
||||||
|
+ if (opts->x_arm_tune_specified)
|
||||||
|
{
|
||||||
|
arm_selected_tune = arm_parse_cpu_option_name (all_cores, "-mtune",
|
||||||
|
opts->x_arm_tune_string);
|
||||||
|
--- gcc/common/config/arm/arm-common.c.jj 2020-07-28 15:39:09.705760394 +0200
|
||||||
|
+++ gcc/common/config/arm/arm-common.c 2020-09-12 13:50:09.021738456 +0200
|
||||||
|
@@ -1021,6 +1021,34 @@ arm_asm_auto_mfpu (int argc, const char
|
||||||
|
|
||||||
|
#undef ARM_CPU_NAME_LENGTH
|
||||||
|
|
||||||
|
+bool
|
||||||
|
+arm_handle_option (struct gcc_options *opts,
|
||||||
|
+ struct gcc_options *opts_set ATTRIBUTE_UNUSED,
|
||||||
|
+ const struct cl_decoded_option *decoded,
|
||||||
|
+ location_t loc ATTRIBUTE_UNUSED)
|
||||||
|
+{
|
||||||
|
+ size_t code = decoded->opt_index;
|
||||||
|
+ const char *arg = decoded->arg;
|
||||||
|
+ int val = decoded->value;
|
||||||
|
+
|
||||||
|
+ switch (code)
|
||||||
|
+ {
|
||||||
|
+ case OPT_march_:
|
||||||
|
+ opts->x_arm_arch_specified = true;
|
||||||
|
+ return true;
|
||||||
|
+
|
||||||
|
+ case OPT_mcpu_:
|
||||||
|
+ opts->x_arm_cpu_specified = true;
|
||||||
|
+ return true;
|
||||||
|
+
|
||||||
|
+ case OPT_mtune_:
|
||||||
|
+ opts->x_arm_tune_specified = true;
|
||||||
|
+ return true;
|
||||||
|
+
|
||||||
|
+ default:
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
|
||||||
|
#undef TARGET_DEFAULT_TARGET_FLAGS
|
||||||
|
#define TARGET_DEFAULT_TARGET_FLAGS (TARGET_DEFAULT | MASK_SCHED_PROLOG)
|
||||||
|
@@ -1031,4 +1059,7 @@ arm_asm_auto_mfpu (int argc, const char
|
||||||
|
#undef TARGET_EXCEPT_UNWIND_INFO
|
||||||
|
#define TARGET_EXCEPT_UNWIND_INFO arm_except_unwind_info
|
||||||
|
|
||||||
|
+#undef TARGET_HANDLE_OPTION
|
||||||
|
+#define TARGET_HANDLE_OPTION arm_handle_option
|
||||||
|
+
|
||||||
|
struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER;
|
64
gcc10-pr96939.patch
Normal file
64
gcc10-pr96939.patch
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
2020-09-07 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR target/96939
|
||||||
|
* config/arm/arm.c (arm_override_options_after_change): Don't call
|
||||||
|
arm_configure_build_target here.
|
||||||
|
(arm_set_current_function): Call arm_override_options_after_change_1
|
||||||
|
at the end.
|
||||||
|
|
||||||
|
* gcc.target/arm/lto/pr96939_0.c: New test.
|
||||||
|
* gcc.target/arm/lto/pr96939_1.c: New file.
|
||||||
|
|
||||||
|
--- gcc/config/arm/arm.c.jj 2020-07-30 15:04:38.136293101 +0200
|
||||||
|
+++ gcc/config/arm/arm.c 2020-09-07 10:43:54.809561852 +0200
|
||||||
|
@@ -3037,10 +3037,6 @@ arm_override_options_after_change_1 (str
|
||||||
|
static void
|
||||||
|
arm_override_options_after_change (void)
|
||||||
|
{
|
||||||
|
- arm_configure_build_target (&arm_active_target,
|
||||||
|
- TREE_TARGET_OPTION (target_option_default_node),
|
||||||
|
- &global_options_set, false);
|
||||||
|
-
|
||||||
|
arm_override_options_after_change_1 (&global_options);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -32338,6 +32334,8 @@ arm_set_current_function (tree fndecl)
|
||||||
|
cl_target_option_restore (&global_options, TREE_TARGET_OPTION (new_tree));
|
||||||
|
|
||||||
|
save_restore_target_globals (new_tree);
|
||||||
|
+
|
||||||
|
+ arm_override_options_after_change_1 (&global_options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Implement TARGET_OPTION_PRINT. */
|
||||||
|
--- gcc/testsuite/gcc.target/arm/lto/pr96939_0.c.jj 2020-09-07 11:26:45.909937609 +0200
|
||||||
|
+++ gcc/testsuite/gcc.target/arm/lto/pr96939_0.c 2020-09-07 11:29:18.722706535 +0200
|
||||||
|
@@ -0,0 +1,15 @@
|
||||||
|
+/* PR target/96939 */
|
||||||
|
+/* { dg-lto-do link } */
|
||||||
|
+/* { dg-require-effective-target arm_arch_v8a_ok } */
|
||||||
|
+/* { dg-lto-options { { -flto -O2 } } } */
|
||||||
|
+
|
||||||
|
+extern unsigned crc (unsigned, const void *);
|
||||||
|
+typedef unsigned (*fnptr) (unsigned, const void *);
|
||||||
|
+volatile fnptr fn;
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main ()
|
||||||
|
+{
|
||||||
|
+ fn = crc;
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
--- gcc/testsuite/gcc.target/arm/lto/pr96939_1.c.jj 2020-09-07 11:26:49.365887153 +0200
|
||||||
|
+++ gcc/testsuite/gcc.target/arm/lto/pr96939_1.c 2020-09-07 11:25:13.885281180 +0200
|
||||||
|
@@ -0,0 +1,10 @@
|
||||||
|
+/* PR target/96939 */
|
||||||
|
+/* { dg-options "-march=armv8-a+crc" } */
|
||||||
|
+
|
||||||
|
+#include <arm_acle.h>
|
||||||
|
+
|
||||||
|
+unsigned
|
||||||
|
+crc (unsigned x, const void *y)
|
||||||
|
+{
|
||||||
|
+ return __crc32cw (x, *(unsigned *) y);
|
||||||
|
+}
|
30
gcc10-rh1574936.patch
Normal file
30
gcc10-rh1574936.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
crt files and statically linked libgcc objects cause false positives
|
||||||
|
in annobin coverage, so we add the assembler flag to generate notes
|
||||||
|
for them.
|
||||||
|
|
||||||
|
The patch also adds notes to libgcc_s.so, but this is harmless because
|
||||||
|
these notes only confer that there is no other annobin markup.
|
||||||
|
|
||||||
|
2018-07-25 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
|
* Makefile.in (LIBGCC2_CFLAGS, CRTSTUFF_CFLAGS): Add
|
||||||
|
-Wa,--generate-missing-build-notes=yes.
|
||||||
|
|
||||||
|
--- libgcc/Makefile.in 2018-01-13 13:05:41.000000000 +0100
|
||||||
|
+++ libgcc/Makefile.in 2018-07-25 13:15:02.036226940 +0200
|
||||||
|
@@ -246,6 +246,7 @@ LIBGCC2_DEBUG_CFLAGS = -g
|
||||||
|
LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
|
||||||
|
$(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \
|
||||||
|
-fbuilding-libgcc -fno-stack-protector \
|
||||||
|
+ -Wa,--generate-missing-build-notes=yes \
|
||||||
|
$(INHIBIT_LIBC_CFLAGS)
|
||||||
|
|
||||||
|
# Additional options to use when compiling libgcc2.a.
|
||||||
|
@@ -301,6 +302,7 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(IN
|
||||||
|
$(NO_PIE_CFLAGS) -finhibit-size-directive -fno-inline -fno-exceptions \
|
||||||
|
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
|
||||||
|
-fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \
|
||||||
|
+ -Wa,--generate-missing-build-notes=yes \
|
||||||
|
$(INHIBIT_LIBC_CFLAGS) $(USE_TM_CLONE_REGISTRY)
|
||||||
|
|
||||||
|
# Extra flags to use when compiling crt{begin,end}.o.
|
40
gcc10-sparc-config-detection.patch
Normal file
40
gcc10-sparc-config-detection.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
--- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500
|
||||||
|
+++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500
|
||||||
|
@@ -2790,7 +2790,7 @@ sparc-*-rtems*)
|
||||||
|
tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
|
||||||
|
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
|
||||||
|
;;
|
||||||
|
-sparc-*-linux*)
|
||||||
|
+sparc-*-linux* | sparcv9-*-linux*)
|
||||||
|
tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
|
||||||
|
extra_options="${extra_options} sparc/long-double-switch.opt"
|
||||||
|
case ${target} in
|
||||||
|
@@ -2844,7 +2844,7 @@ sparc64-*-rtems*)
|
||||||
|
extra_options="${extra_options}"
|
||||||
|
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
|
||||||
|
;;
|
||||||
|
-sparc64-*-linux*)
|
||||||
|
+sparc64*-*-linux*)
|
||||||
|
tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
|
||||||
|
extra_options="${extra_options} sparc/long-double-switch.opt"
|
||||||
|
tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
|
||||||
|
--- libgcc/config.host.jj 2008-04-24 15:46:19.000000000 -0500
|
||||||
|
+++ libgcc/config.host 2008-04-24 15:46:49.000000000 -0500
|
||||||
|
@@ -1002,7 +1002,7 @@ sparc-*-elf*)
|
||||||
|
tmake_file="${tmake_file} t-fdpbit t-crtfm"
|
||||||
|
extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
|
||||||
|
;;
|
||||||
|
-sparc-*-linux*) # SPARC's running GNU/Linux, libc6
|
||||||
|
+sparc-*-linux* | sparcv9-*-linux*) # SPARC's running GNU/Linux, libc6
|
||||||
|
tmake_file="${tmake_file} t-crtfm"
|
||||||
|
if test "${host_address}" = 64; then
|
||||||
|
tmake_file="$tmake_file sparc/t-linux64"
|
||||||
|
@@ -1050,7 +1050,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
|
||||||
|
tmake_file="$tmake_file t-crtfm"
|
||||||
|
extra_parts="$extra_parts crtfastmath.o"
|
||||||
|
;;
|
||||||
|
-sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
|
||||||
|
+sparc64*-*-linux*) # 64-bit SPARC's running GNU/Linux
|
||||||
|
extra_parts="$extra_parts crtfastmath.o"
|
||||||
|
tmake_file="${tmake_file} t-crtfm sparc/t-linux"
|
||||||
|
if test "${host_address}" = 64; then
|
3
sources
Normal file
3
sources
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
SHA512 (gcc-10.2.1-20201005.tar.xz) = f330ba17ed2b3fb3d2eb0f4552055192605d4a762e11e0fdc0b11a29d1309cb36eae60e79863226a0bd51425bde312662272874482748480aad9732770f88f5a
|
||||||
|
SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c
|
||||||
|
SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7
|
9
tests/build_hello_world.sh
Executable file
9
tests/build_hello_world.sh
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
gcc -x c $(rpm --eval %build_cflags) data/hello.c -o hello_c.out
|
||||||
|
./hello_c.out | grep -q "Hello World"
|
||||||
|
|
||||||
|
g++ -x c++ $(rpm --eval %build_cxxflags) data/hello.cpp -o hello_cpp.out
|
||||||
|
./hello_cpp.out | grep -q "Hello World"
|
5
tests/data/hello.c
Normal file
5
tests/data/hello.c
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
int main() {
|
||||||
|
printf("Hello World!\n");
|
||||||
|
return 0;
|
||||||
|
}
|
5
tests/data/hello.cpp
Normal file
5
tests/data/hello.cpp
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#include <iostream>
|
||||||
|
int main() {
|
||||||
|
std::cout << "Hello World!\n";
|
||||||
|
return 0;
|
||||||
|
}
|
14
tests/tests.yml
Normal file
14
tests/tests.yml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
|
||||||
|
required_packages:
|
||||||
|
- redhat-rpm-config
|
||||||
|
- annobin
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- build_hello_world:
|
||||||
|
dir: .
|
||||||
|
run: "./build_hello_world.sh"
|
7
update-gcc.sh
Executable file
7
update-gcc.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
[ -d gcc-dir.tmp ] && echo gcc-dir.tmp already exists && exit 1
|
||||||
|
git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
|
||||||
|
git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1
|
||||||
|
d=`date --iso | sed 's/-//g'`
|
||||||
|
git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-10.2.1-$d/ $1 | xz -9e > gcc-10.2.1-$d.tar.xz
|
||||||
|
rm -rf gcc-dir.tmp
|
Loading…
Reference in New Issue
Block a user