This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Fix core dump test case failure with a ulimit check in gdb.base/auxv.exp
On Mon, 19 Mar 2012 16:57:31 +0100, Siddhesh Poyarekar wrote:
> To check whether setrlimit and sys/resource.h exist, I added an auto-header
> feature to the testsuite configure script
Sorry but there are IIRC rather plans to remove the testsuite configure script
at all. I also find your solution too heavyweight.
I hope you find this simplified patch sufficient enough.
Thanks,
Jan
2012-03-19 Jan Kratochvil <jan.kratochvil@redhat.com>
Siddhesh Poyarekar <siddhesh@redhat.com>
* gdb.base/auxv.c (func2): setrlimit to infinity to enable core dumps.
* gdb.base/auxv.exp: Try to compile it with -DUSE_RLIMIT first.
(generate native core dump): Make the test unsupported if core cannot
be generated.
--- a/gdb/testsuite/gdb.base/auxv.c
+++ b/gdb/testsuite/gdb.base/auxv.c
@@ -35,6 +35,13 @@
#define ABORT {char *invalid = 0; *invalid = 0xFF;}
#endif
+#ifdef USE_RLIMIT
+# include <sys/resource.h>
+# ifndef RLIM_INFINITY
+# define RLIM_INFINITY -1
+# endif
+#endif /* USE_RLIMIT */
+
/* Don't make these automatic vars or we will have to walk back up the
stack to access them. */
@@ -53,6 +60,14 @@ func2 (int x)
int i;
static int y;
+#ifdef USE_RLIMIT
+ {
+ struct rlimit rlim = { RLIM_INFINITY, RLIM_INFINITY };
+
+ setrlimit (RLIMIT_CORE, &rlim);
+ }
+#endif
+
/* Make sure that coremaker_local doesn't get optimized away. */
for (i = 0; i < 5; i++)
coremaker_local[i] = i;
--- a/gdb/testsuite/gdb.base/auxv.exp
+++ b/gdb/testsuite/gdb.base/auxv.exp
@@ -31,7 +31,10 @@ set binfile ${objdir}/${subdir}/${testfile}
set corefile ${objdir}/${subdir}/${testfile}.corefile
set gcorefile ${objdir}/${subdir}/${testfile}.gcore
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
+ {debug additional_flags=-DUSE_RLIMIT}] != ""
+ && [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
+ {debug}] != "" } {
untested "couldn't compile ${srcdir}/${subdir}/${srcfile}"
return -1
}
@@ -155,7 +158,7 @@ if {$core_works} {
} else {
set core_works 0
warning "can't generate a core file - core tests suppressed - check ulimit -c"
- fail $test
+ unsupported $test
}
} else {
unsupported $test