GCC 4.5.2: Attempt to fix compilation of libstdc++.

svn path=/nixpkgs/branches/stdenv-updates/; revision=26499
This commit is contained in:
Ludovic Courtès 2011-03-24 22:36:09 +00:00
parent d701519f5a
commit fff1ca83d5
2 changed files with 24 additions and 1 deletions

View File

@ -137,7 +137,7 @@ stdenv.mkDerivation ({
};
patches =
[ ]
[ ./pr45894.patch ]
++ optional (cross != null) ./libstdc++-target.patch
++ optional noSysDirs ./no-sys-dirs.patch
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its

View File

@ -0,0 +1,23 @@
See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45894> for details.
Without this, compilation of GCC itself fails:
./../../../gcc-4.5.2/libstdc++-v3/src/pool_allocator.cc -fPIC -DPIC -o .libs/pool_allocator.o
In file included from ../../../../gcc-4.5.2/libstdc++-v3/src/pool_allocator.cc:31:0:
/tmp/nix-build-7d6ii7c1hqf0vzhxklbmnpbmzhq7glgr-gcc-4.5.2.drv-0/build/i686-pc-linux-gnu/libstdc++-v3/include/ext/pool_allocator.h: In constructor '__gnu_cxx::__pool_alloc<_Tp>::__pool_alloc() [with _Tp = char]':
../../../../gcc-4.5.2/libstdc++-v3/src/pool_allocator.cc:171:18: instantiated from here
/tmp/nix-build-7d6ii7c1hqf0vzhxklbmnpbmzhq7glgr-gcc-4.5.2.drv-0/build/i686-pc-linux-gnu/libstdc++-v3/include/ext/pool_allocator.h:140:30: internal compiler error: Segmentation fault
Please submit a full bug report,
--- gcc-4_5-branch/gcc/cp/tree.c 2010/11/11 20:40:32 166620
+++ gcc-4_5-branch/gcc/cp/tree.c 2010/11/11 20:41:34 166621
@@ -72,7 +72,8 @@
== REFERENCE_TYPE)
return lvalue_p_1 (TREE_OPERAND (ref, 0));
- if (TREE_CODE (TREE_TYPE (ref)) == REFERENCE_TYPE)
+ if (TREE_TYPE (ref)
+ && TREE_CODE (TREE_TYPE (ref)) == REFERENCE_TYPE)
{
/* unnamed rvalue references are rvalues */
if (TYPE_REF_IS_RVALUE (TREE_TYPE (ref))