- Workaround build on native ppc64 host.
- More RHEL-5 compatibility updates. - Disable warning messages new for gdb-6.8+ for RHEL-5 backward compatibility. - Workaround RHEL-5 kernels for detaching SIGSTOPped processes (BZ 498595). - Serialize the testsuite output to keep the order for regression checks. - Re-enable python for all non-ppc* arches. - More gcc44 stack exceptions when running the testsuite on RHEL-5. - Fix backward compatibility with G++ 4.1 namespaces "::". - Fix regression on re-setting the single ppc watchpoint slot. - Update snapshot of FSF gdb-7.0.x branch. - Backport fix of dcache invalidation locking up GDB on ppc64 targets.
This commit is contained in:
parent
cdcc8d96c2
commit
f056ae4c36
File diff suppressed because it is too large
Load Diff
204
gdb-empty-namespace.patch
Normal file
204
gdb-empty-namespace.patch
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
gdb/
|
||||||
|
2009-12-20 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
|
Fix compatibility with G++-4.1.
|
||||||
|
* dwarf2read.c (partial_die_parent_scope): New variable PARENT_NAME.
|
||||||
|
Ignore parent namespaces with name "::".
|
||||||
|
(physname_prefix_1): Ignore namespaces with name "::".
|
||||||
|
|
||||||
|
gdb/testsuite/
|
||||||
|
2009-12-20 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
|
* gdb.dwarf2/dw2-empty-namespace.exp, gdb.dwarf2/dw2-empty-namespace.S:
|
||||||
|
New.
|
||||||
|
|
||||||
|
--- a/gdb/dwarf2read.c
|
||||||
|
+++ b/gdb/dwarf2read.c
|
||||||
|
@@ -2355,11 +2355,18 @@ partial_die_parent_scope (struct partial_die_info *pdi,
|
||||||
|
|| parent->tag == DW_TAG_interface_type
|
||||||
|
|| parent->tag == DW_TAG_union_type)
|
||||||
|
{
|
||||||
|
+ char *parent_name = parent->name;
|
||||||
|
+
|
||||||
|
+ /* G++ 4.1 produced DW_TAG_namespace with DW_AT_name "::". */
|
||||||
|
+ if (parent->tag == DW_TAG_namespace && parent_name != NULL
|
||||||
|
+ && strcmp (parent_name, "::") == 0)
|
||||||
|
+ parent_name = NULL;
|
||||||
|
+
|
||||||
|
if (grandparent_scope == NULL)
|
||||||
|
- parent->scope = parent->name;
|
||||||
|
+ parent->scope = parent_name;
|
||||||
|
else
|
||||||
|
parent->scope = typename_concat (&cu->comp_unit_obstack, grandparent_scope,
|
||||||
|
- parent->name, cu);
|
||||||
|
+ parent_name, cu);
|
||||||
|
}
|
||||||
|
else if (parent->tag == DW_TAG_enumeration_type)
|
||||||
|
/* Enumerators should not get the name of the enumeration as a prefix. */
|
||||||
|
@@ -9008,6 +9015,9 @@ physname_prefix_1 (struct ui_file *buf, struct die_info *die,
|
||||||
|
name = dwarf2_name (die, cu);
|
||||||
|
if (name == NULL)
|
||||||
|
name = "(anonymous namespace)";
|
||||||
|
+ /* G++ 4.1 produced DW_TAG_namespace with DW_AT_name "::". */
|
||||||
|
+ else if (strcmp (name, "::") == 0)
|
||||||
|
+ name = NULL;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DW_TAG_class_type:
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S
|
||||||
|
@@ -0,0 +1,108 @@
|
||||||
|
+/* This testcase is part of GDB, the GNU debugger.
|
||||||
|
+
|
||||||
|
+ Copyright 2009 Free Software Foundation, Inc.
|
||||||
|
+
|
||||||
|
+ This program is free software; you can redistribute it and/or modify
|
||||||
|
+ it under the terms of the GNU General Public License as published by
|
||||||
|
+ the Free Software Foundation; either version 3 of the License, or
|
||||||
|
+ (at your option) any later version.
|
||||||
|
+
|
||||||
|
+ This program is distributed in the hope that it will be useful,
|
||||||
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+ GNU General Public License for more details.
|
||||||
|
+
|
||||||
|
+ You should have received a copy of the GNU General Public License
|
||||||
|
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
+
|
||||||
|
+/* Test G++ 4.1 producing DW_TAG_namespace with DW_AT_name "::". */
|
||||||
|
+
|
||||||
|
+ .data
|
||||||
|
+var: .4byte 1
|
||||||
|
+
|
||||||
|
+ .section .debug_info
|
||||||
|
+.Lcu1_begin:
|
||||||
|
+ /* CU header */
|
||||||
|
+ .4byte .Lcu1_end - .Lcu1_start /* Length of Compilation Unit */
|
||||||
|
+.Lcu1_start:
|
||||||
|
+ .2byte 2 /* DWARF Version */
|
||||||
|
+ .4byte .Labbrev1_begin /* Offset into abbrev section */
|
||||||
|
+ .byte 4 /* Pointer size */
|
||||||
|
+
|
||||||
|
+ /* CU die */
|
||||||
|
+ .uleb128 1 /* Abbrev: DW_TAG_compile_unit */
|
||||||
|
+ .ascii "file1.txt\0" /* DW_AT_name */
|
||||||
|
+ .ascii "GNU C 3.3.3\0" /* DW_AT_producer */
|
||||||
|
+ .byte 4 /* DW_LANG_C_plus_plus (C++) */
|
||||||
|
+
|
||||||
|
+.Ltype_int:
|
||||||
|
+ .uleb128 2 /* Abbrev: DW_TAG_base_type */
|
||||||
|
+ .ascii "int\0" /* DW_AT_name */
|
||||||
|
+ .byte 4 /* DW_AT_byte_size */
|
||||||
|
+ .byte 5 /* DW_AT_encoding */
|
||||||
|
+
|
||||||
|
+ .uleb128 3 /* Abbrev: DW_TAG_namespace */
|
||||||
|
+ .ascii "::\0" /* DW_AT_name */
|
||||||
|
+
|
||||||
|
+ .uleb128 7 /* Abbrev: DW_TAG_variable (location) */
|
||||||
|
+ .ascii "var\0" /* DW_AT_name */
|
||||||
|
+ .byte 2f - 1f /* DW_AT_location */
|
||||||
|
+1: .byte 3 /* DW_OP_addr */
|
||||||
|
+ .4byte var /* <addr> */
|
||||||
|
+2: .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */
|
||||||
|
+
|
||||||
|
+ .byte 0 /* End of children of DW_TAG_namespace */
|
||||||
|
+
|
||||||
|
+ .byte 0 /* End of children of CU */
|
||||||
|
+
|
||||||
|
+.Lcu1_end:
|
||||||
|
+
|
||||||
|
+/* Abbrev table */
|
||||||
|
+ .section .debug_abbrev
|
||||||
|
+.Labbrev1_begin:
|
||||||
|
+ .uleb128 1 /* Abbrev code */
|
||||||
|
+ .uleb128 0x11 /* DW_TAG_compile_unit */
|
||||||
|
+ .byte 1 /* has_children */
|
||||||
|
+ .uleb128 0x3 /* DW_AT_name */
|
||||||
|
+ .uleb128 0x8 /* DW_FORM_string */
|
||||||
|
+ .uleb128 0x25 /* DW_AT_producer */
|
||||||
|
+ .uleb128 0x8 /* DW_FORM_string */
|
||||||
|
+ .uleb128 0x13 /* DW_AT_language */
|
||||||
|
+ .uleb128 0xb /* DW_FORM_data1 */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+
|
||||||
|
+ .uleb128 2 /* Abbrev code */
|
||||||
|
+ .uleb128 0x24 /* DW_TAG_base_type */
|
||||||
|
+ .byte 0 /* has_children */
|
||||||
|
+ .uleb128 0x3 /* DW_AT_name */
|
||||||
|
+ .uleb128 0x8 /* DW_FORM_string */
|
||||||
|
+ .uleb128 0xb /* DW_AT_byte_size */
|
||||||
|
+ .uleb128 0xb /* DW_FORM_data1 */
|
||||||
|
+ .uleb128 0x3e /* DW_AT_encoding */
|
||||||
|
+ .uleb128 0xb /* DW_FORM_data1 */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+
|
||||||
|
+ .uleb128 3 /* Abbrev code */
|
||||||
|
+ .uleb128 0x39 /* DW_TAG_namespace */
|
||||||
|
+ .byte 1 /* has_children */
|
||||||
|
+ .uleb128 0x3 /* DW_AT_name */
|
||||||
|
+ .uleb128 0x8 /* DW_FORM_string */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+
|
||||||
|
+ .uleb128 7 /* Abbrev code (location) */
|
||||||
|
+ .uleb128 0x34 /* DW_TAG_variable */
|
||||||
|
+ .byte 0 /* has_children */
|
||||||
|
+ .uleb128 0x3 /* DW_AT_name */
|
||||||
|
+ .uleb128 0x8 /* DW_FORM_string */
|
||||||
|
+ .uleb128 0x2 /* DW_AT_location */
|
||||||
|
+ .uleb128 0xa /* DW_FORM_block1 */
|
||||||
|
+ .uleb128 0x49 /* DW_AT_type */
|
||||||
|
+ .uleb128 0x13 /* DW_FORM_ref4 */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp
|
||||||
|
@@ -0,0 +1,43 @@
|
||||||
|
+# Copyright 2009 Free Software Foundation, Inc.
|
||||||
|
+
|
||||||
|
+# This program is free software; you can redistribute it and/or modify
|
||||||
|
+# it under the terms of the GNU General Public License as published by
|
||||||
|
+# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
+# (at your option) any later version.
|
||||||
|
+#
|
||||||
|
+# This program is distributed in the hope that it will be useful,
|
||||||
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+# GNU General Public License for more details.
|
||||||
|
+#
|
||||||
|
+# You should have received a copy of the GNU General Public License
|
||||||
|
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
+
|
||||||
|
+# Test G++ 4.1 producing DW_TAG_namespace with DW_AT_name "::".
|
||||||
|
+
|
||||||
|
+# This test can only be run on targets which support DWARF-2 and use gas.
|
||||||
|
+# For now pick a sampling of likely targets.
|
||||||
|
+if {![istarget *-*-linux*]
|
||||||
|
+ && ![istarget *-*-gnu*]
|
||||||
|
+ && ![istarget *-*-elf*]
|
||||||
|
+ && ![istarget *-*-openbsd*]
|
||||||
|
+ && ![istarget arm-*-eabi*]
|
||||||
|
+ && ![istarget powerpc-*-eabi*]} {
|
||||||
|
+ return 0
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+set testfile "dw2-empty-namespace"
|
||||||
|
+set srcfile ${testfile}.S
|
||||||
|
+set executable ${testfile}.x
|
||||||
|
+
|
||||||
|
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objdir}/${subdir}/${executable}" object {nodebug}] != "" } {
|
||||||
|
+ return -1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+clean_restart $executable
|
||||||
|
+
|
||||||
|
+# `p var' below can work without identified DWARF DIE just based on its ELF symbol.
|
||||||
|
+# Catch it here as `type = <data variable, no debug info>'.
|
||||||
|
+gdb_test "ptype var" "type = int"
|
||||||
|
+
|
||||||
|
+gdb_test "p var" " = 1"
|
21
gdb-ppc-hw-watchpoint-twice.patch
Executable file
21
gdb-ppc-hw-watchpoint-twice.patch
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
pcc regression from:
|
||||||
|
http://sourceware.org/ml/gdb-patches/2008-12/msg00143.html
|
||||||
|
|
||||||
|
gdb/
|
||||||
|
2009-12-21 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
|
* breakpoint.c (update_watchpoint): Set B->TYPE to bp_watchpoint before
|
||||||
|
calling hw_watchpoint_used_count.
|
||||||
|
|
||||||
|
--- a/gdb/breakpoint.c
|
||||||
|
+++ b/gdb/breakpoint.c
|
||||||
|
@@ -1152,6 +1152,9 @@ update_watchpoint (struct breakpoint *b, int reparse)
|
||||||
|
{
|
||||||
|
int i, mem_cnt, other_type_used;
|
||||||
|
|
||||||
|
+ /* Do not count with B twice below. */
|
||||||
|
+ b->type = bp_watchpoint;
|
||||||
|
+
|
||||||
|
i = hw_watchpoint_used_count (bp_hardware_watchpoint,
|
||||||
|
&other_type_used);
|
||||||
|
mem_cnt = can_use_hardware_watchpoint (val_chain);
|
43
gdb-rhel5-compat.patch
Normal file
43
gdb-rhel5-compat.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
gdb/linux-nat.c:
|
||||||
|
- Workaround RHEL-5 kernels for detaching SIGSTOPped processes (BZ 498595).
|
||||||
|
|
||||||
|
--- gdb-6.8/gdb-orig/symfile.c 2008-08-21 00:06:50.000000000 +0200
|
||||||
|
+++ gdb-6.8/gdb/symfile.c 2008-08-21 22:31:00.000000000 +0200
|
||||||
|
@@ -1456,8 +1456,10 @@ find_separate_debug_file (struct objfile
|
||||||
|
/* Prevent looping on a stripped .debug file. */
|
||||||
|
if (build_id_name != NULL && strcmp (build_id_name, objfile->name) == 0)
|
||||||
|
{
|
||||||
|
+#if 0 /* RHEL-5 backward behavior compatibility. */
|
||||||
|
warning (_("\"%s\": separate debug info file has no debug info"),
|
||||||
|
build_id_name);
|
||||||
|
+#endif
|
||||||
|
xfree (build_id_name);
|
||||||
|
}
|
||||||
|
else if (build_id_name != NULL)
|
||||||
|
--- gdb-7.0-orig/gdb/linux-nat.c 2009-12-19 20:53:46.000000000 +0100
|
||||||
|
+++ gdb-7.0/gdb/linux-nat.c 2009-12-19 20:55:02.000000000 +0100
|
||||||
|
@@ -1604,8 +1604,22 @@ GPT: lwp %s had signal %s, but it is in
|
||||||
|
*status = lp->status;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (*status == 0 && GET_PID (lp->ptid) == pid_was_stopped)
|
||||||
|
- *status = W_STOPCODE (SIGSTOP);
|
||||||
|
+ /* Workaround RHEL-5 kernel which has unreliable PTRACE_DETACH, SIGSTOP (that
|
||||||
|
+ many TIDs are left unstopped). See RH Bug 496732. */
|
||||||
|
+ if (GET_PID (lp->ptid) == pid_was_stopped)
|
||||||
|
+ {
|
||||||
|
+ int err;
|
||||||
|
+
|
||||||
|
+ errno = 0;
|
||||||
|
+ err = kill_lwp (GET_LWP (lp->ptid), SIGSTOP);
|
||||||
|
+ if (debug_linux_nat)
|
||||||
|
+ {
|
||||||
|
+ fprintf_unfiltered (gdb_stdlog,
|
||||||
|
+ "SC: lwp kill %d %s\n",
|
||||||
|
+ err,
|
||||||
|
+ errno ? safe_strerror (errno) : "ERRNO-OK");
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -1,189 +0,0 @@
|
|||||||
Some functionality is available on RHEL-5.4+ only with gfortran44 as the
|
|
||||||
default gfortran binary is from gcc-4.1.
|
|
||||||
|
|
||||||
--- ./gdb/testsuite/gdb.fortran/common-block.exp 2009-12-15 05:13:56.000000000 +0100
|
|
||||||
+++ ./gdb/testsuite/gdb.fortran/common-block.exp 2009-12-15 05:21:00.000000000 +0100
|
|
||||||
@@ -20,7 +20,25 @@ set testfile "common-block"
|
|
||||||
set srcfile ${testfile}.f90
|
|
||||||
set binfile ${objdir}/${subdir}/${testfile}
|
|
||||||
|
|
||||||
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
|
|
||||||
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
|
||||||
+
|
|
||||||
+set board [target_info name]
|
|
||||||
+if [board_info $board exists f77compiler] {
|
|
||||||
+ set old_f77compiler [board_info $board f77compiler]
|
|
||||||
+ unset_board_info f77compiler
|
|
||||||
+} elseif [info exists old_f77compiler] {
|
|
||||||
+ unset old_f77compiler
|
|
||||||
+}
|
|
||||||
+set_board_info f77compiler gfortran44
|
|
||||||
+
|
|
||||||
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
|
|
||||||
+
|
|
||||||
+unset_board_info f77compiler
|
|
||||||
+if [info exists old_f77compiler] {
|
|
||||||
+ set_board_info f77compiler $old_f77compiler
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+if { $err != "" } {
|
|
||||||
untested "Couldn't compile ${srcfile}"
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
--- ./gdb/testsuite/gdb.fortran/dwarf-stride.exp 2009-12-15 05:13:56.000000000 +0100
|
|
||||||
+++ ./gdb/testsuite/gdb.fortran/dwarf-stride.exp 2009-12-15 05:20:07.000000000 +0100
|
|
||||||
@@ -27,7 +27,25 @@
|
|
||||||
set testfile dwarf-stride
|
|
||||||
set srcfile ${testfile}.f90
|
|
||||||
|
|
||||||
-if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f77}] } {
|
|
||||||
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
|
||||||
+
|
|
||||||
+set board [target_info name]
|
|
||||||
+if [board_info $board exists f77compiler] {
|
|
||||||
+ set old_f77compiler [board_info $board f77compiler]
|
|
||||||
+ unset_board_info f77compiler
|
|
||||||
+} elseif [info exists old_f77compiler] {
|
|
||||||
+ unset old_f77compiler
|
|
||||||
+}
|
|
||||||
+set_board_info f77compiler gfortran44
|
|
||||||
+
|
|
||||||
+set err [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f77}]
|
|
||||||
+
|
|
||||||
+unset_board_info f77compiler
|
|
||||||
+if [info exists old_f77compiler] {
|
|
||||||
+ set_board_info f77compiler $old_f77compiler
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+if $err {
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
|
|
||||||
--- ./gdb/testsuite/gdb.fortran/dynamic.exp 2009-12-15 05:13:56.000000000 +0100
|
|
||||||
+++ ./gdb/testsuite/gdb.fortran/dynamic.exp 2009-12-15 05:17:21.000000000 +0100
|
|
||||||
@@ -25,7 +25,25 @@ set testfile "dynamic"
|
|
||||||
set srcfile ${testfile}.f90
|
|
||||||
set binfile ${objdir}/${subdir}/${testfile}
|
|
||||||
|
|
||||||
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
|
|
||||||
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
|
||||||
+
|
|
||||||
+set board [target_info name]
|
|
||||||
+if [board_info $board exists f77compiler] {
|
|
||||||
+ set old_f77compiler [board_info $board f77compiler]
|
|
||||||
+ unset_board_info f77compiler
|
|
||||||
+} elseif [info exists old_f77compiler] {
|
|
||||||
+ unset old_f77compiler
|
|
||||||
+}
|
|
||||||
+set_board_info f77compiler gfortran44
|
|
||||||
+
|
|
||||||
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
|
|
||||||
+
|
|
||||||
+unset_board_info f77compiler
|
|
||||||
+if [info exists old_f77compiler] {
|
|
||||||
+ set_board_info f77compiler $old_f77compiler
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+if { $err != "" } {
|
|
||||||
untested "Couldn't compile ${srcfile}"
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
--- ./gdb/testsuite/gdb.fortran/library-module.exp 2009-12-15 05:13:56.000000000 +0100
|
|
||||||
+++ ./gdb/testsuite/gdb.fortran/library-module.exp 2009-12-15 05:22:37.000000000 +0100
|
|
||||||
@@ -25,16 +25,34 @@ if [get_compiler_info not-used] {
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
|
|
||||||
-if { [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" $objdir/$subdir/$libfile {debug f77}] != "" } {
|
|
||||||
- untested "Couldn't compile ${srclibfile}"
|
|
||||||
- return -1
|
|
||||||
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
|
||||||
+
|
|
||||||
+set board [target_info name]
|
|
||||||
+if [board_info $board exists f77compiler] {
|
|
||||||
+ set old_f77compiler [board_info $board f77compiler]
|
|
||||||
+ unset_board_info f77compiler
|
|
||||||
+} elseif [info exists old_f77compiler] {
|
|
||||||
+ unset old_f77compiler
|
|
||||||
}
|
|
||||||
+set_board_info f77compiler gfortran44
|
|
||||||
|
|
||||||
# prepare_for_testing cannot be used as linking with $libfile cannot be passed
|
|
||||||
# just for the linking phase (and not the source compilation phase). And any
|
|
||||||
# warnings on ignored $libfile abort the process.
|
|
||||||
|
|
||||||
-if { [gdb_compile [list $srcdir/$subdir/$srcfile $objdir/$subdir/$libfile] $objdir/$subdir/$binfile executable {debug f77}] != "" } {
|
|
||||||
+set err1 [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" $objdir/$subdir/$libfile {debug f77}]
|
|
||||||
+set err2 [gdb_compile [list $srcdir/$subdir/$srcfile $objdir/$subdir/$libfile] $objdir/$subdir/$binfile executable {debug f77}]
|
|
||||||
+
|
|
||||||
+unset_board_info f77compiler
|
|
||||||
+if [info exists old_f77compiler] {
|
|
||||||
+ set_board_info f77compiler $old_f77compiler
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+if { $err1 != "" } {
|
|
||||||
+ untested "Couldn't compile ${srclibfile}"
|
|
||||||
+ return -1
|
|
||||||
+}
|
|
||||||
+if { $err2 != "" } {
|
|
||||||
untested "Couldn't compile ${srcfile}"
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
--- ./gdb/testsuite/gdb.fortran/module.exp 2009-12-15 05:13:56.000000000 +0100
|
|
||||||
+++ ./gdb/testsuite/gdb.fortran/module.exp 2009-12-15 05:28:49.000000000 +0100
|
|
||||||
@@ -16,7 +16,25 @@
|
|
||||||
set testfile "module"
|
|
||||||
set srcfile ${testfile}.f90
|
|
||||||
|
|
||||||
-if { [prepare_for_testing $testfile.exp $testfile $srcfile {debug f77}] } {
|
|
||||||
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
|
||||||
+
|
|
||||||
+set board [target_info name]
|
|
||||||
+if [board_info $board exists f77compiler] {
|
|
||||||
+ set old_f77compiler [board_info $board f77compiler]
|
|
||||||
+ unset_board_info f77compiler
|
|
||||||
+} elseif [info exists old_f77compiler] {
|
|
||||||
+ unset old_f77compiler
|
|
||||||
+}
|
|
||||||
+set_board_info f77compiler gfortran44
|
|
||||||
+
|
|
||||||
+set err [prepare_for_testing $testfile.exp $testfile $srcfile {debug f77}]
|
|
||||||
+
|
|
||||||
+unset_board_info f77compiler
|
|
||||||
+if [info exists old_f77compiler] {
|
|
||||||
+ set_board_info f77compiler $old_f77compiler
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+if $err {
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
|
|
||||||
--- ./gdb/testsuite/gdb.fortran/string.exp 2009-12-15 05:13:56.000000000 +0100
|
|
||||||
+++ ./gdb/testsuite/gdb.fortran/string.exp 2009-12-15 05:18:13.000000000 +0100
|
|
||||||
@@ -23,7 +23,25 @@ set testfile "string"
|
|
||||||
set srcfile ${testfile}.f90
|
|
||||||
set binfile ${objdir}/${subdir}/${testfile}
|
|
||||||
|
|
||||||
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
|
|
||||||
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
|
||||||
+
|
|
||||||
+set board [target_info name]
|
|
||||||
+if [board_info $board exists f77compiler] {
|
|
||||||
+ set old_f77compiler [board_info $board f77compiler]
|
|
||||||
+ unset_board_info f77compiler
|
|
||||||
+} elseif [info exists old_f77compiler] {
|
|
||||||
+ unset old_f77compiler
|
|
||||||
+}
|
|
||||||
+set_board_info f77compiler gfortran44
|
|
||||||
+
|
|
||||||
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
|
|
||||||
+
|
|
||||||
+unset_board_info f77compiler
|
|
||||||
+if [info exists old_f77compiler] {
|
|
||||||
+ set_board_info f77compiler $old_f77compiler
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+if { $err != "" } {
|
|
||||||
untested "Couldn't compile ${srcfile}"
|
|
||||||
return -1
|
|
||||||
}
|
|
405
gdb-rhel5-gcc44.patch
Normal file
405
gdb-rhel5-gcc44.patch
Normal file
@ -0,0 +1,405 @@
|
|||||||
|
Some functionality is available on RHEL-5.4+ only with gcc44 and gfortran44 as
|
||||||
|
the default gcc and gfortran binaries are from gcc-4.1.
|
||||||
|
|
||||||
|
--- gdb-7.0/gdb/testsuite/gdb.base/vla.exp-orig 2009-12-20 00:38:13.000000000 +0100
|
||||||
|
+++ gdb-7.0/gdb/testsuite/gdb.base/vla.exp 2009-12-20 00:54:19.000000000 +0100
|
||||||
|
@@ -16,7 +16,25 @@
|
||||||
|
set testfile vla
|
||||||
|
set srcfile ${testfile}.c
|
||||||
|
set binfile ${objdir}/${subdir}/${testfile}
|
||||||
|
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
|
||||||
|
+# Temporarily provide compiler=gcc44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists compiler] {
|
||||||
|
+ set old_compiler [board_info $board compiler]
|
||||||
|
+ unset_board_info compiler
|
||||||
|
+} elseif [info exists old_compiler] {
|
||||||
|
+ unset old_compiler
|
||||||
|
+}
|
||||||
|
+set_board_info compiler gcc44
|
||||||
|
+
|
||||||
|
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug quiet}]
|
||||||
|
+
|
||||||
|
+unset_board_info compiler
|
||||||
|
+if [info exists old_compiler] {
|
||||||
|
+ set_board_info compiler $old_compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if { $err != "" } {
|
||||||
|
untested "Couldn't compile test program"
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
--- gdb-7.0/gdb/testsuite/gdb.base/break-interp.exp-orig 2009-12-20 00:38:13.000000000 +0100
|
||||||
|
+++ gdb-7.0/gdb/testsuite/gdb.base/break-interp.exp 2009-12-20 01:11:47.000000000 +0100
|
||||||
|
@@ -31,10 +31,30 @@ if [get_compiler_info ${binfile_lib}] {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
+# Temporarily provide compiler=gcc44 saving the original value around.
|
||||||
|
+# RHEL-5 workaround of its:
|
||||||
|
+# gcc: -soname: linker input file unused because linking not done
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists compiler] {
|
||||||
|
+ set old_compiler [board_info $board compiler]
|
||||||
|
+ unset_board_info compiler
|
||||||
|
+} elseif [info exists old_compiler] {
|
||||||
|
+ unset old_compiler
|
||||||
|
+}
|
||||||
|
+set_board_info compiler gcc44
|
||||||
|
+
|
||||||
|
# Use -soname so that it is listed with " => " by ldd and this testcase makes
|
||||||
|
# a copy of ${binfile_lib} for each prelink variant.
|
||||||
|
|
||||||
|
-if {[gdb_compile_shlib ${srcdir}/${subdir}/${srcfile_lib} ${binfile_lib} [list debug additional_flags=-Wl,-soname,${test}.so]] != ""} {
|
||||||
|
+set err [gdb_compile_shlib ${srcdir}/${subdir}/${srcfile_lib} ${binfile_lib} [list debug additional_flags=-Wl,-soname,${test}.so]]
|
||||||
|
+
|
||||||
|
+unset_board_info compiler
|
||||||
|
+if [info exists old_compiler] {
|
||||||
|
+ set_board_info compiler $old_compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if { $err != "" } {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -483,9 +503,33 @@ foreach ldprelink {NO YES} {
|
||||||
|
if {$binpie == "YES"} {
|
||||||
|
lappend opts {additional_flags=-fPIE -pie}
|
||||||
|
}
|
||||||
|
- if {[build_executable ${test}.exp [file tail $exec] $srcfile $opts] == -1} {
|
||||||
|
- continue;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ # Temporarily provide compiler=gcc44 saving the original value around.
|
||||||
|
+ # RHEL-5 workaround of its:
|
||||||
|
+ # gcc: -rpath: linker input file unused because linking not done
|
||||||
|
+ # gcc: --dynamic-linker: linker input file unused because linking not done
|
||||||
|
+
|
||||||
|
+ set board [target_info name]
|
||||||
|
+ if [board_info $board exists compiler] {
|
||||||
|
+ set old_compiler [board_info $board compiler]
|
||||||
|
+ unset_board_info compiler
|
||||||
|
+ } elseif [info exists old_compiler] {
|
||||||
|
+ unset old_compiler
|
||||||
|
+ }
|
||||||
|
+ set_board_info compiler gcc44
|
||||||
|
+
|
||||||
|
+ set err [build_executable ${test}.exp [file tail $exec] $srcfile $opts]
|
||||||
|
+
|
||||||
|
+ unset_board_info compiler
|
||||||
|
+ if [info exists old_compiler] {
|
||||||
|
+ set_board_info compiler $old_compiler
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if { $err == -1 } {
|
||||||
|
+ continue
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if {$binsepdebug == "SEP"} {
|
||||||
|
gdb_gnu_strip_debug $exec
|
||||||
|
# Just a sanity check. As gdb_gnu_strip_debug uses the
|
||||||
|
--- ./gdb/testsuite/gdb.fortran/common-block.exp 2009-12-15 05:13:56.000000000 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.fortran/common-block.exp 2009-12-15 05:21:00.000000000 +0100
|
||||||
|
@@ -20,7 +20,25 @@ set testfile "common-block"
|
||||||
|
set srcfile ${testfile}.f90
|
||||||
|
set binfile ${objdir}/${subdir}/${testfile}
|
||||||
|
|
||||||
|
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
|
||||||
|
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists f77compiler] {
|
||||||
|
+ set old_f77compiler [board_info $board f77compiler]
|
||||||
|
+ unset_board_info f77compiler
|
||||||
|
+} elseif [info exists old_f77compiler] {
|
||||||
|
+ unset old_f77compiler
|
||||||
|
+}
|
||||||
|
+set_board_info f77compiler gfortran44
|
||||||
|
+
|
||||||
|
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
|
||||||
|
+
|
||||||
|
+unset_board_info f77compiler
|
||||||
|
+if [info exists old_f77compiler] {
|
||||||
|
+ set_board_info f77compiler $old_f77compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if { $err != "" } {
|
||||||
|
untested "Couldn't compile ${srcfile}"
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
--- ./gdb/testsuite/gdb.fortran/dwarf-stride.exp 2009-12-15 05:13:56.000000000 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.fortran/dwarf-stride.exp 2009-12-15 05:20:07.000000000 +0100
|
||||||
|
@@ -27,7 +27,25 @@
|
||||||
|
set testfile dwarf-stride
|
||||||
|
set srcfile ${testfile}.f90
|
||||||
|
|
||||||
|
-if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f77}] } {
|
||||||
|
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists f77compiler] {
|
||||||
|
+ set old_f77compiler [board_info $board f77compiler]
|
||||||
|
+ unset_board_info f77compiler
|
||||||
|
+} elseif [info exists old_f77compiler] {
|
||||||
|
+ unset old_f77compiler
|
||||||
|
+}
|
||||||
|
+set_board_info f77compiler gfortran44
|
||||||
|
+
|
||||||
|
+set err [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f77}]
|
||||||
|
+
|
||||||
|
+unset_board_info f77compiler
|
||||||
|
+if [info exists old_f77compiler] {
|
||||||
|
+ set_board_info f77compiler $old_f77compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if $err {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
--- ./gdb/testsuite/gdb.fortran/dynamic.exp 2009-12-15 05:13:56.000000000 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.fortran/dynamic.exp 2009-12-15 05:17:21.000000000 +0100
|
||||||
|
@@ -25,7 +25,25 @@ set testfile "dynamic"
|
||||||
|
set srcfile ${testfile}.f90
|
||||||
|
set binfile ${objdir}/${subdir}/${testfile}
|
||||||
|
|
||||||
|
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
|
||||||
|
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists f77compiler] {
|
||||||
|
+ set old_f77compiler [board_info $board f77compiler]
|
||||||
|
+ unset_board_info f77compiler
|
||||||
|
+} elseif [info exists old_f77compiler] {
|
||||||
|
+ unset old_f77compiler
|
||||||
|
+}
|
||||||
|
+set_board_info f77compiler gfortran44
|
||||||
|
+
|
||||||
|
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
|
||||||
|
+
|
||||||
|
+unset_board_info f77compiler
|
||||||
|
+if [info exists old_f77compiler] {
|
||||||
|
+ set_board_info f77compiler $old_f77compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if { $err != "" } {
|
||||||
|
untested "Couldn't compile ${srcfile}"
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
--- ./gdb/testsuite/gdb.fortran/library-module.exp 2009-12-15 05:13:56.000000000 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.fortran/library-module.exp 2009-12-15 05:22:37.000000000 +0100
|
||||||
|
@@ -25,16 +25,34 @@ if [get_compiler_info not-used] {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
-if { [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" $objdir/$subdir/$libfile {debug f77}] != "" } {
|
||||||
|
- untested "Couldn't compile ${srclibfile}"
|
||||||
|
- return -1
|
||||||
|
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists f77compiler] {
|
||||||
|
+ set old_f77compiler [board_info $board f77compiler]
|
||||||
|
+ unset_board_info f77compiler
|
||||||
|
+} elseif [info exists old_f77compiler] {
|
||||||
|
+ unset old_f77compiler
|
||||||
|
}
|
||||||
|
+set_board_info f77compiler gfortran44
|
||||||
|
|
||||||
|
# prepare_for_testing cannot be used as linking with $libfile cannot be passed
|
||||||
|
# just for the linking phase (and not the source compilation phase). And any
|
||||||
|
# warnings on ignored $libfile abort the process.
|
||||||
|
|
||||||
|
-if { [gdb_compile [list $srcdir/$subdir/$srcfile $objdir/$subdir/$libfile] $objdir/$subdir/$binfile executable {debug f77}] != "" } {
|
||||||
|
+set err1 [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" $objdir/$subdir/$libfile {debug f77}]
|
||||||
|
+set err2 [gdb_compile [list $srcdir/$subdir/$srcfile $objdir/$subdir/$libfile] $objdir/$subdir/$binfile executable {debug f77}]
|
||||||
|
+
|
||||||
|
+unset_board_info f77compiler
|
||||||
|
+if [info exists old_f77compiler] {
|
||||||
|
+ set_board_info f77compiler $old_f77compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if { $err1 != "" } {
|
||||||
|
+ untested "Couldn't compile ${srclibfile}"
|
||||||
|
+ return -1
|
||||||
|
+}
|
||||||
|
+if { $err2 != "" } {
|
||||||
|
untested "Couldn't compile ${srcfile}"
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
--- ./gdb/testsuite/gdb.fortran/module.exp 2009-12-15 05:13:56.000000000 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.fortran/module.exp 2009-12-15 05:28:49.000000000 +0100
|
||||||
|
@@ -16,7 +16,25 @@
|
||||||
|
set testfile "module"
|
||||||
|
set srcfile ${testfile}.f90
|
||||||
|
|
||||||
|
-if { [prepare_for_testing $testfile.exp $testfile $srcfile {debug f77}] } {
|
||||||
|
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists f77compiler] {
|
||||||
|
+ set old_f77compiler [board_info $board f77compiler]
|
||||||
|
+ unset_board_info f77compiler
|
||||||
|
+} elseif [info exists old_f77compiler] {
|
||||||
|
+ unset old_f77compiler
|
||||||
|
+}
|
||||||
|
+set_board_info f77compiler gfortran44
|
||||||
|
+
|
||||||
|
+set err [prepare_for_testing $testfile.exp $testfile $srcfile {debug f77}]
|
||||||
|
+
|
||||||
|
+unset_board_info f77compiler
|
||||||
|
+if [info exists old_f77compiler] {
|
||||||
|
+ set_board_info f77compiler $old_f77compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if $err {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
--- ./gdb/testsuite/gdb.fortran/string.exp 2009-12-15 05:13:56.000000000 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.fortran/string.exp 2009-12-15 05:18:13.000000000 +0100
|
||||||
|
@@ -23,7 +23,25 @@ set testfile "string"
|
||||||
|
set srcfile ${testfile}.f90
|
||||||
|
set binfile ${objdir}/${subdir}/${testfile}
|
||||||
|
|
||||||
|
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
|
||||||
|
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists f77compiler] {
|
||||||
|
+ set old_f77compiler [board_info $board f77compiler]
|
||||||
|
+ unset_board_info f77compiler
|
||||||
|
+} elseif [info exists old_f77compiler] {
|
||||||
|
+ unset old_f77compiler
|
||||||
|
+}
|
||||||
|
+set_board_info f77compiler gfortran44
|
||||||
|
+
|
||||||
|
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
|
||||||
|
+
|
||||||
|
+unset_board_info f77compiler
|
||||||
|
+if [info exists old_f77compiler] {
|
||||||
|
+ set_board_info f77compiler $old_f77compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if { $err != "" } {
|
||||||
|
untested "Couldn't compile ${srcfile}"
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
--- gdb-7.0/gdb/testsuite/gdb.fortran/omp-step.exp-orig 2009-12-20 09:47:04.000000000 +0100
|
||||||
|
+++ gdb-7.0/gdb/testsuite/gdb.fortran/omp-step.exp 2009-12-20 09:50:06.000000000 +0100
|
||||||
|
@@ -15,7 +15,26 @@
|
||||||
|
|
||||||
|
set testfile "omp-step"
|
||||||
|
set srcfile ${testfile}.f90
|
||||||
|
-if { [prepare_for_testing $testfile.exp $testfile $srcfile {debug f77 additional_flags=-fopenmp}] } {
|
||||||
|
+
|
||||||
|
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists f77compiler] {
|
||||||
|
+ set old_f77compiler [board_info $board f77compiler]
|
||||||
|
+ unset_board_info f77compiler
|
||||||
|
+} elseif [info exists old_f77compiler] {
|
||||||
|
+ unset old_f77compiler
|
||||||
|
+}
|
||||||
|
+set_board_info f77compiler gfortran44
|
||||||
|
+
|
||||||
|
+set err [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f77 additional_flags=-fopenmp}]
|
||||||
|
+
|
||||||
|
+unset_board_info f77compiler
|
||||||
|
+if [info exists old_f77compiler] {
|
||||||
|
+ set_board_info f77compiler $old_f77compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if $err {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
--- ./gdb/testsuite/gdb.fortran/derived-type.exp 2009-01-07 13:39:13.000000000 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.fortran/derived-type.exp 2009-12-20 12:37:12.000000000 +0100
|
||||||
|
@@ -26,7 +26,25 @@ set testfile "derived-type"
|
||||||
|
set srcfile ${testfile}.f90
|
||||||
|
set binfile ${objdir}/${subdir}/${testfile}
|
||||||
|
|
||||||
|
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
|
||||||
|
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists f77compiler] {
|
||||||
|
+ set old_f77compiler [board_info $board f77compiler]
|
||||||
|
+ unset_board_info f77compiler
|
||||||
|
+} elseif [info exists old_f77compiler] {
|
||||||
|
+ unset old_f77compiler
|
||||||
|
+}
|
||||||
|
+set_board_info f77compiler gfortran44
|
||||||
|
+
|
||||||
|
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
|
||||||
|
+
|
||||||
|
+unset_board_info f77compiler
|
||||||
|
+if [info exists old_f77compiler] {
|
||||||
|
+ set_board_info f77compiler $old_f77compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if { $err != "" } {
|
||||||
|
untested "Couldn't compile ${srcfile}"
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
--- ./gdb/testsuite/gdb.fortran/subarray.exp 2009-01-07 13:39:13.000000000 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.fortran/subarray.exp 2009-12-20 12:38:00.000000000 +0100
|
||||||
|
@@ -26,7 +26,25 @@ set testfile "subarray"
|
||||||
|
set srcfile ${testfile}.f
|
||||||
|
set binfile ${objdir}/${subdir}/${testfile}
|
||||||
|
|
||||||
|
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
|
||||||
|
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists f77compiler] {
|
||||||
|
+ set old_f77compiler [board_info $board f77compiler]
|
||||||
|
+ unset_board_info f77compiler
|
||||||
|
+} elseif [info exists old_f77compiler] {
|
||||||
|
+ unset old_f77compiler
|
||||||
|
+}
|
||||||
|
+set_board_info f77compiler gfortran44
|
||||||
|
+
|
||||||
|
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
|
||||||
|
+
|
||||||
|
+unset_board_info f77compiler
|
||||||
|
+if [info exists old_f77compiler] {
|
||||||
|
+ set_board_info f77compiler $old_f77compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if { $err != "" } {
|
||||||
|
untested "Couldn't compile ${srcfile}"
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
--- ./gdb/testsuite/gdb.threads/tls-sepdebug.exp 2009-12-20 12:22:18.000000000 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.threads/tls-sepdebug.exp 2009-12-20 12:39:53.000000000 +0100
|
||||||
|
@@ -32,7 +32,25 @@ set binshareddebugfile ${objdir}/${subdi
|
||||||
|
|
||||||
|
# FIXME: gcc dependency (-Wl,-soname).
|
||||||
|
|
||||||
|
-if { [gdb_compile_shlib "${srcdir}/${subdir}/${srcsharedfile}" "${binsharedfile}" [list debug additional_flags=-Wl,-soname=${binsharedbase}]] != "" } {
|
||||||
|
+# Temporarily provide compiler=gcc44 saving the original value around.
|
||||||
|
+
|
||||||
|
+set board [target_info name]
|
||||||
|
+if [board_info $board exists compiler] {
|
||||||
|
+ set old_compiler [board_info $board compiler]
|
||||||
|
+ unset_board_info compiler
|
||||||
|
+} elseif [info exists old_compiler] {
|
||||||
|
+ unset old_compiler
|
||||||
|
+}
|
||||||
|
+set_board_info compiler gcc44
|
||||||
|
+
|
||||||
|
+set err [gdb_compile_shlib "${srcdir}/${subdir}/${srcsharedfile}" "${binsharedfile}" [list debug additional_flags=-Wl,-soname=${binsharedbase}]]
|
||||||
|
+
|
||||||
|
+unset_board_info compiler
|
||||||
|
+if [info exists old_compiler] {
|
||||||
|
+ set_board_info compiler $old_compiler
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if { $err != "" } {
|
||||||
|
untested "Couldn't compile test library"
|
||||||
|
return -1
|
||||||
|
}
|
46
gdb.spec
46
gdb.spec
@ -16,8 +16,10 @@
|
|||||||
# RHEL-5 ppc* python .so files are shipped only as ppc but gdb is ppc64 there.
|
# RHEL-5 ppc* python .so files are shipped only as ppc but gdb is ppc64 there.
|
||||||
# Brew builds it fine as its ppc64 buildroot has full ppc64 package set.
|
# Brew builds it fine as its ppc64 buildroot has full ppc64 package set.
|
||||||
%if 0%{?el5:1}
|
%if 0%{?el5:1}
|
||||||
|
%ifarch ppc ppc64
|
||||||
%define _without_python 1
|
%define _without_python 1
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
Summary: A GNU source-level debugger for C, C++, Java and other languages
|
Summary: A GNU source-level debugger for C, C++, Java and other languages
|
||||||
Name: gdb%{?_with_debug:-debug}
|
Name: gdb%{?_with_debug:-debug}
|
||||||
@ -29,7 +31,7 @@ Version: 7.0
|
|||||||
|
|
||||||
# The release always contains a leading reserved number, start it at 1.
|
# The release always contains a leading reserved number, start it at 1.
|
||||||
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
||||||
Release: 11%{?_with_upstream:.upstream}%{dist}
|
Release: 12%{?_with_upstream:.upstream}%{dist}
|
||||||
|
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Group: Development/Debuggers
|
Group: Development/Debuggers
|
||||||
@ -401,7 +403,17 @@ Patch391: gdb-x86_64-i386-syscall-restart.patch
|
|||||||
Patch392: gdb-bz533176-fortran-omp-step.patch
|
Patch392: gdb-bz533176-fortran-omp-step.patch
|
||||||
|
|
||||||
# Use gfortran44 when running the testsuite on RHEL-5.
|
# Use gfortran44 when running the testsuite on RHEL-5.
|
||||||
Patch393: gdb-rhel5-fortran44.patch
|
Patch393: gdb-rhel5-gcc44.patch
|
||||||
|
|
||||||
|
# Disable warning messages new for gdb-6.8+ for RHEL-5 backward compatibility.
|
||||||
|
# Workaround RHEL-5 kernels for detaching SIGSTOPped processes (BZ 498595).
|
||||||
|
Patch335: gdb-rhel5-compat.patch
|
||||||
|
|
||||||
|
# Fix backward compatibility with G++ 4.1 namespaces "::".
|
||||||
|
Patch395: gdb-empty-namespace.patch
|
||||||
|
|
||||||
|
# Fix regression on re-setting the single ppc watchpoint slot.
|
||||||
|
Patch396: gdb-ppc-hw-watchpoint-twice.patch
|
||||||
|
|
||||||
BuildRequires: ncurses-devel texinfo gettext flex bison expat-devel
|
BuildRequires: ncurses-devel texinfo gettext flex bison expat-devel
|
||||||
Requires: readline
|
Requires: readline
|
||||||
@ -412,7 +424,11 @@ BuildRequires: rpm-devel
|
|||||||
Requires: zlib
|
Requires: zlib
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
%if 0%{!?_without_python:1}
|
%if 0%{!?_without_python:1}
|
||||||
|
%if 0%{!?el5:1}
|
||||||
Requires: python-libs
|
Requires: python-libs
|
||||||
|
%else
|
||||||
|
Requires: python
|
||||||
|
%endif
|
||||||
BuildRequires: python-devel
|
BuildRequires: python-devel
|
||||||
# Temporarily before it gets moved to libstdc++.rpm
|
# Temporarily before it gets moved to libstdc++.rpm
|
||||||
BuildRequires: libstdc++
|
BuildRequires: libstdc++
|
||||||
@ -634,10 +650,14 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
|
|||||||
%patch392 -p1
|
%patch392 -p1
|
||||||
# Always verify its applicability.
|
# Always verify its applicability.
|
||||||
%patch393 -p1
|
%patch393 -p1
|
||||||
|
%patch335 -p1
|
||||||
%if 0%{!?el5:1}
|
%if 0%{!?el5:1}
|
||||||
%patch393 -p1 -R
|
%patch393 -p1 -R
|
||||||
|
%patch335 -p1 -R
|
||||||
%endif
|
%endif
|
||||||
%patch394 -p1
|
%patch394 -p1
|
||||||
|
%patch395 -p1
|
||||||
|
%patch396 -p1
|
||||||
|
|
||||||
find -name "*.orig" | xargs rm -f
|
find -name "*.orig" | xargs rm -f
|
||||||
! find -name "*.rej" # Should not happen.
|
! find -name "*.rej" # Should not happen.
|
||||||
@ -706,6 +726,8 @@ CFLAGS="$CFLAGS -O0 -ggdb2"
|
|||||||
--disable-rpath \
|
--disable-rpath \
|
||||||
--with-system-readline \
|
--with-system-readline \
|
||||||
--with-expat \
|
--with-expat \
|
||||||
|
$(: ppc64 host build crashes on /usr/lib/libexpat.so ) \
|
||||||
|
--without-libexpat-prefix \
|
||||||
--enable-tui \
|
--enable-tui \
|
||||||
%if 0%{!?_without_python:1}
|
%if 0%{!?_without_python:1}
|
||||||
--with-python \
|
--with-python \
|
||||||
@ -808,7 +830,12 @@ gcc -o ./orphanripper %{SOURCE2} -Wall -lutil -ggdb2
|
|||||||
CHECK="$(echo $CHECK|sed 's#check//unix/[^ ]*#& &/-fPIE/-pie#g')"
|
CHECK="$(echo $CHECK|sed 's#check//unix/[^ ]*#& &/-fPIE/-pie#g')"
|
||||||
%endif # 0%{!?_with_upstream:1}
|
%endif # 0%{!?_with_upstream:1}
|
||||||
|
|
||||||
./orphanripper make %{?_smp_mflags} -k $CHECK || :
|
./orphanripper make %{?_smp_mflags} -k $CHECK \
|
||||||
|
$(: Serialize the output to keep the order for regression checks. ) \
|
||||||
|
%if 0%{?el5:1}
|
||||||
|
RUNTESTFLAGS="--tool gdb" \
|
||||||
|
%endif
|
||||||
|
|| :
|
||||||
)
|
)
|
||||||
for t in sum log
|
for t in sum log
|
||||||
do
|
do
|
||||||
@ -942,6 +969,19 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Dec 21 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.0-12.fc12
|
||||||
|
- Workaround build on native ppc64 host.
|
||||||
|
- More RHEL-5 compatibility updates.
|
||||||
|
- Disable warning messages new for gdb-6.8+ for RHEL-5 backward compatibility.
|
||||||
|
- Workaround RHEL-5 kernels for detaching SIGSTOPped processes (BZ 498595).
|
||||||
|
- Serialize the testsuite output to keep the order for regression checks.
|
||||||
|
- Re-enable python for all non-ppc* arches.
|
||||||
|
- More gcc44 stack exceptions when running the testsuite on RHEL-5.
|
||||||
|
- Fix backward compatibility with G++ 4.1 namespaces "::".
|
||||||
|
- Fix regression on re-setting the single ppc watchpoint slot.
|
||||||
|
- Update snapshot of FSF gdb-7.0.x branch.
|
||||||
|
- Backport fix of dcache invalidation locking up GDB on ppc64 targets.
|
||||||
|
|
||||||
* Fri Dec 18 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.0-11.fc12
|
* Fri Dec 18 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.0-11.fc12
|
||||||
- [pie] Fix general ppc64 regression due to a function descriptors bug.
|
- [pie] Fix general ppc64 regression due to a function descriptors bug.
|
||||||
- [pie] Fix also keeping breakpoints disabled in PIE mode.
|
- [pie] Fix also keeping breakpoints disabled in PIE mode.
|
||||||
|
Loading…
Reference in New Issue
Block a user