patches/gcc/3.3.3/pr12010.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Feb 24 11:00:05 2007 +0000 (2007-02-24)
changeset 1 eeea35fbf182
permissions -rw-r--r--
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
yann@1
     1
Adjusted for gcc-3.3-20040119
yann@1
     2
yann@1
     3
See http://gcc.gnu.org/PR12010
yann@1
     4
yann@1
     5
Without this patch, one gets both compile and link time errors in
yann@1
     6
'make check' when configured for cross-compiling.
yann@1
     7
yann@1
     8
In particular, 'make check' on a cross-compiler fails with
yann@1
     9
yann@1
    10
/testsuite_flags: /testsuite_flags: No such file or directory
yann@1
    11
    while executing
yann@1
    12
"exec sh ${odir_v3}/testsuite_flags --build-includes"
yann@1
    13
    (procedure "g++_include_flags" line 21)
yann@1
    14
    invoked from within
yann@1
    15
"g++_include_flags [get_multilibs] "
yann@1
    16
    (procedure "g++_init" line 63)
yann@1
    17
    invoked from within
yann@1
    18
"${tool}_init $test_file_name"
yann@1
    19
    (procedure "runtest" line 19)
yann@1
    20
...
yann@1
    21
make[1]: [check-g++] Error 1 (ignored)
yann@1
    22
yann@1
    23
--- gcc-3.3-20040119/gcc/testsuite/lib/g++.exp.orig	2004-01-25 17:56:24.000000000 -0800
yann@1
    24
+++ gcc-3.3-20040119/gcc/testsuite/lib/g++.exp	2004-01-25 18:29:44.000000000 -0800
yann@1
    25
@@ -72,6 +72,8 @@ proc g++_version { } {
yann@1
    26
 #
yann@1
    27
 proc g++_include_flags { paths } {
yann@1
    28
     global srcdir
yann@1
    29
+    global objdir
yann@1
    30
+    global target_triplet
yann@1
    31
     global HAVE_LIBSTDCXX_V3
yann@1
    32
     global TESTING_IN_BUILD_TREE
yann@1
    33
 
yann@1
    34
@@ -90,6 +92,20 @@ proc g++_include_flags { paths } {
yann@1
    35
 
yann@1
    36
     if { ${HAVE_LIBSTDCXX_V3} } {
yann@1
    37
       set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
yann@1
    38
+      if { $odir_v3 == "" } {
yann@1
    39
+          verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
yann@1
    40
+          # first assume no multilibs
yann@1
    41
+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
yann@1
    42
+      }
yann@1
    43
+      if { $odir_v3 == "" } {
yann@1
    44
+          verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
yann@1
    45
+          # assume multilib only one level deep
yann@1
    46
+          set multisub [file tail $gccpath]
yann@1
    47
+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
yann@1
    48
+      }
yann@1
    49
+      if { $odir_v3 == "" } {
yann@1
    50
+           error "Can't find libstdc++-v3"
yann@1
    51
+      }
yann@1
    52
       append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
yann@1
    53
     } else {
yann@1
    54
       set odir_v2 [lookfor_file ${gccpath} libstdc++]
yann@1
    55
yann@1
    56
--- gcc-3.3-20040119/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old	Sun Jul 13 10:42:01 2003
yann@1
    57
+++ gcc-3.3-20040119/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp	Sun Jul 13 11:39:54 2003
yann@1
    58
@@ -48,8 +48,23 @@
yann@1
    59
     global ld_library_path
yann@1
    60
     global original_ld_library_path
yann@1
    61
     global tool_root_dir
yann@1
    62
+    global target_triplet
yann@1
    63
 
yann@1
    64
     set blddir [lookfor_file [get_multilibs] libstdc++-v3]
yann@1
    65
+    if { $blddir == "" } {
yann@1
    66
+        set multilibs [get_multilibs]
yann@1
    67
+        # FIXME: assume multilib only one level deep
yann@1
    68
+        set multisub [file tail $multilibs]
yann@1
    69
+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
yann@1
    70
+        set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
yann@1
    71
+    }
yann@1
    72
+    if { $blddir == "" } {
yann@1
    73
+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
yann@1
    74
+        set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
yann@1
    75
+    }
yann@1
    76
+    if { $blddir == "" } {
yann@1
    77
+         error "Can't find libstdc++-v3"
yann@1
    78
+    }
yann@1
    79
 
yann@1
    80
     # By default, we assume we want to run program images.
yann@1
    81
     global dg-do-what-default