patches/gcc/3.2.3/170-gcc-3.3-libstdc++-v3-dg.exp.patch
changeset 746 b150d6f590fc
parent 745 e445c00d134d
child 747 d3e603e7c17c
     1.1 --- a/patches/gcc/3.2.3/170-gcc-3.3-libstdc++-v3-dg.exp.patch	Mon Jul 28 20:17:48 2008 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,54 +0,0 @@
     1.4 -Without this patch, the command
     1.5 -
     1.6 -RUNTESTFLAGS=--target=powerpc-750-linux-gnu -v -v -v -v make check-target-libstdc++-v3
     1.7 -
     1.8 -fails in two ways:
     1.9 -1. the -L option meant to locate the testsuite directory is incorrect, and
    1.10 -2. the wrong compiler is invoked, causing all sorts of havoc, not least of which
    1.11 -is the native compiler is invoked when we really wanted to invoke the cross-compiler
    1.12 -we just built.
    1.13 -
    1.14 -Here's an example log of the problem in action.  Every testcase fails, this shows just one:
    1.15 --------------
    1.16 -Invoking the compiler as g++ -ggdb3 -DDEBUG_ASSERT -I/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite /home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc   -g -O2 -DDEBUG_ASSERT  -L/testsuite -lv3test -lm  -o ./binders.exe
    1.17 -compiler exited with status 1
    1.18 -output is:
    1.19 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h: In method `void binder2nd<mem_fun1_ref_t<void,Elem,int> >::operator ()(const Elem &) const':^M
    1.20 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_algo.h:83:   instantiated from `for_each<Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> > >(Elem *, Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> >)'^M
    1.21 -/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc:43:   instantiated from here^M
    1.22 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:224: conversion from `const Elem' to `Elem &' discards qualifiers^M
    1.23 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:622: in passing argument 1 of `mem_fun1_ref_t<void,Elem,int>::operator ()(Elem &, int) const'^M
    1.24 -...
    1.25 -FAIL: 20_util/binders.cc (test for excess errors)
    1.26 -WARNING: 20_util/binders.cc compilation failed to produce executable
    1.27 --------------
    1.28 -
    1.29 -And here's the patch.  I'm not happy with it, and it probably gets some cases wrong,
    1.30 -but it seems to work for the common native case and for my cross-compiler case.
    1.31 -
    1.32 ---- gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old	Sun Jul 13 10:42:01 2003
    1.33 -+++ gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp	Sun Jul 13 11:39:54 2003
    1.34 -@@ -46,8 +46,23 @@
    1.35 -     global gluefile wrap_flags
    1.36 -     global ld_library_path
    1.37 -     global tool_root_dir
    1.38 -+    global target_triplet
    1.39 - 
    1.40 -     set blddir [lookfor_file [get_multilibs] libstdc++-v3]
    1.41 -+    if { $blddir == "" } {
    1.42 -+        set multilibs [get_multilibs]
    1.43 -+        # FIXME: assume multilib only one level deep
    1.44 -+        set multisub [file tail $multilibs]
    1.45 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
    1.46 -+        set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
    1.47 -+    }
    1.48 -+    if { $blddir == "" } {
    1.49 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
    1.50 -+        set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
    1.51 -+    }
    1.52 -+    if { $blddir == "" } {
    1.53 -+         error "Can't find libstdc++-v3"
    1.54 -+    }
    1.55 - 
    1.56 -     # By default, we assume we want to run program images.
    1.57 -     global dg-do-what-default