On Mon, Nov 21, 2011 at 12:32 AM, Xiaofeng Yan
<[email protected]> wrote:
> +++ 
> b/meta/recipes-graphics/xorg-lib/libx11-trim-1.4.4/makekeys_crosscompile.patch
> @@ -0,0 +1,45 @@
> +Because the size of "unsigned long" is different between 32-bit
> +and 64-bit, judge whether target is 32-bit or 64-bit and tell
> +"makekey".
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: [email protected]
> +
> +--- libX11-1.3.4.orig/src/util/makekeys.c      2010-01-15 09:11:36.000000000 
> +0800
> ++++ libX11-1.3.4/src/util/makekeys.c   2011-05-24 19:04:25.454774908 +0800
> +@@ -33,6 +33,7 @@
> + #include <X11/keysymdef.h>
> + #include <stdio.h>
> + #include <stdlib.h>
> ++#include <stdint.h>
> +
> + typedef unsigned long Signature;
> +
> +@@ -124,7 +125,12 @@
> +           name = info[i].name;
> +           sig = 0;
> +           while ((c = *name++))
> +-              sig = (sig << 1) + c;
> ++#ifdef USE32
> ++              sig = (uint32_t)(sig << 1) + c;
> ++#else
> ++              sig = (uint64_t)(sig << 1) + c;
> ++#endif
> ++
> +           first = j = sig % z;
> +           for (k = 0; tab[j]; k++) {
> +               j += first + 1;
> +@@ -163,7 +169,11 @@
> +       name = info[i].name;
> +       sig = 0;
> +       while ((c = *name++))
> +-          sig = (sig << 1) + c;
> ++#ifdef USE32
> ++          sig = (uint32_t)(sig << 1) + c;
> ++#else
> ++          sig = (uint64_t)(sig << 1) + c;
> ++#endif
> +       first = j = sig % z;
> +       while (offsets[j]) {
> +           j += first + 1;

why use USE32 define ? why not use compiler builtin define __LP64__ ?
is it something a programs that needs to know the bitness of target or
something ?

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to