Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to devel-xorg-modular grimoire by Florian Franzmann (1cb736df373aeef91e076cf1bb290bd37e8893e3)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Florian Franzmann <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to devel-xorg-modular grimoire by Florian Franzmann (1cb736df373aeef91e076cf1bb290bd37e8893e3)
  • Date: Sat, 14 Jun 2014 16:03:10 -0500

GIT changes to devel-xorg-modular grimoire by Florian Franzmann
<siflfran AT hawo.stw.uni-erlangen.de>:

gnu/gcc/BUILD | 60 ++++++++++++++++++++++------
gnu/gcc/CONFIGURE | 4 +
gnu/gcc/DEPENDS | 12 +----
gnu/gcc/DETAILS | 20 ++++++++-
gnu/gcc/HISTORY | 14 ++++++
gnu/gcc/PRE_BUILD | 21 ++++++++-
gnu/gcc/gcc-4.8-filename-output.patch | 17 +++++++
gnu/gcc/gcc-4.9-tree-ssa-threadedge.patch | 38 +++++++++++++++++
gnu/gcc/gcc-4.9.0-upstream_fixes-1.patch | 64
++++++++++++++++++++++++++++++
9 files changed, 225 insertions(+), 25 deletions(-)

New commits:
commit 1cb736df373aeef91e076cf1bb290bd37e8893e3
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

gnu/gcc: filter -pipe from cflags

commit 9b4e31a0cebd8a8f67db9f78fb1f1ad538a3757c
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

gnu/gcc: build libquadmath if building with support for fortran

commit 686349d99f916e9852421a3c79225c77f67cf9e0
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

gnu/gcc: add dependencies on libxt, libx11, libxproto if building awt

commit 243f3be46fc4d333744b86d6d6e815641c89bc2e
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

gnu/gcc: add option for compiling in the cloog-isl optimizer

commit 67e5bade0298fc899cb7842290d799900e8c1aa6
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

gnu/gcc: use ecj.jar if building java compiler

commit 0b54cc0471d935d4890cb943fa7e7922d72d8328
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

gnu/gcc: use gcc 4.9 based ada bootstrapper for x86_64

commit a15f2768459a7c38d38193d5d9c8a872980d1364
Author: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>

gnu/gcc: add bugfixes from upstream

diff --git a/gnu/gcc/BUILD b/gnu/gcc/BUILD
index 7657ba2..8567d4c 100755
--- a/gnu/gcc/BUILD
+++ b/gnu/gcc/BUILD
@@ -1,3 +1,22 @@
+# using -pipe causes spurious test-suite failures
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565
+CFLAGS=${CFLAGS/-pipe/} &&
+CXXFLAGS=${CXXFLAGS/-pipe/} &&
+
+if list_find "$GCC_COMPILER" "java"; then
+ OPTS+=" --enable-libgcj" &&
+ OPTS+=" --disable-plugin"
+else
+ OPTS+=" --disable-libgcj" &&
+ OPTS+=" --enable-plugin"
+fi &&
+
+if list_find "$GCC_COMPILER" "fortran"; then
+ OPTS+=" --enable-libquadmath"
+else
+ OPTS+=" --disable-libquadmath"
+fi &&
+
persistent_read gmp GMP_BUILD_ARCH GMP_BUILD_ARCH &&
persistent_read mpfr MPFR_BUILD_ARCH MPFR_BUILD_ARCH &&

@@ -13,7 +32,7 @@ fi &&
# install gcc libraries to /lib instead of /lib64
sedit "s/lib64/lib/" gcc/config/i386/linux64.h &&
# tell gcc to target binaries to expect the linker in /lib instead of /lib64
-sedit "s/lib64/lib/" gcc/config/i386/t-linux64
+sedit "s/lib64/lib/" gcc/config/i386/t-linux64 &&

if [[ "$ARCHITECTURE" == "pentium4" ||
"$ARCHITECTURE" == "pentium-m" ]]; then
@@ -61,19 +80,36 @@ if list_find "$GCC_COMPILER" "ada" ; then

fi &&

