aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Buitenhuis <derek.buitenhuis@gmail.com>2011-09-22 18:44:13 -0400
committerUlrich Sibiller <uli42@gmx.de>2016-10-10 22:52:32 +0200
commit62e5b0ff80f91a66163386e2192bcb8e0b2d1721 (patch)
treee4eaebd0b687cbfdf0dea8c2cb1f8a5689ba10b2
parent0bcb4bba2a1c4bf0464f0ce0305648ee539ece98 (diff)
downloadnx-libs-62e5b0ff80f91a66163386e2192bcb8e0b2d1721.tar.gz
nx-libs-62e5b0ff80f91a66163386e2192bcb8e0b2d1721.tar.bz2
nx-libs-62e5b0ff80f91a66163386e2192bcb8e0b2d1721.zip
makekeys: Fix build/target word size mismatch when cross-compiling
Since makekeys is built using build environment's gcc and runs natively, we have to make sure that the size of the Signature type is the same on both the native environment and the target, otherwise we get mismatches upon running X, and some LSB test failures (xts5). Use an unsigned 32-bit integer on all platforms. Also, eliminate the redundant multiple typedefs for the Signature type. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
-rw-r--r--nx-X11/lib/X11/KeysymStr.c3
-rw-r--r--nx-X11/lib/X11/Xresinternal.h4
-rw-r--r--nx-X11/lib/X11/util/makekeys.c5
3 files changed, 7 insertions, 5 deletions
diff --git a/nx-X11/lib/X11/KeysymStr.c b/nx-X11/lib/X11/KeysymStr.c
index 896371c31..96c49227a 100644
--- a/nx-X11/lib/X11/KeysymStr.c
+++ b/nx-X11/lib/X11/KeysymStr.c
@@ -31,11 +31,10 @@ in this Software without prior written authorization from The Open Group.
#include "Xlibint.h"
#include <nx-X11/Xresource.h>
#include <nx-X11/keysymdef.h>
+#include "Xresinternal.h"
#include <stdio.h> /* sprintf */
-typedef unsigned long Signature;
-
#define NEEDVTABLE
#include "ks_tables.h"
#include "Key.h"
diff --git a/nx-X11/lib/X11/Xresinternal.h b/nx-X11/lib/X11/Xresinternal.h
index b4b1b00f8..c2f355fe6 100644
--- a/nx-X11/lib/X11/Xresinternal.h
+++ b/nx-X11/lib/X11/Xresinternal.h
@@ -2,8 +2,10 @@
#ifndef _XRESINTERNAL_H_
#define _XRESINTERNAL_H_
+#include <inttypes.h>
+
/* type defines */
-typedef unsigned long Signature;
+typedef uint32_t Signature;
/* prototypes */
extern XrmQuark _XrmInternalStringToQuark(
diff --git a/nx-X11/lib/X11/util/makekeys.c b/nx-X11/lib/X11/util/makekeys.c
index 55f8e346e..170ab5dee 100644
--- a/nx-X11/lib/X11/util/makekeys.c
+++ b/nx-X11/lib/X11/util/makekeys.c
@@ -30,11 +30,12 @@ from The Open Group.
#include <nx-X11/X.h>
#include <nx-X11/Xos.h>
+#include <nx-X11/Xresource.h>
#include <nx-X11/keysymdef.h>
#include <stdio.h>
#include <stdlib.h>
-typedef unsigned long Signature;
+#include "../Xresinternal.h"
#define KTNUM 4000
@@ -212,7 +213,7 @@ next1: ;
offsets[j] = k;
indexes[i] = k;
val = info[i].val;
- printf("0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, ",
+ printf("0x%.2"PRIx32", 0x%.2"PRIx32", 0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, ",
(sig >> 8) & 0xff, sig & 0xff,
(val >> 24) & 0xff, (val >> 16) & 0xff,
(val >> 8) & 0xff, val & 0xff);