aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2020-07-30 20:51:40 -0700
committerKevin Buettner <kevinb@redhat.com>2020-07-31 09:34:58 -0700
commit0245e1367725aaabc2be2be5e19a16a699d01f25 (patch)
tree30512ce776fc3dc935e8a103feece48f93277c19
parent9ef1ec5dca12fce2d9e9d3711c8a4091611c804d (diff)
downloadgdb-0245e1367725aaabc2be2be5e19a16a699d01f25.zip
gdb-0245e1367725aaabc2be2be5e19a16a699d01f25.tar.gz
gdb-0245e1367725aaabc2be2be5e19a16a699d01f25.tar.bz2
gdb.base/coremaker2.c: Fix compilation problems for x86_64 -m32 multilib
There are compilation warnings / errors when compiling coremaker2.c for the gdb.base/corefile2.exp tests. Here's the command to use on x86_64 linux: make check RUNTESTFLAGS="--target_board unix/-m32" \ TESTS="gdb.base/corefile2.exp" These are the warnings / errors - I've shortened the paths somewhat: gdb compile failed, gdb/testsuite/gdb.base/coremaker2.c: In function 'main': gdb/testsuite/gdb.base/coremaker2.c:106:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 106 | addr = ((unsigned long long) buf_ro + pagesize) & ~(pagesize - 1); | ^ gdb/testsuite/gdb.base/coremaker2.c:108:15: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 108 | if (addr <= (unsigned long long) buf_ro | ^ gdb/testsuite/gdb.base/coremaker2.c:109:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 109 | || addr >= (unsigned long long) buf_ro + sizeof (buf_ro)) | ^ gdb/testsuite/gdb.base/coremaker2.c:115:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 115 | mbuf_ro = mmap ((void *) addr, pagesize, PROT_READ, | ^ gdb/testsuite/gdb.base/coremaker2.c:130:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 130 | addr = ((unsigned long long) buf_rw + pagesize) & ~(pagesize - 1); | ^ gdb/testsuite/gdb.base/coremaker2.c:132:15: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 132 | if (addr <= (unsigned long long) buf_rw | ^ gdb/testsuite/gdb.base/coremaker2.c:133:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 133 | || addr >= (unsigned long long) buf_rw + sizeof (buf_rw)) | ^ gdb/testsuite/gdb.base/coremaker2.c:139:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 139 | mbuf_rw = mmap ((void *) addr, pagesize, PROT_READ, | ^ These were fixed by changing unsigned long long to uintptr_t. Tested on either rawhide or Fedora 32 with architectures: x86_64, x86_64/-m32, aarch64, s390x, and ppc64le. gdb/testsuite/ChangeLog: * gdb.base/coremaker2.c: Change all uses of 'unsigned long long' to 'uintptr_t' (inttypes.h): Include.
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.base/coremaker2.c15
2 files changed, 14 insertions, 7 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 4e7bcbe..29dc46a 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2020-07-31 Kevin Buettner <kevinb@redhat.com>
+ * gdb.base/coremaker2.c: Change all uses of 'unsigned long long'
+ to 'uintptr_t'
+ (inttypes.h): Include.
+
+2020-07-31 Kevin Buettner <kevinb@redhat.com>
+
* gdb.base/coremaker2.c (buf_rw): Increase size to 256 KiB.
(C5_24k): Delete.
(C5_8k, C5_64k, C5_256k): New macros.
diff --git a/gdb/testsuite/gdb.base/coremaker2.c b/gdb/testsuite/gdb.base/coremaker2.c
index 3c89bd7..d50ed5c 100644
--- a/gdb/testsuite/gdb.base/coremaker2.c
+++ b/gdb/testsuite/gdb.base/coremaker2.c
@@ -39,11 +39,12 @@
#include <unistd.h>
#include <string.h>
#include <errno.h>
+#include <inttypes.h>
/* These are globals so that we can find them easily when debugging
the core file. */
long pagesize;
-unsigned long long addr;
+uintptr_t addr;
char *mbuf_ro;
char *mbuf_rw;
@@ -106,10 +107,10 @@ main (int argc, char **argv)
}
/* Compute an address that should be within buf_ro. Complain if not. */
- addr = ((unsigned long long) buf_ro + pagesize) & ~(pagesize - 1);
+ addr = ((uintptr_t) buf_ro + pagesize) & ~(pagesize - 1);
- if (addr <= (unsigned long long) buf_ro
- || addr >= (unsigned long long) buf_ro + sizeof (buf_ro))
+ if (addr <= (uintptr_t) buf_ro
+ || addr >= (uintptr_t) buf_ro + sizeof (buf_ro))
{
fprintf (stderr, "Unable to compute a suitable address within buf_ro.\n");
exit (1);
@@ -130,10 +131,10 @@ main (int argc, char **argv)
/* Compute an mmap address within buf_rw. Complain if it's somewhere
else. */
- addr = ((unsigned long long) buf_rw + pagesize) & ~(pagesize - 1);
+ addr = ((uintptr_t) buf_rw + pagesize) & ~(pagesize - 1);
- if (addr <= (unsigned long long) buf_rw
- || addr >= (unsigned long long) buf_rw + sizeof (buf_rw))
+ if (addr <= (uintptr_t) buf_rw
+ || addr >= (uintptr_t) buf_rw + sizeof (buf_rw))
{
fprintf (stderr, "Unable to compute a suitable address within buf_rw.\n");
exit (1);