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 gcc46 for openSUSE:Factory
checked in at Mon Mar 14 16:46:04 CET 2011.
--------
New Changes file:
--- /dev/null 2010-08-26 16:28:41.000000000 +0200
+++ /mounts/work_src_done/STABLE/gcc46/gcc46-testresults.changes 2011-03-14 15:22:03.000000000 +0100
@@ -0,0 +1,105 @@
+-------------------------------------------------------------------
+Mon Mar 14 14:20:27 UTC 2011 - rguenther@novell.com
+
+- Update to GCC 4.6.0 release candidate (r170941).
+ * Changes, New Features and Fixes in GCC 4.6 at
+ http://gcc.gnu.org/gcc-4.6/changes.html
+- Drop to release checking.
+
+-------------------------------------------------------------------
+Tue Mar 8 12:15:59 UTC 2011 - rguenther@novell.com
+
+- Update to SVN trunk head (r170774).
+
+-------------------------------------------------------------------
+Tue Mar 1 15:45:21 UTC 2011 - rguenther@novell.com
+
+- Update to SVN trunk head (r170594).
+
+-------------------------------------------------------------------
+Tue Feb 22 12:13:46 UTC 2011 - rguenther@novell.com
+
+- Update to SVN trunk head (r170394).
+
+-------------------------------------------------------------------
+Thu Feb 10 11:06:41 UTC 2011 - rguenther@novell.com
+
+- Update to SVN trunk head (r169999).
+- Mention the GCC Runtime Library Exception in licenses where appropriate.
+
+-------------------------------------------------------------------
+Thu Jan 27 13:39:57 UTC 2011 - rguenther@novell.com
+
+- Update to SVN trunk head (r169329).
+
+-------------------------------------------------------------------
+Fri Jan 21 15:56:01 UTC 2011 - rguenther@novell.com
+
+- Update to SVN trunk head (r169094).
+
+-------------------------------------------------------------------
+Wed Jan 12 16:04:44 UTC 2011 - rguenther@novell.com
+
+- Update to SVN trunk head (r168717).
+
+-------------------------------------------------------------------
+Tue Jan 11 16:39:03 UTC 2011 - rguenther@novell.com
+
+- Fix -Wunprototyped-calls behavior with -w.
+
+-------------------------------------------------------------------
+Fri Dec 10 16:05:05 UTC 2010 - rguenther@novell.com
+
+- Package a simple libffi.pc.
+
+-------------------------------------------------------------------
+Mon Dec 6 11:22:50 UTC 2010 - rguenther@novell.com
+
+- Update to SVN trunk head (r167488).
+- Package new libquadmath library.
+- Switch to provides/conflicts scheme for shared library packages.
+
+-------------------------------------------------------------------
+Tue Nov 16 11:06:13 UTC 2010 - rguenther@novell.com
+
+- Update to SVN trunk head (r166793).
+- Do not enable release checking yet.
+- Package new bmiintrin.h and tbmintrin.h headers.
+
+-------------------------------------------------------------------
+Wed Nov 10 13:46:43 UTC 2010 - rguenther@novell.com
+
+- Update to SVN trunk head (r166536).
+
+-------------------------------------------------------------------
+Tue Nov 9 11:19:44 UTC 2010 - rguenther@novell.com
+
+- Add fix for PR46221.
+
+-------------------------------------------------------------------
+Mon Nov 8 11:11:47 UTC 2010 - rguenther@novell.com
+
+- Bump libgcj SO version.
+
+-------------------------------------------------------------------
+Fri Nov 5 13:10:19 UTC 2010 - rguenther@novell.com
+
+- Update to SVN trunk head (r166358).
+- Drop libelf dependency.
+- lto-plugin now builds unconditionally.
+
+-------------------------------------------------------------------
+Tue Aug 31 10:01:37 UTC 2010 - rguenther@novell.com
+
+- Update to SVN trunk head (r163668).
+
+-------------------------------------------------------------------
+Fri Jul 9 10:46:48 UTC 2010 - rguenther@novell.com
+
+- Update requires and obsoletes.
+
+-------------------------------------------------------------------
+Thu Jul 1 13:41:41 UTC 2010 - rguenther@novell.com
+
+- New package.
+
New Changes file:
gcc46.changes: same change
New Changes file:
libffi46.changes: same change
New Changes file:
libgcj46.changes: same change
calling whatdependson for head-i586
New:
----
README.First-for.SuSE.packagers
Wunprototyped-calls.diff
baselibs.conf
boehm-gc-strict-aliasing.patch
build-id.diff
change_spec
check-build.sh
cross-icecream.spec.in
cross.spec.in
ecj.jar
gcc-4.6.0-20110314.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
gcc46-rpmlintrc
gcc46-testresults.changes
gcc46-testresults.spec
gcc46.changes
gcc46.spec
libffi46.changes
libffi46.spec
libgcj46-rpmlintrc
libgcj46.changes
libgcj46.spec
libjava-no-multilib.diff
pr27880.diff
pr33763.diff
pre_checkin.sh
program-transform-name.diff
sap303956-uchar.diff
suse-record-gcc-opts.diff
tls-no-direct.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gcc46-testresults.spec ++++++
++++ 683 lines (skipped)
gcc46.spec: same change
libffi46.spec: same change
libgcj46.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.
As the package is now split into two parts, gcc and libgcj, and libgcj
is a leaf package the testsuite is now always run from libgcj. A dummy
package with the testresults, gcc-testresults, is generated from it.
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 both the gcc and the libgcj subpackages
- When mbuild is finished, call
/suse/rguenther/bin/compare-testresults.sh mbuild-directory
(for the libgcj 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 2010-11-15 15:46:08.000000000 +0100
--- gcc/c-family/c.opt 2011-01-11 17:37:40.000000000 +0100
*************** Wunsuffixed-float-constants
*** 645,650 ****
--- 645,654 ----
C ObjC Var(warn_unsuffixed_float_constants) Warning
Warn about unsuffixed float constants
+ 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 2011-01-11 17:37:40.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 2010-12-06 12:01:18.000000000 +0100
--- gcc/c-typeck.c 2011-01-11 17:37:58.000000000 +0100
*************** build_function_call_vec (location_t loc,
*** 2830,2835 ****
--- 2830,2848 ----
&& !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 (TYPE_ATTRIBUTES (fntype), nargs, argarray,
TYPE_ARG_TYPES (fntype));
Index: gcc/c-family/c-opts.c
===================================================================
*** gcc/c-family/c-opts.c.orig 2010-12-06 12:00:44.000000000 +0100
--- gcc/c-family/c-opts.c 2011-01-11 17:37:40.000000000 +0100
*************** c_common_handle_option (size_t scode, co
*** 386,391 ****
--- 386,392 ----
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 libgcc46
targettype x86 package libstdc++46
libgcj46
requires "libgcj46"
libgcj46-devel
gcc46-gij
requires "libgcj46-<targettype>"
+/usr/bin/gij-4.6 -> /usr/bin/gij<extension>-4.6
+/usr/bin/grmiregistry-4.6 -> /usr/bin/grmiregistry<extension>-4.6
++++++ boehm-gc-strict-aliasing.patch ++++++
--- boehm-gc/tests/test.c.~1.9.~ 2004-08-16 11:06:48.000000000 +0200
+++ boehm-gc/tests/test.c 2005-09-04 11:43:00.000000000 +0200
@@ -237,10 +237,10 @@ struct GC_ms_entry * fake_gcj_mark_proc(
x = (sexpr)(addr + 1); /* Skip the vtable pointer. */
mark_stack_ptr = GC_MARK_AND_PUSH(
(GC_PTR)(x -> sexpr_cdr), mark_stack_ptr,
- mark_stack_limit, (GC_PTR *)&(x -> sexpr_cdr));
+ mark_stack_limit, (GC_PTR)&(x -> sexpr_cdr));
mark_stack_ptr = GC_MARK_AND_PUSH(
(GC_PTR)(x -> sexpr_car), mark_stack_ptr,
- mark_stack_limit, (GC_PTR *)&(x -> sexpr_car));
+ mark_stack_limit, (GC_PTR)&(x -> sexpr_car));
return(mark_stack_ptr);
}
++++++ build-id.diff ++++++
Index: gcc/gcc.c
===================================================================
--- gcc/gcc.c.orig 2010-07-01 16:26:27.000000000 +0200
+++ gcc/gcc.c 2010-07-01 16:26:43.000000000 +0200
@@ -1893,6 +1893,15 @@ init_spec (void)
obstack_grow0 (&obstack, link_spec, strlen (link_spec));
link_spec = XOBFINISH (&obstack, const char *);
#endif
+#ifdef USE_BUILD_ID
+ /* Prepend "--build-id" to whatever link_spec we had before. */
+ {
+ static const char tf[] = "%{!r:--build-id} ";
+ obstack_grow (&obstack, tf, sizeof(tf) - 1);
+ obstack_grow0 (&obstack, link_spec, strlen (link_spec));
+ link_spec = XOBFINISH (&obstack, const char *);
+ }
+#endif
specs = sl;
}
Index: gcc/config/elfos.h
===================================================================
--- gcc/config/elfos.h.orig 2010-07-01 15:54:07.000000000 +0200
+++ gcc/config/elfos.h 2010-07-01 16:26:43.000000000 +0200
@@ -533,3 +533,5 @@ see the files COPYING3 and COPYING.RUNTI
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
default_elf_asm_output_external (FILE, DECL, NAME)
#endif
+
+#define USE_BUILD_ID
++++++ change_spec ++++++
#!/bin/bash
do_icecream=0
do_cross_static=0
do_cross_shared=0
do_optional_compiler=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
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
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
# disabled: mips, sparc, alpha, arm
if test "$do_icecream" = 1 ; then
for arch in hppa i386 x86_64 s390 s390x ppc ppc64 ia64; 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@-linux
%define gcc_icecream 1
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-@cross_arch@-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
BUILD_TARGET=%{TARGET_ARCH}
ORIG_TARGET=$BUILD_TARGET
# We play funny tricks with the ppc compiler. We want to have it biarch,
# which the powerpc compiler itself doesn't support. So we actually
# configure it as powerpc64 target compiler (i.e. a native cross compiler
# even on ppc), with the default code generation to be powerpc32.
# But this doesn't hide the fact that it's still a cross compiler which
# shows also in various paths
test "$BUILD_TARGET" = powerpc && BUILD_TARGET=powerpc64
make -C gcc DESTDIR=$RPM_BUILD_ROOT/inst install-driver install-common
# 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 /opt/cross/bin/${ORIG_TARGET}-linux-as $RPM_BUILD_ROOT/env/usr/bin/as
install -s $RPM_BUILD_ROOT/inst%{_prefix}/bin/${BUILD_TARGET}-linux-g++ $RPM_BUILD_ROOT/env/usr/bin/g++
install -s $RPM_BUILD_ROOT/inst%{_prefix}/bin/${BUILD_TARGET}-linux-gcc $RPM_BUILD_ROOT/env/usr/bin/gcc
for back in cc1 cc1plus; do
install -s -D $RPM_BUILD_ROOT/inst%{_libdir}/gcc/${BUILD_TARGET}-linux/%{gcc_dir_version}/$back \
$RPM_BUILD_ROOT/env%{_libdir}/gcc/${BUILD_TARGET}-linux/%{gcc_dir_version}/$back
done
libs=`for bin in $RPM_BUILD_ROOT/env/usr/bin/* $RPM_BUILD_ROOT/env%{_libdir}/gcc/${BUILD_TARGET}-linux/%{gcc_dir_version}/*; 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 2010-08-31 12:13:32.000000000 +0200
+++ gcc/gcc.c 2010-08-31 12:13:42.000000000 +0200
@@ -320,6 +320,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 **);
@@ -1629,6 +1630,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 },
@@ -6639,6 +6641,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++)
@@ -8511,6 +8515,21 @@ get_local_tick (void)
return ret;
}
+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 2010-11-05 13:58:02.000000000 +0100
--- gcc/Makefile.in 2010-11-05 14:26:15.000000000 +0100
*************** GTM_H = tm.h $(tm_file_list) in
*** 819,830 ****
TM_H = $(GTM_H) insn-flags.h $(OPTIONS_H)
# Variables for version information.
! BASEVER := $(srcdir)/BASE-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))
DEVPHASE_c := $(shell cat $(DEVPHASE))
DATESTAMP_c := $(shell cat $(DATESTAMP))
--- 819,832 ----
TM_H = $(GTM_H) insn-flags.h $(OPTIONS_H)
# Variables for version information.
! 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))
*************** version := $(BASEVER_c)
*** 843,848 ****
--- 845,851 ----
# (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@\""
*************** gcc-options.o: options.c $(CONFIG_H) $(S
*** 2240,2248 ****
dumpvers: dumpvers.c
! version.o: version.c version.h $(REVISION) $(DATESTAMP) $(BASEVER) $(DEVPHASE)
$(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
! -DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \
-DREVISION=$(REVISION_s) \
-DDEVPHASE=$(DEVPHASE_s) -DPKGVERSION=$(PKGVERSION_s) \
-DBUGURL=$(BUGURL_s) -c $(srcdir)/version.c $(OUTPUT_OPTION)
--- 2243,2251 ----
dumpvers: dumpvers.c
! version.o: version.c version.h $(REVISION) $(DATESTAMP) $(FULLVER) $(DEVPHASE)
$(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
! -DBASEVER=$(FULLVER_s) -DDATESTAMP=$(DATESTAMP_s) \
-DREVISION=$(REVISION_s) \
-DDEVPHASE=$(DEVPHASE_s) -DPKGVERSION=$(PKGVERSION_s) \
-DBUGURL=$(BUGURL_s) -c $(srcdir)/version.c $(OUTPUT_OPTION)
Index: libjava/Makefile.am
===================================================================
*** libjava/Makefile.am.orig 2010-08-27 12:08:41.000000000 +0200
--- libjava/Makefile.am 2010-11-05 14:25:12.000000000 +0100
*************** install_data_local_split = 50
*** 774,780 ****
install-data-local:
$(PRE_INSTALL)
## Install the .pc file.
! @pc_version=`echo $(GCJVERSION) | sed -e 's/[.][^.]*$$//'`; \
file="libgcj-$${pc_version}.pc"; \
$(mkinstalldirs) $(DESTDIR)$(pkgconfigdir); \
echo " $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file"; \
--- 774,780 ----
install-data-local:
$(PRE_INSTALL)
## Install the .pc file.
! @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 2010-11-05 13:59:46.000000000 +0100
--- libjava/Makefile.in 2010-11-05 14:25:12.000000000 +0100
*************** install-exec-hook: install-binPROGRAMS i
*** 12407,12413 ****
@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/[.][^.]*$$//'`; \
file="libgcj-$${pc_version}.pc"; \
$(mkinstalldirs) $(DESTDIR)$(pkgconfigdir); \
echo " $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file"; \
--- 12407,12413 ----
@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)`; \
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 2009-12-14 00:18:47.000000000 +0100
--- libjava/testsuite/lib/libjava.exp 2010-11-05 14:25:12.000000000 +0100
*************** proc libjava_init { args } {
*** 175,181 ****
set text [eval exec "$GCJ_UNDER_TEST -B$specdir -v 2>@ stdout"]
regexp " version \[^\n\r\]*" $text version
! set libjava_version [lindex $version 1]
verbose "version: $libjava_version"
--- 175,181 ----
set text [eval exec "$GCJ_UNDER_TEST -B$specdir -v 2>@ stdout"]
regexp " version \[^\n\r\]*" $text version
! set libjava_version 4.6
verbose "version: $libjava_version"
++++++ 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 2010-07-01 16:26:04.000000000 +0200
+++ gcc/Makefile.in 2010-07-01 16:26:09.000000000 +0200
@@ -2243,7 +2243,7 @@ endif
$(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
-DBASEVER=$(FULLVER_s) -DDATESTAMP=$(DATESTAMP_s) \
-DREVISION=$(REVISION_s) \
- -DDEVPHASE=$(DEVPHASE_s) -DPKGVERSION=$(PKGVERSION_s) \
+ -DDEVPHASE="" -DPKGVERSION=$(PKGVERSION_s) \
-DBUGURL=$(BUGURL_s) -c $(srcdir)/version.c $(OUTPUT_OPTION)
gtype-desc.o: gtype-desc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
++++++ gcc.spec.in ++++++
++++ 2256 lines (skipped)
++++++ gcc4-ppc64-m32-m64-multilib-only.patch ++++++
Index: gcc/config/rs6000/t-linux64
===================================================================
--- gcc/config/rs6000/t-linux64.orig 2009-04-29 17:22:57.000000000 +0200
+++ gcc/config/rs6000/t-linux64 2010-07-01 16:26:34.000000000 +0200
@@ -31,11 +31,11 @@ TARGET_LIBGCC2_CFLAGS += -mno-minimal-to
# 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 2009-04-29 17:22:55.000000000 +0200
+++ gcc/config/ia64/linux.h 2010-07-01 16:26:46.000000000 +0200
@@ -84,6 +84,11 @@ do { \
#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
+#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 2010-07-01 15:54:01.000000000 +0200
+++ gcc/config/ia64/ia64.c 2010-07-01 16:26:46.000000000 +0200
@@ -2736,6 +2736,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);
@@ -2768,32 +2771,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 2010-07-01 15:54:01.000000000 +0200
+++ gcc/config/ia64/ia64.md 2010-07-01 16:26:46.000000000 +0200
@@ -5176,6 +5176,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 2010-07-01 15:54:01.000000000 +0200
+++ gcc/config/ia64/ia64.h 2010-07-01 16:26:46.000000000 +0200
@@ -927,7 +927,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 2010-03-26 12:58:13.000000000 +0100
+++ libjava/configure.host 2010-07-01 16:26:48.000000000 +0200
@@ -224,6 +224,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 2010-07-01 15:54:02.000000000 +0200
+++ gcc/config/rs6000/rs6000.c 2010-07-01 16:26:50.000000000 +0200
@@ -18064,17 +18064,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 2010-07-01 16:26:50.000000000 +0200
@@ -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: gcc/Makefile.in
===================================================================
*** gcc/Makefile.in.orig 2010-11-05 14:40:33.000000000 +0100
--- gcc/Makefile.in 2010-11-05 14:41:19.000000000 +0100
*************** TARGET_LIBGCC2_CFLAGS =
*** 659,665 ****
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 \
$(INHIBIT_LIBC_CFLAGS)
# Additional sources to handle exceptions; overridden by targets as needed.
--- 659,665 ----
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-unwind-tables -fno-asynchronous-unwind-tables \
$(INHIBIT_LIBC_CFLAGS)
# Additional sources to handle exceptions; overridden by targets as needed.
++++++ 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 2010-07-01 16:26:44.000000000 +0200
+++ gcc/Makefile.in 2010-07-01 16:26:51.000000000 +0200
@@ -5115,8 +5115,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.6.mo; \
+ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-4.6.mo; \
done
# Rule for regenerating the message template (gcc.pot).
Index: gcc/intl.c
===================================================================
--- gcc/intl.c.orig 2010-07-01 15:54:11.000000000 +0200
+++ gcc/intl.c 2010-07-01 16:26:51.000000000 +0200
@@ -57,8 +57,8 @@ gcc_init_libintl (void)
setlocale (LC_ALL, "");
#endif
- (void) bindtextdomain ("gcc", LOCALEDIR);
- (void) textdomain ("gcc");
+ (void) bindtextdomain ("gcc-4.6", LOCALEDIR);
+ (void) textdomain ("gcc-4.6");
/* Opening quotation mark. */
open_quote = _("`");
Index: libcpp/Makefile.in
===================================================================
--- libcpp/Makefile.in.orig 2010-07-01 15:54:41.000000000 +0200
+++ libcpp/Makefile.in 2010-07-01 16:26:51.000000000 +0200
@@ -49,6 +49,7 @@ LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
PACKAGE = @PACKAGE@
+PACKAGE_SUFFIX = -4.6
RANLIB = @RANLIB@
SHELL = @SHELL@
USED_CATALOGS = @USED_CATALOGS@
@@ -72,7 +73,9 @@ 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) $(INCLUDES) $(CPPFLAGS)
+ALL_CXXFLAGS += -DPACKAGE_SUFFIX=\"$(strip $(PACKAGE_SUFFIX))\"
# The name of the compiler to use.
ENABLE_BUILD_WITH_CXX = @ENABLE_BUILD_WITH_CXX@
@@ -168,8 +171,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 2009-04-29 17:24:05.000000000 +0200
+++ libcpp/system.h 2010-07-01 16:26:51.000000000 +0200
@@ -259,7 +259,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 2010-07-01 15:54:41.000000000 +0200
+++ libcpp/init.c 2010-07-01 16:26:51.000000000 +0200
@@ -135,7 +135,7 @@ init_library (void)
init_trigraph_map ();
#ifdef ENABLE_NLS
- (void) bindtextdomain (PACKAGE, LOCALEDIR);
+ (void) bindtextdomain (PACKAGE PACKAGE_SUFFIX, LOCALEDIR);
#endif
}
}
++++++ gcc46-rpmlintrc ++++++
# This line is mandatory to access the configuration functions
from Config import *
addFilter ("libgomp46.*shlib-policy-name-error")
addFilter ("libgcc46.*shlib-policy-name-error")
addFilter ("libgfortran46.*shlib-policy-name-error")
addFilter ("libquadmath46.*shlib-policy-name-error")
addFilter ("libobjc46.*shlib-policy-name-error")
addFilter ("libstdc.*shlib-policy-name-error")
addFilter ("gcc46.*devel-dependency glibc-devel")
addFilter ("gcc46-c.*devel-dependency libstdc")
++++++ libgcj46-rpmlintrc ++++++
# This line is mandatory to access the configuration functions
from Config import *
addFilter ("libgcj_bc46.*shlib-policy-name-error")
++++++ libjava-no-multilib.diff ++++++
Index: libjava/configure
===================================================================
--- libjava/configure.orig 2010-07-01 15:54:40.000000000 +0200
+++ libjava/configure 2010-07-01 16:26:36.000000000 +0200
@@ -3353,6 +3353,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.
++++++ pr27880.diff ++++++
2006-06-19 Andreas Schwab
PR target/27880
* unwind-compat.c: Wrap everything except _Unwind_GetIPInfo inside
SHARED.
* config/t-libunwind (LIB2ADDEHSTATIC): Add
$(srcdir)/unwind-compat.c.
Index: gcc/config/t-libunwind
===================================================================
--- gcc/config/t-libunwind.orig 2009-04-29 17:23:02.000000000 +0200
+++ gcc/config/t-libunwind 2010-07-01 16:26:39.000000000 +0200
@@ -24,7 +24,8 @@
SHLIB_LC = -lunwind -lc
LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \
$(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c
-LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
+LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \
+ $(srcdir)/unwind-compat.c
T_CFLAGS += -DUSE_LIBUNWIND_EXCEPTIONS
TARGET_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER
Index: gcc/unwind-compat.c
===================================================================
--- gcc/unwind-compat.c.orig 2009-11-26 17:07:42.000000000 +0100
+++ gcc/unwind-compat.c 2010-07-01 16:26:39.000000000 +0200
@@ -30,6 +30,7 @@
#include "unwind-dw2-fde.h"
#include "unwind-compat.h"
+#ifdef SHARED
extern _Unwind_Reason_Code __libunwind_Unwind_Backtrace
(_Unwind_Trace_Fn, void *);
@@ -131,13 +132,6 @@ _Unwind_GetIP (struct _Unwind_Context *c
}
symver (_Unwind_GetIP, GCC_3.0);
-_Unwind_Ptr
-_Unwind_GetIPInfo (struct _Unwind_Context *context, int *ip_before_insn)
-{
- *ip_before_insn = 0;
- return __libunwind_Unwind_GetIP (context);
-}
-
extern void *__libunwind_Unwind_GetLanguageSpecificData
(struct _Unwind_Context *);
@@ -207,4 +201,14 @@ _Unwind_SetIP (struct _Unwind_Context *c
return __libunwind_Unwind_SetIP (context, val);
}
symver (_Unwind_SetIP, GCC_3.0);
+#endif /* SHARED */
+
+extern _Unwind_Ptr __libunwind_Unwind_GetIP (struct _Unwind_Context *);
+
+_Unwind_Ptr
+_Unwind_GetIPInfo (struct _Unwind_Context *context, int *ip_before_insn)
+{
+ *ip_before_insn = 0;
+ return __libunwind_Unwind_GetIP (context);
+}
#endif
++++++ pr33763.diff ++++++
Index: gcc/tree-inline.c
===================================================================
--- gcc/tree-inline.c.orig 2010-07-01 15:54:11.000000000 +0200
+++ gcc/tree-inline.c 2010-07-01 16:26:41.000000000 +0200
@@ -3827,6 +3827,12 @@ expand_call_inline (basic_block bb, gimp
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)
{
++++++ 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 2010-11-05 13:57:44.000000000 +0100
--- gcc/ada/gcc-interface/Make-lang.in 2010-11-05 14:37:26.000000000 +0100
*************** doc/gnat-style.pdf: ada/gnat-style.texi
*** 669,674 ****
--- 669,689 ----
# 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) ] ; \
*************** ada.install-common:
*** 682,689 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 697,704 ----
$(INSTALL_PROGRAM) gnatbind-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatbind$(exeext); \
fi; \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATBIND_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatbind$(exeext) $(DESTDIR)$(bindir)/$(GNATBIND_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 697,704 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 712,719 ----
$(INSTALL_PROGRAM) gnatchop-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatchop$(exeext); \
fi ; \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATCHOP_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatchop$(exeext) $(DESTDIR)$(bindir)/$(GNATCHOP_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 712,719 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 727,734 ----
$(INSTALL_PROGRAM) gnat-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnat$(exeext); \
fi; \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNAT_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnat$(exeext) $(DESTDIR)$(bindir)/$(GNAT_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 727,734 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 742,749 ----
$(INSTALL_PROGRAM) gnatkr-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatkr$(exeext); \
fi; \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATKR_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatkr$(exeext) $(DESTDIR)$(bindir)/$(GNATKR_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 742,749 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 757,764 ----
$(INSTALL_PROGRAM) gnatlink-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatlink$(exeext); \
fi; \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATLINK_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatlink$(exeext) $(DESTDIR)$(bindir)/$(GNATLINK_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 757,764 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 772,779 ----
$(INSTALL_PROGRAM) gnatls-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatls$(exeext); \
fi; \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATLS_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatls$(exeext) $(DESTDIR)$(bindir)/$(GNATLS_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 772,779 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 787,794 ----
$(INSTALL_PROGRAM) gnatmake-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatmake$(exeext); \
fi; \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATMAKE_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatmake$(exeext) $(DESTDIR)$(bindir)/$(GNATMAKE_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 783,790 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 798,805 ----
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatname$(exeext); \
$(INSTALL_PROGRAM) gnatname-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatname$(exeext); \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATNAME_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatname$(exeext) $(DESTDIR)$(bindir)/$(GNATNAME_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 798,805 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 813,820 ----
$(INSTALL_PROGRAM) gnatprep-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatprep$(exeext); \
fi; \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATPREP_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatprep$(exeext) $(DESTDIR)$(bindir)/$(GNATPREP_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 809,816 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 824,831 ----
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatxref$(exeext); \
$(INSTALL_PROGRAM) gnatxref-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatxref$(exeext); \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATXREF_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatxref$(exeext) $(DESTDIR)$(bindir)/$(GNATXREF_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 820,827 ****
$(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); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
--- 835,842 ----
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatfind$(exeext); \
$(INSTALL_PROGRAM) gnatfind-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatfind$(exeext); \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATFIND_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatfind$(exeext) $(DESTDIR)$(bindir)/$(GNATFIND_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
*************** ada.install-common:
*** 831,838 ****
$(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); \
fi ; \
fi
#
--- 846,853 ----
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatclean$(exeext); \
$(INSTALL_PROGRAM) gnatclean-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatclean$(exeext); \
else \
! $(RM) $(DESTDIR)$(bindir)/$(GNATCLEAN_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) gnatclean$(exeext) $(DESTDIR)$(bindir)/$(GNATCLEAN_INSTALL_NAME)$(exeext); \
fi ; \
fi
#
*************** ada.install-common:
*** 846,852 ****
$(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); \
fi ; \
fi
#
--- 861,867 ----
$(INSTALL_PROGRAM) gnatsym-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatsym$(exeext); \
else \
$(RM) $(DESTDIR)$(bindir)/gnatsym$(exeext); \
! $(INSTALL_PROGRAM) gnatsym$(exeext) $(DESTDIR)$(bindir)/$(GNATSYM_INSTALL_NAME)$(exeext); \
fi ; \
fi
#
*************** ada.install-common:
*** 854,861 ****
#
-if [ -f gnat1$(exeext) ] ; \
then \
! $(RM) $(DESTDIR)$(bindir)/gnatdll$(exeext); \
! $(INSTALL_PROGRAM) gnatdll$(exeext) $(DESTDIR)$(bindir)/gnatdll$(exeext); \
fi
#
# vxaddr2line is only used for cross ports (it calls the underlying cross
--- 869,876 ----
#
-if [ -f gnat1$(exeext) ] ; \
then \
! $(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
*************** ada.install-common:
*** 865,872 ****
then \
if [ -f vxaddr2line$(exeext) ] ; \
then \
! $(RM) $(DESTDIR)$(bindir)/vxaddr2line$(exeext); \
! $(INSTALL_PROGRAM) vxaddr2line$(exeext) $(DESTDIR)$(bindir)/vxaddr2line$(exeext); \
fi ; \
fi
--- 880,887 ----
then \
if [ -f vxaddr2line$(exeext) ] ; \
then \
! $(RM) $(DESTDIR)$(bindir)/$(VXADDR2LINE_INSTALL_NAME)$(exeext); \
! $(INSTALL_PROGRAM) vxaddr2line$(exeext) $(DESTDIR)$(bindir)/$(VXADDR2LINE_INSTALL_NAME)$(exeext); \
fi ; \
fi
*************** ada.uninstall:
*** 930,937 ****
-$(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.
--- 945,950 ----
++++++ sap303956-uchar.diff ++++++
Index: gcc/ginclude/uchar.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gcc/ginclude/uchar.h 2010-08-31 12:13:18.000000000 +0200
@@ -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 2010-08-31 12:13:15.000000000 +0200
+++ gcc/Makefile.in 2010-08-31 12:13:18.000000000 +0200
@@ -364,6 +364,7 @@ USER_H = $(srcdir)/ginclude/float.h \
$(srcdir)/ginclude/stddef.h \
$(srcdir)/ginclude/varargs.h \
$(srcdir)/ginclude/stdfix.h \
+ $(srcdir)/ginclude/uchar.h \
$(EXTRA_HEADERS)
USER_H_INC_NEXT_PRE = @user_headers_inc_next_pre@
++++++ suse-record-gcc-opts.diff ++++++
Index: gcc/varasm.c
===================================================================
*** gcc/varasm.c.orig 2010-11-05 13:58:02.000000000 +0100
--- gcc/varasm.c 2010-11-05 14:29:25.000000000 +0100
*************** file_end_indicate_split_stack (void)
*** 6682,6687 ****
--- 6682,6716 ----
}
}
+ /* 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 2010-10-12 15:16:27.000000000 +0200
--- gcc/output.h 2010-11-05 14:29:57.000000000 +0100
*************** extern void default_asm_declare_constant
*** 633,638 ****
--- 633,639 ----
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 2010-11-05 13:58:02.000000000 +0100
--- gcc/toplev.c 2010-11-05 14:29:25.000000000 +0100
*************** compile_file (void)
*** 1007,1012 ****
--- 1007,1014 ----
/* 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/linux.h
===================================================================
--- gcc/config/i386/linux.h.orig 2010-03-26 12:58:09.000000000 +0100
+++ gcc/config/i386/linux.h 2010-07-01 16:26:38.000000000 +0200
@@ -32,8 +32,13 @@ 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 "#"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org