gcc$base_ver-testresults.spec
echo '%define building_libffi 1' > libffi$base_ver.spec
sed -e '/^# LIBFFI-DELETE-BEGIN/,/^# LIBFFI-DELETE-END/d;s/^Name:[[:space:]]*gcc/Name: libffi/g' \
gcc.spec.in \
| sed -e 's%@base_ver@%'$base_ver'%g' \
| sed -n -e '{
/^# PACKAGE-BEGIN/h
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/H
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/!p
/^# PACKAGE-END/{g
s/@variant@//g
Hello community,
here is the log from the commit of package gcc47 for openSUSE:Factory checked in at 2012-03-16 13:10:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gcc47 (Old)
and /work/SRC/openSUSE:Factory/.gcc47.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gcc47", Maintainer is ""
Changes:
--------
New Changes file:
--- /dev/null 2012-03-04 14:46:25.491534019 +0100
+++ /work/SRC/openSUSE:Factory/.gcc47.new/gcc47-testresults.changes 2012-03-16 13:10:30.000000000 +0100
@@ -0,0 +1,70 @@
+-------------------------------------------------------------------
+Wed Feb 29 09:03:10 UTC 2012 - rguenther@suse.com
+
+- Fixup more SPDX license issues.
+
+-------------------------------------------------------------------
+Tue Feb 28 13:10:03 UTC 2012 - rguenther@suse.com
+
+- Update to SVN trunk head (r184624).
+- Merge changes from GCC 4.6 package.
+
+-------------------------------------------------------------------
+Fri Feb 24 09:35:29 UTC 2012 - rguenther@suse.com
+
+- Update to SVN trunk head (r184541).
+
+-------------------------------------------------------------------
+Tue Feb 21 13:05:10 UTC 2012 - rguenther@suse.com
+
+- Update to SVN trunk head (r184435).
+- Merge changes from GCC 4.6 package.
+- Add patches for PR49484 and PR52080.
+
+-------------------------------------------------------------------
+Wed Feb 8 11:14:05 UTC 2012 - rguenther@suse.com
+
+- Update to SVN trunk head (r184004).
+
+-------------------------------------------------------------------
+Tue Jan 31 10:35:44 UTC 2012 - rguenther@suse.com
+
+- Update to SVN trunk head (r183753).
+- Merge changes from GCC 4.6 package.
+
+-------------------------------------------------------------------
+Tue Jan 24 14:46:07 UTC 2012 - rguenther@suse.com
+
+- Drop AWT support from libgcj. [bnc#742935]
+
+-------------------------------------------------------------------
+Wed Jan 18 14:48:06 UTC 2012 - rguenther@suse.com
+
+- Update to SVN trunk head (r183273).
+
+-------------------------------------------------------------------
+Wed Jan 11 11:51:29 UTC 2012 - rguenther@suse.com
+
+- Update to SVN trunk head (r183092).
+- Merge changes from GCC 4.6 package.
+
+-------------------------------------------------------------------
+Wed Jan 4 13:36:37 UTC 2012 - rguenther@suse.com
+
+- Update to SVN trunk head (r182872).
+
+-------------------------------------------------------------------
+Tue Dec 20 10:48:33 UTC 2011 - rguenther@suse.com
+
+- Update to SVN trunk head (r182525).
+
+-------------------------------------------------------------------
+Sun Dec 18 11:10:32 UTC 2011 - adrian@suse.de
+
+- fix file list for arm architecture
+
+-------------------------------------------------------------------
+Thu Nov 3 15:23:33 UTC 2011 - rguenther@suse.com
+
+- New package.
+
New Changes file:
gcc47.changes: same change
New Changes file:
libffi47.changes: same change
New Changes file:
libgcj47.changes: same change
New:
----
README.First-for.SuSE.packagers
Wunprototyped-calls.diff
baselibs.conf
change_spec
check-build.sh
cross-icecream.spec.in
cross.spec.in
ecj.jar
gcc-4.7.0-20120228.tar.bz2
gcc-add-defaultsspec.diff
gcc-dir-version.patch
gcc-noalias-warn.diff
gcc-sles-version.patch
gcc.spec.in
gcc4-ppc64-m32-m64-multilib-only.patch
gcc41-ia64-stack-protector.patch
gcc41-java-slow_pthread_self.patch
gcc41-ppc32-retaddr.patch
gcc43-no-unwind-tables.diff
gcc44-rename-info-files.patch
gcc44-textdomain.patch
gcc47-rpmlintrc
gcc47-testresults.changes
gcc47-testresults.spec
gcc47.changes
gcc47.spec
libffi47.changes
libffi47.spec
libgcj47-rpmlintrc
libgcj47.changes
libgcj47.spec
libjava-no-multilib.diff
pr33763.diff
pr49484.diff
pr52080.diff
pre_checkin.sh
program-transform-name.diff
sap303956-uchar.diff
suse-record-gcc-opts.diff
tls-no-direct.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gcc47-testresults.spec ++++++
++++ 702 lines (skipped)
gcc47.spec: same change
libffi47.spec: same change
libgcj47.spec: same change
++++++ README.First-for.SuSE.packagers ++++++
IMPORTANT: Please change gcc.spec.in and then run ./pre_checkin.sh!
Do not change gcc.spec directly!
Since GCC comes with a testsuite that runs for quite a long time and
that test suite also contains some known failures, we should run the
testsuite of GCC whenever the compiler is changed to ensure a high
quality compiler.
The package is now split into multiple parts, gcc$VER, libgcj$VER,
gcc$VER-testresults and libffi$VER (plus various spec files for
cross and icecream cross compilers). The testsuite is run from
gcc$VER-testresults, a dummy package with the testresults, gcc$VER-testresults,
is generated from it which contains testing logfiles and summary.
Before checking in a new compiler, please do the following steps as QA
measure to check that the new compiler does not introduce any new
failures:
- Run mbuild for all archs for at least the gcc$VER and the gcc$VER-testresults
subpackages
- When mbuild is finished, call
/suse/rguenther/bin/compare-testresults.sh mbuild-directory
(for the gcc$VER-testresults build).
The output of that script should not show any failures. If it does,
please fix them or discuss this with the gcc package maintainers.
- Do not remove this file.
Thanks,
Your GCC packagers.
++++++ Wunprototyped-calls.diff ++++++
Index: gcc/c-family/c.opt
===================================================================
*** gcc/c-family/c.opt.orig 2012-02-07 11:33:52.000000000 +0100
--- gcc/c-family/c.opt 2012-02-08 12:54:08.000000000 +0100
*************** Wunused-local-typedefs
*** 665,670 ****
--- 665,674 ----
C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning
Warn when typedefs locally defined in a function are not used
+ Wunprototyped-calls
+ C Var(warn_unprototyped_calls) Warning
+ Warn about calls to unprototyped functions with at least one argument
+
Wunused-macros
C ObjC C++ ObjC++ Warning
Warn about macros defined in the main file that are not used
Index: gcc/testsuite/gcc.dg/cleanup-1.c
===================================================================
*** gcc/testsuite/gcc.dg/cleanup-1.c.orig 2010-02-23 12:43:21.000000000 +0100
--- gcc/testsuite/gcc.dg/cleanup-1.c 2012-02-08 12:54:08.000000000 +0100
***************
*** 6,12 ****
#define C(x) __attribute__((cleanup(x)))
static int f1(void *x U) { return 0; }
! static void f2() { }
static void f3(void) { } /* { dg-message "note: declared here" } */
static void f4(void *x U) { }
static void f5(int *x U) { }
--- 6,12 ----
#define C(x) __attribute__((cleanup(x)))
static int f1(void *x U) { return 0; }
! static void f2() { } /* { dg-message "declared here" "" } */
static void f3(void) { } /* { dg-message "note: declared here" } */
static void f4(void *x U) { }
static void f5(int *x U) { }
*************** static void f9(int x U) { } /* { dg-mess
*** 18,24 ****
void test(void)
{
int o1 C(f1);
! int o2 C(f2);
int o3 C(f3); /* { dg-error "too many arguments" } */
int o4 C(f4);
int o5 C(f5);
--- 18,24 ----
void test(void)
{
int o1 C(f1);
! int o2 C(f2); /* { dg-warning "without a real prototype" } */
int o3 C(f3); /* { dg-error "too many arguments" } */
int o4 C(f4);
int o5 C(f5);
Index: gcc/c-typeck.c
===================================================================
*** gcc/c-typeck.c.orig 2012-02-07 11:34:02.000000000 +0100
--- gcc/c-typeck.c 2012-02-08 12:54:08.000000000 +0100
*************** build_function_call_vec (location_t loc,
*** 2823,2828 ****
--- 2823,2841 ----
&& !check_builtin_function_arguments (fundecl, nargs, argarray))
return error_mark_node;
+ /* If we cannot check function arguments because a prototype is
+ missing for the callee, warn here. */
+ if (warn_unprototyped_calls
+ && nargs > 0 && !TYPE_ARG_TYPES (fntype)
+ && fundecl && !DECL_BUILT_IN (fundecl) && !C_DECL_IMPLICIT (fundecl)
+ && !DECL_ARGUMENTS (fundecl))
+ {
+ if (warning (OPT_Wunprototyped_calls,
+ "call to function %qD without a real prototype", fundecl))
+ inform (DECL_SOURCE_LOCATION (fundecl), "%qD was declared here",
+ fundecl);
+ }
+
/* Check that the arguments to the function are valid. */
check_function_arguments (fntype, nargs, argarray);
Index: gcc/c-family/c-opts.c
===================================================================
*** gcc/c-family/c-opts.c.orig 2012-01-18 15:23:58.000000000 +0100
--- gcc/c-family/c-opts.c 2012-02-08 12:54:08.000000000 +0100
*************** c_common_handle_option (size_t scode, co
*** 392,397 ****
--- 392,398 ----
can turn it off only if it's not explicit. */
if (warn_main == -1)
warn_main = (value ? 2 : 0);
+ warn_unprototyped_calls = 1;
/* In C, -Wall turns on -Wenum-compare, which we do here.
In C++ it is on by default, which is done in
++++++ baselibs.conf ++++++
targettype x86 package libgcc47
targettype x86 package libstdc++47
libgcj47
requires "libgcj47"
libgcj47-devel
gcc47-gij
requires "libgcj47-<targettype>"
+/usr/bin/gij-4.7 -> /usr/bin/gij<extension>-4.7
+/usr/bin/grmiregistry-4.7 -> /usr/bin/grmiregistry<extension>-4.7
++++++ change_spec ++++++
#!/bin/bash
do_icecream=0
do_cross_static=0
do_cross_shared=0
do_optional_compiler=0
do_optional_compiler_languages=0
rm -f libgcj*.spec libgcj*.changes libffi*.spec libffi*.changes gcc*-testresults.spec gcc*-testresults.changes gcc*.spec cross*.spec cross*.changes
# Default is to generate the normal gcc package
# unless a parameter is given. In case that it is '-*',
# that parameter will be used as suffix for the package name
# and as suffix for the install path (/opt/gccSUFFIX)
# In case that it is '[0-9]*', that parameter will be used
# as a suffix for a versioned package name.
if [ $# -lt 1 ]; then
outfile=gcc.spec
else
case $1 in
[0-9]*)
base_ver=$1
outfile=gcc$1.spec
;;
*)
exit 1
;;
esac
fi
echo -n > $outfile
if test "$do_optional_compiler" = "1"; then
echo '%define run_tests 1' >> $outfile
echo '%define build_optional_compiler 1' >> $outfile
fi
if test "$do_optional_compiler_languages" = "1"; then
echo '%define run_tests 1' >> $outfile
echo '%define build_optional_compiler_languages 1' >> $outfile
fi
sed -e 's%@base_ver@%'$base_ver'%g' \
gcc.spec.in \
| sed -n -e '{
/^# PACKAGE-BEGIN/h
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/H
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/!p
/^# PACKAGE-END/{g
s/@variant@//g
p
g
s/@variant@/-32bit/g
p
g
s/@variant@/-64bit/g
p
}
}' >> $outfile
if test "$do_optional_compiler" = "0"; then
if test "$do_optional_compiler_languages" = "0"; then
echo '%define building_libjava 1' > libgcj$base_ver.spec
sed -e '/^# LIBJAVA-DELETE-BEGIN/,/^# LIBJAVA-DELETE-END/d;s/-n libgcj@base_ver@$//g;s/^Name:[[:space:]]*gcc/Name: libgcj/g' \
gcc.spec.in \
| sed -e 's%@base_ver@%'$base_ver'%g' \
| sed -n -e '{
/^# PACKAGE-BEGIN/h
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/H
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/!p
/^# PACKAGE-END/{g
s/@variant@//g
p
g
s/@variant@/-32bit/g
p
g
s/@variant@/-64bit/g
p
}
}' >> libgcj$base_ver.spec
echo '%define building_testsuite 1' > gcc$base_ver-testresults.spec
echo '%define run_tests 1' >> gcc$base_ver-testresults.spec
sed -e '/^# GCC-TESTSUITE-DELETE-BEGIN/,/^# GCC-TESTSUITE-DELETE-END/d;s/-n gcc@base_ver@-testresults$//g;s/^Name:[[:space:]]*gcc@base_ver@/Name: gcc@base_ver@-testresults/g' \
gcc.spec.in \
| sed -e 's%@base_ver@%'$base_ver'%g' \
p
g
s/@variant@/-32bit/g
p
g
s/@variant@/-64bit/g
p
}
}' \
| sed -e '/^%package -n libffi'$base_ver'$/d' \
| sed -e 's/-n libffi'$base_ver'$//g' \
libffi$base_ver.spec
test -f gcc$base_ver.changes \
&& ( ln -f gcc$base_ver.changes libgcj$base_ver.changes; \
ln -f gcc$base_ver.changes libffi$base_ver.changes; \
ln -f gcc$base_ver.changes gcc$base_ver-testresults.changes; )
fi
fi
# disabled: mips, sparc, alpha
if test "$do_icecream" = 1 ; then
for arch in hppa i386 x86_64 s390 s390x ppc ppc64 ia64 armv7l armv5el; do
{ sed -n -e '1,/COMMON-BEGIN/p' cross-icecream.spec.in
sed -n -e '/COMMON-BEGIN/,/COMMON-END/p' $outfile
sed -n -e '/COMMON-END/,$p' cross-icecream.spec.in; } |
sed -e "s#@cross_arch@#$arch#" > cross-$arch-gcc-icecream-backend.spec
test -f gcc$base_ver.changes && ln -f gcc$base_ver.changes cross-$arch-gcc-icecream-backend.changes
done
fi
export outfile
if test "$do_cross_shared" = 1 ; then
# shared cross
for arch in ; do
base_ver=$base_ver cross_arch=$arch sh cross.spec.in > cross-$arch-gcc$base_ver.spec
test -f gcc$base_ver.changes && ln -f gcc$base_ver.changes cross-$arch-gcc$base_ver.changes
done
fi
if test "$do_cross_static" = 1 ; then
# static crosses
for arch in ; do
echo '%define build_static 1' > cross-$arch-gcc$base_ver-static.spec
base_ver=$base_ver cross_arch=$arch name_suffix="-static" sh cross.spec.in >> cross-$arch-gcc$base_ver-static.spec
test -f gcc$base_ver.changes && ln -f gcc$base_ver.changes cross-$arch-gcc$base_ver-static.changes
done
# # avr is static but wants the non-static versioned name
# echo '%define build_static 1' > cross-avr-gcc$base_ver.spec
# base_ver=$base_ver cross_arch=avr sh cross.spec.in >> cross-avr-gcc$base_ver.spec
# test -f gcc$base_ver.changes && ln -f gcc$base_ver.changes cross-avr-gcc$base_ver.changes
fi
exit 0
++++++ check-build.sh ++++++
#!/bin/bash
# Copyright (c) 2003,2005 SUSE Linux Products GmbH, Germany. All rights reserved.
#
# Authors: Thorsten Kukuk
#
# this script use the following variable(s):
#
# - $BUILD_BASENAME
#
case $BUILD_BASENAME in
*ppc*)
# Our biarch 32-bit compiler needs to be build on a 64-bit machine,
# otherwise some configure checks fail.
# Note that we cannot use uname here since powerpc32 was invoked
# already.
grep 'series64\|ppc64' /proc/version > /dev/null
if [ $? -ne 0 ] ; then
echo "build does not work on `hostname` for gcc"
exit 1
fi
;;
*x86_64*)
#if [ `ulimit -v` -le 740000 ] ; then
# echo "build does not work on ("`hostname`" for gcc)"
# exit 1
#fi
if [ `getconf _NPROCESSORS_CONF` -lt 2 ] ; then
echo "build does not work on `hostname` for gcc"
exit 1
fi
;;
*)
;;
esac
exit 0
++++++ cross-icecream.spec.in ++++++
#
# spec file for package gcc (Version 4.0.1)
#
# Copyright (c) 2005 SUSE Linux AG, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://www.suse.de/feedback/
#
# norootforbuild
%define build_cp 1
%define build_ada 0
%define build_libjava 0
%define build_java 0
%define build_fortran 0
%define build_objc 0
%define build_objcp 0
%define build_nof 0
%define build_with_mudflap 0
%define gcc_target_arch @cross_arch@-suse-linux
%define gcc_icecream 1
%define binutils_target @cross_arch@
%if %{binutils_target} == "armv7l"
%define binutils_target arm
%endif
%if %{binutils_target} == "arm5el"
%define binutils_target arm
%endif
Name: cross-@cross_arch@-gcc-icecream-backend
BuildRequires: bison flex gettext-devel glibc-devel-32bit mpfr-devel perl texinfo zlib-devel mpc-devel
BuildRequires: cross-%{binutils_target}-binutils
%ifarch %ix86 x86_64 ppc ppc64 s390 s390x ia64 %sparc
BuildRequires: cloog-devel ppl-devel libelf-devel
%endif
%ifarch ia64
BuildRequires: libunwind-devel
%endif
ExclusiveArch: ppc ppc64 %ix86 x86_64 ia64
%define _binary_payload w.ufdio
# COMMON-BEGIN
# COMMON-END
make %{?jobs:-j%jobs} all-gcc TARGET-gcc="cc1 cc1plus gcc-cross g++ native"
%install
cd obj-%{GCCDIST}
rm -rf $RPM_BUILD_ROOT
make -C gcc DESTDIR=$RPM_BUILD_ROOT/inst install-driver install-common
make DESTDIR=$RPM_BUILD_ROOT/inst maybe-install-lto-plugin
# But the assembler comes from the cross-binutils, and hence is _not_
# named funnily, not even on ppc, so there we need the original target
install -s -D %{_prefix}/bin/%{binutils_target}-linux-as \
$RPM_BUILD_ROOT/env/usr/bin/as
install -s $RPM_BUILD_ROOT/inst%{_prefix}/bin/%{CONFIGURE_TARGET}-g++ \
$RPM_BUILD_ROOT/env/usr/bin/g++
install -s $RPM_BUILD_ROOT/inst%{_prefix}/bin/%{CONFIGURE_TARGET}-gcc \
$RPM_BUILD_ROOT/env/usr/bin/gcc
%define targetlibsubdir %{_libdir}/gcc/%{CONFIGURE_TARGET}/%{gcc_dir_version}
for back in cc1 cc1plus; do
install -s -D $RPM_BUILD_ROOT/inst%{targetlibsubdir}/$back \
$RPM_BUILD_ROOT/env%{targetlibsubdir}/$back
done
if test -f $RPM_BUILD_ROOT/inst%{targetlibsubdir}/liblto_plugin.so; then
install -s -D $RPM_BUILD_ROOT/inst%{targetlibsubdir}/liblto_plugin.so \
$RPM_BUILD_ROOT/env%{targetlibsubdir}/liblto_plugin.so
fi
libs=`for bin in $RPM_BUILD_ROOT/env/usr/bin/* $RPM_BUILD_ROOT/env%{targetlibsubdir}/*; do \
ldd $bin | sed -n '\,^[^/]*\(/[^ ]*\).*,{ s//\1/; p; }' ;\
done | sort -u `
for lib in $libs; do
# Check wether the same library also exists in the parent directory,
# and prefer that on the assumption that it is a more generic one.
baselib=`echo "$lib" | sed 's,/[^/]*\(/[^/]*\)$,\1,'`
test -f "$baselib" && lib=$baselib
install -s -D $lib $RPM_BUILD_ROOT/env$lib
done
rm -rf $RPM_BUILD_ROOT/inst
cd $RPM_BUILD_ROOT/env
tar cvzf ../%{name}_%{_arch}.tar.gz *
cd ..
mkdir -p usr/share/icecream-envs
mv %{name}_%{_arch}.tar.gz usr/share/icecream-envs
rpm -q --changelog glibc > usr/share/icecream-envs/%{name}_%{_arch}.glibc
rpm -q --changelog binutils > usr/share/icecream-envs/%{name}_%{_arch}.binutils
rm -r env
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
/usr/share/icecream-envs
%changelog -n cross-@cross_arch@-gcc-icecream-backend
++++++ cross.spec.in ++++++
#! /bin/sh
#
# call this via pre_checkin.sh
#
# 2005-05-09, jw@suse.de
test -z "$cross_arch" && echo 1>&2 "Error: $0 needs environment variable 'cross_arch'"
test -z "$outfile" && echo 1>&2 "Error: $0 needs environment variable 'outfile'"
cross_arch_cpu=`echo $cross_arch | sed -e 's/\([^-]*\)-\?.*/\1/'`
cat << EOF
#
# spec file for package gcc (Version 4.0.1)
#
# Copyright (c) 2005 SUSE Linux AG, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://www.suse.de/feedback/
#
# norootforbuild
%define build_cp 1
%define build_ada 0
%define build_java 0
%define build_libjava 0
%define build_fortran 0
%define build_objc 0
%define build_objcp 0
%define build_nof 0
%define build_with_mudflap 0
%define gcc_target_arch $cross_arch
%if "$cross_arch" == "spu"
%define build_fortran 1
%endif
%if 0%{?build_static:1}
%define build_fortran 0
%endif
Name: cross-$cross_arch-gcc$base_ver$name_suffix
BuildRequires: bison flex mpfr-devel zlib-devel mpc-devel
%ifarch %ix86 x86_64 ppc ppc64 s390 s390x ia64 %sparc
BuildRequires: cloog-devel ppl-devel libelf-devel
%endif
BuildRequires: cross-$cross_arch_cpu-binutils
%if "$cross_arch" == "spu"
%if 0%{?build_static:1}
BuildRequires: cross-$cross_arch_cpu-newlib-headers
%else
BuildRequires: cross-$cross_arch_cpu-newlib
%endif
Requires: cross-$cross_arch_cpu-newlib
%endif
Requires: cross-$cross_arch_cpu-binutils
# Suffixed gcc conflicts with unsuffixed gcc
%if "$name_suffix" == ""
%else
Conflicts: cross-$cross_arch_cpu-gcc$base_ver
%endif
%define _prefix /opt/cross
EOF
sed -n -e '/COMMON-BEGIN/,/COMMON-END/p' $outfile | sed -n -e '1,/%description/p'
cat << EOF
This compiler supports the C language on $cross_arch microprocessors.
Also install cross-$cross_arch-binutils and $cross_arch-libc.
EOF
sed -n -e '/%description/,$p' $outfile | sed -n -e '/COMMON-BEGIN/,/COMMON-END/p'
cat << EOF
make %{?jobs:-j%jobs}
%install
cd obj-%{GCCDIST}
make install DESTDIR=\$RPM_BUILD_ROOT
rm -rf \$RPM_BUILD_ROOT%{_prefix}/share
rm -f \$RPM_BUILD_ROOT%{_prefix}/bin/*-gccbug
find \$RPM_BUILD_ROOT -name libiberty.a | xargs rm
%clean
rm -rf \$RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%{_prefix}
EOF
++++++ gcc-add-defaultsspec.diff ++++++
Index: gcc/gcc.c
===================================================================
--- gcc/gcc.c.orig 2011-11-03 16:27:42.000000000 +0100
+++ gcc/gcc.c 2011-11-03 17:08:03.000000000 +0100
@@ -260,6 +260,7 @@ static const char *replace_outfile_spec_
static const char *remove_outfile_spec_function (int, const char **);
static const char *version_compare_spec_function (int, const char **);
static const char *include_spec_function (int, const char **);
+static const char *include_noerr_spec_function (int, const char **);
static const char *find_file_spec_function (int, const char **);
static const char *find_plugindir_spec_function (int, const char **);
static const char *print_asm_header_spec_function (int, const char **);
@@ -1247,6 +1248,7 @@ static const struct spec_function static
{ "remove-outfile", remove_outfile_spec_function },
{ "version-compare", version_compare_spec_function },
{ "include", include_spec_function },
+ { "include_noerr", include_noerr_spec_function },
{ "find-file", find_file_spec_function },
{ "find-plugindir", find_plugindir_spec_function },
{ "print-asm-header", print_asm_header_spec_function },
@@ -6240,6 +6242,8 @@ main (int argc, char **argv)
if (access (specs_file, R_OK) == 0)
read_specs (specs_file, TRUE);
+ do_self_spec ("%:include_noerr(defaults.spec)%(default_spec)");
+
/* Process any configure-time defaults specified for the command line
options, via OPTION_DEFAULT_SPECS. */
for (i = 0; i < ARRAY_SIZE (option_default_specs); i++)
@@ -8088,6 +8092,21 @@ get_random_number (void)
return ret ^ getpid();
}
+static const char *
+include_noerr_spec_function (int argc, const char **argv)
+{
+ char *file;
+
+ if (argc != 1)
+ abort ();
+
+ file = find_a_file (&startfile_prefixes, argv[0], R_OK, 0);
+ if (file)
+ read_specs (file, FALSE);
+
+ return NULL;
+}
+
/* %:compare-debug-dump-opt spec function. Save the last argument,
expected to be the last -fdump-final-insns option, or generate a
temporary. */
++++++ gcc-dir-version.patch ++++++
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in.orig 2011-11-08 16:23:29.000000000 +0100
+++ gcc/Makefile.in 2011-11-09 11:59:34.000000000 +0100
@@ -792,12 +792,14 @@ GTM_H = tm.h $(tm_file_list) in
TM_H = $(GTM_H) insn-flags.h $(OPTIONS_H)
# Variables for version information.
-BASEVER := $(srcdir)/BASE-VER # 4.x.y
+BASEVER := $(srcdir)/BASE-VER # 4.x
+FULLVER := $(srcdir)/FULL-VER # 4.x.y
DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, ""
DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty
REVISION := $(srcdir)/REVISION # [BRANCH revision XXXXXX]
BASEVER_c := $(shell cat $(BASEVER))
+FULLVER_c := $(shell cat $(FULLVER))
DEVPHASE_c := $(shell cat $(DEVPHASE))
DATESTAMP_c := $(shell cat $(DATESTAMP))
@@ -816,6 +818,7 @@ version := $(BASEVER_c)
# (i.e. if DEVPHASE_c is empty). The space immediately after the
# comma in the $(if ...) constructs is significant - do not remove it.
BASEVER_s := "\"$(BASEVER_c)\""
+FULLVER_s := "\"$(FULLVER_c)\""
DEVPHASE_s := "\"$(if $(DEVPHASE_c), ($(DEVPHASE_c)))\""
DATESTAMP_s := "\"$(if $(DEVPHASE_c), $(DATESTAMP_c))\""
PKGVERSION_s:= "\"@PKGVERSION@\""
@@ -2146,11 +2149,11 @@ options-save.o: options-save.c $(CONFIG_
dumpvers: dumpvers.c
-CFLAGS-version.o += -DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \
+CFLAGS-version.o += -DBASEVER=$(FULLVER_s) -DDATESTAMP=$(DATESTAMP_s) \
-DREVISION=$(REVISION_s) \
-DDEVPHASE=$(DEVPHASE_s) -DPKGVERSION=$(PKGVERSION_s) \
-DBUGURL=$(BUGURL_s)
-version.o: version.c version.h $(REVISION) $(DATESTAMP) $(BASEVER) $(DEVPHASE)
+version.o: version.c version.h $(REVISION) $(DATESTAMP) $(FULLVER) $(DEVPHASE)
gtype-desc.o: gtype-desc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(HASHTAB_H) $(SPLAY_TREE_H) $(OBSTACK_H) $(BITMAP_H) \
@@ -2736,10 +2739,10 @@ common/common-targhooks.o : common/commo
coretypes.h $(INPUT_H) $(TM_H) $(COMMON_TARGET_H) common/common-targhooks.h
bversion.h: s-bversion; @true
-s-bversion: BASE-VER
- echo "#define BUILDING_GCC_MAJOR `echo $(BASEVER_c) | sed -e 's/^\([0-9]*\).*$$/\1/'`" > bversion.h
- echo "#define BUILDING_GCC_MINOR `echo $(BASEVER_c) | sed -e 's/^[0-9]*\.\([0-9]*\).*$$/\1/'`" >> bversion.h
- echo "#define BUILDING_GCC_PATCHLEVEL `echo $(BASEVER_c) | sed -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\)$$/\1/'`" >> bversion.h
+s-bversion: FULL-VER
+ echo "#define BUILDING_GCC_MAJOR `echo $(FULLVER_c) | sed -e 's/^\([0-9]*\).*$$/\1/'`" > bversion.h
+ echo "#define BUILDING_GCC_MINOR `echo $(FULLVER_c) | sed -e 's/^[0-9]*\.\([0-9]*\).*$$/\1/'`" >> bversion.h
+ echo "#define BUILDING_GCC_PATCHLEVEL `echo $(FULLVER_c) | sed -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\)$$/\1/'`" >> bversion.h
echo "#define BUILDING_GCC_VERSION (BUILDING_GCC_MAJOR * 1000 + BUILDING_GCC_MINOR)" >> bversion.h
$(STAMP) s-bversion
@@ -3811,9 +3814,9 @@ build/%.o : # dependencies provided by
## build/version.o is compiled by the $(COMPILER_FOR_BUILD) but needs
## several C macro definitions, just like version.o
build/version.o: version.c version.h \
- $(REVISION) $(DATESTAMP) $(BASEVER) $(DEVPHASE)
+ $(REVISION) $(DATESTAMP) $(FULLVER) $(DEVPHASE)
$(COMPILER_FOR_BUILD) -c $(BUILD_COMPILERFLAGS) $(BUILD_CPPFLAGS) \
- -DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \
+ -DBASEVER=$(FULLVER_s) -DDATESTAMP=$(DATESTAMP_s) \
-DREVISION=$(REVISION_s) \
-DDEVPHASE=$(DEVPHASE_s) -DPKGVERSION=$(PKGVERSION_s) \
-DBUGURL=$(BUGURL_s) -o $@ $<
@@ -3988,7 +3991,7 @@ PREPROCESSOR_DEFINES = \
-DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
@TARGET_SYSTEM_ROOT_DEFINE@
-CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s)
+CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(FULLVER_s)
cppbuiltin.o: cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(TREE_H) cppbuiltin.h Makefile
@@ -4008,8 +4011,8 @@ build/gcov-iov$(build_exeext): build/gco
build/gcov-iov.o -o $@
gcov-iov.h: s-iov
-s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
- build/gcov-iov$(build_exeext) '$(BASEVER_c)' '$(DEVPHASE_c)' \
+s-iov: build/gcov-iov$(build_exeext) $(FULLVER) $(DEVPHASE)
+ build/gcov-iov$(build_exeext) '$(FULLVER_c)' '$(DEVPHASE_c)' \
> tmp-gcov-iov.h
$(SHELL) $(srcdir)/../move-if-change tmp-gcov-iov.h gcov-iov.h
$(STAMP) s-iov
Index: libjava/Makefile.am
===================================================================
--- libjava/Makefile.am.orig 2011-11-03 16:30:42.000000000 +0100
+++ libjava/Makefile.am 2011-11-09 11:59:34.000000000 +0100
@@ -774,7 +774,7 @@ install_data_local_split = 50
install-data-local:
$(PRE_INSTALL)
## Install the .pc file.
- @pc_version=`echo $(GCJVERSION) | sed -e 's/[.][^.]*$$//'`; \
+ @pc_version=`echo $(GCJVERSION)`; \
file="libgcj-$${pc_version}.pc"; \
$(mkinstalldirs) $(DESTDIR)$(pkgconfigdir); \
echo " $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file"; \
Index: libjava/Makefile.in
===================================================================
--- libjava/Makefile.in.orig 2011-11-03 16:31:17.000000000 +0100
+++ libjava/Makefile.in 2011-11-09 11:59:34.000000000 +0100
@@ -12411,7 +12411,7 @@ install-exec-hook: install-binPROGRAMS i
@BUILD_ECJ1_TRUE@ mv $(DESTDIR)$(libexecsubdir)/`echo ecjx | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` $(DESTDIR)$(libexecsubdir)/ecj1$(host_exeext)
install-data-local:
$(PRE_INSTALL)
- @pc_version=`echo $(GCJVERSION) | sed -e 's/[.][^.]*$$//'`; \
+ @pc_version=`echo $(GCJVERSION)`; \
file="libgcj-$${pc_version}.pc"; \
$(mkinstalldirs) $(DESTDIR)$(pkgconfigdir); \
echo " $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file"; \
Index: libjava/testsuite/lib/libjava.exp
===================================================================
--- libjava/testsuite/lib/libjava.exp.orig 2011-04-18 12:48:54.000000000 +0200
+++ libjava/testsuite/lib/libjava.exp 2011-11-09 11:59:34.000000000 +0100
@@ -177,7 +177,7 @@ proc libjava_init { args } {
set text [eval exec "$GCJ_UNDER_TEST -B$specdir -v 2>@ stdout"]
regexp " version \[^\n\r\]*" $text version
- set libjava_version [lindex $version 1]
+ set libjava_version 4.7
verbose "version: $libjava_version"
Index: gcc/cppbuiltin.c
===================================================================
--- gcc/cppbuiltin.c.orig 2011-03-14 15:04:06.000000000 +0100
+++ gcc/cppbuiltin.c 2012-01-24 10:22:18.000000000 +0100
@@ -38,9 +38,9 @@ parse_basever (int *major, int *minor, i
static int s_major = -1, s_minor, s_patchlevel;
if (s_major == -1)
- if (sscanf (BASEVER, "%d.%d.%d", &s_major, &s_minor, &s_patchlevel) != 3)
+ if (sscanf (version_string, "%d.%d.%d", &s_major, &s_minor, &s_patchlevel) != 3)
{
- sscanf (BASEVER, "%d.%d", &s_major, &s_minor);
+ sscanf (version_string, "%d.%d", &s_major, &s_minor);
s_patchlevel = 0;
}
++++++ gcc-noalias-warn.diff ++++++
Index: boehm-gc/finalize.c
===================================================================
--- boehm-gc/finalize.c.orig 2007-03-11 13:17:59.000000000 +0100
+++ boehm-gc/finalize.c 2010-07-01 16:26:16.000000000 +0200
@@ -165,6 +165,7 @@ signed_word * log_size_ptr;
int index;
struct disappearing_link * new_dl;
DCL_LOCK_STATE;
+ struct disappearing_link *** dl_head_adr = &dl_head;
if ((word)link & (ALIGNMENT-1))
ABORT("Bad arg to GC_general_register_disappearing_link");
@@ -177,7 +178,7 @@ signed_word * log_size_ptr;
# ifndef THREADS
DISABLE_SIGNALS();
# endif
- GC_grow_table((struct hash_chain_entry ***)(&dl_head),
+ GC_grow_table((struct hash_chain_entry ***)dl_head_adr,
&log_dl_table_size);
# ifdef CONDPRINT
if (GC_print_stats) {
@@ -348,6 +349,7 @@ finalization_mark_proc * mp;
struct finalizable_object *new_fo;
hdr *hhdr;
DCL_LOCK_STATE;
+ struct finalizable_object *** fo_head_adr = &fo_head;
# ifdef THREADS
DISABLE_SIGNALS();
@@ -358,7 +360,7 @@ finalization_mark_proc * mp;
# ifndef THREADS
DISABLE_SIGNALS();
# endif
- GC_grow_table((struct hash_chain_entry ***)(&fo_head),
+ GC_grow_table((struct hash_chain_entry ***)fo_head_adr,
&log_fo_table_size);
# ifdef CONDPRINT
if (GC_print_stats) {
++++++ gcc-sles-version.patch ++++++
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in.orig 2011-11-03 17:00:43.000000000 +0100
+++ gcc/Makefile.in 2011-11-03 17:01:28.000000000 +0100
@@ -2145,7 +2145,7 @@ dumpvers: dumpvers.c
CFLAGS-version.o += -DBASEVER=$(FULLVER_s) -DDATESTAMP=$(DATESTAMP_s) \
-DREVISION=$(REVISION_s) \
- -DDEVPHASE=$(DEVPHASE_s) -DPKGVERSION=$(PKGVERSION_s) \
+ -DDEVPHASE="" -DPKGVERSION=$(PKGVERSION_s) \
-DBUGURL=$(BUGURL_s)
version.o: version.c version.h $(REVISION) $(DATESTAMP) $(FULLVER) $(DEVPHASE)
++++++ gcc.spec.in ++++++
++++ 2300 lines (skipped)
++++++ gcc4-ppc64-m32-m64-multilib-only.patch ++++++
Index: gcc/config/rs6000/t-linux64
===================================================================
--- gcc/config/rs6000/t-linux64.orig 2011-11-03 16:27:34.000000000 +0100
+++ gcc/config/rs6000/t-linux64 2011-11-03 17:08:21.000000000 +0100
@@ -26,10 +26,10 @@
# it doesn't tell anything about the 32bit libraries on those systems. Set
# MULTILIB_OSDIRNAMES according to what is found on the target.
-MULTILIB_OPTIONS = m64/m32 msoft-float
-MULTILIB_DIRNAMES = 64 32 nof
+MULTILIB_OPTIONS = m64/m32
+MULTILIB_DIRNAMES = 64 32
MULTILIB_EXTRA_OPTS = fPIC mstrict-align
-MULTILIB_EXCEPTIONS = m64/msoft-float
-MULTILIB_EXCLUSIONS = m64/!m32/msoft-float
+MULTILIB_EXCEPTIONS =
+MULTILIB_EXCLUSIONS =
MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) nof
MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT)
++++++ gcc41-ia64-stack-protector.patch ++++++
2005-07-08 Jakub Jelinek
* config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Define to 1 if
-fstack-protect.
* config/ia64/ia64.c (ia64_compute_frame_size): Make sure
size is a multiple of 16 if FRAME_GROWS_DOWNWARD.
(ia64_initial_elimination_offset): Support FRAME_GROWS_DOWNWARD
layout.
* config/ia64/linux.h (TARGET_LIBC_PROVIDES_SSP): Define.
* config/ia64/ia64.md (stack_protect_set, stack_protect_test): New
expanders.
Index: gcc/config/ia64/linux.h
===================================================================
--- gcc/config/ia64/linux.h.orig 2011-11-03 16:27:28.000000000 +0100
+++ gcc/config/ia64/linux.h 2011-11-04 11:39:46.000000000 +0100
@@ -77,6 +77,11 @@ do { \
#undef LINK_EH_SPEC
#define LINK_EH_SPEC ""
+#ifdef TARGET_LIBC_PROVIDES_SSP
+/* IA-64 glibc provides __stack_chk_guard in [r13-8]. */
+#define TARGET_THREAD_SSP_OFFSET -8
+#endif
+
/* Put all *tf routines in libgcc. */
#undef LIBGCC2_HAS_TF_MODE
#define LIBGCC2_HAS_TF_MODE 1
Index: gcc/config/ia64/ia64.c
===================================================================
--- gcc/config/ia64/ia64.c.orig 2011-11-03 16:27:28.000000000 +0100
+++ gcc/config/ia64/ia64.c 2011-11-04 11:39:47.000000000 +0100
@@ -2797,6 +2797,9 @@ ia64_compute_frame_size (HOST_WIDE_INT s
else
pretend_args_size = crtl->args.pretend_args_size;
+ if (FRAME_GROWS_DOWNWARD)
+ size = IA64_STACK_ALIGN (size);
+
total_size = (spill_size + extra_spill_size + size + pretend_args_size
+ crtl->outgoing_args_size);
total_size = IA64_STACK_ALIGN (total_size);
@@ -2829,32 +2832,19 @@ ia64_can_eliminate (const int from ATTRI
HOST_WIDE_INT
ia64_initial_elimination_offset (int from, int to)
{
- HOST_WIDE_INT offset;
+ HOST_WIDE_INT offset, size = get_frame_size ();
- ia64_compute_frame_size (get_frame_size ());
+ ia64_compute_frame_size (size);
switch (from)
{
case FRAME_POINTER_REGNUM:
- switch (to)
- {
- case HARD_FRAME_POINTER_REGNUM:
- if (current_function_is_leaf)
- offset = -current_frame_info.total_size;
- else
- offset = -(current_frame_info.total_size
- - crtl->outgoing_args_size - 16);
- break;
-
- case STACK_POINTER_REGNUM:
- if (current_function_is_leaf)
- offset = 0;
- else
- offset = 16 + crtl->outgoing_args_size;
- break;
-
- default:
- gcc_unreachable ();
- }
+ offset = FRAME_GROWS_DOWNWARD ? IA64_STACK_ALIGN (size) : 0;
+ if (!current_function_is_leaf)
+ offset += 16 + crtl->outgoing_args_size;
+ if (to == HARD_FRAME_POINTER_REGNUM)
+ offset -= current_frame_info.total_size;
+ else
+ gcc_assert (to == STACK_POINTER_REGNUM);
break;
case ARG_POINTER_REGNUM:
Index: gcc/config/ia64/ia64.md
===================================================================
--- gcc/config/ia64/ia64.md.orig 2011-11-03 16:27:28.000000000 +0100
+++ gcc/config/ia64/ia64.md 2011-11-04 11:39:47.000000000 +0100
@@ -5180,6 +5180,43 @@
"mov %0 = ip"
[(set_attr "itanium_class" "frbr")])
+;;
+;; Stack guard expanders
+
+(define_expand "stack_protect_set"
+ [(set (match_operand 0 "memory_operand" "")
+ (match_operand 1 "memory_operand" ""))]
+ ""
+{
+#ifdef TARGET_THREAD_SSP_OFFSET
+ rtx thread_pointer_rtx = gen_rtx_REG (Pmode, 13);
+ rtx canary = gen_rtx_MEM (Pmode, gen_rtx_PLUS (Pmode, thread_pointer_rtx,
+ GEN_INT (TARGET_THREAD_SSP_OFFSET)));
+ MEM_VOLATILE_P (canary) = MEM_VOLATILE_P (operands[1]);
+ operands[1] = canary;
+#endif
+ emit_move_insn (operands[0], operands[1]);
+ DONE;
+})
+
+(define_expand "stack_protect_test"
+ [(match_operand 0 "memory_operand" "")
+ (match_operand 1 "memory_operand" "")
+ (match_operand 2 "" "")]
+ ""
+{
+#ifdef TARGET_THREAD_SSP_OFFSET
+ rtx thread_pointer_rtx = gen_rtx_REG (Pmode, 13);
+ rtx canary = gen_rtx_MEM (Pmode, gen_rtx_PLUS (Pmode, thread_pointer_rtx,
+ GEN_INT (TARGET_THREAD_SSP_OFFSET)));
+ MEM_VOLATILE_P (canary) = MEM_VOLATILE_P (operands[1]);
+ operands[1] = canary;
+#endif
+ emit_cmp_and_jump_insns (operands[0], operands[1], EQ, NULL_RTX,
+ ptr_mode, 1, operands[2]);
+ DONE;
+})
+
;; Vector operations
(include "vect.md")
;; Atomic operations
Index: gcc/config/ia64/ia64.h
===================================================================
--- gcc/config/ia64/ia64.h.orig 2011-04-28 15:02:22.000000000 +0200
+++ gcc/config/ia64/ia64.h 2011-11-04 11:39:47.000000000 +0100
@@ -872,7 +872,7 @@ enum reg_class
/* Define this macro to nonzero if the addresses of local variable slots
are at negative offsets from the frame pointer. */
-#define FRAME_GROWS_DOWNWARD 0
+#define FRAME_GROWS_DOWNWARD (flag_stack_protect != 0)
/* Offset from the frame pointer to the first local variable slot to
be allocated. */
++++++ gcc41-java-slow_pthread_self.patch ++++++
2005-05-20 Jakub Jelinek
* configure.host (slow_pthread_self): Set to empty unconditionally
on Linux targets.
Index: libjava/configure.host
===================================================================
--- libjava/configure.host.orig 2011-11-03 16:30:42.000000000 +0100
+++ libjava/configure.host 2011-11-04 11:39:57.000000000 +0100
@@ -227,6 +227,7 @@ case "${host}" in
sh-linux* | sh[34]*-linux*)
can_unwind_signal=yes
libgcj_ld_symbolic='-Wl,-Bsymbolic'
+ slow_pthread_self=
if test x$slow_pthread_self = xyes \
&& test x$cross_compiling != xyes; then
cat > conftest.c <
* config/rs6000/rs6000.c (rs6000_return_addr): If COUNT == 0,
read word RETURN_ADDRESS_OFFSET bytes above arg_pointer_rtx
instead of doing an extran indirection from frame_pointer_rtx.
* gcc.dg/20051128-1.c: New test.
Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c.orig 2011-11-03 16:27:33.000000000 +0100
+++ gcc/config/rs6000/rs6000.c 2011-11-04 11:40:05.000000000 +0100
@@ -18653,17 +18653,22 @@ rs6000_return_addr (int count, rtx frame
don't try to be too clever here. */
if (count != 0 || (DEFAULT_ABI != ABI_AIX && flag_pic))
{
+ rtx x;
cfun->machine->ra_needs_full_frame = 1;
- return
- gen_rtx_MEM
- (Pmode,
- memory_address
- (Pmode,
- plus_constant (copy_to_reg
- (gen_rtx_MEM (Pmode,
- memory_address (Pmode, frame))),
- RETURN_ADDRESS_OFFSET)));
+ if (count == 0)
+ {
+ gcc_assert (frame == frame_pointer_rtx);
+ x = arg_pointer_rtx;
+ }
+ else
+ {
+ x = memory_address (Pmode, frame);
+ x = copy_to_reg (gen_rtx_MEM (Pmode, x));
+ }
+
+ x = plus_constant (x, RETURN_ADDRESS_OFFSET);
+ return gen_rtx_MEM (Pmode, memory_address (Pmode, x));
}
cfun->machine->ra_need_lr = 1;
Index: gcc/testsuite/gcc.dg/20051128-1.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gcc/testsuite/gcc.dg/20051128-1.c 2011-11-04 11:40:05.000000000 +0100
@@ -0,0 +1,41 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fpic" } */
+
+extern void exit (int);
+extern void abort (void);
+
+int b;
+
+struct A
+{
+ void *pad[147];
+ void *ra, *h;
+ long o;
+};
+
+void
+__attribute__((noinline))
+foo (struct A *a, void *x)
+{
+ __builtin_memset (a, 0, sizeof (a));
+ if (!b)
+ exit (0);
+}
+
+void
+__attribute__((noinline))
+bar (void)
+{
+ struct A a;
+
+ __builtin_unwind_init ();
+ foo (&a, __builtin_return_address (0));
+}
+
+int
+main (void)
+{
+ bar ();
+ abort ();
+ return 0;
+}
++++++ gcc43-no-unwind-tables.diff ++++++
Index: libgcc/Makefile.in
===================================================================
--- libgcc/Makefile.in.orig 2011-11-03 16:29:25.000000000 +0100
+++ libgcc/Makefile.in 2011-11-03 17:21:33.000000000 +0100
@@ -279,7 +279,7 @@ INTERNAL_CFLAGS = $(CFLAGS) $(LIBGCC2_CF
CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
-finhibit-size-directive -fno-inline -fno-exceptions \
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
- -fno-stack-protector \
+ -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables \
$(INHIBIT_LIBC_CFLAGS)
# Extra flags to use when compiling crt{begin,end}.o.
++++++ gcc44-rename-info-files.patch ++++++
++++ 922 lines (skipped)
++++++ gcc44-textdomain.patch ++++++
#! /bin/sh -e
# DP: Set gettext's domain and textdomain to the versioned package name.
dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
pdir="-d $3"
dir="$3/"
elif [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch)
patch $pdir -f --no-backup-if-mismatch -p0 < $0
;;
-unpatch)
patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
esac
exit 0
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in.orig 2011-11-08 17:43:16.000000000 +0100
+++ gcc/Makefile.in 2011-11-08 17:43:23.000000000 +0100
@@ -5209,8 +5209,8 @@ install-po:
dir=$(localedir)/$$lang/LC_MESSAGES; \
echo $(mkinstalldirs) $(DESTDIR)$$dir; \
$(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \
- echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \
- $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \
+ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-4.7.mo; \
+ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-4.7.mo; \
done
# Rule for regenerating the message template (gcc.pot).
Index: gcc/intl.c
===================================================================
--- gcc/intl.c.orig 2010-12-06 12:01:18.000000000 +0100
+++ gcc/intl.c 2011-11-08 17:43:23.000000000 +0100
@@ -56,8 +56,8 @@ gcc_init_libintl (void)
setlocale (LC_ALL, "");
#endif
- (void) bindtextdomain ("gcc", LOCALEDIR);
- (void) textdomain ("gcc");
+ (void) bindtextdomain ("gcc-4.7", LOCALEDIR);
+ (void) textdomain ("gcc-4.7");
/* Opening quotation mark. */
open_quote = _("`");
Index: libcpp/Makefile.in
===================================================================
--- libcpp/Makefile.in.orig 2011-11-08 16:24:10.000000000 +0100
+++ libcpp/Makefile.in 2011-11-08 17:44:28.000000000 +0100
@@ -49,6 +49,7 @@ LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
PACKAGE = @PACKAGE@
+PACKAGE_SUFFIX = -4.7
RANLIB = @RANLIB@
SHELL = @SHELL@
USED_CATALOGS = @USED_CATALOGS@
@@ -73,8 +74,10 @@ INCLUDES = -I$(srcdir) -I. -I$(srcdir)/.
-I$(srcdir)/include
ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS)
+ALL_CFLAGS += -DPACKAGE_SUFFIX=\"$(strip $(PACKAGE_SUFFIX))\"
ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(NOEXCEPTION_FLAGS) $(INCLUDES) \
$(CPPFLAGS)
+ALL_CXXFLAGS += -DPACKAGE_SUFFIX=\"$(strip $(PACKAGE_SUFFIX))\"
# The name of the compiler to use.
ENABLE_BUILD_WITH_CXX = @ENABLE_BUILD_WITH_CXX@
@@ -170,8 +173,8 @@ install-strip install: all installdirs
else continue; \
fi; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
- echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
- $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
+ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(PACKAGE_SUFFIX).mo; \
+ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(PACKAGE_SUFFIX).mo; \
done
mostlyclean:
Index: libcpp/system.h
===================================================================
--- libcpp/system.h.orig 2011-11-03 16:30:43.000000000 +0100
+++ libcpp/system.h 2011-11-08 17:43:23.000000000 +0100
@@ -273,7 +273,7 @@ extern int errno;
#endif
#ifndef _
-# define _(msgid) dgettext (PACKAGE, msgid)
+# define _(msgid) dgettext (PACKAGE PACKAGE_SUFFIX, msgid)
#endif
#ifndef N_
Index: libcpp/init.c
===================================================================
--- libcpp/init.c.orig 2011-11-03 16:30:43.000000000 +0100
+++ libcpp/init.c 2011-11-08 17:43:23.000000000 +0100
@@ -140,7 +140,7 @@ init_library (void)
init_trigraph_map ();
#ifdef ENABLE_NLS
- (void) bindtextdomain (PACKAGE, LOCALEDIR);
+ (void) bindtextdomain (PACKAGE PACKAGE_SUFFIX, LOCALEDIR);
#endif
}
}
++++++ gcc47-rpmlintrc ++++++
# This line is mandatory to access the configuration functions
from Config import *
addFilter ("libgomp.*shlib-policy-name-error")
addFilter ("libgcc.*shlib-policy-name-error")
addFilter ("libgfortran.*shlib-policy-name-error")
addFilter ("libquadmath.*shlib-policy-name-error")
addFilter ("libobjc.*shlib-policy-name-error")
addFilter ("libstdc.*shlib-policy-name-error")
addFilter ("gcc47.*devel-dependency glibc-devel")
addFilter ("gcc47-c.*devel-dependency libstdc")
++++++ libgcj47-rpmlintrc ++++++
# This line is mandatory to access the configuration functions
from Config import *
addFilter ("libgcj_bc47.*shlib-policy-name-error")
++++++ libjava-no-multilib.diff ++++++
Index: libjava/configure
===================================================================
--- libjava/configure.orig 2011-11-03 16:31:17.000000000 +0100
+++ libjava/configure 2011-11-03 17:08:27.000000000 +0100
@@ -3364,6 +3364,26 @@ else
fi
+# Default to --enable-libjava-multilib
+# Check whether --enable-libjava-multilib or --disable-libjava-multilib was given.
+if test "${enable_libjava_multilib+set}" = set; then
+ enableval="$enable_libjava_multilib"
+ case "${enableval}" in
+ yes) multilib=yes ;;
+ no) multilib=no ;;
+ *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for libjava-multilib option" >&5
+echo "$as_me: error: bad value ${enableval} for libjava-multilib option" >&2;}
+ { (exit 1); exit 1; }; } ;;
+ esac
+else
+ multilib=yes
+fi;
+if test "$multilib" = no; then
+# Reset also --enable-multilib state, as that is what is looked at
+# by config-ml.in
+ ac_configure_args="$ac_configure_args --disable-multilib"
+fi
+
# It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
++++++ pr33763.diff ++++++
Index: gcc/tree-inline.c
===================================================================
*** gcc/tree-inline.c.orig 2011-11-03 16:27:43.000000000 +0100
--- gcc/tree-inline.c 2011-11-04 11:37:21.000000000 +0100
*************** expand_call_inline (basic_block bb, gimp
*** 3775,3780 ****
--- 3775,3786 ----
goto egress;
if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))
+ /* For extern inline functions that get redefined we always
+ silently ignored alway_inline flag. Better behaviour would
+ be to be able to keep both bodies and use extern inline body
+ for inlining, but we can't do that because frontends overwrite
+ the body. */
+ && !cg_edge->callee->local.redefined_extern_inline
/* Avoid warnings during early inline pass. */
&& cgraph_global_info_ready
/* PR 20090218-1_0.c. Body can be provided by another module. */
++++++ pr49484.diff ++++++
2012-01-18 Richard Guenther
* gthr.h (__GTHREAD_MUTEX_INIT_FUNCTION): Adjust specification.
* gthr-posix.h (__GTHREAD_MUTEX_INIT_FUNCTION): Define.
(__gthread_mutex_init_function): New function.
* gthr-single.h (__GTHREAD_MUTEX_INIT_FUNCTION): Define.
PR gcov/49484
* libgcov.c: Include gthr.h.
(__gcov_flush_mx): New global variable.
(init_mx, init_mx_once): New functions.
(__gcov_flush): Protect self with a mutex.
(__gcov_fork): Re-initialize mutex after forking.
* unwind-dw2-fde.c: Change condition under which to use
__GTHREAD_MUTEX_INIT_FUNCTION.
Index: libgcc/libgcov.c
===================================================================
*** libgcc/libgcov.c.orig 2012-02-21 14:47:55.000000000 +0100
--- libgcc/libgcov.c 2012-02-21 14:48:00.000000000 +0100
*************** see the files COPYING3 and COPYING.RUNTI
*** 30,35 ****
--- 30,36 ----
#include "coretypes.h"
#include "tm.h"
#include "libgcc_tm.h"
+ #include "gthr.h"
#if defined(inhibit_libc)
#define IN_LIBGCOV (-1)
*************** __gcov_init (struct gcov_info *info)
*** 705,710 ****
--- 706,730 ----
info->version = 0;
}
+ #ifdef __GTHREAD_MUTEX_INIT
+ ATTRIBUTE_HIDDEN __gthread_mutex_t __gcov_flush_mx = __GTHREAD_MUTEX_INIT;
+ #define init_mx_once()
+ #else
+ __gthread_mutex_t __gcov_flush_mx ATTRIBUTE_HIDDEN;
+
+ static void
+ init_mx (void)
+ {
+ __GTHREAD_MUTEX_INIT_FUNCTION (&mx);
+ }
+ static void
+ init_mx_once (void)
+ {
+ static __gthread_once_t once = __GTHREAD_ONCE_INIT;
+ __gthread_once (&once, init_mx);
+ }
+ #endif
+
/* Called before fork or exec - write out profile information gathered so
far and reset it to zero. This avoids duplication or loss of the
profile information gathered so far. */
*************** __gcov_flush (void)
*** 714,719 ****
--- 734,742 ----
{
const struct gcov_info *gi_ptr;
+ init_mx_once ();
+ __gthread_mutex_lock (&__gcov_flush_mx);
+
gcov_exit ();
for (gi_ptr = gcov_list; gi_ptr; gi_ptr = gi_ptr->next)
{
*************** __gcov_flush (void)
*** 737,742 ****
--- 760,767 ----
}
}
}
+
+ __gthread_mutex_unlock (&__gcov_flush_mx);
}
#endif /* L_gcov */
*************** __gcov_ior_profiler (gcov_type *counters
*** 975,982 ****
pid_t
__gcov_fork (void)
{
__gcov_flush ();
! return fork ();
}
#endif
--- 1000,1012 ----
pid_t
__gcov_fork (void)
{
+ pid_t pid;
+ extern __gthread_mutex_t __gcov_flush_mx;
__gcov_flush ();
! pid = fork ();
! if (pid == 0)
! __GTHREAD_MUTEX_INIT_FUNCTION (&__gcov_flush_mx);
! return pid;
}
#endif
Index: libgcc/unwind-dw2-fde.c
===================================================================
*** libgcc/unwind-dw2-fde.c.orig 2012-02-21 14:47:55.000000000 +0100
--- libgcc/unwind-dw2-fde.c 2012-02-21 14:48:00.000000000 +0100
*************** static struct object *seen_objects;
*** 47,57 ****
#ifdef __GTHREAD_MUTEX_INIT
static __gthread_mutex_t object_mutex = __GTHREAD_MUTEX_INIT;
#else
static __gthread_mutex_t object_mutex;
- #endif
- #ifdef __GTHREAD_MUTEX_INIT_FUNCTION
static void
init_object_mutex (void)
{
--- 47,56 ----
#ifdef __GTHREAD_MUTEX_INIT
static __gthread_mutex_t object_mutex = __GTHREAD_MUTEX_INIT;
+ #define init_object_mutex_once()
#else
static __gthread_mutex_t object_mutex;
static void
init_object_mutex (void)
{
*************** init_object_mutex_once (void)
*** 64,71 ****
static __gthread_once_t once = __GTHREAD_ONCE_INIT;
__gthread_once (&once, init_object_mutex);
}
- #else
- #define init_object_mutex_once()
#endif
/* Called from crtbegin.o to register the unwind info for an object. */
--- 63,68 ----
Index: libgcc/gthr-posix.h
===================================================================
*** libgcc/gthr-posix.h.orig 2012-02-21 14:47:55.000000000 +0100
--- libgcc/gthr-posix.h 2012-02-21 14:48:00.000000000 +0100
*************** typedef struct timespec __gthread_time_t
*** 63,68 ****
--- 63,69 ----
#define __GTHREAD_HAS_COND 1
#define __GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER
+ #define __GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function
#define __GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
#if defined(PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
#define __GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER
*************** __gthread_mutex_init_function (__gthread
*** 754,759 ****
--- 755,768 ----
#endif
static inline int
+ __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
+ {
+ if (__gthread_active_p ())
+ return __gthrw_(pthread_mutex_init) (__mutex, NULL);
+ return 0;
+ }
+
+ static inline int
__gthread_mutex_destroy (__gthread_mutex_t *__mutex)
{
if (__gthread_active_p ())
Index: libgcc/gthr-single.h
===================================================================
*** libgcc/gthr-single.h.orig 2012-02-21 14:47:55.000000000 +0100
--- libgcc/gthr-single.h 2012-02-21 14:48:00.000000000 +0100
*************** typedef int __gthread_recursive_mutex_t;
*** 36,41 ****
--- 36,42 ----
#define __GTHREAD_ONCE_INIT 0
#define __GTHREAD_MUTEX_INIT 0
+ #define __GTHREAD_MUTEX_INIT_FUNCTION (mx)
#define __GTHREAD_RECURSIVE_MUTEX_INIT 0
#define UNUSED __attribute__((unused))
Index: libgcc/gthr.h
===================================================================
*** libgcc/gthr.h.orig 2012-02-21 14:47:55.000000000 +0100
--- libgcc/gthr.h 2012-02-21 14:48:00.000000000 +0100
*************** see the files COPYING3 and COPYING.RUNTI
*** 52,62 ****
to initialize __gthread_mutex_t to get a fast
non-recursive mutex.
__GTHREAD_MUTEX_INIT_FUNCTION
! some systems can't initialize a mutex without a
! function call. On such systems, define this to a
! function which looks like this:
void __GTHREAD_MUTEX_INIT_FUNCTION (__gthread_mutex_t *)
! Don't define __GTHREAD_MUTEX_INIT in this case
__GTHREAD_RECURSIVE_MUTEX_INIT
__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION
as above, but for a recursive mutex.
--- 52,63 ----
to initialize __gthread_mutex_t to get a fast
non-recursive mutex.
__GTHREAD_MUTEX_INIT_FUNCTION
! to initialize __gthread_mutex_t to get a fast
! non-recursive mutex.
! Define this to a function which looks like this:
void __GTHREAD_MUTEX_INIT_FUNCTION (__gthread_mutex_t *)
! Some systems can't initialize a mutex without a
! function call. Don't define __GTHREAD_MUTEX_INIT in this case.
__GTHREAD_RECURSIVE_MUTEX_INIT
__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION
as above, but for a recursive mutex.
++++++ pr52080.diff ++++++
++++ 708 lines (skipped)
++++++ pre_checkin.sh ++++++
#!/bin/bash
# This script is called automatically during autobuild checkin.
case $0 in
\./*)
here=$PWD
;;
*/*)
here=${0%/*}
;;
*)
here=$PWD
;;
esac
case ${here##*/} in
gcc-*)
suffix=${here##*/}
set ${suffix#*-}-
;;
gcc[0-9]*)
suffix=${here##*/}
set ${suffix#gcc}
;;
esac
. ${here}/change_spec
++++++ program-transform-name.diff ++++++
Index: gcc/ada/gcc-interface/Make-lang.in
===================================================================
--- gcc/ada/gcc-interface/Make-lang.in.orig 2011-11-03 16:26:46.000000000 +0100
+++ gcc/ada/gcc-interface/Make-lang.in 2011-11-03 17:08:13.000000000 +0100
@@ -758,6 +758,21 @@ doc/gnat-style.pdf: ada/gnat-style.texi
# likewise for gnatf, gnatchop, and gnatlink, gnatkr, gnatmake, gnat,
# gnatprep, gnatls, gnatxref, gnatfind, gnatname, gnatclean,
# gnatsym
+GNATBIND_INSTALL_NAME := $(shell echo gnatbind|sed '$(program_transform_name)')
+GNATCHOP_INSTALL_NAME := $(shell echo gnatchop|sed '$(program_transform_name)')
+GNAT_INSTALL_NAME := $(shell echo gnat|sed '$(program_transform_name)')
+GNATKR_INSTALL_NAME := $(shell echo gnatkr|sed '$(program_transform_name)')
+GNATLINK_INSTALL_NAME := $(shell echo gnatlink|sed '$(program_transform_name)')
+GNATLS_INSTALL_NAME := $(shell echo gnatls|sed '$(program_transform_name)')
+GNATMAKE_INSTALL_NAME := $(shell echo gnatmake|sed '$(program_transform_name)')
+GNATNAME_INSTALL_NAME := $(shell echo gnatname|sed '$(program_transform_name)')
+GNATPREP_INSTALL_NAME := $(shell echo gnatprep|sed '$(program_transform_name)')
+GNATXREF_INSTALL_NAME := $(shell echo gnatxref|sed '$(program_transform_name)')
+GNATFIND_INSTALL_NAME := $(shell echo gnatfind|sed '$(program_transform_name)')
+GNATCLEAN_INSTALL_NAME := $(shell echo gnatclean|sed '$(program_transform_name)')
+GNATSYM_INSTALL_NAME := $(shell echo gnatsym|sed '$(program_transform_name)')
+GNATDLL_INSTALL_NAME := $(shell echo gnatdll|sed '$(program_transform_name)')
+VXADDR2LINE_INSTALL_NAME := $(shell echo vxaddr2line|sed '$(program_transform_name)')
ada.install-common:
$(MKDIR) $(DESTDIR)$(bindir)
-if [ -f gnat1$(exeext) ] ; \
@@ -771,8 +786,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatbind-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatbind$(exeext); \
fi; \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatbind$(exeext); \
- $(INSTALL_PROGRAM) gnatbind$(exeext) $(DESTDIR)$(bindir)/gnatbind$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATBIND_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatbind$(exeext) $(DESTDIR)$(bindir)/$(GNATBIND_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -786,8 +801,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatchop-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatchop$(exeext); \
fi ; \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatchop$(exeext); \
- $(INSTALL_PROGRAM) gnatchop$(exeext) $(DESTDIR)$(bindir)/gnatchop$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATCHOP_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatchop$(exeext) $(DESTDIR)$(bindir)/$(GNATCHOP_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -801,8 +816,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnat-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnat$(exeext); \
fi; \
else \
- $(RM) $(DESTDIR)$(bindir)/gnat$(exeext); \
- $(INSTALL_PROGRAM) gnat$(exeext) $(DESTDIR)$(bindir)/gnat$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNAT_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnat$(exeext) $(DESTDIR)$(bindir)/$(GNAT_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -816,8 +831,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatkr-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatkr$(exeext); \
fi; \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatkr$(exeext); \
- $(INSTALL_PROGRAM) gnatkr$(exeext) $(DESTDIR)$(bindir)/gnatkr$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATKR_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatkr$(exeext) $(DESTDIR)$(bindir)/$(GNATKR_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -831,8 +846,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatlink-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatlink$(exeext); \
fi; \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatlink$(exeext); \
- $(INSTALL_PROGRAM) gnatlink$(exeext) $(DESTDIR)$(bindir)/gnatlink$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATLINK_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatlink$(exeext) $(DESTDIR)$(bindir)/$(GNATLINK_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -846,8 +861,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatls-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatls$(exeext); \
fi; \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatls$(exeext); \
- $(INSTALL_PROGRAM) gnatls$(exeext) $(DESTDIR)$(bindir)/gnatls$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATLS_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatls$(exeext) $(DESTDIR)$(bindir)/$(GNATLS_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -861,8 +876,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatmake-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatmake$(exeext); \
fi; \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatmake$(exeext); \
- $(INSTALL_PROGRAM) gnatmake$(exeext) $(DESTDIR)$(bindir)/gnatmake$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATMAKE_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatmake$(exeext) $(DESTDIR)$(bindir)/$(GNATMAKE_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -872,8 +887,8 @@ ada.install-common:
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatname$(exeext); \
$(INSTALL_PROGRAM) gnatname-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatname$(exeext); \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatname$(exeext); \
- $(INSTALL_PROGRAM) gnatname$(exeext) $(DESTDIR)$(bindir)/gnatname$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATNAME_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatname$(exeext) $(DESTDIR)$(bindir)/$(GNATNAME_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -887,8 +902,8 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatprep-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatprep$(exeext); \
fi; \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatprep$(exeext); \
- $(INSTALL_PROGRAM) gnatprep$(exeext) $(DESTDIR)$(bindir)/gnatprep$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATPREP_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatprep$(exeext) $(DESTDIR)$(bindir)/$(GNATPREP_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -898,8 +913,8 @@ ada.install-common:
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatxref$(exeext); \
$(INSTALL_PROGRAM) gnatxref-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatxref$(exeext); \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatxref$(exeext); \
- $(INSTALL_PROGRAM) gnatxref$(exeext) $(DESTDIR)$(bindir)/gnatxref$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATXREF_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatxref$(exeext) $(DESTDIR)$(bindir)/$(GNATXREF_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -909,8 +924,8 @@ ada.install-common:
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatfind$(exeext); \
$(INSTALL_PROGRAM) gnatfind-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatfind$(exeext); \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatfind$(exeext); \
- $(INSTALL_PROGRAM) gnatfind$(exeext) $(DESTDIR)$(bindir)/gnatfind$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATFIND_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatfind$(exeext) $(DESTDIR)$(bindir)/$(GNATFIND_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -920,8 +935,8 @@ ada.install-common:
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatclean$(exeext); \
$(INSTALL_PROGRAM) gnatclean-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatclean$(exeext); \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatclean$(exeext); \
- $(INSTALL_PROGRAM) gnatclean$(exeext) $(DESTDIR)$(bindir)/gnatclean$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATCLEAN_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatclean$(exeext) $(DESTDIR)$(bindir)/$(GNATCLEAN_INSTALL_NAME)$(exeext); \
fi ; \
fi
#
@@ -935,7 +950,7 @@ ada.install-common:
$(INSTALL_PROGRAM) gnatsym-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatsym$(exeext); \
else \
$(RM) $(DESTDIR)$(bindir)/gnatsym$(exeext); \
- $(INSTALL_PROGRAM) gnatsym$(exeext) $(DESTDIR)$(bindir)/gnatsym$(exeext); \
+ $(INSTALL_PROGRAM) gnatsym$(exeext) $(DESTDIR)$(bindir)/$(GNATSYM_INSTALL_NAME)$(exeext); \
fi ; \
fi
#
@@ -943,8 +958,8 @@ ada.install-common:
#
-if [ -f gnat1$(exeext) ] ; \
then \
- $(RM) $(DESTDIR)$(bindir)/gnatdll$(exeext); \
- $(INSTALL_PROGRAM) gnatdll$(exeext) $(DESTDIR)$(bindir)/gnatdll$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATDLL_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatdll$(exeext) $(DESTDIR)$(bindir)/$(GNATDLL_INSTALL_NAME)$(exeext); \
fi
#
# vxaddr2line is only used for cross ports (it calls the underlying cross
@@ -954,8 +969,8 @@ ada.install-common:
then \
if [ -f vxaddr2line$(exeext) ] ; \
then \
- $(RM) $(DESTDIR)$(bindir)/vxaddr2line$(exeext); \
- $(INSTALL_PROGRAM) vxaddr2line$(exeext) $(DESTDIR)$(bindir)/vxaddr2line$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(VXADDR2LINE_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) vxaddr2line$(exeext) $(DESTDIR)$(bindir)/$(VXADDR2LINE_INSTALL_NAME)$(exeext); \
fi ; \
fi
@@ -1019,8 +1034,6 @@ ada.uninstall:
-$(RM) $(DESTDIR)$(tooldir)/bin/gnatxref$(exeext)
-$(RM) $(DESTDIR)$(tooldir)/bin/gnatclean$(exeext)
-$(RM) $(DESTDIR)$(tooldir)/bin/gnatsym$(exeext)
-# Gnatchop is only used on VMS
- -$(RM) $(DESTDIR)$(bindir)/gnatchop$(exeext)
# Clean hooks:
# A lot of the ancillary files are deleted by the main makefile.
++++++ sap303956-uchar.diff ++++++
Index: gcc/ginclude/uchar.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gcc/ginclude/uchar.h 2011-11-09 12:00:01.000000000 +0100
@@ -0,0 +1,38 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to
+the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+/* As a special exception, if you include this header file into source
+ files compiled by GCC, this header file does not by itself cause
+ the resulting executable to be covered by the GNU General Public
+ License. This exception does not however invalidate any other
+ reasons why the executable file might be covered by the GNU General
+ Public License. */
+
+/*
+ * template header so that char16_t and char32_t are available
+ * in C (not only in C++). This is not a full implementation of
+ */
+
+#ifndef _UCHAR_H___
+#define _UCHAR_H___
+#ifndef __cplusplus
+typedef __CHAR16_TYPE__ char16_t;
+typedef __CHAR32_TYPE__ char32_t;
+#endif
+#endif
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in.orig 2011-11-09 11:59:58.000000000 +0100
+++ gcc/Makefile.in 2011-11-09 12:00:01.000000000 +0100
@@ -375,6 +375,7 @@ USER_H = $(srcdir)/ginclude/float.h \
$(srcdir)/ginclude/stddef.h \
$(srcdir)/ginclude/varargs.h \
$(srcdir)/ginclude/stdfix.h \
+ $(srcdir)/ginclude/uchar.h \
$(srcdir)/ginclude/stdnoreturn.h \
$(srcdir)/ginclude/stdalign.h \
$(EXTRA_HEADERS)
++++++ suse-record-gcc-opts.diff ++++++
Index: gcc/varasm.c
===================================================================
--- gcc/varasm.c.orig 2011-11-03 16:27:43.000000000 +0100
+++ gcc/varasm.c 2011-11-03 17:07:57.000000000 +0100
@@ -6979,6 +6979,35 @@ file_end_indicate_split_stack (void)
}
}
+/* This is a generic routine emitting a SUSE specific section for
+ QA check marks. */
+
+void
+suse_file_end_indicate_optflags (void)
+{
+ unsigned int flags = SECTION_DEBUG | SECTION_STRINGS | SECTION_MERGE | (SECTION_ENTSIZE & 1);
+
+ /*
+ o/O: optimize was off/on
+ s/S: size optimisation was off/on
+ p/P: stack-protector was off/on
+ w/W: warnings were off/on
+ g/G: debug was off/on
+ */
+
+ char opts_buffer[6];
+
+ opts_buffer[0] = (optimize >= 2) ? 'O' : 'o';
+ opts_buffer[1] = (optimize >= 1 && optimize_size) ? 'S' : 's';
+ opts_buffer[2] = (flag_stack_protect >= 1) ? 'P' : 'p';
+ opts_buffer[3] = (warn_uninitialized >= 1 && warn_sequence_point >= 1) ? 'W' : 'w';
+ opts_buffer[4] = (debug_info_level > DINFO_LEVEL_NONE) ? 'G' : 'g';
+ opts_buffer[5] = '\0';
+
+ switch_to_section (get_section (".comment.SUSE.OPTs", flags, NULL));
+ ASM_OUTPUT_ASCII (asm_out_file, opts_buffer, strlen (opts_buffer) + 1);
+}
+
/* Output DIRECTIVE (a C string) followed by a newline. This is used as
a get_unnamed_section callback. */
Index: gcc/output.h
===================================================================
--- gcc/output.h.orig 2011-11-03 16:27:43.000000000 +0100
+++ gcc/output.h 2011-11-03 17:07:57.000000000 +0100
@@ -652,6 +652,7 @@ extern void default_asm_declare_constant
extern void default_file_start (void);
extern void file_end_indicate_exec_stack (void);
extern void file_end_indicate_split_stack (void);
+extern void suse_file_end_indicate_optflags (void);
extern void default_elf_asm_output_external (FILE *file, tree,
const char *);
Index: gcc/toplev.c
===================================================================
--- gcc/toplev.c.orig 2011-11-03 16:27:43.000000000 +0100
+++ gcc/toplev.c 2011-11-03 17:07:57.000000000 +0100
@@ -682,6 +682,8 @@ compile_file (void)
/* Invoke registered plugin callbacks. */
invoke_plugin_callbacks (PLUGIN_FINISH_UNIT, NULL);
+ suse_file_end_indicate_optflags ();
+
/* This must be at the end. Some target ports emit end of file directives
into the assembly file here, and hence we can not output anything to the
assembly file after this point. */
++++++ tls-no-direct.diff ++++++
Index: gcc/config/i386/gnu-user.h
===================================================================
--- gcc/config/i386/gnu-user.h.orig 2011-05-09 17:58:22.000000000 +0200
+++ gcc/config/i386/gnu-user.h 2011-11-03 17:12:38.000000000 +0100
@@ -30,8 +30,12 @@ along with GCC; see the file COPYING3.
#define DEFAULT_PCC_STRUCT_RETURN 1
/* We arrange for the whole %gs segment to map the tls area. */
+/* This slows down Xen, so take a very small general performance hit
+ for not accessing the %gs segment with negative offsets by making
+ GCC not emit direct accesses to %gs at all.
#undef TARGET_TLS_DIRECT_SEG_REFS_DEFAULT
#define TARGET_TLS_DIRECT_SEG_REFS_DEFAULT MASK_TLS_DIRECT_SEG_REFS
+ */
#undef ASM_COMMENT_START
#define ASM_COMMENT_START "#"
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org