-OPTS="--without-ppl --without-cloog $GCJ_HOME $OPTS" &&
+OPTS="$GCJ_HOME $OPTS" &&
+OPTS="--prefix=${INSTALL_ROOT}/usr $OPTS" &&
+OPTS="--libdir=${INSTALL_ROOT}/usr/lib $OPTS" &&
+OPTS="--libexecdir=${INSTALL_ROOT}/usr/lib $OPTS" &&
+OPTS="--mandir=${INSTALL_ROOT}/usr/share/man $OPTS" &&
+OPTS="--infodir=${INSTALL_ROOT}/usr/share/info $OPTS" &&
+OPTS="--with-bugurl=http://bugs.sourcemage.org $OPTS" &&
+OPTS="--enable-languages=$(echo ${GCC_COMPILER} | tr " " ","),lto $OPTS" &&
+OPTS="--enable-shared $OPTS" &&
+OPTS="--enable-threads=posix $OPTS" &&
+OPTS="--enable-__cxa_atexit $OPTS" &&
+OPTS="--enable-clocale=gnu $OPTS" &&
+OPTS="--disable-libstdcxx-pch $OPTS" &&
+OPTS="--enable-bootstrap $OPTS" &&
+OPTS="--enable-gnu-unique-object $OPTS" &&
+OPTS="--enable-linker-build-id $OPTS" &&
+if [[ "$GCC_CLOOG" == "y" ]]; then
+ OPTS="--enable-cloog-backend=isl $OPTS" &&
+ OPTS="--disable-isl-version-check $OPTS"
+else
+ OPTS="--without-cloog $OPTS"
+fi &&
+OPTS="--enable-lto $OPTS" &&
+OPTS="--with-linker-hash-style=gnu $OPTS" &&
+OPTS="--disable-werror $OPTS" &&
+OPTS="--enable-checking=release $OPTS" &&
+OPTS="$GCC_MULTILIB" &&

cd $SOURCE_DIRECTORY.bld &&
-$SOURCE_DIRECTORY/configure \
- --prefix=${INSTALL_ROOT}/usr \
- --infodir=${INSTALL_ROOT}/usr/share/info \
- --mandir=${INSTALL_ROOT}/usr/share/man \
- --enable-threads=posix \
- --enable-languages=$(echo ${GCC_COMPILER} | tr " " ",") \
- --with-bugurl=http://bugs.sourcemage.org \
- --enable-bootstrap \
- --enable-checking=release \
- $GCC_MULTILIB $OPTS &&
+$SOURCE_DIRECTORY/configure $OPTS &&

if [[ "$GCC_TARGET" == "profiledbootstrap" ]] ||
[[ "$GCC_TARGET" == "profiledbootstrap-lean" ]] ; then
diff --git a/gnu/gcc/CONFIGURE b/gnu/gcc/CONFIGURE
index 687f348..24460d1 100755
--- a/gnu/gcc/CONFIGURE
+++ b/gnu/gcc/CONFIGURE
@@ -11,4 +11,6 @@ config_query_list GCC_TARGET "Select what build to use" \
if list_find "$GCC_COMPILER" "java" ; then
config_query GCJ_AWT "Do you want support for AWT (requires gtk+2 and
libart_lgpl)?" n &&
config_query_option GCJ_HOME "Add JDK Tree emulation?" n
"--enable-java-home" ""
-fi
+fi &&
+
+config_query GCC_CLOOG "Use cloog loop vectorizer?" y
diff --git a/gnu/gcc/DEPENDS b/gnu/gcc/DEPENDS
index fdd144a..051b978 100755
--- a/gnu/gcc/DEPENDS
+++ b/gnu/gcc/DEPENDS
@@ -6,6 +6,9 @@ if list_find "$GCC_COMPILER" "java" ; then

if [[ $GCJ_AWT == y ]]; then
depends gtk+2 '--enable-java-awt=gtk' &&
+ depends libxt &&
+ depends libx11 &&
+ depends libxproto &&
depends libart_lgpl &&
depends libxtst
fi
@@ -19,15 +22,6 @@ depends smgl-fhs &&
depends smgl-archspecs &&
depends zlib "--with-system-zlib" &&

