Hello community,
here is the log from the commit of package gcc41
checked in at Wed Jul 19 14:11:02 CEST 2006.
--------
New Changes file:
--- /dev/null 2002-12-09 23:01:21.000000000 +0100
+++ gcc41/cross-alpha-gcc-icecream-backend.changes 2006-07-17 12:08:52.000000000 +0200
@@ -0,0 +1,1586 @@
+-------------------------------------------------------------------
+Mon Jul 17 12:05:18 CEST 2006 - rguenther@suse.de
+
+- Rename to gcc41.
+- Install with suffix -4.1 for all binaries.
+- No longer package protoize.
+- No longer package cc, c++ and /lib/cpp.
+- Make (some) devel packages use the package suffix.
+- No longer provide c_compiler and c++_compiler.
+
+-------------------------------------------------------------------
+Fri Jul 14 14:02:08 CEST 2006 - rguenther@suse.de
+
+- Move all info files to gcc-info package.
+
+-------------------------------------------------------------------
+Wed Jul 12 15:24:59 CEST 2006 - rguenther@suse.de
+
+- Move development libraries to version specific directories.
+- Move libstdc++ locales to gcc-locale package.
+- Move libstdc++ documentation to new libstdc++-doc package.
+- Remove libstdc++, fortran and objc .la files.
+- Adjust dependencies to shared libraries.
+
+-------------------------------------------------------------------
+Mon Jul 10 12:48:09 CEST 2006 - rguenther@suse.de
+
+- No longer revert fix for PR26068.
+- Add patch to fix PR28016.
+
+-------------------------------------------------------------------
+Wed Jul 5 17:32:44 CEST 2006 - rguenther@suse.de
+
+- Update to 4.1 SVN head.
+
+-------------------------------------------------------------------
+Thu Jun 22 15:50:33 CEST 2006 - rguenther@suse.de
+
+- Disable hack that made -mno-tls-direct-seg-refs the default
+ on x86_64. [#185782]
+- The great spec file rewrite. Split everything into 32/64bit
+ subpackages.
+
+-------------------------------------------------------------------
+Tue Jun 6 16:49:21 CEST 2006 - rguenther@suse.de
+
+- Revert fix for PR26068.
+- Annotate icecream crosses as having binary payload.
+- Package libffi.
+
+-------------------------------------------------------------------
+Tue May 30 14:06:02 CEST 2006 - rguenther@suse.de
+
+- Update to gcc-4_1-branch head. Fixes #22743.
+- Strip binaries and libs for the icecream backends.
+- Split libgfortran shared library into own package.
+- Build and package the Objective C++ frontend.
+- No longer package fastjar stuff.
+- Instead of reverting the fix for PR26757 apply the fix for PR27793.
+ [#179518]
+
+-------------------------------------------------------------------
+Mon May 29 16:27:33 CEST 2006 - rguenther@suse.de
+
+- Revert patch for PR26757 which causes MPlayer build failures.
+
+-------------------------------------------------------------------
+Thu May 25 22:38:48 CEST 2006 - rguenther@suse.de
+
+- Update to 4.1.1 release.
+
+-------------------------------------------------------------------
+Wed May 17 11:52:20 CEST 2006 - rguenther@suse.de
+
+- Update to gcc-4_1-branch head.
+
+-------------------------------------------------------------------
+Mon May 15 11:40:22 CEST 2006 - rguenther@suse.de
+
+- Update to gcc-4_1-branch head.
+- Depend on mpfr-devel.
+
+-------------------------------------------------------------------
+Sat May 6 12:38:29 CEST 2006 - rguenther@suse.de
+
+- Update to gcc-4_1-branch head and remove rpm patches that are
+ now obsoleted. [#173029 (and more)]
+
+-------------------------------------------------------------------
+Wed May 3 18:34:09 CEST 2006 - matz@suse.de
+
+- Add patch for PR27409, an ICE. [#170939]
+
+-------------------------------------------------------------------
+Wed May 3 09:25:02 CEST 2006 - rguenther@suse.de
+
+- Add patch for PR27364, VRP miscompiles multiplication with overflow,
+ miscompilation of binutils.
+- Add patch for PR14261 for ia64, s390 and s390x, ICE for code resembling to
+ yacc output. [#171728]
+
+-------------------------------------------------------------------
+Fri Apr 28 13:50:45 CEST 2006 - rguenther@suse.de
+
+- Add patch for PR26399, -fprofile-generate/use checksum
+ mismatches. [#159466]
+
+-------------------------------------------------------------------
+Sat Apr 22 19:11:27 CEST 2006 - rguenther@suse.de
+
+- Add patch to fix fallout from patch for PR27095, fix PR27260.
+
+-------------------------------------------------------------------
+Thu Apr 20 11:38:07 CEST 2006 - rguenther@suse.de
+
+- Add patch to fix ppc long-double varargs ABI issue. [#167932]
+
+-------------------------------------------------------------------
+Wed Apr 19 13:50:33 CEST 2006 - rguenther@suse.de
+
+- Add patch to reorder indexed load/store operands on rs6000. [#161673]
+
+-------------------------------------------------------------------
+Tue Apr 18 12:33:05 CEST 2006 - rguenther@suse.de
+
+- Add patch for PR25917, wrong assembly generated on ia64
+ for certain bitops and extensions.
+- Add patch for PR26777, std::pubseekoff throwing away buffered
+ data on error.
+- Add patch for PR26996, SCEV analysis ICEing on vector types.
+- Add patch for PR27006, wrong assembly genrated on ppc/ppc64
+ for altivec constant loading.
+- Add patch for PR27095, memset and strcmp evaluating length argument
+ twice.
+- Add patch for PR27134, ICEing on (int)floor() and other rounding
+ functions with -ffast-math.
+- Add patch for PR27162, using == instead of the binary predicate
+ specified for std::search_n.
+
+-------------------------------------------------------------------
+Sat Apr 8 12:06:14 CEST 2006 - rguenther@suse.de
+
+- Update patch for PR26919 to also collect garbage.
+
+-------------------------------------------------------------------
+Fri Apr 7 10:23:01 CEST 2006 - rguenther@suse.de
+
+- Add patch for PR26919.
+- Merge up to rev 112748 for gfortran changes on the branch.
+ [#162890, #163146]
+
+-------------------------------------------------------------------
+Mon Apr 3 18:14:08 CEST 2006 - rguenther@suse.de
+
+- Add patch for PR26763.
+
+-------------------------------------------------------------------
+Thu Mar 30 18:49:02 CEST 2006 - rguenther@suse.de
+
+- Fix #153386 in a different way.
+- Add patch for PR26042. [#148884]
+
+-------------------------------------------------------------------
+Mon Mar 27 13:59:33 CEST 2006 - rguenther@suse.de
+
+- Really fix #153386.
+
+-------------------------------------------------------------------
+Thu Mar 23 16:58:29 CET 2006 - rguenther@suse.de
+
+- Update patch for PR26565.
+- Add patch for PR25737.
+- Add patch for OpenOffice problems. [#153386]
+- Add patch for PR26826. [#160095]
+- Enable Cairo support in libjava.
+
+-------------------------------------------------------------------
+Wed Mar 15 14:53:19 CET 2006 - rguenther@suse.de
+
+- Add patch to update to r112077.
+ [#19543, #26489, #26557, #26672, #18859, #26004, #26524, #26587,
+ #26345, #26453, #26291, #25885, #26054, #26041, #26064, #26107,
+ #26393, #20938, #24519, #25395, #25054, #25089, #24557, #23092,
+ #25045, #25075, #21303, #26499, #26554, #21303, #24903, #26136,
+ #26464, #26423, #26532, #26132, #26526, #25713, #24461, #26103]
+- Patches for PR26587, PR26526 no longer necessary.
+- Update patch for PR26565.
+- Add patch for PR26643.
+- Move libgcjawt.(so|la) and lib-gnu-java-awt-peer-gtk.(so|la) to the
+ gcc-java package because these are dlopened by the runtime. [#157655]
+
+-------------------------------------------------------------------
+Tue Mar 7 15:50:03 CET 2006 - rguenther@suse.de
+
+- Add patch for PR26587, miscompilation due to wrong PTA info.
+- Add patch for PR26565, unaligned accesses on strict alignment targets.
+- Add patch for PR26526, missing 64bit export for __copy_streambufs.
+
+-------------------------------------------------------------------
+Tue Feb 28 12:18:54 CET 2006 - rguenther@suse.de
+
+- Update to 4.1.0 release.
+- Patch for PR25603 no longer necessary.
+- Add patch for PR24879.
+- Add fortran WHERE optimizations.
+
+-------------------------------------------------------------------
+Thu Feb 23 14:10:13 CET 2006 - rguenther@suse.de
+
+- Update to SVN head.
+- Patch for PR26350 no longer necessary.
+- Add patch for PR25603. [#152811]
+- Add patch for NVL152859. [#152859]
+
+-------------------------------------------------------------------
+Sat Feb 18 17:02:55 CET 2006 - rguenther@suse.de
+
+- Update to SVN head. [#26334]
+- Patch for PR26209 no longer necessary.
+- Add patch for PR26350.
+
+-------------------------------------------------------------------
+Tue Feb 14 14:59:14 CET 2006 - rguenther@suse.de
+
+- Update to SVN head. [#150421]
+- Add patches for latent VRP and fold bugs.
+- Enable long-double-128 by default on s390, s390x, ppc and ppc64.
+- Add patch for PR26209.
+
+-------------------------------------------------------------------
+Sun Feb 12 12:14:04 CET 2006 - matz@suse.de
+
+- Don't add /lib/*/libc.so to the cross backends.
+
+-------------------------------------------------------------------
+Fri Feb 10 11:57:45 CET 2006 - rguenther@suse.de
+
+- Update to SVN head. [#25251][#26180]
+
+-------------------------------------------------------------------
+Wed Feb 8 07:51:54 CET 2006 - matz@suse.de
+
+- Make the cross-ppc-icecream-backend accept -m64.
+
+-------------------------------------------------------------------
+Tue Feb 7 17:32:01 CET 2006 - rguenther@suse.de
+
+- Update to SVN head.
+- S390 long double patch now upstream.
+- Drop in long double patchset from FC.
+- Disable all Ada workarounds.
+
+-------------------------------------------------------------------
+Tue Feb 01 10:23:47 CET 2006 - rguenther@suse.de
+
+- Update to SVN head.
+- Re-diff ada patch for ppc.
+- Add another minor libstdc++ improvement from Paolo.
+- Re-enable --with-tune=z9-109 --with-arch=z900 change on s390(x).
+- Update long double patch for s390.
+
+-------------------------------------------------------------------
+Mon Jan 30 12:50:12 CET 2006 - rguenther@suse.de
+
+- Update to SVN head.
+- Add ppc32, s390(x) 128bit long-double support.
+- Add missing intrinsics to emm headers.
+- Add candidate patch for ada build problem on s390x.
+- Revert --with-tune=z9-109 --with-arch=z900 change on s390(x).
+- Patch for PR25324 no longer necessary.
+
+-------------------------------------------------------------------
+Fri Jan 27 11:10:30 CET 2006 - rguenther@suse.de
+
+- Update to SVN head as of Mon Jan 23.
+- Add patches for PR22275, PR25626 and PR25324.
+- Patches for PR23948 and PR25535 no longer necessary.
+- Exchange patches that fix atomic builtins for a better one.
+- Add patch to fix unexpected EOF in fix-header.
+- Update patch(es) for generic CPU model.
+- Add gfortran matmul patch.
+- Use --with-tune=z9-109 --with-arch=z900 for s390(x).
+- Disable ada for s390x.
+- Don't build fortran for crosses. Don't depend on gmp either.
+- Re-add dejagnu and expect build dependencies if running the testsuite.
+- Require gcc-ada build dependency only if building ada.
+
+-------------------------------------------------------------------
+Thu Jan 26 17:36:11 CET 2006 - sndirsch@suse.de
+
+- no longer use sysroot for cross-avr to fix linker error
+ "this linker was not configured to use sysroots" (Bug #145783)
+
+-------------------------------------------------------------------
+Thu Jan 26 01:13:10 CET 2006 - ro@suse.de
+
+- re-added glibc-devel-32bit to gcc.spec
+
+-------------------------------------------------------------------
+Wed Jan 25 21:30:14 CET 2006 - mls@suse.de
+
+- converted neededforbuild to BuildRequires
+
+-------------------------------------------------------------------
+Sat Jan 14 18:40:30 CET 2006 - rguenther@suse.de
+
+- Add gmp-devel to build dependencies.
+
+-------------------------------------------------------------------
+Thu Jan 12 16:58:23 CET 2006 - rguenther@suse.de
+
+- Fix large-model patch.
+- Enable large-model, blended CPU model and the multilib searchdir
+ patches for STABLE, too.
+
+-------------------------------------------------------------------
+Mon Jan 9 12:02:09 CET 2006 - rguenther@suse.de
+
+- Update to current SVN head.
+- Patches for PR22533 and PR25130 no longer necessary.
+
+-------------------------------------------------------------------
+Sun Jan 8 16:12:26 CET 2006 - sndirsch@suse.de
+
+- enabled build of g++ for cross-avr; crash-bobby (www.qfix.de)
+ needs a C++ compiler
+
+-------------------------------------------------------------------
+Fri Jan 6 08:51:30 CET 2006 - aj@suse.de
+
+- Update generic model patch.
+
+-------------------------------------------------------------------
+Tue Jan 3 11:13:19 CET 2006 - rguenther@suse.de
+
+- Update to current SVN head.
+- Workaround for PR25023 should be no longer necessary.
+- Add patch for PR25130.
+- Add patches from RH SRPM, java fixes, ia64 ssp support,
+ s390 and ppc64 atomic fixes.
+
+-------------------------------------------------------------------
+Fri Dec 30 20:40:50 CET 2005 - aj@suse.de
+
+- Do not package static java libraries since linking statically
+ with them will not really work.
+- Update to current SVN head.
+
+-------------------------------------------------------------------
+Thu Dec 22 14:40:09 CET 2005 - rguenther@suse.de
+
+- Add patch for generic CPU model (x86_64 only) for BETA.
+
+-------------------------------------------------------------------
+Wed Dec 21 10:09:22 CET 2005 - rguenther@suse.de
+
+- Enable checking for BETA.
+- Enable large-model patch for BETA.
+- Enable patch for PR20425 for BETA.
+
+-------------------------------------------------------------------
+Wed Dec 21 08:56:17 CET 2005 - aj@suse.de
+
+- Update to current SVN head.
+
+-------------------------------------------------------------------
+Mon Dec 19 10:08:56 CET 2005 - rguenther@suse.de
+
+- Add patch for PR25310.
+- Remove libssp again, glibc has the required support now.
+- Remove SPARCles from the spec file.
+- Downgrade checking to release checking in STABLE.
+- Fix all unpackaged symlinks.
+
+-------------------------------------------------------------------
+Thu Dec 15 10:30:08 CET 2005 - rguenther@suse.de
+
+- Disable patch for PR20425 for stable.
+- Fix libssp location for ppc.
+
+-------------------------------------------------------------------
+Mon Dec 12 13:40:40 CET 2005 - rguenther@suse.de
+
+- Fix 64bit libssp install on ppc.
+- Update patch for PR20425.
+
+-------------------------------------------------------------------
+Sun Dec 11 09:58:40 CET 2005 - aj@suse.de
+
+- Update to current SVN head.
+- Enable libssp.
+
+-------------------------------------------------------------------
+Fri Dec 9 11:01:39 CET 2005 - rguenther@suse.de
+
+- Update to current SVN head.
+- C++ strict aliasing warnings now upstream.
+- Patch for PR24908 no longer necessary.
+- Add patches for PR25180, PR25311 and PR20425.
+- Enable Ada workaround for hppa, too.
+- Enable --enable-secureplt for ppc and ppc64 targets.
+
+-------------------------------------------------------------------
+Wed Nov 30 12:03:02 CET 2005 - rguenther@suse.de
+
+- Update to current SVN head.
+- Add patches for PR24823 and PR24908.
+
+-------------------------------------------------------------------
+Thu Nov 24 15:57:26 CET 2005 - rguenther@suse.de
+
+- Add patch for PR24982.
+- Add workaround for PR25023.
+
+-------------------------------------------------------------------
+Wed Nov 23 11:52:50 CET 2005 - rguenther@suse.de
+
+- Update to current SVN head.
+- Add different fix for PR22533.
+- Disable Ada workarounds for s390 and s390x.
+- Add patch for PR24626.
+- Patches for PR20928, PR24172 and PR23717 no longer necessary.
+- Ada EH on s390 fixed upstream.
+- Add patch to disable aliasing-warnings in std::string.
+
+-------------------------------------------------------------------
+Fri Nov 18 23:55:18 CET 2005 - schwab@suse.de
+
+- Fix Ada library links.
+
+-------------------------------------------------------------------
+Wed Nov 16 11:34:46 CET 2005 - rguenther@suse.de
+
+- Update to current SVN head.
+- Patch for PR22509 no longer necessary.
+- No more reversion of AJs patch to libgfortran.
+- Disable inst-prefix-dir.patch.
+- Re-enable Ada workarounds, fix Ada EH on s390.
+
+-------------------------------------------------------------------
+Thu Nov 10 10:24:49 CET 2005 - rguenther@suse.de
+
+- Update to current SVN head.
+- Check if we accidentially end up with make -j0 and fix it.
+- Update patch for PR23948.
+- Patches for PR24627 and PR24230 no longer necessary.
+- Revert patch from AJ to libgfortran.h.
+
+-------------------------------------------------------------------
+Wed Nov 2 10:55:07 CET 2005 - rguenther@suse.de
+
+- Update to current SVN head.
+- Patches for PR24225, PR24351 no longer necessary.
+- Add patches for PR24230, PR24627, PR22509.
+- Disable some of the ada workarounds.
+- Disable java for arm.
+
+-------------------------------------------------------------------
+Tue Nov 1 11:02:18 CET 2005 - rguenther@suse.de
+
+- Exchange patch for PR24351.
+
+-------------------------------------------------------------------
+Thu Oct 27 11:39:33 CEST 2005 - rguenther@suse.de
+
+- Add patch for PR24351.
+- Use libstdc++ allocator "new" instead of default "mt"
+ for compatibility and possibly LSB3.0 conformance.
+
+-------------------------------------------------------------------
+Mon Oct 24 11:13:18 CEST 2005 - rguenther@suse.de
+
+- Update to current CVS head.
+- Add patch for PR24225.
+
+-------------------------------------------------------------------
+Wed Oct 19 10:04:45 CEST 2005 - rguenther@suse.de
+
+- Update to current CVS head.
+- Disable strict-aliasing patch.
+- Patch for PR24255 is no longer needed.
+- Fix RPM_OPT_FLAGS for cross-avr to not include
+ -march/cpu/tune stuff.
+
+-------------------------------------------------------------------
+Fri Oct 14 14:44:04 CEST 2005 - rguenther@suse.de
+
+- Add patch for PR24172.
+- Add patch for PR24255.
+
+-------------------------------------------------------------------
+Wed Oct 12 12:22:37 CEST 2005 - rguenther@suse.de
+
+- Update to current CVS head.
+- Add patch for PR23948.
+- Update strict-aliasing patch.
+- Apply patch6 to ppc/ppc64, too.
+
+-------------------------------------------------------------------
+Mon Oct 10 11:35:56 CEST 2005 - rguenther@suse.de
+
+- Add patch to warn about papering over strict-aliasing bugs.
+
+-------------------------------------------------------------------
+Sat Oct 8 16:00:48 CEST 2005 - aj@suse.de
+
+- Update to current CVS head.
+
+-------------------------------------------------------------------
+Sat Oct 1 23:44:48 CEST 2005 - schwab@suse.de
+
+- Update to current CVS head.
+- Add workaround for PR22533.
+
+-------------------------------------------------------------------
+Thu Sep 22 16:25:54 CEST 2005 - schwab@suse.de
+
+- Build Ada with -O0 and reenable.
+
+-------------------------------------------------------------------
+Tue Sep 20 16:54:30 CEST 2005 - aj@suse.de
+
+- Update to current CVS head.
+- Add patch for PR22438.
+- Disable Ada on ppc, s390, s390x for now.
+- Fix .la files.
+
+-------------------------------------------------------------------
+Mon Sep 19 11:48:42 CEST 2005 - aj@suse.de
+
+- Update to current CVS head.
+
+-------------------------------------------------------------------
+Fri Sep 16 08:02:46 CEST 2005 - aj@suse.de
+
+- Update to CVS Head.
+
+-------------------------------------------------------------------
+Fri Sep 9 15:14:03 CEST 2005 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Tue Sep 6 12:10:32 CEST 2005 - schwab@suse.de
+
+- Disable testsuite for now.
+
+-------------------------------------------------------------------
+Sun Sep 4 11:44:27 CEST 2005 - schwab@suse.de
+
+- Avoid strict aliasing warning.
+
+-------------------------------------------------------------------
+Sat Sep 3 17:39:43 CEST 2005 - schwab@suse.de
+
+- Update to CVS HEAD.
+
+-------------------------------------------------------------------
+Fri Aug 26 14:26:19 CEST 2005 - aj@suse.de
+
+- Update to current CVS to fix GCC bug #23546.
+
+-------------------------------------------------------------------
+Thu Aug 25 16:28:26 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+- Enable java on hppa.
+
+-------------------------------------------------------------------
+Tue Aug 23 10:57:18 CEST 2005 - meissner@suse.de
+
+- Applied bugfix for fortify checking from Jakub Jelinek.
+ (gcc PR middle-end/23484)
+
+-------------------------------------------------------------------
+Thu Aug 18 16:50:07 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Aug 17 00:07:49 CEST 2005 - jw@suse.de
+
+- cross-avr-gcc: Enabled avr2 support in micro-cross.spec.in
+ fixes #105206
+- micro-cross.spec.in more robust against gcc.spec changes.
+
+-------------------------------------------------------------------
+Wed Aug 17 15:03:21 CEST 2005 - matz@suse.de
+
+- Enable Ada on hppa.
+
+-------------------------------------------------------------------
+Thu Aug 11 21:26:28 CEST 2005 - aj@suse.de
+
+- Fix PR23326 [#99249 - kopete miscompilation].
+- Update to current CVS for:
+ * Fix PR23312 [ada ICEs]
+ * Fix PR23266 [C++ ICE]
+
+-------------------------------------------------------------------
+Thu Aug 11 06:41:57 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- Add gcc-locale package again [#103757].
+- Fix gcc-mainline 64bit lib names.
+
+-------------------------------------------------------------------
+Sun Aug 7 03:06:59 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+- Fixes PR23192, which results in miscompilation of libpcap [#102460].
+- Don't build nof libs on pcc.
+
+-------------------------------------------------------------------
+Sat Aug 6 18:34:30 CEST 2005 - schwab@suse.de
+
+- Also fix cross-avr specfile.
+
+-------------------------------------------------------------------
+Fri Aug 5 20:12:11 CEST 2005 - schwab@suse.de
+
+- Fix cross specfiles.
+
+-------------------------------------------------------------------
+Fri Aug 5 04:51:55 CEST 2005 - matz@suse.de
+
+- Package nof dir on ppc again.
+- Put 64bit libs into separate rpms on ppc.
+- Rename gnat and gnat-runtime to gcc-ada resp. libada.
+
+-------------------------------------------------------------------
+Fri Aug 5 01:04:13 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+- Made libgcj (and friends) not biarch.
+- Added libgcjawt for OpenOffice.
+
+-------------------------------------------------------------------
+Wed Jul 27 16:45:14 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Jul 20 17:20:36 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Jul 14 18:46:35 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Jul 13 15:34:32 CEST 2005 - schwab@suse.de
+
+- Parallel build fix.
+- Properly detect ppc64 kernel.
+
+-------------------------------------------------------------------
+Fri Jul 1 09:45:13 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Jun 24 03:47:30 CEST 2005 - matz@suse.de
+
+- Fix partly empty c++config.h also for ppc.
+- Fix libstdc++-devel filelist.
+
+-------------------------------------------------------------------
+Thu Jun 23 01:39:56 CEST 2005 - matz@suse.de
+
+- Fix use of wrong macro, leading to partly empty c++config.h.
+
+-------------------------------------------------------------------
+Tue Jun 21 20:13:02 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+- Add fix for PR21721 (ia64 p0 problem).
+- Add fix for PR22028.
+
+-------------------------------------------------------------------
+Mon Jun 13 15:00:41 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+- Pull fix for PR21171 from mainline (should fix grub, #84600).
+- Add fix for PR21985 (also a grub problem).
+
+-------------------------------------------------------------------
+Thu Jun 9 11:54:39 CEST 2005 - schwab@suse.de
+
+- Update to current CVS.
+- Fix broken unwind info in profiling code.
+
+-------------------------------------------------------------------
+Fri Jun 3 17:29:43 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+- Workaround for PR21041.
+
+-------------------------------------------------------------------
+Sun May 29 08:09:38 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- Package pre_checkin.sh so that Robert can use our package.
+
+-------------------------------------------------------------------
+Thu May 26 20:07:36 CEST 2005 - schwab@suse.de
+
+- Fix fortify patch.
+
+-------------------------------------------------------------------
+Thu May 26 09:29:45 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sun May 22 20:16:04 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- Fix visibility hidden problems PR C++/19664 and
+ PR middle-end/20218.
+
+-------------------------------------------------------------------
+Sat May 21 08:51:37 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu May 19 13:46:18 CEST 2005 - schwab@suse.de
+
+- Update to current CVS, fixes glibc miscompilation.
+
+-------------------------------------------------------------------
+Wed May 18 20:53:49 CEST 2005 - aj@suse.de
+
+- Update to current CVS - should fix ia64
+ ICEs.
+
+-------------------------------------------------------------------
+Wed May 18 10:33:33 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon May 16 15:07:32 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- Fix PowerPC gcc-mainline package.
+
+-------------------------------------------------------------------
+Sun May 15 11:06:01 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- Fix warnings about uninitialized variables.
+
+-------------------------------------------------------------------
+Fri May 13 11:23:03 CEST 2005 - matz@suse.de
+
+- Fix cross-avr-gcc (uses now target=avr, not avr-elf).
+
+-------------------------------------------------------------------
+Thu May 12 23:05:04 CEST 2005 - matz@suse.de
+
+- Add gjnih to gcc-java.
+
+-------------------------------------------------------------------
+Thu May 12 03:35:11 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+- Fix filelists (libgfortran.so and libmudflapth.so).
+- Add cross-avr-gcc from jw@suse.de.
+
+-------------------------------------------------------------------
+Sun May 8 00:28:03 CEST 2005 - matz@suse.de
+
+- Add cross-alpha-icecream-backend.
+
+-------------------------------------------------------------------
+Wed May 4 14:17:25 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed May 4 00:43:19 CEST 2005 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Apr 25 15:22:14 CEST 2005 - matz@suse.de
+
+- Fix endless loop in postreload on ia64.
+
+-------------------------------------------------------------------
+Sun Apr 24 12:14:08 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- Fix pre_checkin for gcc-mainline.
+
+-------------------------------------------------------------------
+Sat Apr 23 22:57:32 CEST 2005 - schwab@suse.de
+
+- Provide/obsolete gcc-locale.
+
+-------------------------------------------------------------------
+Sat Apr 23 23:33:08 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- Fix one PRE bug.
+
+-------------------------------------------------------------------
+Sat Apr 23 00:32:58 CEST 2005 - matz@suse.de
+
+- Fix ulimit call to use kbyte not mbyte.
+
+-------------------------------------------------------------------
+Fri Apr 22 16:49:32 CEST 2005 - matz@suse.de
+
+- Update to current CVS, which is a prerelease of 4.0.1.
+
+-------------------------------------------------------------------
+Sat Apr 16 08:33:08 CEST 2005 - meissner@suse.de
+
+- Added RH fortify extensions.
+
+-------------------------------------------------------------------
+Fri Apr 15 13:41:39 CEST 2005 - matz@suse.de
+
+- Update to current CVS.
+- Fix PR20963: ICE compiling dosbox (preliminary patch).
+
+-------------------------------------------------------------------
+Wed Apr 13 02:26:54 CEST 2005 - ro@suse.de
+
+- fix last patch to apply
+
+-------------------------------------------------------------------
+Tue Apr 12 23:26:40 CEST 2005 - schwab@suse.de
+
+- Fix GCC PR20924: Wrong floating point flags for inline division.
+
+-------------------------------------------------------------------
+Tue Apr 12 22:21:06 CEST 2005 - matz@suse.de
+
+- Testpatch for GCC PR20973: miscompile of khtml.
+
+-------------------------------------------------------------------
+Mon Apr 11 07:35:44 CEST 2005 - aj@suse.de
+
+- Fix GCC PR20928: ICE compiling clisp.
+- Fix GCC PR20929: ICE compiling mozilla.
+
+-------------------------------------------------------------------
+Sun Apr 10 09:21:01 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- Fix GCC PR20917: ICE compiling glibc on s390.
+- Fix GCC PR20126: Miscompilation of python.
+
+-------------------------------------------------------------------
+Sat Apr 9 09:49:39 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Apr 8 20:22:46 CEST 2005 - schwab@suse.de
+
+- Build cross compiler backends for icecream.
+
+-------------------------------------------------------------------
+Fri Apr 8 11:34:35 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Apr 7 17:57:09 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Apr 7 11:56:45 CEST 2005 - meissner@suse.de
+
+- Add a patch for PR 20739 (ncurses bugfix)
+
+-------------------------------------------------------------------
+Wed Apr 6 08:31:47 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- Require gettext packages for build.
+
+-------------------------------------------------------------------
+Tue Apr 5 07:12:33 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Apr 1 13:54:37 CEST 2005 - aj@suse.de
+
+- Add fixes for Arm from Ulrich Hecht.
+
+-------------------------------------------------------------------
+Fri Apr 1 08:29:55 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- Fix GCC PR20635.
+
+-------------------------------------------------------------------
+Wed Mar 30 18:19:43 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Mar 28 11:40:24 CEST 2005 - aj@suse.de
+
+- Update to current CVS.
+- build multiarch on PPC.
+- Add one fix for GCC PR19345.
+
+-------------------------------------------------------------------
+Fri Mar 25 00:17:30 CET 2005 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sun Mar 20 07:39:08 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Mar 17 15:06:43 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sat Mar 12 20:55:01 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Mar 10 06:43:23 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Mar 7 07:16:38 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Mar 4 23:01:43 CET 2005 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Feb 28 12:42:08 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sat Feb 26 20:20:51 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Feb 23 09:03:28 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sun Feb 20 10:24:54 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+- Fix PR20017.
+
+-------------------------------------------------------------------
+Fri Feb 18 15:45:53 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Feb 17 15:27:26 CET 2005 - schwab@suse.de
+
+- Add timeout to ACATS test script.
+
+-------------------------------------------------------------------
+Thu Feb 17 11:12:00 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Tue Feb 15 10:51:20 CET 2005 - schwab@suse.de
+
+- Update to current CVS.
+- Apply ada-nonopt.patch also on ppc.
+
+-------------------------------------------------------------------
+Mon Feb 14 03:29:12 CET 2005 - matz@suse.de
+
+- Don't use icecream, strip senseless warning options from
+ RPM_OPT_FLAGS.
+
+-------------------------------------------------------------------
+Fri Feb 11 15:36:06 CET 2005 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Feb 9 13:55:47 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Tue Feb 8 09:08:13 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Feb 3 17:45:46 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Feb 2 19:41:46 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sun Jan 30 07:42:29 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Jan 28 13:40:20 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Jan 26 20:27:43 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Tue Jan 25 17:36:43 CET 2005 - meissner@suse.de
+
+- Added sentinel-c++.diff to avoid faulty sentinel
+ warnings due to C++ NULL being __null.
+
+-------------------------------------------------------------------
+Mon Jan 24 09:31:14 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Jan 20 15:09:04 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Jan 19 10:57:00 CET 2005 - aj@suse.de
+
+- Install C++ headers into /usr/include/c++/<version>.
+- Fix c++config.h for multilib systems.
+- Remove old obsoletes/provides for gjava, gpp, gccinfo, gobjc,
+ minigcc and gnat-3.13p-runtime.
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sun Jan 16 19:16:50 CET 2005 - aj@suse.de
+
+- Enable ada on s390x.
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Jan 14 14:32:00 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Jan 12 17:12:48 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+- Enable ada on s390.
+
+-------------------------------------------------------------------
+Tue Jan 11 08:38:42 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Jan 10 13:18:37 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+- Disable testsuite run for now.
+
+-------------------------------------------------------------------
+Sun Jan 9 18:54:15 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+- Always run testsuite for gcc-mainline.
+
+-------------------------------------------------------------------
+Sat Jan 8 15:28:37 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Jan 3 21:25:13 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+- Remove obsolete patches.
+
+-------------------------------------------------------------------
+Sun Jan 2 19:17:27 CET 2005 - schwab@suse.de
+
+- Fix names of installed Ada programs.
+- Update tree-sra patch.
+
+-------------------------------------------------------------------
+Sun Jan 2 11:23:43 CET 2005 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Dec 31 10:16:31 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+- Fix gcc-mainline build.
+
+-------------------------------------------------------------------
+Mon Dec 27 11:37:35 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Dec 23 12:52:49 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Dec 17 09:24:04 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Dec 15 15:55:42 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Tue Dec 14 23:47:51 CET 2004 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Dec 13 11:55:42 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Dec 10 23:44:38 CET 2004 - schwab@suse.de
+
+- Fix requires for mainline build.
+
+-------------------------------------------------------------------
+Thu Dec 9 07:23:03 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+- Fix mainline build.
+
+-------------------------------------------------------------------
+Wed Dec 8 08:15:01 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sat Dec 4 19:54:24 CET 2004 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Tue Nov 30 09:30:15 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sun Nov 28 18:11:37 CET 2004 - schwab@suse.de
+
+- Update to current CVS.
+- Enable Ada on ppc.
+
+-------------------------------------------------------------------
+Tue Nov 23 15:53:51 CET 2004 - schwab@suse.de
+
+- Add proposed fix for PR17746.
+- Work around PR17356.
+- Enable Ada on ia64.
+
+-------------------------------------------------------------------
+Mon Nov 22 16:10:21 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Nov 18 17:26:26 CET 2004 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sun Nov 14 14:17:25 CET 2004 - schwab@suse.de
+
+- Update to current CVS.
+- Use libunwind on ia64.
+
+-------------------------------------------------------------------
+Mon Nov 8 17:25:25 CET 2004 - schwab@suse.de
+
+- Update to current CVS.
+- Disable broken patch.
+
+-------------------------------------------------------------------
+Sat Nov 6 19:18:13 CET 2004 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Nov 1 16:32:05 CET 2004 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Oct 27 15:57:43 CEST 2004 - aj@suse.de
+
+- update to current CVS
+- add some bugfixes.
+
+-------------------------------------------------------------------
+Mon Oct 25 14:04:54 CEST 2004 - aj@suse.de
+
+- Enable Ada for x86 and x86-64 architectures.
+- Rename gnat to gcc-ada and gnat-runtime to libada.
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Oct 22 18:12:59 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Oct 18 09:36:21 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sun Oct 17 10:43:50 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Oct 13 06:58:33 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+- Fix #17906.
+
+-------------------------------------------------------------------
+Tue Oct 12 21:14:06 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+- Fix pr17520.
+
+-------------------------------------------------------------------
+Sun Oct 10 10:34:30 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Oct 8 09:37:43 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Oct 1 12:05:07 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+- Remove now unneeded patch.
+
+-------------------------------------------------------------------
+Wed Sep 29 19:00:56 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Sep 24 19:17:45 CEST 2004 - aj@suse.de
+
+- Remove obsolete patch for head +1.
+
+-------------------------------------------------------------------
+Fri Sep 24 14:43:29 CEST 2004 - schwab@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Sep 20 17:50:29 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sat Sep 18 17:55:11 CEST 2004 - schwab@suse.de
+
+- Remove extra header.
+
+-------------------------------------------------------------------
+Sat Sep 18 08:27:53 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Sep 17 17:16:04 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Sep 16 13:38:07 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Sep 15 16:20:53 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Tue Sep 14 12:10:39 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+- Fix spec file for PPC.
+- Add patch to fix some aliasing issues.
+
+-------------------------------------------------------------------
+Mon Sep 13 13:06:30 CEST 2004 - aj@suse.de
+
+- GCC 3.5 is now GCC 4.0.
+- Update to current CVS.
+- Fix package list.
+
+-------------------------------------------------------------------
+Fri Sep 10 06:50:33 CEST 2004 - aj@suse.de
+
+- Do no pack libgcc_s.so.1 twice.
+
+-------------------------------------------------------------------
+Thu Sep 9 19:21:29 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+- Adjust spec file for changes.
+
+-------------------------------------------------------------------
+Thu Sep 2 10:28:42 CEST 2004 - aj@suse.de
+
+- Fix for powerpc.
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Aug 27 16:22:06 CEST 2004 - aj@suse.de
+
+- Use DESTDIR again after setting LD_LIBRARY_PATH.
+
+-------------------------------------------------------------------
+Fri Aug 27 13:14:09 CEST 2004 - aj@suse.de
+
+- Update to current 3.5 CVS.
+- Do not use DESTDIR/RPM_BUILD_ROOT since libtool will not
+ install java correctly with it.
+
+-------------------------------------------------------------------
+Fri Aug 20 13:41:08 CEST 2004 - aj@suse.de
+
+- Fix RPM_OPT_FLAGS.
+- Update to current 3.5 CVS.
+
+-------------------------------------------------------------------
+Thu Aug 19 17:44:50 CEST 2004 - aj@suse.de
+
+- Update to current 3.5 CVS.
+
+-------------------------------------------------------------------
+Mon Aug 9 17:18:42 CEST 2004 - aj@suse.de
+
+- Update to current 3.5 CVS.
+
+-------------------------------------------------------------------
+Mon Jul 19 16:47:13 CEST 2004 - aj@suse.de
+
+- Update to current 3.5 CVS.
+- Fix /usr install.
+
+-------------------------------------------------------------------
+Wed Jun 16 16:20:46 CEST 2004 - aj@suse.de
+
+- Update to current 3.5 CVS.
+- Install into /usr.
+
+-------------------------------------------------------------------
+Thu Jun 10 18:39:19 CEST 2004 - aj@suse.de
+
+- Fix build on PPC.
+- Update to current 3.5 CVS.
+
+-------------------------------------------------------------------
+Wed Jun 9 09:51:14 CEST 2004 - aj@suse.de
+
+- Update to current 3.5 CVS.
+
+-------------------------------------------------------------------
+Fri Jun 4 09:26:54 CEST 2004 - aj@suse.de
+
+- Update to current 3.5 CVS.
+- Fix spec file for x86-64 and hppa.
+
+-------------------------------------------------------------------
+Thu Jun 3 10:18:06 CEST 2004 - aj@suse.de
+
+- Fix spec file.
+- Update to current 3.5 CVS.
+
+-------------------------------------------------------------------
+Wed Jun 2 09:27:13 CEST 2004 - aj@suse.de
+
+- Update to current 3.5 CVS, rework spec file.
+
+-------------------------------------------------------------------
+Thu May 27 13:34:15 CEST 2004 - aj@suse.de
+
+- Update to GCC 3.5 CVS.
+
+-------------------------------------------------------------------
+Wed Apr 28 11:25:33 CEST 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Tue Apr 20 09:57:08 CEST 2004 - aj@suse.de
+
+- Avoid warnings.
+- Update to current 3.4 CVS.
+
+-------------------------------------------------------------------
+Fri Apr 9 20:02:38 CEST 2004 - aj@suse.de
+
+- Update to current 3.4 CVS.
+
+-------------------------------------------------------------------
+Sat Mar 13 09:31:18 CET 2004 - aj@suse.de
+
+- Fix spec file.
+- Update to current 3.4 CVS.
+
+-------------------------------------------------------------------
+Tue Mar 9 08:36:51 CET 2004 - aj@suse.de
+
+- Update to current 3.4 CVS.
+
+-------------------------------------------------------------------
+Tue Mar 2 08:43:46 CET 2004 - aj@suse.de
+
+- Update to current 3.4 CVS.
+
+-------------------------------------------------------------------
+Fri Feb 27 12:22:40 CET 2004 - aj@suse.de
+
+- Update to current 3.4 CVS.
+
+-------------------------------------------------------------------
+Wed Feb 18 13:44:13 CET 2004 - aj@suse.de
+
+- Update to current 3.4 CVS.
+
+-------------------------------------------------------------------
+Mon Feb 9 11:46:12 CET 2004 - aj@suse.de
+
+- Update to current 3.4 CVS.
+
+-------------------------------------------------------------------
+Mon Feb 2 09:21:20 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Jan 26 16:02:10 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Jan 23 14:11:32 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Jan 22 14:33:35 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Jan 19 08:10:59 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Jan 16 12:13:27 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Jan 14 08:09:59 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+- Fix spec file.
+
+-------------------------------------------------------------------
+Tue Jan 13 20:51:43 CET 2004 - aj@suse.de
+
+- Fix package list.
+
+-------------------------------------------------------------------
+Tue Jan 13 17:08:30 CET 2004 - aj@suse.de
+
+- Disable Ada on AMD64.
+
+-------------------------------------------------------------------
+Tue Jan 13 15:00:53 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Mon Jan 12 09:18:20 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Jan 7 09:12:31 CET 2004 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Tue Dec 16 09:16:09 CET 2003 - aj@suse.de
+
+- Update to current CVS.
+- change config-dist.sh to check-build.sh.
+- minimal-toc is not needed anymore on ppc64.
+- Fix PPC nof file list.
+
+-------------------------------------------------------------------
+Wed Dec 10 09:16:19 CET 2003 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Thu Dec 4 17:06:48 CET 2003 - aj@suse.de
+
+- Update to current CVS.
+- Fix package list.
+
+-------------------------------------------------------------------
+Wed Dec 3 15:41:16 CET 2003 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Sun Nov 30 23:02:51 CET 2003 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Fri Nov 28 15:30:38 CET 2003 - aj@suse.de
+
+- Update to current CVS.
+
+-------------------------------------------------------------------
+Wed Oct 29 12:46:12 CET 2003 - aj@suse.de
+
+- Fix package list for i386.
+
+-------------------------------------------------------------------
+Wed Oct 29 07:52:51 CET 2003 - aj@suse.de
+
+- New package.
+
New Changes file:
cross-arm-gcc-icecream-backend.changes: same change
New Changes file:
cross-avr-gcc.changes: same change
New Changes file:
cross-hppa-gcc-icecream-backend.changes: same change
New Changes file:
cross-i386-gcc-icecream-backend.changes: same change
New Changes file:
cross-ia64-gcc-icecream-backend.changes: same change
New Changes file:
cross-ppc-gcc-icecream-backend.changes: same change
New Changes file:
cross-ppc64-gcc-icecream-backend.changes: same change
New Changes file:
cross-s390-gcc-icecream-backend.changes: same change
New Changes file:
cross-s390x-gcc-icecream-backend.changes: same change
New Changes file:
cross-x86_64-gcc-icecream-backend.changes: same change
New Changes file:
gcc41.changes: same change
New:
----
README.First-for.SuSE.packagers
acats-timeout.patch
boehm-gc-strict-aliasing.patch
bug-reporting.patch
change_spec
check-build.sh
cross-alpha-gcc-icecream-backend.changes
cross-alpha-gcc-icecream-backend.spec
cross-arm-gcc-icecream-backend.changes
cross-arm-gcc-icecream-backend.spec
cross-avr-gcc.changes
cross-avr-gcc.spec
cross-hppa-gcc-icecream-backend.changes
cross-hppa-gcc-icecream-backend.spec
cross-i386-gcc-icecream-backend.changes
cross-i386-gcc-icecream-backend.spec
cross-ia64-gcc-icecream-backend.changes
cross-ia64-gcc-icecream-backend.spec
cross-ppc-gcc-icecream-backend.changes
cross-ppc-gcc-icecream-backend.spec
cross-ppc64-gcc-icecream-backend.changes
cross-ppc64-gcc-icecream-backend.spec
cross-s390-gcc-icecream-backend.changes
cross-s390-gcc-icecream-backend.spec
cross-s390x-gcc-icecream-backend.changes
cross-s390x-gcc-icecream-backend.spec
cross-x86_64-gcc-icecream-backend.changes
cross-x86_64-gcc-icecream-backend.spec
cross.spec.in
emmintr.patch
endless-loop-warning.patch
force_fit_type.patch
fortran-matmul.patch
gcc-4.1.2-20060705.tar.bz2
gcc-noalias-warn.diff
gcc.spec.in
gcc4-ppc64-m32-m64-multilib-only.patch
gcc41-fortran-where-opt.patch
gcc41-ia64-stack-protector.patch
gcc41-java-slow_pthread_self.patch
gcc41-ldbl-default-libstdc++.patch
gcc41-ldbl-default.patch
gcc41-ppc32-retaddr.patch
gcc41.changes
gcc41.spec
generic-cpu-model-1.patch
generic-cpu-model-2.patch
generic-cpu-model-3.patch
large-gcc.diff
libjava-no-multilib.diff
libstdcxx-bitset.patch
micro-cross.spec.in
needed_space_in_mb
nvl161673.patch
pr13212.patch
pr20425.patch
pr24879.patch
pr25626.patch
pr26399.patch
pr28016.patch
pre_checkin.sh
program-transform-name.diff
tls-no-direct.diff
tree_expr_nonzero.patch
vrp.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cross-alpha-gcc-icecream-backend.spec ++++++
++++ 1130 lines (skipped)
cross-arm-gcc-icecream-backend.spec: same change
cross-avr-gcc.spec: same change
cross-hppa-gcc-icecream-backend.spec: same change
cross-i386-gcc-icecream-backend.spec: same change
cross-ia64-gcc-icecream-backend.spec: same change
cross-ppc-gcc-icecream-backend.spec: same change
cross-ppc64-gcc-icecream-backend.spec: same change
cross-s390-gcc-icecream-backend.spec: same change
cross-s390x-gcc-icecream-backend.spec: same change
cross-x86_64-gcc-icecream-backend.spec: same change
gcc41.spec: same change
++++++ acats-timeout.patch ++++++
Index: gcc/testsuite/ada/acats/run_all.sh
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/ada/acats/run_all.sh,v
retrieving revision 1.18
diff -u -a -p -u -p -a -r1.18 gcc/testsuite/ada/acats/run_all.sh
--- gcc/testsuite/ada/acats/run_all.sh 26 Apr 2004 21:15:54 -0000 1.18
+++ gcc/testsuite/ada/acats/run_all.sh 17 Feb 2005 14:24:49 -0000
@@ -11,9 +11,16 @@
gccflags="-O2"
gnatflags="-gnatws"
+timeout=120
target_run () {
+ sh -c "(sleep $timeout; kill \$\$) &
+x=\$!
$*
+s=\$?
+kill \$x
+exit \$s
+"
}
# End of customization section.
++++++ 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);
}
++++++ bug-reporting.patch ++++++
--- gcc/gccbug.in
+++ gcc/gccbug.in
@@ -28,7 +28,7 @@
SUBMITTER=net
# The default mail address for PR submissions.
-GNATS_ADDR=gcc-gnats@gcc.gnu.org
+GNATS_ADDR=feedback@suse.de
# The default release for this host.
# We have to guess at what program_transform_name might have done.
@@ -309,6 +309,7 @@
From: $FROM
Reply-To: $REPLYTO
Cc: $CC
+X-Feedback-Type: GCC-Bug
X-send-pr-version: $VERSION
X-GNATS-Notify:
--- gcc/version.c
+++ gcc/version.c
@@ -8,7 +8,7 @@
in parentheses. You may also wish to include a number indicating
the revision of your modified compiler. */
-#define VERSUFFIX ""
+#define VERSUFFIX " (SUSE Linux)"
/* This is the location of the online document giving instructions for
reporting bugs. If you distribute a modified version of GCC,
@@ -17,7 +17,7 @@
forward us bugs reported to you, if you determine that they are
not bugs in your modifications.) */
-const char bug_report_url[] = "URL:http://gcc.gnu.org/bugs.html";
+const char bug_report_url[] = "URL:http://www.suse.de/feedback";
/* The complete version string, assembled from several pieces.
BASEVER, DATESTAMP, and DEVPHASE are defined by the Makefile. */
++++++ emmintr.patch ++++++
2006-01-27 H.J. Lu
* config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
intrinsic.
(_mm_cvtsi128_si64): Likewise.
(_mm_cvtsd_si64): Likewise.
(_mm_cvttsd_si64): Likewise.
(_mm_cvtsi64_sd): Likewise.
(_mm_cvtsi64_si128): Likewise.
* config/i386/mmintrin.h (_m_from_int64): Likewise.
(_mm_cvtsi64_m64): Likewise.
(_m_to_int64): Likewise.
(_mm_cvtm64_si64): Likewise.
* config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
(_mm_cvttss_si64): Likewise.
(_mm_cvtsi64_ss): Likewise.
(_mm_cvtss_f32): Likewise.
Index: gcc/config/i386/mmintrin.h
===================================================================
*** gcc/config/i386/mmintrin.h (revision 110310)
--- gcc/config/i386/mmintrin.h (revision 110311)
***************
*** 1,4 ****
! /* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
--- 1,5 ----
! /* Copyright (C) 2002, 2003, 2004, 2005, 2006
! Free Software Foundation, Inc.
This file is part of GCC.
***************
*** 25,31 ****
Public License. */
/* Implemented from the specification included in the Intel C++ Compiler
! User Guide and Reference, version 8.0. */
#ifndef _MMINTRIN_H_INCLUDED
#define _MMINTRIN_H_INCLUDED
--- 26,32 ----
Public License. */
/* Implemented from the specification included in the Intel C++ Compiler
! User Guide and Reference, version 9.0. */
#ifndef _MMINTRIN_H_INCLUDED
#define _MMINTRIN_H_INCLUDED
*************** _m_from_int (int __i)
*** 69,81 ****
#ifdef __x86_64__
/* Convert I to a __m64 object. */
static __inline __m64 __attribute__((__always_inline__))
_mm_cvtsi64x_si64 (long long __i)
{
return (__m64) __i;
}
- /* Convert I to a __m64 object. */
static __inline __m64 __attribute__((__always_inline__))
_mm_set_pi64x (long long __i)
{
--- 70,96 ----
#ifdef __x86_64__
/* Convert I to a __m64 object. */
+
+ /* Intel intrinsic. */
+ static __inline __m64 __attribute__((__always_inline__))
+ _m_from_int64 (long long __i)
+ {
+ return (__m64) __i;
+ }
+
+ static __inline __m64 __attribute__((__always_inline__))
+ _mm_cvtsi64_m64 (long long __i)
+ {
+ return (__m64) __i;
+ }
+
+ /* Microsoft intrinsic. */
static __inline __m64 __attribute__((__always_inline__))
_mm_cvtsi64x_si64 (long long __i)
{
return (__m64) __i;
}
static __inline __m64 __attribute__((__always_inline__))
_mm_set_pi64x (long long __i)
{
*************** _m_to_int (__m64 __i)
*** 97,103 ****
}
#ifdef __x86_64__
! /* Convert the lower 32 bits of the __m64 object into an integer. */
static __inline long long __attribute__((__always_inline__))
_mm_cvtsi64_si64x (__m64 __i)
{
--- 112,133 ----
}
#ifdef __x86_64__
! /* Convert the __m64 object to a 64bit integer. */
!
! /* Intel intrinsic. */
! static __inline long long __attribute__((__always_inline__))
! _m_to_int64 (__m64 __i)
! {
! return (long long)__i;
! }
!
! static __inline long long __attribute__((__always_inline__))
! _mm_cvtm64_si64 (__m64 __i)
! {
! return (long long)__i;
! }
!
! /* Microsoft intrinsic. */
static __inline long long __attribute__((__always_inline__))
_mm_cvtsi64_si64x (__m64 __i)
{
Index: gcc/config/i386/xmmintrin.h
===================================================================
*** gcc/config/i386/xmmintrin.h (revision 110310)
--- gcc/config/i386/xmmintrin.h (revision 110311)
***************
*** 1,4 ****
! /* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
--- 1,5 ----
! /* Copyright (C) 2002, 2003, 2004, 2005, 2006
! Free Software Foundation, Inc.
This file is part of GCC.
***************
*** 25,31 ****
Public License. */
/* Implemented from the specification included in the Intel C++ Compiler
! User Guide and Reference, version 8.0. */
#ifndef _XMMINTRIN_H_INCLUDED
#define _XMMINTRIN_H_INCLUDED
--- 26,32 ----
Public License. */
/* Implemented from the specification included in the Intel C++ Compiler
! User Guide and Reference, version 9.0. */
#ifndef _XMMINTRIN_H_INCLUDED
#define _XMMINTRIN_H_INCLUDED
*************** _mm_cvt_ss2si (__m128 __A)
*** 491,498 ****
}
#ifdef __x86_64__
! /* Convert the lower SPFP value to a 32-bit integer according to the current
! rounding mode. */
static __inline long long __attribute__((__always_inline__))
_mm_cvtss_si64x (__m128 __A)
{
--- 492,508 ----
}
#ifdef __x86_64__
! /* Convert the lower SPFP value to a 32-bit integer according to the
! current rounding mode. */
!
! /* Intel intrinsic. */
! static __inline long long __attribute__((__always_inline__))
! _mm_cvtss_si64 (__m128 __A)
! {
! return __builtin_ia32_cvtss2si64 ((__v4sf) __A);
! }
!
! /* Microsoft intrinsic. */
static __inline long long __attribute__((__always_inline__))
_mm_cvtss_si64x (__m128 __A)
{
*************** _mm_cvtt_ss2si (__m128 __A)
*** 529,534 ****
--- 539,553 ----
#ifdef __x86_64__
/* Truncate the lower SPFP value to a 32-bit integer. */
+
+ /* Intel intrinsic. */
+ static __inline long long __attribute__((__always_inline__))
+ _mm_cvttss_si64 (__m128 __A)
+ {
+ return __builtin_ia32_cvttss2si64 ((__v4sf) __A);
+ }
+
+ /* Microsoft intrinsic. */
static __inline long long __attribute__((__always_inline__))
_mm_cvttss_si64x (__m128 __A)
{
*************** _mm_cvt_si2ss (__m128 __A, int __B)
*** 565,570 ****
--- 584,598 ----
#ifdef __x86_64__
/* Convert B to a SPFP value and insert it as element zero in A. */
+
+ /* Intel intrinsic. */
+ static __inline __m128 __attribute__((__always_inline__))
+ _mm_cvtsi64_ss (__m128 __A, long long __B)
+ {
+ return (__m128) __builtin_ia32_cvtsi642ss ((__v4sf) __A, __B);
+ }
+
+ /* Microsoft intrinsic. */
static __inline __m128 __attribute__((__always_inline__))
_mm_cvtsi64x_ss (__m128 __A, long long __B)
{
*************** _mm_store_ss (float *__P, __m128 __A)
*** 911,916 ****
--- 939,950 ----
*__P = __builtin_ia32_vec_ext_v4sf ((__v4sf)__A, 0);
}
+ static __inline float __attribute__((__always_inline__))
+ _mm_cvtss_f32 (__m128 __A)
+ {
+ return __builtin_ia32_vec_ext_v4sf ((__v4sf)__A, 0);
+ }
+
/* Store four SPFP values. The address must be 16-byte aligned. */
static __inline void __attribute__((__always_inline__))
_mm_store_ps (float *__P, __m128 __A)
Index: gcc/config/i386/emmintrin.h
===================================================================
*** gcc/config/i386/emmintrin.h (revision 110310)
--- gcc/config/i386/emmintrin.h (revision 110311)
***************
*** 1,4 ****
! /* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
This file is part of GCC.
***************
*** 25,31 ****
Public License. */
/* Implemented from the specification included in the Intel C++ Compiler
! User Guide and Reference, version 8.0. */
#ifndef _EMMINTRIN_H_INCLUDED
#define _EMMINTRIN_H_INCLUDED
--- 25,31 ----
Public License. */
/* Implemented from the specification included in the Intel C++ Compiler
! User Guide and Reference, version 9.0. */
#ifndef _EMMINTRIN_H_INCLUDED
#define _EMMINTRIN_H_INCLUDED
*************** _mm_store_sd (double *__P, __m128d __A)
*** 158,163 ****
--- 158,169 ----
*__P = __builtin_ia32_vec_ext_v2df (__A, 0);
}
+ static __inline double __attribute__((__always_inline__))
+ _mm_cvtsd_f64 (__m128d __A)
+ {
+ return __builtin_ia32_vec_ext_v2df (__A, 0);
+ }
+
static __inline void __attribute__((__always_inline__))
_mm_storel_pd (double *__P, __m128d __A)
{
*************** _mm_cvtsi128_si32 (__m128i __A)
*** 199,204 ****
--- 205,218 ----
}
#ifdef __x86_64__
+ /* Intel intrinsic. */
+ static __inline long long __attribute__((__always_inline__))
+ _mm_cvtsi128_si64 (__m128i __A)
+ {
+ return __builtin_ia32_vec_ext_v2di ((__v2di)__A, 0);
+ }
+
+ /* Microsoft intrinsic. */
static __inline long long __attribute__((__always_inline__))
_mm_cvtsi128_si64x (__m128i __A)
{
*************** _mm_cvtsd_si32 (__m128d __A)
*** 789,794 ****
--- 803,816 ----
}
#ifdef __x86_64__
+ /* Intel intrinsic. */
+ static __inline long long __attribute__((__always_inline__))
+ _mm_cvtsd_si64 (__m128d __A)
+ {
+ return __builtin_ia32_cvtsd2si64 ((__v2df) __A);
+ }
+
+ /* Microsoft intrinsic. */
static __inline long long __attribute__((__always_inline__))
_mm_cvtsd_si64x (__m128d __A)
{
*************** _mm_cvttsd_si32 (__m128d __A)
*** 803,808 ****
--- 825,838 ----
}
#ifdef __x86_64__
+ /* Intel intrinsic. */
+ static __inline long long __attribute__((__always_inline__))
+ _mm_cvttsd_si64 (__m128d __A)
+ {
+ return __builtin_ia32_cvttsd2si64 ((__v2df) __A);
+ }
+
+ /* Microsoft intrinsic. */
static __inline long long __attribute__((__always_inline__))
_mm_cvttsd_si64x (__m128d __A)
{
*************** _mm_cvtsi32_sd (__m128d __A, int __B)
*** 823,828 ****
--- 853,866 ----
}
#ifdef __x86_64__
+ /* Intel intrinsic. */
+ static __inline __m128d __attribute__((__always_inline__))
+ _mm_cvtsi64_sd (__m128d __A, long long __B)
+ {
+ return (__m128d)__builtin_ia32_cvtsi642sd ((__v2df) __A, __B);
+ }
+
+ /* Microsoft intrinsic. */
static __inline __m128d __attribute__((__always_inline__))
_mm_cvtsi64x_sd (__m128d __A, long long __B)
{
*************** _mm_cvtsi32_si128 (int __A)
*** 1379,1384 ****
--- 1417,1430 ----
}
#ifdef __x86_64__
+ /* Intel intrinsic. */
+ static __inline __m128i __attribute__((__always_inline__))
+ _mm_cvtsi64_si128 (long long __A)
+ {
+ return _mm_set_epi64x (0, __A);
+ }
+
+ /* Microsoft intrinsic. */
static __inline __m128i __attribute__((__always_inline__))
_mm_cvtsi64x_si128 (long long __A)
{
++++++ endless-loop-warning.patch ++++++
Hi,
the following testcase (simplified from libstdc++ headers by Paolo) gives bogus warning at -Wall about return statement being missing. The problem is that gimplifier splits the while (true) into tmp=1;while (tmp)
char *
__unguarded_partition (char *__first, char *__last)
{
while (true)
{
--__last;
if (!(__first < __last))
return __first;
++__first;
}
}
Bootstrapped/regtested ppc-linux, OK?
2004-09-18 Jan Hubicka
* gimplify.c (voidify_wrapper_expr): Avoid loading constant
to register.
Index: gimplify.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/gimplify.c,v
retrieving revision 2.77
diff -c -3 -p -r2.77 gimplify.c
*** gcc/gimplify.c 15 Sep 2004 02:09:03 -0000 2.77
--- gcc/gimplify.c 15 Sep 2004 18:21:49 -0000
*************** voidify_wrapper_expr (tree wrapper, tree
*** 807,812 ****
--- 807,817 ----
have TREE_SIDE_EFFECTS set. That is no longer accurate. */
TREE_SIDE_EFFECTS (wrapper) = 1;
}
+ /* Optimize a little and avoid loading constants to register. This is
+ neccesary to avoid g++ from producing bogus warning about reachable
+ end of function at -Wall. */
+ else if (is_gimple_min_invariant (*p) && !temp)
+ temp = *p;
else
{
if (!temp)
++++++ force_fit_type.patch ++++++
* stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
for sizetype when sizetype is unsigned.
Index: gcc/stor-layout.c
===================================================================
*** gcc/stor-layout.c (revision 111145)
--- gcc/stor-layout.c (working copy)
*************** set_sizetype (tree type)
*** 2018,2023 ****
--- 2018,2042 ----
ssizetype = sizetype;
sbitsizetype = bitsizetype;
}
+
+ /* If SIZETYPE is unsigned, we need to fix TYPE_MAX_VALUE so that
+ it is sign extended in a way consistent with force_fit_type. */
+ if (TYPE_UNSIGNED (type))
+ {
+ tree orig_max, new_max;
+
+ orig_max = TYPE_MAX_VALUE (sizetype);
+
+ /* Build a new node with the same values, but a different type. */
+ new_max = build_int_cst_wide (sizetype,
+ TREE_INT_CST_LOW (orig_max),
+ TREE_INT_CST_HIGH (orig_max));
+
+ /* Now sign extend it using force_fit_type to ensure
+ consistency. */
+ new_max = force_fit_type (new_max, 0, 0, 0);
+ TYPE_MAX_VALUE (sizetype) = new_max;
+ }
}
/* TYPE is an integral type, i.e., an INTEGRAL_TYPE, ENUMERAL_TYPE
++++++ fortran-matmul.patch ++++++
++++ 2026 lines (skipped)
++++++ gcc-noalias-warn.diff ++++++
Index: boehm-gc/finalize.c
===================================================================
RCS file: /cvs/gcc/gcc/boehm-gc/finalize.c,v
retrieving revision 1.11.28.1
diff -u -p -r1.11.28.1 finalize.c
--- boehm-gc/finalize.c 24 Jan 2004 11:05:54 -0000 1.11.28.1
+++ boehm-gc/finalize.c 9 Feb 2004 16:07:25 -0000
@@ -164,6 +164,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");
@@ -176,7 +177,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) {
@@ -339,6 +340,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();
@@ -349,7 +351,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) {
++++++ gcc4-ppc64-m32-m64-multilib-only.patch ++++++
--- gcc/config/rs6000/t-linux64 2003-06-03 05:11:45.000000000 -0400
+++ gcc/config/rs6000/t-linux64 2003-06-11 17:07:16.000000000 -0400
@@ -4,13 +4,13 @@ LIB2FUNCS_EXTRA = tramp.S $(srcdir)/conf
# Modify the shared lib version file
SHLIB_MKMAP_OPTS = -v dotsyms=1
-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_OSDIRNAMES = ../lib64 ../lib nof
-MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT)
+MULTILIB_EXCEPTIONS =
+MULTILIB_EXCLUSIONS =
+MULTILIB_OSDIRNAMES = ../lib64 ../lib
+MULTILIB_MATCHES =
TARGET_LIBGCC2_CFLAGS = -mno-minimal-toc -fPIC
++++++ gcc41-fortran-where-opt.patch ++++++
++++ 863 lines (skipped)
++++++ 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.
--- gcc/config/ia64/linux.h.jj 2005-02-28 12:11:03.000000000 +0100
+++ gcc/config/ia64/linux.h 2005-07-08 18:19:37.000000000 +0200
@@ -58,3 +58,8 @@ do { \
#define LINK_EH_SPEC ""
#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
--- gcc/config/ia64/ia64.c.jj 2005-07-08 16:14:51.000000000 +0200
+++ gcc/config/ia64/ia64.c 2005-07-08 18:17:40.000000000 +0200
@@ -2507,6 +2507,9 @@ ia64_compute_frame_size (HOST_WIDE_INT s
else
pretend_args_size = current_function_pretend_args_size;
+ if (FRAME_GROWS_DOWNWARD)
+ size = IA64_STACK_ALIGN (size);
+
total_size = (spill_size + extra_spill_size + size + pretend_args_size
+ current_function_outgoing_args_size);
total_size = IA64_STACK_ALIGN (total_size);
@@ -2531,32 +2534,19 @@ ia64_compute_frame_size (HOST_WIDE_INT s
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
- - current_function_outgoing_args_size - 16);
- break;
-
- case STACK_POINTER_REGNUM:
- if (current_function_is_leaf)
- offset = 0;
- else
- offset = 16 + current_function_outgoing_args_size;
- break;
-
- default:
- gcc_unreachable ();
- }
+ offset = FRAME_GROWS_DOWNWARD ? IA64_STACK_ALIGN (size) : 0;
+ if (!current_function_is_leaf)
+ offset += 16 + current_function_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:
--- gcc/config/ia64/ia64.md.jj 2005-05-16 23:32:52.000000000 +0200
+++ gcc/config/ia64/ia64.md 2005-07-08 18:39:59.000000000 +0200
@@ -6248,5 +6248,42 @@
"addp4 %0 = %1, %2"
[(set_attr "itanium_class" "ialu")])
+;;
+;; 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")
--- gcc/config/ia64/ia64.h.jj 2005-07-08 16:36:20.000000000 +0200
+++ gcc/config/ia64/ia64.h 2005-07-08 18:11:34.000000000 +0200
@@ -1120,7 +1120,7 @@ enum reg_class
/* Define this macro to non-zero 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.
--- libjava/configure.host (.../gcc-4_0-branch) (revision 107266)
+++ libjava/configure.host (.../redhat/gcc-4_0-branch) (revision 107414)
@@ -174,6 +174,7 @@
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.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
(s390x-*-linux*): Likewise.
* config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
* config/s390/t-linux: New file.
* config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
(sparc64-*-linux*): Likewise.
* config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
* config/sparc/t-linux: New file.
* config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
__floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
(__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
-m32 -mlong-double-128.
* config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
* config/alpha/t-linux: New file.
* config/alpha/libgcc-alpha-ldbl.ver: New file.
2006-02-04 Jakub Jelinek
* config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
__LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
(CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
* config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
__LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
(CPP_ARCH32_SPEC): Remove.
2006-02-03 Aldy Hernandez
* config/s390/s390.c (override_options): Handle
TARGET_DEFAULT_LONG_DOUBLE_128.
* config/alpha/alpha.c (override_options): Handle
TARGET_DEFAULT_LONG_DOUBLE_128.
* config/sparc/sparc.c (sparc_override_options): Handle
TARGET_DEFAULT_LONG_DOUBLE_128.
2006-02-04 Jakub Jelinek
* config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
(RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
* config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
(RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
* configure.ac: Add --with{out}-long-double-128 configure option.
(TARGET_DEFAULT_LONG_DOUBLE_128): New test.
* configure: Rebuilt.
* config.in: Rebuilt.
--- gcc/config/rs6000/linux.h.jj 2006-02-04 11:46:38.000000000 +0100
+++ gcc/config/rs6000/linux.h 2006-02-04 11:47:18.000000000 +0100
@@ -120,3 +120,8 @@
#endif
#define POWERPC_LINUX
+
+/* ppc linux has 128-bit long double support in glibc 2.4 and later. */
+#ifdef TARGET_DEFAULT_LONG_DOUBLE_128
+#define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128
+#endif
--- gcc/config/rs6000/linux64.h.jj 2006-02-04 11:46:38.000000000 +0100
+++ gcc/config/rs6000/linux64.h 2006-02-04 11:47:37.000000000 +0100
@@ -570,3 +570,8 @@ while (0)
#endif
#define POWERPC_LINUX
+
+/* ppc{32,64} linux has 128-bit long double support in glibc 2.4 and later. */
+#ifdef TARGET_DEFAULT_LONG_DOUBLE_128
+#define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128
+#endif
--- gcc/configure.ac.jj 2006-02-04 10:42:42.000000000 +0100
+++ gcc/configure.ac 2006-02-04 10:44:51.000000000 +0100
@@ -3135,6 +3135,39 @@ if test x$gcc_cv_libc_provides_ssp = xye
[Define if your target C library provides stack protector support])
fi
+# Check if TFmode long double should be used by default or not.
+# Some glibc targets used DFmode long double, but with glibc 2.4
+# and later they can use TFmode.
+case "$target" in
+ powerpc*-*-*gnu* | \
+ sparc*-*-linux* | \
+ s390*-*-linux* | \
+ alpha*-*-linux*)
+ AC_ARG_WITH(long-double-128,
+[ --with-long-double-128 Use 128-bit long double by default.],
+ gcc_cv_target_ldbl128="$with_long_double_128",
+ [gcc_cv_target_ldbl128=no
+ if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
+ if test "x$with_sysroot" = x; then
+ glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
+ elif test "x$with_sysroot" = xyes; then
+ glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
+ else
+ glibc_header_dir="${with_sysroot}/usr/include"
+ fi
+ else
+ glibc_header_dir=/usr/include
+ fi
+ grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \
+ $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \
+ && gcc_cv_target_ldbl128=yes])
+ ;;
+esac
+if test x$gcc_cv_target_ldbl128 = xyes; then
+ AC_DEFINE(TARGET_DEFAULT_LONG_DOUBLE_128, 1,
+ [Define if TFmode long double should be the default])
+fi
+
# Find out what GC implementation we want, or may, use.
AC_ARG_WITH(gc,
[ --with-gc={page,zone} choose the garbage collection mechanism to use
--- gcc/configure.jj 2006-02-04 10:42:41.000000000 +0100
+++ gcc/configure 2006-02-04 10:46:54.000000000 +0100
@@ -931,6 +931,7 @@ Optional Packages:
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
--without-libiconv-prefix don't search for libiconv in includedir and libdir
--with-system-libunwind use installed libunwind
+ --with-long-double-128 Use 128-bit long double by default.
--with-gc={page,zone} choose the garbage collection mechanism to use
with the compiler
--with-system-zlib use installed libz
@@ -7492,7 +7493,7 @@ if test "${gcc_cv_prog_makeinfo_modern+s
else
ac_prog_version=`$MAKEINFO --version 2>&1 |
sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
- echo "configure:7495: version of makeinfo is $ac_prog_version" >&5
+ echo "configure:7496: version of makeinfo is $ac_prog_version" >&5
case $ac_prog_version in
'') gcc_cv_prog_makeinfo_modern=no;;
4.[2-9]*)
@@ -16227,6 +16228,46 @@ _ACEOF
fi
+# Check if TFmode long double should be used by default or not.
+# Some glibc targets used DFmode long double, but with glibc 2.4
+# and later they can use TFmode.
+case "$target" in
+ powerpc*-*-*gnu* | \
+ sparc*-*-linux* | \
+ s390*-*-linux* | \
+ alpha*-*-linux*)
+
+# Check whether --with-long-double-128 or --without-long-double-128 was given.
+if test "${with_long_double_128+set}" = set; then
+ withval="$with_long_double_128"
+ gcc_cv_target_ldbl128="$with_long_double_128"
+else
+ gcc_cv_target_ldbl128=no
+ if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
+ if test "x$with_sysroot" = x; then
+ glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
+ elif test "x$with_sysroot" = xyes; then
+ glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
+ else
+ glibc_header_dir="${with_sysroot}/usr/include"
+ fi
+ else
+ glibc_header_dir=/usr/include
+ fi
+ grep '^ *#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \
+ $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \
+ && gcc_cv_target_ldbl128=yes
+fi;
+ ;;
+esac
+if test x$gcc_cv_target_ldbl128 = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define TARGET_DEFAULT_LONG_DOUBLE_128 1
+_ACEOF
+
+fi
+
# Find out what GC implementation we want, or may, use.
# Check whether --with-gc or --without-gc was given.
--- gcc/config.in.jj 2006-02-04 10:42:42.000000000 +0100
+++ gcc/config.in 2006-02-04 10:44:51.000000000 +0100
@@ -1283,6 +1283,12 @@
#endif
+/* Define if TFmode long double should be the default */
+#ifndef USED_FOR_TARGET
+#undef TARGET_DEFAULT_LONG_DOUBLE_128
+#endif
+
+
/* Define if your target C library provides stack protector support */
#ifndef USED_FOR_TARGET
#undef TARGET_LIBC_PROVIDES_SSP
--- gcc/config/alpha/alpha.c.jj 2006-02-04 10:42:41.000000000 +0100
+++ gcc/config/alpha/alpha.c 2006-02-04 12:36:09.000000000 +0100
@@ -501,6 +516,11 @@ override_options (void)
REAL_MODE_FORMAT (DFmode) = &vax_g_format;
REAL_MODE_FORMAT (TFmode) = NULL;
}
+
+#ifdef TARGET_DEFAULT_LONG_DOUBLE_128
+ if (!(target_flags_explicit & MASK_LONG_DOUBLE_128))
+ target_flags |= MASK_LONG_DOUBLE_128;
+#endif
}
/* Returns 1 if VALUE is a mask that contains full bytes of zero or ones. */
--- gcc/config/s390/s390.c.jj 2006-02-04 10:42:41.000000000 +0100
+++ gcc/config/s390/s390.c 2006-02-04 12:36:09.000000000 +0100
@@ -1415,6 +1415,11 @@ override_options (void)
}
else if (s390_stack_guard)
error ("-mstack-guard implies use of -mstack-size");
+
+#ifdef TARGET_DEFAULT_LONG_DOUBLE_128
+ if (!(target_flags_explicit & MASK_LONG_DOUBLE_128))
+ target_flags |= MASK_LONG_DOUBLE_128;
+#endif
}
/* Map for smallest class containing reg regno. */
--- gcc/config/sparc/linux.h.jj 2006-02-04 10:42:41.000000000 +0100
+++ gcc/config/sparc/linux.h 2006-02-04 12:39:31.000000000 +0100
@@ -23,17 +23,19 @@ Boston, MA 02110-1301, USA. */
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
- builtin_define_std ("unix"); \
- builtin_define_std ("linux"); \
- builtin_define ("__gnu_linux__"); \
- builtin_assert ("system=linux"); \
- builtin_assert ("system=unix"); \
- builtin_assert ("system=posix"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
+ builtin_define_std ("unix"); \
+ builtin_define_std ("linux"); \
+ builtin_define ("__gnu_linux__"); \
+ builtin_assert ("system=linux"); \
+ builtin_assert ("system=unix"); \
+ builtin_assert ("system=posix"); \
+ if (flag_pic) \
+ { \
+ builtin_define ("__PIC__"); \
+ builtin_define ("__pic__"); \
+ } \
+ if (TARGET_LONG_DOUBLE_128) \
+ builtin_define ("__LONG_DOUBLE_128__"); \
} \
while (0)
@@ -100,8 +102,7 @@ Boston, MA 02110-1301, USA. */
#undef CPP_SUBTARGET_SPEC
#define CPP_SUBTARGET_SPEC \
-"%{posix:-D_POSIX_SOURCE} \
-%{pthread:-D_REENTRANT} %{mlong-double-128:-D__LONG_DOUBLE_128__}"
+"%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
#undef LIB_SPEC
#define LIB_SPEC \
--- gcc/config/sparc/sparc.c.jj 2006-02-04 10:42:41.000000000 +0100
+++ gcc/config/sparc/sparc.c 2006-02-04 12:36:09.000000000 +0100
@@ -782,6 +790,11 @@ sparc_override_options (void)
sparc_costs = &ultrasparc3_costs;
break;
};
+
+#ifdef TARGET_DEFAULT_LONG_DOUBLE_128
+ if (!(target_flags_explicit & MASK_LONG_DOUBLE_128))
+ target_flags |= MASK_LONG_DOUBLE_128;
+#endif
}
#ifdef SUBTARGET_ATTRIBUTE_TABLE
--- gcc/config/sparc/linux64.h.jj 2006-02-04 10:42:41.000000000 +0100
+++ gcc/config/sparc/linux64.h 2006-02-04 12:39:31.000000000 +0100
@@ -20,22 +20,24 @@ along with GCC; see the file COPYING. I
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
-#define TARGET_OS_CPP_BUILTINS() \
- do \
- { \
- builtin_define_std ("unix"); \
- builtin_define_std ("linux"); \
- builtin_define ("_LONGLONG"); \
- builtin_define ("__gnu_linux__"); \
- builtin_assert ("system=linux"); \
- builtin_assert ("system=unix"); \
- builtin_assert ("system=posix"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
- } \
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define_std ("unix"); \
+ builtin_define_std ("linux"); \
+ builtin_define ("_LONGLONG"); \
+ builtin_define ("__gnu_linux__"); \
+ builtin_assert ("system=linux"); \
+ builtin_assert ("system=unix"); \
+ builtin_assert ("system=posix"); \
+ if (flag_pic) \
+ { \
+ builtin_define ("__PIC__"); \
+ builtin_define ("__pic__"); \
+ } \
+ if (TARGET_ARCH32 && TARGET_LONG_DOUBLE_128) \
+ builtin_define ("__LONG_DOUBLE_128__"); \
+ } \
while (0)
/* Don't assume anything about the header files. */
@@ -59,13 +61,6 @@ Boston, MA 02110-1301, USA. */
#undef ASM_CPU_DEFAULT_SPEC
#define ASM_CPU_DEFAULT_SPEC "-Av9a"
-#ifdef SPARC_BI_ARCH
-
-#undef CPP_ARCH32_SPEC
-#define CPP_ARCH32_SPEC "%{mlong-double-128:-D__LONG_DOUBLE_128__}"
-
-#endif
-
/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
provides part of the support for getting C++ file-scope static
--- gcc/config.gcc.jj 2006-02-04 09:38:33.000000000 +0100
+++ gcc/config.gcc 2006-02-05 22:00:25.000000000 +0100
@@ -568,7 +568,7 @@ alpha*-*-unicosmk*)
alpha*-*-linux*)
tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
target_cpu_default="MASK_GAS"
- tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee"
+ tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee alpha/t-linux"
;;
alpha*-*-gnu*)
target_cpu_default="MASK_GAS"
@@ -2059,7 +2059,7 @@ sparc-*-elf*)
sparc-*-linux*) # SPARC's running GNU/Linux, libc6
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
- tmake_file="${tmake_file} sparc/t-crtfm"
+ tmake_file="${tmake_file} sparc/t-linux sparc/t-crtfm"
;;
sparc-*-rtems*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h"
@@ -2178,7 +2178,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
- tmake_file="${tmake_file} sparc/t-linux64 sparc/t-crtfm"
+ tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
;;
sparc64-*-netbsd*)
tm_file="sparc/biarch64.h ${tm_file}"
--- gcc/config/alpha/libgcc-alpha-ldbl.ver.jj 2006-02-05 21:57:55.000000000 +0100
+++ gcc/config/alpha/libgcc-alpha-ldbl.ver 2006-02-05 21:58:59.000000000 +0100
@@ -0,0 +1,32 @@
+%ifdef __LONG_DOUBLE_128__
+
+# long double 128 bit support in libgcc_s.so.1 is only available
+# when configured with --with-long-double-128. Make sure all the
+# symbols are available at @@GCC_LDBL_* versions to make it clear
+# there is a configurable symbol set.
+
+%exclude {
+ __fixtfdi
+ __fixunstfdi
+ __floatditf
+
+ __divtc3
+ __multc3
+ __powitf2
+}
+
+%inherit GCC_LDBL_3.0 GCC_3.0
+GCC_LDBL_3.0 {
+ __fixtfdi
+ __fixunstfdi
+ __floatditf
+}
+
+%inherit GCC_LDBL_4.0.0 GCC_4.0.0
+GCC_LDBL_4.0.0 {
+ __divtc3
+ __multc3
+ __powitf2
+}
+
+%endif
--- gcc/config/alpha/t-linux.jj 2006-02-05 21:57:01.000000000 +0100
+++ gcc/config/alpha/t-linux 2006-02-05 21:59:40.000000000 +0100
@@ -0,0 +1 @@
+SHLIB_MAPFILES += $(srcdir)/config/alpha/libgcc-alpha-ldbl.ver
--- gcc/config/sparc/t-linux64.jj 2006-01-28 00:43:01.000000000 +0100
+++ gcc/config/sparc/t-linux64 2006-02-05 20:40:45.000000000 +0100
@@ -8,12 +8,6 @@ INSTALL_LIBGCC = install-multilib
EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \
crtfastmath.o
-# Override t-slibgcc-elf-ver to export some libgcc symbols with
-# the symbol versions that glibc used.
-# Avoid the t-linux version file.
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
- $(srcdir)/config/sparc/libgcc-sparc-glibc.ver
-
CRTSTUFF_T_CFLAGS = `if test x$$($(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) \
-print-multi-os-directory) \
= x../lib64; then echo -mcmodel=medany; fi`
--- gcc/config/sparc/libgcc-sparc-glibc.ver.jj 2006-01-28 00:43:01.000000000 +0100
+++ gcc/config/sparc/libgcc-sparc-glibc.ver 2006-02-05 21:03:43.000000000 +0100
@@ -26,3 +26,36 @@ GLIBC_VER {
__frame_state_for
__register_frame_info_table
}
+
+%if !defined (__arch64__) && defined (__LONG_DOUBLE_128__)
+
+# long double 128 bit support from 32-bit libgcc_s.so.1 is only available
+# when configured with --with-long-double-128. Make sure all the
+# symbols are available at @@GCC_LDBL_* versions to make it clear
+# there is a configurable symbol set.
+
+%exclude {
+ __fixtfdi
+ __fixunstfdi
+ __floatditf
+
+ __divtc3
+ __multc3
+ __powitf2
+}
+
+%inherit GCC_LDBL_3.0 GCC_3.0
+GCC_LDBL_3.0 {
+ __fixtfdi
+ __fixunstfdi
+ __floatditf
+}
+
+%inherit GCC_LDBL_4.0.0 GCC_4.0.0
+GCC_LDBL_4.0.0 {
+ __divtc3
+ __multc3
+ __powitf2
+}
+
+%endif
--- gcc/config/sparc/t-linux.jj 2006-02-05 20:40:20.000000000 +0100
+++ gcc/config/sparc/t-linux 2006-02-05 20:40:55.000000000 +0100
@@ -0,0 +1,5 @@
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
+# the symbol versions that glibc used.
+# Avoid the t-linux version file.
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
+ $(srcdir)/config/sparc/libgcc-sparc-glibc.ver
--- gcc/config/s390/t-linux.jj 2006-02-05 20:51:18.000000000 +0100
+++ gcc/config/s390/t-linux 2006-02-05 20:51:25.000000000 +0100
@@ -0,0 +1,3 @@
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
+# the symbol versions that glibc used.
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/s390/libgcc-glibc.ver
++++++ gcc41-ppc32-retaddr.patch ++++++
2005-11-28 Jakub Jelinek
* 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.
--- gcc/config/rs6000/rs6000.c.jj 2005-11-26 14:38:01.000000000 +0100
+++ gcc/config/rs6000/rs6000.c 2005-11-28 20:32:18.000000000 +0100
@@ -13166,17 +13166,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;
--- gcc/testsuite/gcc.dg/20051128-1.c.jj 2005-10-10 11:21:41.096999000 +0200
+++ gcc/testsuite/gcc.dg/20051128-1.c 2005-11-28 12:30:57.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;
+}
++++++ generic-cpu-model-1.patch ++++++
++++ 682 lines (skipped)
++++++ generic-cpu-model-2.patch ++++++
Index: gcc/config/i386/i386.h
===================================================================
--- gcc/config/i386/i386.h (revision 109569)
+++ gcc/config/i386/i386.h (revision 109581)
@@ -209,7 +209,6 @@
#define TARGET_MEMORY_MISMATCH_STALL (x86_memory_mismatch_stall & TUNEMASK)
#define TARGET_PROLOGUE_USING_MOVE (x86_prologue_using_move & TUNEMASK)
#define TARGET_EPILOGUE_USING_MOVE (x86_epilogue_using_move & TUNEMASK)
-#define TARGET_DECOMPOSE_LEA (x86_decompose_lea & TUNEMASK)
#define TARGET_PREFETCH_SSE (x86_prefetch_sse)
#define TARGET_SHIFT1 (x86_shift1 & TUNEMASK)
#define TARGET_USE_FFREEP (x86_use_ffreep & TUNEMASK)
Index: gcc/config/i386/i386.c
===================================================================
--- gcc/config/i386/i386.c (revision 109569)
+++ gcc/config/i386/i386.c (revision 109581)
@@ -640,7 +640,6 @@
const int x86_accumulate_outgoing_args = m_ATHLON_K8 | m_PENT4 | m_NOCONA | m_PPRO;
const int x86_prologue_using_move = m_ATHLON_K8 | m_PPRO;
const int x86_epilogue_using_move = m_ATHLON_K8 | m_PPRO;
-const int x86_decompose_lea = m_PENT4 | m_NOCONA;
const int x86_shift1 = ~m_486;
const int x86_arch_always_fancy_math_387 = m_PENT | m_PPRO | m_ATHLON_K8 | m_PENT4 | m_NOCONA;
const int x86_sse_partial_reg_dependency = m_PENT4 | m_NOCONA | m_PPRO;
@@ -16446,7 +16445,6 @@
return false;
}
if ((value == 2 || value == 3)
- && !TARGET_DECOMPOSE_LEA
&& ix86_cost->lea <= ix86_cost->shift_const)
{
*total = ix86_cost->lea;
++++++ generic-cpu-model-3.patch ++++++
++++ 2094 lines (skipped)
++++++ large-gcc.diff ++++++
Index: gcc/reg-stack.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/reg-stack.c,v
retrieving revision 1.190
diff -u -p -r1.190 reg-stack.c
--- gcc/reg-stack.c 6 Aug 2005 13:25:58 -0000 1.190
+++ gcc/reg-stack.c 19 Aug 2005 16:53:56 -0000
@@ -3104,7 +3104,8 @@ reg_to_stack (FILE *file)
the PIC register hasn't been set up. In that case, fall back
on zero, which we can get from `ldz'. */
- if (flag_pic)
+ if ((flag_pic && !TARGET_64BIT)
+ || ix86_cmodel == CM_LARGE || ix86_cmodel == CM_LARGE_PIC)
not_a_num = CONST0_RTX (SFmode);
else
{
Index: gcc/config/i386/i386-protos.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386-protos.h,v
retrieving revision 1.147
diff -u -p -r1.147 i386-protos.h
--- gcc/config/i386/i386-protos.h 1 Aug 2005 18:56:13 -0000 1.147
+++ gcc/config/i386/i386-protos.h 19 Aug 2005 16:53:56 -0000
@@ -268,5 +268,6 @@ extern void x86_elf_aligned_common (FILE
extern void ix86_fp_comparison_codes (enum rtx_code code, enum rtx_code *,
enum rtx_code *, enum rtx_code *);
extern enum rtx_code ix86_fp_compare_code_to_integer (enum rtx_code);
+extern rtx construct_plt_address (rtx);
#endif
extern int asm_preferred_eh_data_format (int, int);
Index: gcc/config/i386/i386.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v
retrieving revision 1.852
diff -u -p -r1.852 i386.c
--- gcc/config/i386/i386.c 11 Aug 2005 08:59:10 -0000 1.852
+++ gcc/config/i386/i386.c 19 Aug 2005 16:53:56 -0000
@@ -1312,14 +1312,14 @@ override_options (void)
ix86_cmodel = flag_pic ? CM_SMALL_PIC : CM_SMALL;
else if (!strcmp (ix86_cmodel_string, "medium"))
ix86_cmodel = flag_pic ? CM_MEDIUM_PIC : CM_MEDIUM;
+ else if (!strcmp (ix86_cmodel_string, "large"))
+ ix86_cmodel = flag_pic ? CM_LARGE_PIC : CM_LARGE;
else if (flag_pic)
- sorry ("code model %s not supported in PIC mode", ix86_cmodel_string);
+ error ("code model %s does not support PIC mode", ix86_cmodel_string);
else if (!strcmp (ix86_cmodel_string, "32"))
ix86_cmodel = CM_32;
else if (!strcmp (ix86_cmodel_string, "kernel") && !flag_pic)
ix86_cmodel = CM_KERNEL;
- else if (!strcmp (ix86_cmodel_string, "large") && !flag_pic)
- ix86_cmodel = CM_LARGE;
else
error ("bad value (%s) for -mcmodel= switch", ix86_cmodel_string);
}
@@ -1341,8 +1341,6 @@ override_options (void)
if ((TARGET_64BIT == 0) != (ix86_cmodel == CM_32))
error ("code model %qs not supported in the %s bit mode",
ix86_cmodel_string, TARGET_64BIT ? "64" : "32");
- if (ix86_cmodel == CM_LARGE)
- sorry ("code model % not supported yet");
if ((TARGET_64BIT != 0) != ((target_flags & MASK_64BIT) != 0))
sorry ("%i-bit mode not compiled in",
(target_flags & MASK_64BIT) ? 64 : 32);
@@ -4851,7 +4849,25 @@ ix86_expand_prologue (void)
if (pic_reg_used)
{
if (TARGET_64BIT)
- insn = emit_insn (gen_set_got_rex64 (pic_offset_table_rtx));
+ {
+ if (ix86_cmodel == CM_LARGE_PIC)
+ {
+ rtx tmp_reg = gen_rtx_REG (DImode,
+ FIRST_REX_INT_REG + 3 /* R11 */);
+ rtx label = gen_label_rtx ();
+ emit_label (label);
+ LABEL_PRESERVE_P (label) = 1;
+ gcc_assert (REGNO (pic_offset_table_rtx) != REGNO (tmp_reg));
+ insn = emit_insn (gen_set_rip_rex64 (pic_offset_table_rtx, label));
+ REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_MAYBE_DEAD, const0_rtx, NULL);
+ insn = emit_insn (gen_set_got_offset_rex64 (tmp_reg, label));
+ REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_MAYBE_DEAD, const0_rtx, NULL);
+ insn = emit_insn (gen_adddi3 (pic_offset_table_rtx,
+ pic_offset_table_rtx, tmp_reg));
+ }
+ else
+ insn = emit_insn (gen_set_got_rex64 (pic_offset_table_rtx));
+ }
else
insn = emit_insn (gen_set_got (pic_offset_table_rtx));
@@ -5382,7 +5398,9 @@ legitimate_constant_p (rtx x)
if (GET_CODE (x) == UNSPEC)
switch (XINT (x, 1))
{
+ case UNSPEC_GOT:
case UNSPEC_GOTOFF:
+ case UNSPEC_PLTOFF:
return TARGET_64BIT;
case UNSPEC_TPOFF:
case UNSPEC_NTPOFF:
@@ -5451,7 +5469,9 @@ legitimate_pic_operand_p (rtx x)
if (GET_CODE (inner) == UNSPEC)
switch (XINT (inner, 1))
{
+ case UNSPEC_GOT:
case UNSPEC_GOTOFF:
+ case UNSPEC_PLTOFF:
return TARGET_64BIT;
case UNSPEC_TPOFF:
return local_exec_symbolic_operand (XVECEXP (inner, 0, 0), Pmode);
@@ -5662,7 +5682,9 @@ legitimate_pic_address_disp_p (rtx disp)
/* TLS references should always be enclosed in UNSPEC. */
if (SYMBOL_REF_TLS_MODEL (op0))
return false;
- if (!SYMBOL_REF_FAR_ADDR_P (op0) && SYMBOL_REF_LOCAL_P (op0))
+ if (!SYMBOL_REF_FAR_ADDR_P (op0)
+ && ix86_cmodel != CM_LARGE_PIC
+ && SYMBOL_REF_LOCAL_P (op0))
return true;
break;
@@ -5519,7 +5541,8 @@ legitimate_pic_address_disp_p (rtx disp)
of GOT tables. We should not need these anyway. */
if (GET_CODE (disp) != UNSPEC
|| (XINT (disp, 1) != UNSPEC_GOTPCREL
- && XINT (disp, 1) != UNSPEC_GOTOFF))
+ && XINT (disp, 1) != UNSPEC_GOTOFF
+ && XINT (disp, 1) != UNSPEC_PLTOFF))
return 0;
if (GET_CODE (XVECEXP (disp, 0, 0)) != SYMBOL_REF
@@ -5923,7 +5946,7 @@ legitimize_pic_address (rtx orig, rtx re
}
else if (GET_CODE (addr) == SYMBOL_REF)
{
- if (TARGET_64BIT)
+ if (TARGET_64BIT && ix86_cmodel != CM_LARGE_PIC)
{
new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_GOTPCREL);
new = gen_rtx_CONST (Pmode, new);
@@ -5947,6 +5970,8 @@ legitimize_pic_address (rtx orig, rtx re
regs_ever_live[PIC_OFFSET_TABLE_REGNUM] = 1;
new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_GOT);
new = gen_rtx_CONST (Pmode, new);
+ if (TARGET_64BIT)
+ new = force_reg (Pmode, new);
new = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, new);
new = gen_const_mem (Pmode, new);
set_mem_alias_set (new, ix86_GOT_alias_set ());
@@ -6462,6 +6487,9 @@ output_pic_addr_const (FILE *file, rtx x
case UNSPEC_GOTOFF:
fputs ("@GOTOFF", file);
break;
+ case UNSPEC_PLTOFF:
+ fputs ("@PLTOFF", file);
+ break;
case UNSPEC_GOTPCREL:
fputs ("@GOTPCREL(%rip)", file);
break;
@@ -8031,9 +8059,17 @@ ix86_output_addr_vec_elt (FILE *file, in
void
ix86_output_addr_diff_elt (FILE *file, int value, int rel)
{
+ const char *directive = ASM_LONG;
+
+#ifdef ASM_QUAD
+ if (TARGET_64BIT && CASE_VECTOR_MODE == DImode)
+ directive = ASM_QUAD;
+#else
+ gcc_assert (!TARGET_64BIT);
+#endif
if (TARGET_64BIT)
fprintf (file, "%s%s%d-%s%d\n",
- ASM_LONG, LPREFIX, value, LPREFIX, rel);
+ directive, LPREFIX, value, LPREFIX, rel);
else if (HAVE_AS_GOTOFF_IN_DATA)
fprintf (file, "%s%s%d@GOTOFF\n", ASM_LONG, LPREFIX, value);
#if TARGET_MACHO
@@ -8148,8 +8184,8 @@ ix86_expand_move (enum machine_mode mode
#else
if (GET_CODE (op0) == MEM)
op1 = force_reg (Pmode, op1);
- else
- op1 = legitimize_address (op1, op1, Pmode);
+ else if (!TARGET_64BIT || !x86_64_movabs_operand (op1, Pmode))
+ op1 = legitimize_pic_address (op1, REG_P (op0) ? op0 : 0);
#endif /* TARGET_MACHO */
}
else
@@ -12527,6 +12563,22 @@ ix86_expand_strlensi_unroll_1 (rtx out,
emit_label (end_0_label);
}
+/* For given symbol (function) construct code to compute address of it's PLT
+ entry in large x86-64 PIC model. */
+rtx
+construct_plt_address (rtx symbol)
+{
+ rtx tmp = gen_reg_rtx (Pmode);
+ rtx unspec = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, symbol), UNSPEC_PLTOFF);
+
+ gcc_assert (GET_CODE (symbol) == SYMBOL_REF);
+ gcc_assert (ix86_cmodel == CM_LARGE_PIC);
+
+ emit_move_insn (tmp, gen_rtx_CONST (Pmode, unspec));
+ emit_insn (gen_adddi3 (tmp, tmp, pic_offset_table_rtx));
+ return tmp;
+}
+
void
ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1,
rtx callarg2 ATTRIBUTE_UNUSED,
@@ -12543,7 +12595,7 @@ ix86_expand_call (rtx retval, rtx fnaddr
fnaddr = machopic_indirect_call_target (fnaddr);
#else
/* Static functions and indirect calls don't need the pic register. */
- if (! TARGET_64BIT && flag_pic
+ if (flag_pic && (!TARGET_64BIT || ix86_cmodel == CM_LARGE_PIC)
&& GET_CODE (XEXP (fnaddr, 0)) == SYMBOL_REF
&& ! SYMBOL_REF_LOCAL_P (XEXP (fnaddr, 0)))
use_reg (&use, pic_offset_table_rtx);
@@ -12556,7 +12608,12 @@ ix86_expand_call (rtx retval, rtx fnaddr
}
#endif /* TARGET_MACHO */
- if (! call_insn_operand (XEXP (fnaddr, 0), Pmode))
+ if (ix86_cmodel == CM_LARGE_PIC
+ && GET_CODE (fnaddr) == MEM
+ && GET_CODE (XEXP (fnaddr, 0)) == SYMBOL_REF
+ && !local_symbolic_operand (XEXP (fnaddr, 0), VOIDmode))
+ fnaddr = gen_rtx_MEM (QImode, construct_plt_address (XEXP (fnaddr, 0)));
+ else if (! call_insn_operand (XEXP (fnaddr, 0), Pmode))
{
fnaddr = copy_to_mode_reg (Pmode, XEXP (fnaddr, 0));
fnaddr = gen_rtx_MEM (QImode, fnaddr);
@@ -17988,7 +18045,7 @@ asm_preferred_eh_data_format (int code,
{
if (flag_pic)
{
-int type = DW_EH_PE_sdata8;
+ int type = DW_EH_PE_sdata8;
if (!TARGET_64BIT
|| ix86_cmodel == CM_SMALL_PIC
|| (ix86_cmodel == CM_MEDIUM_PIC && (global || code)))
Index: gcc/config/i386/i386.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.h,v
retrieving revision 1.445
diff -u -p -r1.445 i386.h
--- gcc/config/i386/i386.h 6 Aug 2005 13:26:07 -0000 1.445
+++ gcc/config/i386/i386.h 19 Aug 2005 16:53:56 -0000
@@ -951,14 +951,15 @@ do { \
/* Register to hold the addressing base for position independent
code access to data items. We don't use PIC pointer for 64bit
- mode. Define the regnum to dummy value to prevent gcc from
- pessimizing code dealing with EBX.
+ mode in the small or medium models. For the large PIC model we use
+ R15. Define the regnum to dummy
+ value to prevent gcc from pessimizing code dealing with EBX.
To avoid clobbering a call-saved register unnecessarily, we renumber
the pic register when possible. The change is visible after the
prologue has been emitted. */
-#define REAL_PIC_OFFSET_TABLE_REGNUM 3
+#define REAL_PIC_OFFSET_TABLE_REGNUM (TARGET_64BIT ? FIRST_REX_INT_REG + 15 - 8 : 3)
#define PIC_OFFSET_TABLE_REGNUM \
((TARGET_64BIT && ix86_cmodel == CM_SMALL_PIC) \
@@ -1776,7 +1777,8 @@ do { \
/* Specify the machine mode that this machine uses
for the index in the tablejump instruction. */
-#define CASE_VECTOR_MODE (!TARGET_64BIT || flag_pic ? SImode : DImode)
+#define CASE_VECTOR_MODE \
+ (!TARGET_64BIT || (flag_pic && ix86_cmodel != CM_LARGE_PIC) ? SImode : DImode)
/* Define this as 1 if `char' should by default be signed; else as 0. */
#define DEFAULT_SIGNED_CHAR 1
@@ -2143,7 +2145,8 @@ enum cmodel {
CM_MEDIUM, /* Assumes code fits in the low 31 bits; data unlimited. */
CM_LARGE, /* No assumptions. */
CM_SMALL_PIC, /* Assumes code+data+got/plt fits in a 31 bit region. */
- CM_MEDIUM_PIC /* Assumes code+got/plt fits in a 31 bit region. */
+ CM_MEDIUM_PIC,/* Assumes code+got/plt fits in a 31 bit region. */
+ CM_LARGE_PIC /* No assumptions. */
};
extern enum cmodel ix86_cmodel;
Index: gcc/config/i386/i386.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.md,v
retrieving revision 1.653
diff -u -p -r1.653 i386.md
--- gcc/config/i386/i386.md 17 Aug 2005 20:44:01 -0000 1.653
+++ gcc/config/i386/i386.md 19 Aug 2005 16:53:56 -0000
@@ -61,6 +61,7 @@
(UNSPEC_DTPOFF 6)
(UNSPEC_GOTNTPOFF 7)
(UNSPEC_INDNTPOFF 8)
+ (UNSPEC_PLTOFF 9)
; Prologue support
(UNSPEC_STACK_ALLOC 11)
@@ -68,6 +69,8 @@
(UNSPEC_SSE_PROLOGUE_SAVE 13)
(UNSPEC_REG_SAVE 14)
(UNSPEC_DEF_CFA 15)
+ (UNSPEC_SET_RIP 119)
+ (UNSPEC_SET_GOT_OFFSET 120)
; TLS support
(UNSPEC_TP 16)
@@ -13580,7 +13583,8 @@
(define_insn "*call_1_rex64"
[(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rsm"))
(match_operand 1 "" ""))]
- "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+ "!SIBLING_CALL_P (insn) && TARGET_64BIT
+ && ix86_cmodel != CM_LARGE && ix86_cmodel != CM_LARGE_PIC"
{
if (constant_call_address_operand (operands[0], Pmode))
return "call\t%P0";
@@ -13588,6 +13592,13 @@
}
[(set_attr "type" "call")])
+(define_insn "*call_1_rex64_large"
+ [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rm"))
+ (match_operand 1 "" ""))]
+ "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+ "call\t%A0"
+ [(set_attr "type" "call")])
+
(define_insn "*sibcall_1_rex64"
[(call (mem:QI (match_operand:DI 0 "constant_call_address_operand" ""))
(match_operand 1 "" ""))]
@@ -13794,6 +13805,22 @@
[(set_attr "type" "lea")
(set_attr "length" "6")])
+(define_insn "set_rip_rex64"
+ [(set (match_operand:DI 0 "register_operand" "=r")
+ (unspec:DI [(match_operand:DI 1 "" "")] UNSPEC_SET_RIP))]
+ "TARGET_64BIT"
+ "lea{q}\t%l1(%%rip), %0"
+ [(set_attr "type" "lea")
+ (set_attr "length" "6")])
+
+(define_insn "set_got_offset_rex64"
+ [(set (match_operand:DI 0 "register_operand" "=r")
+ (unspec:DI [(match_operand:DI 1 "" "")] UNSPEC_SET_GOT_OFFSET))]
+ "TARGET_64BIT"
+ "movabs{q}\t$_GLOBAL_OFFSET_TABLE_-%l1, %0"
+ [(set_attr "type" "imov")
+ (set_attr "length" "11")])
+
(define_expand "epilogue"
[(const_int 1)]
""
@@ -14179,15 +14182,26 @@
(define_insn "*tls_global_dynamic_64"
[(set (match_operand:DI 0 "register_operand" "=a")
- (call:DI (mem:QI (match_operand:DI 2 "call_insn_operand" ""))
+ (call:DI (mem:QI (match_operand:DI 2 "constant_call_address_operand" ""))
(match_operand:DI 3 "" "")))
(unspec:DI [(match_operand:DI 1 "tls_symbolic_operand" "")]
UNSPEC_TLS_GD)]
- "TARGET_64BIT"
+ "TARGET_64BIT && ix86_cmodel != CM_LARGE && ix86_cmodel != CM_LARGE_PIC"
".byte\t0x66\;lea{q}\t{%a1@TLSGD(%%rip), %%rdi|%%rdi, %a1@TLSGD[%%rip]}\;.word\t0x6666\;rex64\;call\t%P2"
[(set_attr "type" "multi")
(set_attr "length" "16")])
+(define_insn "*tls_global_dynamic_64_large"
+ [(set (match_operand:DI 0 "register_operand" "=a")
+ (call:DI (mem:QI (match_operand:DI 2 "call_insn_operand" "rm"))
+ (match_operand:DI 3 "" "")))
+ (unspec:DI [(match_operand:DI 1 "tls_symbolic_operand" "")]
+ UNSPEC_TLS_GD)]
+ "TARGET_64BIT"
+ ".byte\t0x66\;lea{q}\t{%a1@TLSGD(%%rip), %%rdi|%%rdi, %a1@TLSGD[%%rip]}\;.word\t0x6666\;rex64\;call\t%A2"
+ [(set_attr "type" "multi")
+ (set_attr "length" "16")])
+
(define_expand "tls_global_dynamic_64"
[(parallel [(set (match_operand:DI 0 "register_operand" "")
(call:DI (mem:QI (match_dup 2)) (const_int 0)))
@@ -14095,6 +14133,8 @@
""
{
operands[2] = ix86_tls_get_addr ();
+ if (ix86_cmodel == CM_LARGE_PIC)
+ operands[2] = construct_plt_address (operands[2]);
})
(define_insn "*tls_local_dynamic_base_32_gnu"
@@ -14160,6 +14200,8 @@
""
{
operands[1] = ix86_tls_get_addr ();
+ if (ix86_cmodel == CM_LARGE_PIC)
+ operands[1] = construct_plt_address (operands[1]);
})
;; Local dynamic of a single variable is a lose. Show combine how
@@ -19786,7 +19828,8 @@
[(set (match_operand 0 "" "")
(call (mem:QI (match_operand:DI 1 "call_insn_operand" "rsm"))
(match_operand:DI 2 "" "")))]
- "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+ "!SIBLING_CALL_P (insn) && TARGET_64BIT
+ && ix86_cmodel != CM_LARGE && ix86_cmodel != CM_LARGE_PIC"
{
if (constant_call_address_operand (operands[1], Pmode))
return "call\t%P1";
@@ -19794,6 +19837,14 @@
}
[(set_attr "type" "callv")])
+(define_insn "*call_value_1_rex64_large"
+ [(set (match_operand 0 "" "")
+ (call (mem:QI (match_operand:DI 1 "call_insn_operand" "rm"))
+ (match_operand:DI 2 "" "")))]
+ "!SIBLING_CALL_P (insn) && TARGET_64BIT"
+ "call\t%A1"
+ [(set_attr "type" "callv")])
+
(define_insn "*sibcall_value_1_rex64"
[(set (match_operand 0 "" "")
(call (mem:QI (match_operand:DI 1 "constant_call_address_operand" ""))
Index: gcc/config/i386/predicates.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/predicates.md,v
retrieving revision 1.21
diff -u -p -r1.21 predicates.md
--- gcc/config/i386/predicates.md 8 Aug 2005 16:29:51 -0000 1.21
+++ gcc/config/i386/predicates.md 19 Aug 2005 16:53:56 -0000
@@ -340,14 +340,6 @@
})
-;; Return nonzero if OP is nonmemory operand acceptable by movabs patterns.
-(define_predicate "x86_64_movabs_operand"
- (if_then_else (match_test "!TARGET_64BIT || !flag_pic")
- (match_operand 0 "nonmemory_operand")
- (ior (match_operand 0 "register_operand")
- (and (match_operand 0 "const_double_operand")
- (match_test "GET_MODE_SIZE (mode) <= 8")))))
-
;; Returns nonzero if OP is either a symbol reference or a sum of a symbol
;; reference and a constant.
(define_predicate "symbolic_operand"
@@ -392,6 +384,16 @@
}
})
+;; Return nonzero if OP is nonmemory operand acceptable by movabs patterns.
+(define_predicate "x86_64_movabs_operand"
+ (if_then_else (match_test "!TARGET_64BIT || !flag_pic")
+ (match_operand 0 "nonmemory_operand")
+ (ior (match_operand 0 "register_operand")
+ (ior (and (match_operand 0 "const_double_operand")
+ (match_test "GET_MODE_SIZE (mode) <= 8"))
+ (and (match_operand 0 "symbolic_operand")
+ (match_test "!flag_pic"))))))
+
;; Return true if the operand contains a @GOT or @GOTOFF reference.
(define_predicate "pic_symbolic_operand"
(match_code "const")
@@ -474,8 +476,9 @@
;; Test for a pc-relative call operand
(define_predicate "constant_call_address_operand"
- (ior (match_code "symbol_ref")
- (match_operand 0 "local_symbolic_operand")))
+ (and (ior (match_code "symbol_ref")
+ (match_operand 0 "local_symbolic_operand"))
+ (match_test "ix86_cmodel != CM_LARGE && ix86_cmodel != CM_LARGE_PIC")))
;; True for any non-virtual or eliminable register. Used in places where
;; instantiation of such a register may cause the pattern to not be recognized.
++++++ libjava-no-multilib.diff ++++++
--- libjava/configure.mm 2005-04-12 18:05:22.000000000 +0000
+++ libjava/configure 2005-08-03 16:24:26.527063985 +0000
@@ -1586,6 +1586,26 @@ echo "$as_me: error: bad value ${enablev
else
multilib=yes
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.
++++++ libstdcxx-bitset.patch ++++++
2006-01-30 Paolo Carlini
* include/std/std_bitset.h (bitset<>::_M_copy_to_string):
Call the internal _Unchecked_set(size_t) instead of set.
Index: include/std/std_bitset.h
===================================================================
--- include/std/std_bitset.h (revision 110410)
+++ include/std/std_bitset.h (working copy)
@@ -1,6 +1,7 @@
// <bitset> -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -1156,7 +1157,7 @@
case '0':
break;
case '1':
- set(__i);
+ _Unchecked_set(__i);
break;
default:
__throw_invalid_argument(__N("bitset::_M_copy_from_string"));
++++++ nvl161673.patch ++++++
You asked whether there was a smaller patch that only reordered
operands in the backend to "fix" the indexed load/store problem.
David Edelsohn does have one which I'm attaching here for you.
I just applied the patch to the latest GCC 4.1 branch and
bootstrapped it and regtested it with no problems.
* config/rs6000/rs6000.c (print_operand, 'y'): Swap position of
registers in index addresses.
(print_operand_address): Same.
Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c (revision 113054)
+++ gcc/config/rs6000/rs6000.c (working copy)
@@ -10717,12 +10717,14 @@
&& REG_P (XEXP (tmp, 0))
&& REG_P (XEXP (tmp, 1)));
- if (REGNO (XEXP (tmp, 0)) == 0)
+ /* Second index register frequently contains base address,
+ preferentially place it in rA position unless it is r0. */
+ if (REGNO (XEXP (tmp, 1)) == 0)
+ fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (tmp, 0)) ],
+ reg_names[ REGNO (XEXP (tmp, 1)) ]);
+ else
fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (tmp, 1)) ],
reg_names[ REGNO (XEXP (tmp, 0)) ]);
- else
- fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (tmp, 0)) ],
- reg_names[ REGNO (XEXP (tmp, 1)) ]);
}
break;
}
@@ -10776,12 +10778,15 @@
else if (GET_CODE (x) == PLUS && GET_CODE (XEXP (x, 1)) == REG)
{
gcc_assert (REG_P (XEXP (x, 0)));
- if (REGNO (XEXP (x, 0)) == 0)
+
+ /* Second index register frequently contains base address,
+ preferentially place it in rA position unless it is r0. */
+ if (REGNO (XEXP (x, 1)) == 0)
+ fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (x, 0)) ],
+ reg_names[ REGNO (XEXP (x, 1)) ]);
+ else
fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (x, 1)) ],
reg_names[ REGNO (XEXP (x, 0)) ]);
- else
- fprintf (file, "%s,%s", reg_names[ REGNO (XEXP (x, 0)) ],
- reg_names[ REGNO (XEXP (x, 1)) ]);
}
else if (GET_CODE (x) == PLUS && GET_CODE (XEXP (x, 1)) == CONST_INT)
fprintf (file, HOST_WIDE_INT_PRINT_DEC "(%s)",
++++++ pr13212.patch ++++++
2006-03-29 Bryce McKinlay
PR libgcj/13212:
* configure.ac: Check for pthread_getattr_np(). Remove
GC_PTHREAD_SYM_VERSION detection.
* include/gc.h (GC_register_my_thread, GC_unregister_my_thread,
GC_get_thread_stack_base): New declarations.
* pthread_support.c (GC_register_my_thread, GC_unregister_my_thread,
GC_get_thread_stack_base): New functions.
(GC_delete_thread): Don't try to free the first_thread.
* misc.c (GC_init_inner): Use GC_get_thread_stack_base() if possible.
(pthread_create_, constr): Removed.
(pthread_create): Don't rename.
* include/gc_ext_config.h.in: Rebuilt.
* include/gc_pthread_redirects.h (pthread_create): Define
unconditionally.
* include/gc_config.h.in: Rebuilt.
* configure: Rebuilt.
Index: libjava/boehm.cc
===================================================================
--- libjava/boehm.cc (revision 112312)
+++ libjava/boehm.cc (working copy)
@@ -713,3 +713,15 @@
// For now, always reclaim soft references. FIXME.
return true;
}
+
+void
+_Jv_GCAttachThread ()
+{
+ GC_register_my_thread ();
+}
+
+void
+_Jv_GCDetachThread ()
+{
+ GC_unregister_my_thread ();
+}
Index: libjava/java/lang/natThread.cc
===================================================================
--- libjava/java/lang/natThread.cc (revision 112312)
+++ libjava/java/lang/natThread.cc (working copy)
@@ -396,7 +396,8 @@
}
// Attach the current native thread to an existing (but unstarted) Thread
-// object. Returns -1 on failure, 0 upon success.
+// object. Does not register thread with the garbage collector.
+// Returns -1 on failure, 0 upon success.
jint
_Jv_AttachCurrentThread(java::lang::Thread* thread)
{
@@ -413,6 +414,8 @@
java::lang::Thread*
_Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group)
{
+ // Register thread with GC before attempting any allocations.
+ _Jv_GCAttachThread ();
java::lang::Thread *thread = _Jv_ThreadCurrent ();
if (thread != NULL)
return thread;
@@ -447,6 +450,7 @@
return -1;
_Jv_ThreadUnRegister ();
+ _Jv_GCDetachThread ();
// Release the monitors.
t->finish_ ();
Index: libjava/include/boehm-gc.h
===================================================================
--- libjava/include/boehm-gc.h (revision 112312)
+++ libjava/include/boehm-gc.h (working copy)
@@ -79,6 +79,12 @@
#endif /* LIBGCJ_GC_DEBUG */
+void
+_Jv_GCAttachThread ();
+
+void
+_Jv_GCDetachThread ();
+
// _Jv_AllocBytes (jsize size) should go here, too. But clients don't
// usually include this header.
Index: boehm-gc/configure.ac
===================================================================
--- boehm-gc/configure.ac (revision 112312)
+++ boehm-gc/configure.ac (working copy)
@@ -291,6 +291,13 @@
;;
esac
+# Checks for pthreads functions
+#
+oldLIBS="$LIBS"
+LIBS="$LIBS -lpthread"
+AC_CHECK_FUNCS([pthread_getattr_np])
+LIBS="$oldLIBS"
+
# Configuration of machine-dependent code
#
# We don't set NO_EXECUTE_PERMISSION by default because gcj (and
@@ -450,25 +457,6 @@
AC_DEFINE(USE_MMAP, 1, [use MMAP instead of sbrk to get new memory])
fi
-symver=
-case "$target" in
- *-*-linux* )
- cat > conftest.c <
-void *tf (void *arg) { (void) arg; return NULL; }
-int main (void) { pthread_t th; pthread_create (&th, NULL, tf, NULL); return 0; }
-EOF
- if $CC $CFLAGS -pthread -o conftest conftest.c > /dev/null 2>&1; then
- symver=`readelf -s conftest 2> /dev/null | sed -n '/UND pthread_create@/{s/^.*@//;s/ .*$//;p;q}'`
- fi
- rm -f conftest conftest.c
- ;;
-esac
-if test -n "$symver"; then
- AC_DEFINE_UNQUOTED(GC_PTHREAD_SYM_VERSION, "$symver", [symbol version of pthread_create])
-fi
-
-
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
toolexecdir='$(exec_prefix)/$(target_noncanonical)'
Index: boehm-gc/include/gc.h
===================================================================
--- boehm-gc/include/gc.h (revision 112312)
+++ boehm-gc/include/gc.h (working copy)
@@ -69,7 +69,6 @@
extern "C" {
# endif
-
/* Define word and signed_word to be unsigned and signed types of the */
/* size as char * or void *. There seems to be no way to do this */
/* even semi-portably. The following is probably no better/worse */
@@ -909,6 +908,25 @@
# if defined(PCR) || defined(GC_SOLARIS_THREADS) || \
defined(GC_PTHREADS) || defined(GC_WIN32_THREADS)
/* Any flavor of threads except SRC_M3. */
+
+/* Register the current thread as a new thread whose stack(s) should */
+/* be traced by the GC. */
+/* If a platform does not implicitly do so, this must be called before */
+/* a thread can allocate garbage collected memory, or assign pointers */
+/* to the garbage collected heap. Once registered, a thread will be */
+/* stopped during garbage collections. */
+GC_API void GC_register_my_thread GC_PROTO((void));
+
+/* Register the current thread, with the indicated stack base, as */
+/* a new thread whose stack(s) should be traced by the GC. If a */
+/* platform does not implicitly do so, this must be called before a */
+/* thread can allocate garbage collected memory, or assign pointers */
+/* to the garbage collected heap. Once registered, a thread will be */
+/* stopped during garbage collections. */
+GC_API void GC_unregister_my_thread GC_PROTO((void));
+
+GC_API GC_PTR GC_get_thread_stack_base GC_PROTO((void));
+
/* This returns a list of objects, linked through their first */
/* word. Its use can greatly reduce lock contention problems, since */
/* the allocation lock can be acquired and released many fewer times. */
Index: boehm-gc/include/gc_ext_config.h.in
===================================================================
--- boehm-gc/include/gc_ext_config.h.in (revision 112312)
+++ boehm-gc/include/gc_ext_config.h.in (working copy)
@@ -3,5 +3,3 @@
is used by libjava/include/boehm-gc.h. */
#undef THREAD_LOCAL_ALLOC
-
-#undef GC_PTHREAD_SYM_VERSION
Index: boehm-gc/include/gc_pthread_redirects.h
===================================================================
--- boehm-gc/include/gc_pthread_redirects.h (revision 112312)
+++ boehm-gc/include/gc_pthread_redirects.h (working copy)
@@ -68,9 +68,7 @@
# undef pthread_detach
#endif
-#ifndef GC_PTHREAD_SYM_VERSION
# define pthread_create GC_pthread_create
-#endif
# define pthread_join GC_pthread_join
# define pthread_detach GC_pthread_detach
Index: boehm-gc/include/gc_config.h.in
===================================================================
--- boehm-gc/include/gc_config.h.in (revision 112312)
+++ boehm-gc/include/gc_config.h.in (working copy)
@@ -45,9 +45,6 @@
/* support for Tru64 pthreads */
#undef GC_OSF1_THREADS
-/* symbol version of pthread_create */
-#undef GC_PTHREAD_SYM_VERSION
-
/* support for Solaris pthreads */
#undef GC_SOLARIS_PTHREADS
@@ -63,6 +60,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_MEMORY_H
+/* Define to 1 if you have the `pthread_getattr_np' function. */
+#undef HAVE_PTHREAD_GETATTR_NP
+
/* Define to 1 if you have the header file. */
#undef HAVE_STDINT_H
Index: boehm-gc/configure
===================================================================
--- boehm-gc/configure (revision 112312)
+++ boehm-gc/configure (working copy)
@@ -5759,6 +5759,119 @@
;;
esac
+# Checks for pthreads functions
+#
+oldLIBS="$LIBS"
+LIBS="$LIBS -lpthread"
+
+for ac_func in pthread_getattr_np
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case declares $ac_func.
+ For example, HP-UX 11i declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer to if __STDC__ is defined, since
+ exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+LIBS="$oldLIBS"
+
# Configuration of machine-dependent code
#
# We don't set NO_EXECUTE_PERMISSION by default because gcj (and
@@ -6627,29 +6740,6 @@
fi
-symver=
-case "$target" in
- *-*-linux* )
- cat > conftest.c <
-void *tf (void *arg) { (void) arg; return NULL; }
-int main (void) { pthread_t th; pthread_create (&th, NULL, tf, NULL); return 0; }
-EOF
- if $CC $CFLAGS -pthread -o conftest conftest.c > /dev/null 2>&1; then
- symver=`readelf -s conftest 2> /dev/null | sed -n '/UND pthread_create@/{s/^.*@//;s/ .*$//;p;q}'`
- fi
- rm -f conftest conftest.c
- ;;
-esac
-if test -n "$symver"; then
-
-cat >>confdefs.h <<_ACEOF
-#define GC_PTHREAD_SYM_VERSION "$symver"
-_ACEOF
-
-fi
-
-
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
toolexecdir='$(exec_prefix)/$(target_noncanonical)'
Index: boehm-gc/pthread_support.c
===================================================================
--- boehm-gc/pthread_support.c (revision 112312)
+++ boehm-gc/pthread_support.c (working copy)
@@ -602,7 +602,9 @@
} else {
prev -> next = p -> next;
}
- GC_INTERNAL_FREE(p);
+
+ if (p != &first_thread)
+ GC_INTERNAL_FREE(p);
}
/* If a thread has been joined, but we have not yet */
@@ -1125,6 +1127,107 @@
GC_bool GC_in_thread_creation = FALSE;
+GC_PTR GC_get_thread_stack_base()
+{
+# ifdef HAVE_PTHREAD_GETATTR_NP
+ pthread_t my_pthread;
+ pthread_attr_t attr;
+ ptr_t stack_addr;
+ size_t stack_size;
+
+ my_pthread = pthread_self();
+ pthread_getattr_np (my_pthread, &attr);
+ pthread_attr_getstack (&attr, (void **) &stack_addr, &stack_size);
+ pthread_attr_destroy (&attr);
+
+# ifdef DEBUG_THREADS
+ GC_printf1("attached thread stack address: 0x%x\n", stack_addr);
+# endif
+
+# ifdef STACK_GROWS_DOWN
+ return stack_addr + stack_size;
+# else
+ return stack_addr - stack_size;
+# endif
+
+# else
+# ifdef DEBUG_THREADS
+ GC_printf1("Can not determine stack base for attached thread");
+# endif
+ return 0;
+# endif
+}
+
+void GC_register_my_thread()
+{
+ GC_thread me;
+ pthread_t my_pthread;
+
+ my_pthread = pthread_self();
+# ifdef DEBUG_THREADS
+ GC_printf1("Attaching thread 0x%lx\n", my_pthread);
+ GC_printf1("pid = %ld\n", (long) getpid());
+# endif
+
+ /* Check to ensure this thread isn't attached already. */
+ LOCK();
+ me = GC_lookup_thread (my_pthread);
+ UNLOCK();
+ if (me != 0)
+ {
+# ifdef DEBUG_THREADS
+ GC_printf1("Attempt to re-attach known thread 0x%lx\n", my_pthread);
+# endif
+ return;
+ }
+
+ LOCK();
+ GC_in_thread_creation = TRUE;
+ me = GC_new_thread(my_pthread);
+ GC_in_thread_creation = FALSE;
+
+ me -> flags |= DETACHED;
+
+#ifdef GC_DARWIN_THREADS
+ me -> stop_info.mach_thread = mach_thread_self();
+#else
+ me -> stack_end = GC_get_thread_stack_base();
+ if (me -> stack_end == 0)
+ GC_abort("Can not determine stack base for attached thread");
+
+# ifdef STACK_GROWS_DOWN
+ me -> stop_info.stack_ptr = me -> stack_end - 0x10;
+# else
+ me -> stop_info.stack_ptr = me -> stack_end + 0x10;
+# endif
+#endif
+
+# ifdef IA64
+ me -> backing_store_end = (ptr_t)
+ (GC_save_regs_in_stack() & ~(GC_page_size - 1));
+ /* This is also < 100% convincing. We should also read this */
+ /* from /proc, but the hook to do so isn't there yet. */
+# endif /* IA64 */
+
+# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
+ GC_init_thread_local(me);
+# endif
+ UNLOCK();
+}
+
+void GC_unregister_my_thread()
+{
+ pthread_t my_pthread;
+
+ my_pthread = pthread_self();
+
+# ifdef DEBUG_THREADS
+ GC_printf1("Detaching thread 0x%lx\n", my_pthread);
+# endif
+
+ GC_thread_exit_proc (0);
+}
+
void * GC_start_routine(void * arg)
{
int dummy;
@@ -1201,37 +1304,8 @@
return(result);
}
-#ifdef GC_PTHREAD_SYM_VERSION
-
-/* Force constr to execute prior to main(). */
-static void constr (void) __attribute__ ((constructor));
-
-static int
-(*pthread_create_)(pthread_t *new_thread,
- const pthread_attr_t *attr_in,
- void * (*thread_execp)(void *), void *arg);
-
-static void
-constr (void)
-{
- /* Get a pointer to the real pthread_create. */
- pthread_create_ = dlvsym (RTLD_NEXT, "pthread_create",
- GC_PTHREAD_SYM_VERSION);
-}
-
-#define GC_PTHREAD_CREATE_NAME pthread_create
-#define GC_PTHREAD_REAL_NAME (*pthread_create_)
-
-#else
-
-#define GC_PTHREAD_CREATE_NAME WRAP_FUNC(pthread_create)
-#define GC_PTHREAD_REAL_NAME REAL_FUNC(pthread_create)
-
-#endif
-
-
int
-GC_PTHREAD_CREATE_NAME(pthread_t *new_thread,
+WRAP_FUNC(pthread_create)(pthread_t *new_thread,
const pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg)
{
@@ -1286,7 +1360,7 @@
pthread_self());
# endif
- result = GC_PTHREAD_REAL_NAME(new_thread, attr, GC_start_routine, si);
+ result = REAL_FUNC(pthread_create)(new_thread, attr, GC_start_routine, si);
# ifdef DEBUG_THREADS
GC_printf1("Started thread 0x%X\n", *new_thread);
Index: boehm-gc/misc.c
===================================================================
--- boehm-gc/misc.c (revision 112312)
+++ boehm-gc/misc.c (working copy)
@@ -674,7 +674,13 @@
# if !defined(THREADS) || defined(GC_PTHREADS) || defined(GC_WIN32_THREADS) \
|| defined(GC_SOLARIS_THREADS)
if (GC_stackbottom == 0) {
- GC_stackbottom = GC_get_stack_base();
+ # ifdef GC_PTHREADS
+ /* Use thread_stack_base if available, as GC could be initialized from
+ a thread that is not the "main" thread. */
+ GC_stackbottom = GC_get_thread_stack_base();
+ # endif
+ if (GC_stackbottom == 0)
+ GC_stackbottom = GC_get_stack_base();
# if (defined(LINUX) || defined(HPUX)) && defined(IA64)
GC_register_stackbottom = GC_get_register_stack_base();
# endif
++++++ pr20425.patch ++++++
++++ 1217 lines (skipped)
++++++ pr24879.patch ++++++
2005-11-17 H.J. Lu
PR target/24879
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
void_ftype_di_di and void_ftype_pcvoid_di_di. Use void_ftype_di_di
on __builtin_ia32_mwait and void_ftype_pcvoid_di_di on
__builtin_ia32_monitor for 64bit.
(ix86_expand_builtin): Support 64bit monitor and mwait.
* config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
inline function.
(_mm_mwait): Likewise.
* config/i386/sse.md (sse3_mwait): Make it 32bit only.
(sse3_mwait64): New. 64bit mwait.
(sse3_monitor): Make it 32bit only.
(sse3_monitor64): New. 64bit monitor.
gcc/testsuite/
2005-11-17 H.J. Lu
PR target/24879
* gcc.target/i386/monitor.c: New file.
--- gcc/config/i386/i386.c.sse3 2005-11-15 17:33:02.000000000 -0800
+++ gcc/config/i386/i386.c 2005-11-17 09:44:47.000000000 -0800
@@ -14347,10 +14347,20 @@ ix86_init_mmx_sse_builtins (void)
tree void_ftype_unsigned_unsigned
= build_function_type_list (void_type_node, unsigned_type_node,
unsigned_type_node, NULL_TREE);
+ tree void_ftype_di_di
+ = build_function_type_list (void_type_node,
+ long_long_unsigned_type_node,
+ long_long_unsigned_type_node,
+ NULL_TREE);
tree void_ftype_pcvoid_unsigned_unsigned
= build_function_type_list (void_type_node, const_ptr_type_node,
unsigned_type_node, unsigned_type_node,
NULL_TREE);
+ tree void_ftype_pcvoid_di_di
+ = build_function_type_list (void_type_node, const_ptr_type_node,
+ long_long_unsigned_type_node,
+ long_long_unsigned_type_node,
+ NULL_TREE);
tree unsigned_ftype_void
= build_function_type (unsigned_type_node, void_list_node);
tree v2si_ftype_v4sf
@@ -14811,12 +14821,24 @@ ix86_init_mmx_sse_builtins (void)
def_builtin (MASK_SSE2, "__builtin_ia32_pmaddwd128", v4si_ftype_v8hi_v8hi, IX86_BUILTIN_PMADDWD128);
/* Prescott New Instructions. */
- def_builtin (MASK_SSE3, "__builtin_ia32_monitor",
- void_ftype_pcvoid_unsigned_unsigned,
- IX86_BUILTIN_MONITOR);
- def_builtin (MASK_SSE3, "__builtin_ia32_mwait",
- void_ftype_unsigned_unsigned,
- IX86_BUILTIN_MWAIT);
+ if (TARGET_64BIT)
+ {
+ def_builtin (MASK_SSE3, "__builtin_ia32_monitor",
+ void_ftype_pcvoid_di_di,
+ IX86_BUILTIN_MONITOR);
+ def_builtin (MASK_SSE3, "__builtin_ia32_mwait",
+ void_ftype_di_di,
+ IX86_BUILTIN_MWAIT);
+ }
+ else
+ {
+ def_builtin (MASK_SSE3, "__builtin_ia32_monitor",
+ void_ftype_pcvoid_unsigned_unsigned,
+ IX86_BUILTIN_MONITOR);
+ def_builtin (MASK_SSE3, "__builtin_ia32_mwait",
+ void_ftype_unsigned_unsigned,
+ IX86_BUILTIN_MWAIT);
+ }
def_builtin (MASK_SSE3, "__builtin_ia32_movshdup",
v4sf_ftype_v4sf,
IX86_BUILTIN_MOVSHDUP);
@@ -15660,13 +15682,17 @@ ix86_expand_builtin (tree exp, rtx targe
op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0);
+ mode = TARGET_64BIT ? DImode : SImode;
if (!REG_P (op0))
- op0 = copy_to_mode_reg (SImode, op0);
+ op0 = copy_to_mode_reg (mode, op0);
if (!REG_P (op1))
- op1 = copy_to_mode_reg (SImode, op1);
+ op1 = copy_to_mode_reg (mode, op1);
if (!REG_P (op2))
- op2 = copy_to_mode_reg (SImode, op2);
- emit_insn (gen_sse3_monitor (op0, op1, op2));
+ op2 = copy_to_mode_reg (mode, op2);
+ if (TARGET_64BIT)
+ emit_insn (gen_sse3_monitor64 (op0, op1, op2));
+ else
+ emit_insn (gen_sse3_monitor (op0, op1, op2));
return 0;
case IX86_BUILTIN_MWAIT:
@@ -15674,11 +15700,15 @@ ix86_expand_builtin (tree exp, rtx targe
arg1 = TREE_VALUE (TREE_CHAIN (arglist));
op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
+ mode = TARGET_64BIT ? DImode : SImode;
if (!REG_P (op0))
- op0 = copy_to_mode_reg (SImode, op0);
+ op0 = copy_to_mode_reg (mode, op0);
if (!REG_P (op1))
- op1 = copy_to_mode_reg (SImode, op1);
- emit_insn (gen_sse3_mwait (op0, op1));
+ op1 = copy_to_mode_reg (mode, op1);
+ if (TARGET_64BIT)
+ emit_insn (gen_sse3_mwait64 (op0, op1));
+ else
+ emit_insn (gen_sse3_mwait (op0, op1));
return 0;
case IX86_BUILTIN_LDDQU:
--- gcc/config/i386/pmmintrin.h.sse3 2005-11-04 14:13:48.000000000 -0800
+++ gcc/config/i386/pmmintrin.h 2005-11-15 22:44:02.000000000 -0800
@@ -110,7 +110,6 @@ _mm_lddqu_si128 (__m128i const *__P)
return (__m128i) __builtin_ia32_lddqu ((char const *)__P);
}
-#if 0
static __inline void __attribute__((__always_inline__))
_mm_monitor (void const * __P, unsigned int __E, unsigned int __H)
{
@@ -122,10 +121,6 @@ _mm_mwait (unsigned int __E, unsigned in
{
__builtin_ia32_mwait (__E, __H);
}
-#else
-#define _mm_monitor(P, E, H) __builtin_ia32_monitor ((P), (E), (H))
-#define _mm_mwait(E, H) __builtin_ia32_mwait ((E), (H))
-#endif
#endif /* __SSE3__ */
--- gcc/config/i386/sse.md.sse3 2005-11-04 14:13:48.000000000 -0800
+++ gcc/config/i386/sse.md 2005-11-17 09:25:31.000000000 -0800
@@ -3890,15 +3890,36 @@
[(unspec_volatile [(match_operand:SI 0 "register_operand" "a")
(match_operand:SI 1 "register_operand" "c")]
UNSPECV_MWAIT)]
- "TARGET_SSE3"
+ "TARGET_SSE3 && !TARGET_64BIT"
"mwait\t%0, %1"
[(set_attr "length" "3")])
+(define_insn "sse3_mwait64"
+ [(unspec_volatile [(match_operand:DI 0 "register_operand" "a")
+ (match_operand:DI 1 "register_operand" "c")]
+ UNSPECV_MWAIT)]
+ "TARGET_SSE3 && TARGET_64BIT"
+;; Older assembler doesn't support "mwait %rax,%rcx".
+;; "mwait\t%0, %1"
+ "mwait"
+ [(set_attr "length" "3")])
+
(define_insn "sse3_monitor"
[(unspec_volatile [(match_operand:SI 0 "register_operand" "a")
(match_operand:SI 1 "register_operand" "c")
(match_operand:SI 2 "register_operand" "d")]
UNSPECV_MONITOR)]
- "TARGET_SSE3"
+ "TARGET_SSE3 && !TARGET_64BIT"
"monitor\t%0, %1, %2"
[(set_attr "length" "3")])
+
+(define_insn "sse3_monitor64"
+ [(unspec_volatile [(match_operand:DI 0 "register_operand" "a")
+ (match_operand:DI 1 "register_operand" "c")
+ (match_operand:DI 2 "register_operand" "d")]
+ UNSPECV_MONITOR)]
+ "TARGET_SSE3 && TARGET_64BIT"
+;; Older assembler doesn't support "monitor %rax,%rcx,%rdx".
+;; "monitor\t%0, %1, %2"
+ "monitor"
+ [(set_attr "length" "3")])
--- gcc/testsuite/gcc.target/i386/monitor.c.sse3 2005-11-15 22:59:54.000000000 -0800
+++ gcc/testsuite/gcc.target/i386/monitor.c 2005-11-15 23:25:23.000000000 -0800
@@ -0,0 +1,27 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -msse3" } */
+
+/* Verify that they work in both 32bit and 64bit. */
+
+#include
+
+void
+foo (char *p, int x, int y, int z)
+{
+ _mm_monitor (p, y, x);
+ _mm_mwait (z, y);
+}
+
+void
+bar (char *p, long x, long y, long z)
+{
+ _mm_monitor (p, y, x);
+ _mm_mwait (z, y);
+}
+
+void
+foo1 (char *p)
+{
+ _mm_monitor (p, 0, 0);
+ _mm_mwait (0, 0);
+}
++++++ pr25626.patch ++++++
2006-01-22 Paolo Carlini
Gabriel Dos Reis
PR libstdc++/25626
* include/std/std_valarray.h (valarray(const slice_array<>&),
valarray(const gslice_array<>&), valarray(const mask_array<>&),
valarray(const indirect_array<>&), valarray(const _Expr<>&)):
Forward to __valarray_copy_construct, not __valarray_copy.
* include/bits/valarray_array.h
(__valarray_copy_construct(_Array<>, _Array<>, _Array<>, size_t),
__valarray_copy_construct(_Array<>, size_t, size_t, _Array<>)):
New.Index: include/bits/valarray_array.h
===================================================================
--- include/bits/valarray_array.h (revision 110087)
+++ include/bits/valarray_array.h (working copy)
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- internal _Array helper class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2003, 2004, 2005
+// Copyright (C) 1997, 1998, 1999, 2000, 2003, 2004, 2005, 2006
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -428,8 +428,24 @@
_Tp* const __restrict__ _M_data;
};
+
+ // Copy-construct plain array __b[<__n>] from indexed array __a[__i[<__n>]]
template<typename _Tp>
inline void
+ __valarray_copy_construct(_Array<_Tp> __a, _Array __i,
+ _Array<_Tp> __b, size_t __n)
+ { std::__valarray_copy_construct(__a._M_data, __i._M_data,
+ __b._M_data, __n); }
+
+ // Copy-construct plain array __b[<__n>] from strided array __a[<__n : __s>]
+ template<typename _Tp>
+ inline void
+ __valarray_copy_construct(_Array<_Tp> __a, size_t __n, size_t __s,
+ _Array<_Tp> __b)
+ { std::__valarray_copy_construct(__a._M_data, __n, __s, __b._M_data); }
+
+ template<typename _Tp>
+ inline void
__valarray_fill (_Array<_Tp> __a, size_t __n, const _Tp& __t)
{ std::__valarray_fill(__a._M_data, __n, __t); }
Index: include/std/std_valarray.h
===================================================================
--- include/std/std_valarray.h (revision 110087)
+++ include/std/std_valarray.h (working copy)
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- valarray class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -584,7 +584,7 @@
valarray<_Tp>::valarray(const slice_array<_Tp>& __sa)
: _M_size(__sa._M_sz), _M_data(__valarray_get_storage<_Tp>(__sa._M_sz))
{
- std::__valarray_copy
+ std::__valarray_copy_construct
(__sa._M_array, __sa._M_sz, __sa._M_stride, _Array<_Tp>(_M_data));
}
@@ -594,7 +594,7 @@
: _M_size(__ga._M_index.size()),
_M_data(__valarray_get_storage<_Tp>(_M_size))
{
- std::__valarray_copy
+ std::__valarray_copy_construct
(__ga._M_array, _Array(__ga._M_index),
_Array<_Tp>(_M_data), _M_size);
}
@@ -604,7 +604,7 @@
valarray<_Tp>::valarray(const mask_array<_Tp>& __ma)
: _M_size(__ma._M_sz), _M_data(__valarray_get_storage<_Tp>(__ma._M_sz))
{
- std::__valarray_copy
+ std::__valarray_copy_construct
(__ma._M_array, __ma._M_mask, _Array<_Tp>(_M_data), _M_size);
}
@@ -613,7 +613,7 @@
valarray<_Tp>::valarray(const indirect_array<_Tp>& __ia)
: _M_size(__ia._M_sz), _M_data(__valarray_get_storage<_Tp>(__ia._M_sz))
{
- std::__valarray_copy
+ std::__valarray_copy_construct
(__ia._M_array, __ia._M_index, _Array<_Tp>(_M_data), _M_size);
}
@@ -621,7 +621,7 @@
inline
valarray<_Tp>::valarray(const _Expr<_Dom, _Tp>& __e)
: _M_size(__e.size()), _M_data(__valarray_get_storage<_Tp>(_M_size))
- { std::__valarray_copy(__e, _M_size, _Array<_Tp>(_M_data)); }
+ { std::__valarray_copy_construct(__e, _M_size, _Array<_Tp>(_M_data)); }
template<typename _Tp>
inline
++++++ pr26399.patch ++++++
Jan Hubicka
PR profile/20815
PR profile/26399
* coverage.c (coverage_checksum_string): Reorganize loop to not read
after buffer.
* g++.dg/bprob/g++-bprob-2.C: New testcase.
Index: gcc/coverage.c
===================================================================
*** gcc/coverage.c (revision 113342)
--- gcc/coverage.c (working copy)
*************** coverage_checksum_string (unsigned chksu
*** 457,486 ****
to be no better chance then walk all possible offsets looking
for magicnuber. */
if (offset)
! for (;string[offset]; offset++)
! for (i = i + offset; string[i]; i++)
! if (string[i]=='_')
! {
! int y;
!
! for (y = 1; y < 9; y++)
! if (!(string[i + y] >= '0' && string[i + y] <= '9')
! && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
! break;
! if (y != 9 || string[i + 9] != '_')
! continue;
! for (y = 10; y < 18; y++)
! if (!(string[i + y] >= '0' && string[i + y] <= '9')
! && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
! break;
! if (y != 18)
! continue;
! if (!dup)
! string = dup = xstrdup (string);
! for (y = 10; y < 18; y++)
! dup[i + y] = '0';
! }
! break;
}
chksum = crc32_string (chksum, string);
--- 457,487 ----
to be no better chance then walk all possible offsets looking
for magicnuber. */
if (offset)
! {
! for (i = i + offset; string[i]; i++)
! if (string[i]=='_')
! {
! int y;
!
! for (y = 1; y < 9; y++)
! if (!(string[i + y] >= '0' && string[i + y] <= '9')
! && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
! break;
! if (y != 9 || string[i + 9] != '_')
! continue;
! for (y = 10; y < 18; y++)
! if (!(string[i + y] >= '0' && string[i + y] <= '9')
! && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
! break;
! if (y != 18)
! continue;
! if (!dup)
! string = dup = xstrdup (string);
! for (y = 10; y < 18; y++)
! dup[i + y] = '0';
! }
! break;
! }
}
chksum = crc32_string (chksum, string);
--- /dev/null 2006-03-04 21:11:20.000000000 +0100
+++ gcc/testsuite/g++.dg/bprob/g++-bprob-2.C 2006-04-28 13:46:24.000000000 +0200
@@ -0,0 +1,15 @@
+namespace {
+
+int calc(int j)
+{
+ if (j==0) return 0;
+ return calc(j-1)*j % 17;
+}
+
+}
+
+int main(void)
+{
+ return calc(25);
+}
+
++++++ pr28016.patch ++++++
2006-06-16 Mark Mitchell
PR c++/28016
* decl.c (cp_finsh_decl): Do not emit uninstantiated static data
members.
PR c++/28016
* g++.dg/template/static26.C: New test.
Index: gcc/testsuite/g++.dg/template/static26.C
===================================================================
*** gcc/testsuite/g++.dg/template/static26.C (revision 0)
--- gcc/testsuite/g++.dg/template/static26.C (revision 114739)
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/28016
+ // { dg-final { scan-assembler-not "computed" } }
+
+ template
+ struct scalar_divides_assign {
+ static const bool computed ;
+ };
+
+ template
+ const bool scalar_divides_assign::computed = true;
Index: gcc/cp/decl.c
===================================================================
*** gcc/cp/decl.c (revision 114738)
--- gcc/cp/decl.c (revision 114739)
*************** cp_finish_decl (tree decl, tree init, bo
*** 5207,5222 ****
if (at_function_scope_p ())
add_decl_expr (decl);
! if (TREE_CODE (decl) == VAR_DECL)
! layout_var_decl (decl);
!
! /* Output the assembler code and/or RTL code for variables and functions,
! unless the type is an undefined structure or union.
! If not, it will get done when the type is completed. */
! if (TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == FUNCTION_DECL)
{
if (TREE_CODE (decl) == VAR_DECL)
! maybe_commonize_var (decl);
make_rtl_for_nonlocal_decl (decl, init, asmspec);
--- 5207,5223 ----
if (at_function_scope_p ())
add_decl_expr (decl);
! /* Let the middle end know about variables and functions -- but not
! static data members in uninstantiated class templates. */
! if (!saved_processing_template_decl
! && (TREE_CODE (decl) == VAR_DECL
! || TREE_CODE (decl) == FUNCTION_DECL))
{
if (TREE_CODE (decl) == VAR_DECL)
! {
! layout_var_decl (decl);
! maybe_commonize_var (decl);
! }
make_rtl_for_nonlocal_decl (decl, init, asmspec);
++++++ program-transform-name.diff ++++++
--- gcc/ada/Make-lang.in
+++ gcc/ada/Make-lang.in
@@ -436,6 +436,24 @@
# likewise for gnatf, gnatchop, and gnatlink, gnatkr, gnatmake, gnat,
# gnatprep, gnatbl, gnatls, gnatxref, gnatfind, gnatname, gnatclean,
# gnatsym, gprmake
+GNATBIND_INSTALL_NAME := $(shell echo gnatbind|sed '$(program_transform_name)')
+GNATBL_INSTALL_NAME := $(shell echo gnatbl|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)')
+GPRMAKE_INSTALL_NAME := $(shell echo gprmake|sed '$(program_transform_name)')
+GNATSYM_INSTALL_NAME := $(shell echo gnatsym|sed '$(program_transform_name)')
+GNATLBR_INSTALL_NAME := $(shell echo gnatlbr|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) ] ; \
@@ -449,8 +467,8 @@
$(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) ] ; \
@@ -464,8 +482,8 @@
$(INSTALL_PROGRAM) gnatbl-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatbl$(exeext); \
fi; \
else \
- $(RM) $(DESTDIR)$(bindir)/gnatbl$(exeext); \
- $(INSTALL_PROGRAM) gnatbl$(exeext) $(DESTDIR)$(bindir)/gnatbl$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATBL_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatbl$(exeext) $(DESTDIR)$(bindir)/$(GNATBL_INSTALL_NAME)$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
@@ -479,8 +497,8 @@
$(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) ] ; \
@@ -494,8 +512,8 @@
$(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) ] ; \
@@ -509,8 +527,8 @@
$(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) ] ; \
@@ -524,8 +542,8 @@
$(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) ] ; \
@@ -539,8 +557,8 @@
$(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) ] ; \
@@ -554,8 +572,8 @@
$(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) ] ; \
@@ -565,8 +583,8 @@
$(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) ] ; \
@@ -580,8 +598,8 @@
$(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) ] ; \
@@ -591,8 +609,8 @@
$(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) ] ; \
@@ -602,8 +620,8 @@
$(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) ] ; \
@@ -613,8 +631,8 @@
$(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
-if [ -f gnat1$(exeext) ] ; \
@@ -624,8 +642,8 @@
$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gprmake$(exeext); \
$(INSTALL_PROGRAM) gprmake-cross$(exeext) $(DESTDIR)$(bindir)/$(target_noncanonical)-gprmake$(exeext); \
else \
- $(RM) $(bindir)/gprmake$(exeext); \
- $(INSTALL_PROGRAM) gprmake$(exeext) $(DESTDIR)$(bindir)/gprmake$(exeext); \
+ $(RM) $(bindir)/$(GPRMAKE_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gprmake$(exeext) $(DESTDIR)$(bindir)/$(GPRMAKE_INSTALL_NAME)$(exeext); \
fi ; \
fi
#
@@ -635,8 +653,8 @@
then \
if [ -f gnatsym$(exeext) ] ; \
then \
- $(RM) $(DESTDIR)$(bindir)/gnatsym$(exeext); \
- $(INSTALL_PROGRAM) gnatsym$(exeext) $(DESTDIR)$(bindir)/gnatsym$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATSYM_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatsym$(exeext) $(DESTDIR)$(bindir)/$(GNATSYM_INSTALL_NAME)$(exeext); \
fi ; \
fi
#
@@ -646,8 +664,8 @@
then \
if [ -f gnatlbr$(exeext) ] ; \
then \
- $(RM) $(DESTDIR)$(bindir)/gnatlbr$(exeext); \
- $(INSTALL_PROGRAM) gnatlbr$(exeext) $(DESTDIR)$(bindir)/gnatlbr$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(GNATLBR_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gnatlbr$(exeext) $(DESTDIR)$(bindir)/$(GNATLBR_INSTALL_NAME)$(exeext); \
fi ; \
fi
#
@@ -655,8 +673,8 @@
#
-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
@@ -666,8 +684,8 @@
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
@@ -688,22 +706,22 @@
ada.install-man:
ada.uninstall:
- -$(RM) $(DESTDIR)$(bindir)/gnatbind$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatbl$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatchop$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnat$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatfind$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatdll$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatkr$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatlbr$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatlink$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatls$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatmake$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatname$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatprep$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatxref$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatclean$(exeext)
- -$(RM) $(DESTDIR)$(bindir)/gnatsym$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATBIND_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATBL_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATCHOP_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNAT_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATFIND_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATDLL_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATKR_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATLBR_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATLINK_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATLS_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATMAKE_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATNAME_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATPREP_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATXREF_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATCLEAN_INSTALL_NAME)$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(GNATSYM_INSTALL_NAME)$(exeext)
-$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatbind$(exeext)
-$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatbl$(exeext)
-$(RM) $(DESTDIR)$(bindir)/$(target_noncanonical)-gnatchop$(exeext)
@@ -736,8 +754,6 @@
-$(RM) $(DESTDIR)$(tooldir)/bin/gnatxref$(exeext)
-$(RM) $(DESTDIR)$(tooldir)/bin/gnatclean$(exeext)
-$(RM) $(DESTDIR)$(tooldir)/bin/gnatsym$(exeext)
-# Gnatlbr and Gnatchop are only used on VMS
- -$(RM) $(DESTDIR)$(bindir)/gnatlbr$(exeext) $(DESTDIR)$(bindir)/gnatchop$(exeext)
# Clean hooks:
# A lot of the ancillary files are deleted by the main makefile.
++++++ tls-no-direct.diff ++++++
--- gcc/config/i386/linux.h
+++ gcc/config/i386/linux.h
@@ -33,8 +33,13 @@
#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 "#"
++++++ tree_expr_nonzero.patch ++++++
While working on some improvements to our VRP code I found this
lovely latent bug in fold-const.c
Given a widening type conversion where the inner value is nonzero, we
can statically determine that the result will be nonzero as well.
Pretty simple stuff. Unfortunately, the sense of the comparison of
the width of the inner and outer types got reversed.
So we had a type conversion where the inner type was wider than the
outer type. We knew the inner type had a nonzero value (2 in fact),
but converting it to the narrower outer type (a single bit type) would
lose the nonzero bits, yet we claimed the result would have a nonzero
value. Opps.
No new test as this was discovered by some existing tests in the
testsuite when some minor VRP enhancements were enabled.
Bootstrapped and regression tested on i686-pc-linux-gnu.
* fold-const.c (tree_expr_nonzero_p): Fix thinko.
Index: gcc/fold-const.c
===================================================================
*** gcc/fold-const.c (revision 110848)
--- gcc/fold-const.c (working copy)
*************** tree_expr_nonzero_p (tree t)
*** 11256,11262 ****
tree inner_type = TREE_TYPE (TREE_OPERAND (t, 0));
tree outer_type = TREE_TYPE (t);
! return (TYPE_PRECISION (inner_type) >= TYPE_PRECISION (outer_type)
&& tree_expr_nonzero_p (TREE_OPERAND (t, 0)));
}
break;
--- 11256,11262 ----
tree inner_type = TREE_TYPE (TREE_OPERAND (t, 0));
tree outer_type = TREE_TYPE (t);
! return (TYPE_PRECISION (outer_type) >= TYPE_PRECISION (inner_type)
&& tree_expr_nonzero_p (TREE_OPERAND (t, 0)));
}
break;
++++++ vrp.patch ++++++
While working on improving tree-vrp's ability to discover
non-null ranges and half-ranges I discovered that it was
mis-handling TRUTH_XOR_EXPR.
The current code will incorrectly handle
[0, 1] TRUTH_XOR [0, 1]
The obvious result should be [0, 1], but due to a bug in
extract_range_from_binary_expr, we instead get [0, 0].
Long term it's not clear to me that we get any significant
benefit from handling TRUTH_XXX_EXPRs in tree-vrp.c. If we
do nothing we should be getting [0, 1]. The only time we
can do better is when one of the operands is known true or
known false. And those kind of cases should really be
encoded into fold-const.c rather than in each optimizer.
Anyway, this patch removes the buggy handling of TRUTH_XOR_EXPR.
Bootstrapped and regression tested on i686-pc-linux-gnu. I've
also verified this fixes the bootstrap failure when the VRP
enhancements to find more non-null and half ranges.
* tree-vrp.c (extract_range_from_binary_expr): Remove handling of
TRUTH_XOR_EPR.
Index: gcc/tree-vrp.c
===================================================================
*** gcc/tree-vrp.c (revision 110916)
--- gcc/tree-vrp.c (working copy)
*************** extract_range_from_binary_expr (value_ra
*** 1278,1285 ****
&& code != TRUTH_ANDIF_EXPR
&& code != TRUTH_ORIF_EXPR
&& code != TRUTH_AND_EXPR
! && code != TRUTH_OR_EXPR
! && code != TRUTH_XOR_EXPR)
{
set_value_range_to_varying (vr);
return;
--- 1278,1284 ----
&& code != TRUTH_ANDIF_EXPR
&& code != TRUTH_ORIF_EXPR
&& code != TRUTH_AND_EXPR
! && code != TRUTH_OR_EXPR)
{
set_value_range_to_varying (vr);
return;
*************** extract_range_from_binary_expr (value_ra
*** 1365,1372 ****
if (code == TRUTH_ANDIF_EXPR
|| code == TRUTH_ORIF_EXPR
|| code == TRUTH_AND_EXPR
! || code == TRUTH_OR_EXPR
! || code == TRUTH_XOR_EXPR)
{
/* If one of the operands is zero, we know that the whole
expression evaluates zero. */
--- 1364,1370 ----
if (code == TRUTH_ANDIF_EXPR
|| code == TRUTH_ORIF_EXPR
|| code == TRUTH_AND_EXPR
! || code == TRUTH_OR_EXPR)
{
/* If one of the operands is zero, we know that the whole
expression evaluates zero. */
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit-unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit-help@opensuse.org