-#optional_depends cloog-ppl \
-# "--with-cloog --disable-cloog-version-check" \
-# "--without-cloog" \
-# "use Graphite high-level memory optimizations?" &&
-#if is_depends_enabled $SPELL cloog-ppl ; then
-# depends ppl "--with-ppl --enable-cloog-backend=ppl"
-#fi &&
-
-
optional_depends gettext \
"--enable-nls" \
"--disable-nls" \
diff --git a/gnu/gcc/DETAILS b/gnu/gcc/DETAILS
index a88a811..62e3ac5 100755
--- a/gnu/gcc/DETAILS
+++ b/gnu/gcc/DETAILS
@@ -11,6 +11,24 @@ SOURCE_DIRECTORY=$BUILD_DIRECTORY/gcc-$VERSION
SOURCE_GPG=gnu.gpg:$SOURCE.sig:UPSTREAM_KEY
SOURCE2_IGNORE=signature

+if [[ "$GCC_CLOOG" == "y" ]]; then
+ CLOOG_VERSION=0.18.1
+ SOURCE3=cloog-${CLOOG_VERSION}.tar.gz
+ SOURCE3_URL[0]=ftp://gcc.gnu.org/pub/gcc/infrastructure/${SOURCE3}
+
SOURCE3_HASH=sha512:0b12d9f3c39a2425e28e1d7c0a2b3787287fe3e6e3052f094d2ab6cffeb205ce19044100cbfd805659b3e6b3d21ac2f5a3c92848f476de54edfe6b1cbd2172e9
+
+ ISL_VERSION=0.12.2
+ SOURCE4=isl-${ISL_VERSION}.tar.bz2
+ SOURCE4_URL[0]=ftp://gcc.gnu.org/pub/gcc/infrastructure/${SOURCE4}
+
SOURCE4_HASH=sha512:b5dea4d6b504fac22f2d8cd9c47d6896994d3966635a514d45010243db44cfbc009574b808f3587f35d91de629110bc11b52941d4075e21f8646c59656e62aea
+fi
+
+if list_find "$GCC_COMPILER" "java"; then
+ SOURCE5=ecj-$(echo $VERSION|cut -f1,2 -d.).jar
+ SOURCE5_URL[0]=ftp://sourceware.org/pub/java/${SOURCE5}
+
SOURCE5_HASH=sha512:28f8c6fdbcb19e950b1d0bafb3bcc7a8cba87bc673aa6027cece116599cdee80f0cf5e95a1440544890239f5c754e8a93ab46d9daedd937faef445d7ea33b226
+fi
+
if list_find "$GCC_COMPILER" "ada" ; then

# howto generate the ada bootstraper
@@ -33,7 +51,7 @@ then
SOURCE13=ada-$VERSION13-i686-pc-linux-gnu.tar.bz2
elif [[ "${SMGL_COMPAT_ARCHS[1]}" == "x86_64" ]]
then
- VERSION13=4.3.3
+ VERSION13=4.9.0
SOURCE13=ada-$VERSION13-x86_64-pc-linux-gnu.tar.bz2
else
VERSION13=4.7.1
diff --git a/gnu/gcc/HISTORY b/gnu/gcc/HISTORY
index 96e20a5..63362e6 100644
--- a/gnu/gcc/HISTORY
+++ b/gnu/gcc/HISTORY
@@ -1,3 +1,17 @@
+2014-06-14 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
+ * PRE_BUILD,
+ gcc-4.8-filename-output.patch,
+ gcc-4.9.0-upstream_fixes-1.patch,
+ gcc-4.9-tree-ssa-threadedge.patch: add bugfixes from upstream
+ * DETAILS: use gcc 4.9 based ada bootstrapper for x86_64
+ * BUILD, DETAILS, PRE_BUILD: download and use ecj.jar
+ * BUILD, CONFIGURE, DEPENDS, DETAILS, PRE_BUILD:
+ add option for building the cloog-isl optimizer
+ * DEPENDS: add dependencies on libxt, libx11 and libxproto if
+ building awt
+ * BUILD: build libquadmath if building with support for fortran
+ * BUILD: filter -pipe from CFLAGS
+
2014-04-29 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: version 4.9.0

diff --git a/gnu/gcc/PRE_BUILD b/gnu/gcc/PRE_BUILD
index 7d25765..fee0ffa 100755
--- a/gnu/gcc/PRE_BUILD
+++ b/gnu/gcc/PRE_BUILD
@@ -22,6 +22,19 @@ if list_find "$GCC_COMPILER" "ada" ; then
#
fi &&

+cd ${SOURCE_DIRECTORY} &&
+
+if [[ "$GCC_CLOOG" == "y" ]]; then
+ unpack_file 3 &&
+ mv cloog-${CLOOG_VERSION} cloog &&
+ unpack_file 4 &&
+ mv isl-${ISL_VERSION} isl
+fi
+
+if list_find "$GCC_COMPILER" "java"; then
+ cp ${SOURCE_CACHE}/${SOURCE5} ${SOURCE_DIRECTORY}/ecj.jar
+fi &&
+
mk_source_dir $SOURCE_DIRECTORY.bld &&
cd $SOURCE_DIRECTORY &&

@@ -34,5 +47,9 @@ if list_find "$GCC_COMPILER" "go"; then
patch -p1 < "$SPELL_DIRECTORY/0003-fix-header-generation-for-libgo.patch"
fi &&

-patch -p1 < "$SPELL_DIRECTORY/0002-4.8.0-ffast-math.patch" &&
-patch -p1 < "$SPELL_DIRECTORY/0001-remove-libffi.patch"
+patch -p1 < "$SPELL_DIRECTORY/0002-4.8.0-ffast-math.patch" &&
+patch -p1 < "$SPELL_DIRECTORY/0001-remove-libffi.patch" &&
+patch -p0 < "$SPELL_DIRECTORY/gcc-4.8-filename-output.patch" &&
+patch -p1 < "$SPELL_DIRECTORY/gcc-4.9-tree-ssa-threadedge.patch" &&
+patch -p1 < "$SPELL_DIRECTORY/gcc-4.9.0-upstream_fixes-1.patch"
+
diff --git a/gnu/gcc/gcc-4.8-filename-output.patch
b/gnu/gcc/gcc-4.8-filename-output.patch
new file mode 100644
index 0000000..6951eb2
--- /dev/null
+++ b/gnu/gcc/gcc-4.8-filename-output.patch
@@ -0,0 +1,17 @@
+--- gcc/c-family/c-opts.c (revision 200330)
++++ gcc/c-family/c-opts.c (working copy)
+@@ -1338,10 +1338,14 @@ c_finish_options (void)
+
+ /* Give CPP the next file given by -include, if any. */
+ static void
+ push_command_line_include (void)
+ {
++ // This can happen if disabled by -imacros for example.
++ if (include_cursor > deferred_count)
++ return;
++
+ if (!done_preinclude)
+ {
+ done_preinclude = true;
+ if (flag_hosted && std_inc && !cpp_opts->preprocessed)
+ {
diff --git a/gnu/gcc/gcc-4.9-tree-ssa-threadedge.patch
b/gnu/gcc/gcc-4.9-tree-ssa-threadedge.patch
new file mode 100644
index 0000000..8827427
--- /dev/null
+++ b/gnu/gcc/gcc-4.9-tree-ssa-threadedge.patch
@@ -0,0 +1,38 @@
+--- trunk/gcc/tree-ssa-threadedge.c 2014/04/23 17:53:56 209715
++++ trunk/gcc/tree-ssa-threadedge.c 2014/04/23 18:04:46 209716
+@@ -387,7 +387,34 @@
+ && (gimple_code (stmt) != GIMPLE_CALL
+ || gimple_call_lhs (stmt) == NULL_TREE
+ || TREE_CODE (gimple_call_lhs (stmt)) != SSA_NAME))
+- continue;
++ {
++ /* STMT might still have DEFS and we need to invalidate any known
++ equivalences for them.
++
++ Consider if STMT is a GIMPLE_ASM with one or more outputs that
++ feeds a conditional inside a loop. We might derive an
equivalence
++ due to the conditional. */
++ tree op;
++ ssa_op_iter iter;
++
++ if (backedge_seen)
++ FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_DEF)
++ {
++ /* This call only invalidates equivalences created by
++ PHI nodes. This is by design to keep the cost of
++ of invalidation reasonable. */
++ invalidate_equivalences (op, stack, src_map, dst_map);
++
++ /* However, conditionals can imply values for real
++ operands as well. And those won't be recorded in the
++ maps. In fact, those equivalences may be recorded totally
++ outside the threading code. We can just create a new
++ temporary NULL equivalence here. */
++ record_temporary_equivalence (op, NULL_TREE, stack);
++ }
++
++ continue;
++ }
+
+ /* The result of __builtin_object_size depends on all the arguments
+ of a phi node. Temporarily using only one edge produces invalid
diff --git a/gnu/gcc/gcc-4.9.0-upstream_fixes-1.patch
b/gnu/gcc/gcc-4.9.0-upstream_fixes-1.patch
new file mode 100644
index 0000000..c3d80e8
--- /dev/null
+++ b/gnu/gcc/gcc-4.9.0-upstream_fixes-1.patch
@@ -0,0 +1,64 @@
+Submitted By: Armin K. <krejzi at email dot com>
+Date: 2014-05-10
+Initial Package Version: 4.9.0
+Upstream Status: Fixed Upstream
+Origin: Upstream VCS
+Description: Prevents compiler from generating broken code that
would cause
+ some programs to segfault or behave incorrectly
when compiled
+ with gcc-4.9.0
+
+--- a/gcc/ipa-devirt.c 2014-04-08 07:35:11.000000000 +0200
++++ b/gcc/ipa-devirt.c 2014-05-10 16:46:14.502859179 +0200
+@@ -987,6 +987,17 @@
+ context->outer_type = expected_type;
+ context->offset = 0;
+ context->maybe_derived_type = true;
++ context->maybe_in_construction = true;
++ /* POD can be changed to an instance of a polymorphic type by
++ placement new. Here we play safe and assume that any
++ non-polymorphic type is POD. */
++ if ((TREE_CODE (type) != RECORD_TYPE
++ || !TYPE_BINFO (type)
++ || !polymorphic_type_binfo_p (TYPE_BINFO (type)))
++ && (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST
++ || (offset + tree_to_uhwi (TYPE_SIZE (expected_type)) <=
++ tree_to_uhwi (TYPE_SIZE (type)))))
++ return true;
+ return false;
+ }
+
+--- a/gcc/testsuite/g++.dg/ipa/devirt-11.C 2013-09-08 18:42:21.000000000
+0200
++++ b/gcc/testsuite/g++.dg/ipa/devirt-11.C 2014-05-10 16:46:14.503859198
+0200
+@@ -45,5 +45,5 @@
+ /* While inlining function called once we should devirtualize a new call to
fn2
+ and two to fn3. While doing so the new symbol for fn2 needs to be
+ introduced. */
+-/* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known
target" 3 "inline" } } */
++/* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known
target" 1 "inline" } } */
+ /* { dg-final { cleanup-ipa-dump "inline" } } */
+--- a/gcc/testsuite/g++.dg/ipa/devirt-31.C 1970-01-01 01:00:00.000000000
+0100
++++ b/gcc/testsuite/g++.dg/ipa/devirt-31.C 2014-05-10 16:46:14.503859198
+0200
+@@ -0,0 +1,23 @@
++/* { dg-options "-O2 -std=c++11 -fdump-ipa-inline" } */
++#include <new>
++
++class EmbeddedObject {
++public:
++ virtual int val() { return 2; }
++};
++
++class Container {
++ alignas(EmbeddedObject) char buffer[sizeof(EmbeddedObject)];
++public:
++ EmbeddedObject *obj() { return (EmbeddedObject*)buffer; }
++ Container() { new (buffer) EmbeddedObject(); }
++};
++
++Container o;
++
++int main()
++{
++ __builtin_printf("%d\n", o.obj()->val());
++}
++/* { dg-final { scan-ipa-dump-not "__builtin_unreachable" "inline" } } */
++/* { dg-final { cleanup-ipa-dump "inline" } } */



  • [SM-Commit] GIT changes to devel-xorg-modular grimoire by Florian Franzmann (1cb736df373aeef91e076cf1bb290bd37e8893e3), Florian Franzmann, 06/14/2014

Archive powered by MHonArc 2.6.24.

Top of Page