All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] libx11: fix libX11 keysyms to pass xts5 of lsb
@ 2011-05-24 11:13 Jingdong Lu
  2011-05-24 11:13 ` [PATCH 1/1] " Jingdong Lu
  0 siblings, 1 reply; 5+ messages in thread
From: Jingdong Lu @ 2011-05-24 11:13 UTC (permalink / raw)
  To: poky

From: Jingdong Lu <jingdong.lu@windriver.com>

Fixes bug: [YOCTO #1095]
    Because of cross-compiling libx11 keysyms will cause Xts5 test of LSB fail.
    libx11 use a tool named "makekey" which compiled as a native tool to generate
    ks_tables.h. Because the size of "unsigned long" is different between 32-bit
    and 64-bit, we should judge whether our target is 32-bit or 64-bit and tell
    "makekey".
    I add a patch to "makekeys_crosscompile.patch" to "src/utils/makekeys.c" in
    order to deal with the different targets. If our target is 32-bit, we force
    the variable its type is "unsigned long" to "uint32_t". So we can generate a
    correct keysyms. 

The following changes since commit 7706d5d844db2725f4118207d90e302679eacdfe:
  Bruce Ashfield (1):
        linux-yocto/meta-yocto: fix gcc 4.6.0 compilation failures

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib.git jingdonglu/distro
  http://git.pokylinux.org/cgit.cgi//log/?h=jingdonglu/distro

Jingdong Lu (1):
  libx11: fix libX11 keysyms to pass xts5 of lsb

 .../libx11-1.3.4/makekeys_crosscompile.patch       |   37 ++++++++++++++++++++
 .../recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb |    5 ++-
 meta/recipes-graphics/xorg-lib/libx11.inc          |    8 ++++-
 meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb     |    5 ++-
 4 files changed, 50 insertions(+), 5 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/1] libx11: fix libX11 keysyms to pass xts5 of lsb
  2011-05-24 11:13 [PATCH 0/1] libx11: fix libX11 keysyms to pass xts5 of lsb Jingdong Lu
@ 2011-05-24 11:13 ` Jingdong Lu
  2011-05-25  1:01   ` Saul Wold
  0 siblings, 1 reply; 5+ messages in thread
From: Jingdong Lu @ 2011-05-24 11:13 UTC (permalink / raw)
  To: poky

From: Jingdong Lu <jingdong.lu@windriver.com>

Fixes bug: [YOCTO #1095]
Because of cross-compiling libx11 keysyms will cause Xts5 test of LSB fail.
libx11 use a tool named "makekey" which compiled as a native tool to generate
ks_tables.h. Because the size of "unsigned long" is different between 32-bit
and 64-bit, we should judge whether our target is 32-bit or 64-bit and tell
"makekey".
I add a patch to "makekeys_crosscompile.patch" to "src/utils/makekeys.c" in
order to deal with the different targets. If our target is 32-bit, we force
the variable its type is "unsigned long" to "uint32_t". So we can generate a
correct keysyms.

Signed-off-by: Jingdong Lu <jingdong.lu@windriver.com>
---
 .../libx11-1.3.4/makekeys_crosscompile.patch       |   37 ++++++++++++++++++++
 .../recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb |    5 ++-
 meta/recipes-graphics/xorg-lib/libx11.inc          |    8 ++++-
 meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb     |    5 ++-
 4 files changed, 50 insertions(+), 5 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch

diff --git a/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch
new file mode 100644
index 0000000..88d66bf
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch
@@ -0,0 +1,37 @@
+--- 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;
diff --git a/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
index b013498..1469bc1 100644
--- a/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
+++ b/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
@@ -5,12 +5,13 @@ DESCRIPTION += " Support for XCB, and XCMS is disabled in this version."
 LICENSE = "MIT & MIT-style & BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bf75bfe4d05068311b5e6862d4b5f2c5"
 
-PR = "r0"
+PR = "r1"
 
 DEPENDS += "libxcb xproto xextproto xtrans libxau kbproto inputproto xf86bigfontproto xproto-native"
 
 SRC_URI += "file://../libx11-${PV}/x11_disable_makekeys.patch \
             file://../libx11-${PV}/include_fix.patch \
-            file://../libx11-${PV}/nodolt.patch"
+            file://../libx11-${PV}/nodolt.patch \
+            file://../libx11-${PV}/makekeys_crosscompile.patch"
 
 EXTRA_OECONF += "--disable-xcms --with-xcb"
diff --git a/meta/recipes-graphics/xorg-lib/libx11.inc b/meta/recipes-graphics/xorg-lib/libx11.inc
index 030b0db..c156ce6 100644
--- a/meta/recipes-graphics/xorg-lib/libx11.inc
+++ b/meta/recipes-graphics/xorg-lib/libx11.inc
@@ -6,6 +6,8 @@ basic functions of the window system."
 
 require xorg-lib-common.inc
 
+inherit siteinfo
+
 PROVIDES = "virtual/libx11"
 
 XORG_PN = "libX11"
@@ -22,7 +24,11 @@ do_compile() {
 	touch makekeys-makekeys.o
 	(
 		unset CC LD CXX CCLD CFLAGS CPPFLAGS LDFLAGS CXXFLAGS
-		${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} makekeys.c -o makekeys
+		if [ "${SITEINFO_BITS}" == "64" ]; then
+                        ${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} makekeys.c -o makekeys
+                else
+                        ${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} -DUSE32 makekeys.c -o makekeys
+                fi
 	)
 	if [ "$?" != "0" ]; then
 		exit 1
diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
index 08ba07b..3e046a1 100644
--- a/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
+++ b/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
@@ -5,11 +5,12 @@ LICENSE = "MIT & MIT-style & BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bf75bfe4d05068311b5e6862d4b5f2c5"
 
 PE = "1"
-PR = "r0"
+PR = "r1"
 
 SRC_URI += "file://x11_disable_makekeys.patch \
             file://nodolt.patch \
-            file://include_fix.patch"
+            file://include_fix.patch \
+	    file://makekeys_crosscompile.patch"
 
 SRC_URI[md5sum] = "f65c9c7ecbfb64c19dbd7927160d63fd"
 SRC_URI[sha256sum] = "88d7238ce5f7cd123450567de7a3b56a43556e4ccc45df38b8324147c889a844"
-- 
1.7.0.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] libx11: fix libX11 keysyms to pass xts5 of lsb
  2011-05-24 11:13 ` [PATCH 1/1] " Jingdong Lu
@ 2011-05-25  1:01   ` Saul Wold
  0 siblings, 0 replies; 5+ messages in thread
From: Saul Wold @ 2011-05-25  1:01 UTC (permalink / raw)
  To: Jingdong Lu; +Cc: poky

On 05/24/2011 04:13 AM, Jingdong Lu wrote:
> From: Jingdong Lu<jingdong.lu@windriver.com>
>
> Fixes bug: [YOCTO #1095]
> Because of cross-compiling libx11 keysyms will cause Xts5 test of LSB fail.
> libx11 use a tool named "makekey" which compiled as a native tool to generate
> ks_tables.h. Because the size of "unsigned long" is different between 32-bit
> and 64-bit, we should judge whether our target is 32-bit or 64-bit and tell
> "makekey".
> I add a patch to "makekeys_crosscompile.patch" to "src/utils/makekeys.c" in
> order to deal with the different targets. If our target is 32-bit, we force
> the variable its type is "unsigned long" to "uint32_t". So we can generate a
> correct keysyms.
>
> Signed-off-by: Jingdong Lu<jingdong.lu@windriver.com>
> ---
>   .../libx11-1.3.4/makekeys_crosscompile.patch       |   37 ++++++++++++++++++++
>   .../recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb |    5 ++-
>   meta/recipes-graphics/xorg-lib/libx11.inc          |    8 ++++-
>   meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb     |    5 ++-
>   4 files changed, 50 insertions(+), 5 deletions(-)
>   create mode 100644 meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch
>
> diff --git a/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch
> new file mode 100644
> index 0000000..88d66bf
> --- /dev/null
> +++ b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch

This patch needs an explanation and Signed-off-by, and this probably 
should be also marked at Upstream-Status: Pending, this looks like a 
good candidate for upstreaming.


> @@ -0,0 +1,37 @@
> +--- 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;
> diff --git a/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
> index b013498..1469bc1 100644
> --- a/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
> +++ b/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
> @@ -5,12 +5,13 @@ DESCRIPTION += " Support for XCB, and XCMS is disabled in this version."
>   LICENSE = "MIT&  MIT-style&  BSD"
>   LIC_FILES_CHKSUM = "file://COPYING;md5=bf75bfe4d05068311b5e6862d4b5f2c5"
>
> -PR = "r0"
> +PR = "r1"
>
>   DEPENDS += "libxcb xproto xextproto xtrans libxau kbproto inputproto xf86bigfontproto xproto-native"
>
>   SRC_URI += "file://../libx11-${PV}/x11_disable_makekeys.patch \
>               file://../libx11-${PV}/include_fix.patch \
> -            file://../libx11-${PV}/nodolt.patch"
> +            file://../libx11-${PV}/nodolt.patch \
> +            file://../libx11-${PV}/makekeys_crosscompile.patch"
>
>   EXTRA_OECONF += "--disable-xcms --with-xcb"
> diff --git a/meta/recipes-graphics/xorg-lib/libx11.inc b/meta/recipes-graphics/xorg-lib/libx11.inc
> index 030b0db..c156ce6 100644
> --- a/meta/recipes-graphics/xorg-lib/libx11.inc
> +++ b/meta/recipes-graphics/xorg-lib/libx11.inc
> @@ -6,6 +6,8 @@ basic functions of the window system."
>
>   require xorg-lib-common.inc
>
> +inherit siteinfo
> +
>   PROVIDES = "virtual/libx11"
>
>   XORG_PN = "libX11"
> @@ -22,7 +24,11 @@ do_compile() {
>   	touch makekeys-makekeys.o
>   	(
>   		unset CC LD CXX CCLD CFLAGS CPPFLAGS LDFLAGS CXXFLAGS
> -		${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} makekeys.c -o makekeys
> +		if [ "${SITEINFO_BITS}" == "64" ]; then
> +                        ${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} makekeys.c -o makekeys
> +                else
> +                        ${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} -DUSE32 makekeys.c -o makekeys
> +                fi
I am not sure of the my answer myself, but is there an existing flag or 
variable that we can use here instead of the if block and pass that 
variable to the patch as an ifdef?

I would have to dig around to check or Richard or someone else might know.

Sau!

>   	)
>   	if [ "$?" != "0" ]; then
>   		exit 1
> diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
> index 08ba07b..3e046a1 100644
> --- a/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
> +++ b/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
> @@ -5,11 +5,12 @@ LICENSE = "MIT&  MIT-style&  BSD"
>   LIC_FILES_CHKSUM = "file://COPYING;md5=bf75bfe4d05068311b5e6862d4b5f2c5"
>
>   PE = "1"
> -PR = "r0"
> +PR = "r1"
>
>   SRC_URI += "file://x11_disable_makekeys.patch \
>               file://nodolt.patch \
> -            file://include_fix.patch"
> +            file://include_fix.patch \
> +	    file://makekeys_crosscompile.patch"
>
>   SRC_URI[md5sum] = "f65c9c7ecbfb64c19dbd7927160d63fd"
>   SRC_URI[sha256sum] = "88d7238ce5f7cd123450567de7a3b56a43556e4ccc45df38b8324147c889a844"



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/1] libx11: fix libX11 keysyms to pass xts5 of lsb
  2011-06-01  9:58 [PATCH 0/1] " Jingdong Lu
@ 2011-06-01  9:58 ` Jingdong Lu
  0 siblings, 0 replies; 5+ messages in thread
From: Jingdong Lu @ 2011-06-01  9:58 UTC (permalink / raw)
  To: poky

From: Jingdong Lu <jingdong.lu@windriver.com>

Fixes bug: [YOCTO #1095]
Because of cross-compiling libx11 keysyms will cause Xts5 test of LSB fail.
libx11 use a tool named "makekey" which compiled as a native tool to generate
ks_tables.h. Because the size of "unsigned long" is different between 32-bit
and 64-bit, we should judge whether our target is 32-bit or 64-bit and tell
"makekey".
I add a patch to "makekeys_crosscompile.patch" to "src/utils/makekeys.c" in
order to deal with the different targets. If our target is 32-bit, we force
the variable its type is "unsigned long" to "uint32_t". So we can generate a
correct keysyms.

Signed-off-by: Jingdong Lu <jingdong.lu@windriver.com>
---
 .../libx11-1.3.4/makekeys_crosscompile.patch       |   45 ++++++++++++++++++++
 .../recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb |    5 +-
 meta/recipes-graphics/xorg-lib/libx11.inc          |    8 +++-
 meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb     |    5 +-
 4 files changed, 58 insertions(+), 5 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch

diff --git a/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch
new file mode 100644
index 0000000..e5eacf0
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-1.3.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: dbuitenh@windriver.com
+
+--- 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;
diff --git a/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
index b013498..1469bc1 100644
--- a/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
+++ b/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
@@ -5,12 +5,13 @@ DESCRIPTION += " Support for XCB, and XCMS is disabled in this version."
 LICENSE = "MIT & MIT-style & BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bf75bfe4d05068311b5e6862d4b5f2c5"
 
-PR = "r0"
+PR = "r1"
 
 DEPENDS += "libxcb xproto xextproto xtrans libxau kbproto inputproto xf86bigfontproto xproto-native"
 
 SRC_URI += "file://../libx11-${PV}/x11_disable_makekeys.patch \
             file://../libx11-${PV}/include_fix.patch \
-            file://../libx11-${PV}/nodolt.patch"
+            file://../libx11-${PV}/nodolt.patch \
+            file://../libx11-${PV}/makekeys_crosscompile.patch"
 
 EXTRA_OECONF += "--disable-xcms --with-xcb"
diff --git a/meta/recipes-graphics/xorg-lib/libx11.inc b/meta/recipes-graphics/xorg-lib/libx11.inc
index 030b0db..c156ce6 100644
--- a/meta/recipes-graphics/xorg-lib/libx11.inc
+++ b/meta/recipes-graphics/xorg-lib/libx11.inc
@@ -6,6 +6,8 @@ basic functions of the window system."
 
 require xorg-lib-common.inc
 
+inherit siteinfo
+
 PROVIDES = "virtual/libx11"
 
 XORG_PN = "libX11"
@@ -22,7 +24,11 @@ do_compile() {
 	touch makekeys-makekeys.o
 	(
 		unset CC LD CXX CCLD CFLAGS CPPFLAGS LDFLAGS CXXFLAGS
-		${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} makekeys.c -o makekeys
+		if [ "${SITEINFO_BITS}" == "64" ]; then
+                        ${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} makekeys.c -o makekeys
+                else
+                        ${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} -DUSE32 makekeys.c -o makekeys
+                fi
 	)
 	if [ "$?" != "0" ]; then
 		exit 1
diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
index 08ba07b..3e046a1 100644
--- a/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
+++ b/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
@@ -5,11 +5,12 @@ LICENSE = "MIT & MIT-style & BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bf75bfe4d05068311b5e6862d4b5f2c5"
 
 PE = "1"
-PR = "r0"
+PR = "r1"
 
 SRC_URI += "file://x11_disable_makekeys.patch \
             file://nodolt.patch \
-            file://include_fix.patch"
+            file://include_fix.patch \
+	    file://makekeys_crosscompile.patch"
 
 SRC_URI[md5sum] = "f65c9c7ecbfb64c19dbd7927160d63fd"
 SRC_URI[sha256sum] = "88d7238ce5f7cd123450567de7a3b56a43556e4ccc45df38b8324147c889a844"
-- 
1.7.0.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 1/1] libx11: fix libX11 keysyms to pass xts5 of lsb
  2011-05-24  7:21 [PATCH 0/1] " Jingdong Lu
@ 2011-05-24  7:21 ` Jingdong Lu
  0 siblings, 0 replies; 5+ messages in thread
From: Jingdong Lu @ 2011-05-24  7:21 UTC (permalink / raw)
  To: poky

From: Jingdong Lu <jingdong.lu@windriver.com>

Fixes bug: [YOCTO #1095]
Because of cross-compiling libx11 keysyms will cause Xts5 test of LSB fail.
libx11 use a tool named "makekey" which compiled as a native tool to generate
ks_tables.h. Because the size of "unsigned long" is different between 32-bit
and 64-bit, we should judge whether our target is 32-bit or 64-bit and tell
"makekey".
I add a patch to "makekeys_crosscompile.patch" to "src/utils/makekeys.c" in
order to deal with the different targets. If our target is 32-bit, we force
the variable its type is "unsigned long" to "uint32_t". So we can generate a
correct keysyms.

Signed-off-by: Jingdong Lu <jingdong.lu@windriver.com>
---
 .../libx11-1.3.4/makekeys_crosscompile.patch       |   35 ++++++++++++++++++++
 .../recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb |    5 ++-
 meta/recipes-graphics/xorg-lib/libx11.inc          |    8 ++++-
 meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb     |    5 ++-
 4 files changed, 48 insertions(+), 5 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch

diff --git a/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch
new file mode 100644
index 0000000..3070607
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-1.3.4/makekeys_crosscompile.patch
@@ -0,0 +1,35 @@
+--- 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 13:36:48.574775145 +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++))
++#ifdef USE32
++		sig = (uint32_t)(sig << 1) + c;
++#else
+ 		sig = (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++))
++#ifdef USE32
++	    sig = (uint32_t)(sig << 1) + c;
++#else
+ 	    sig = (sig << 1) + c;
++#endif
+ 	first = j = sig % z;
+ 	while (offsets[j]) {
+ 	    j += first + 1;
diff --git a/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
index b013498..1469bc1 100644
--- a/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
+++ b/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb
@@ -5,12 +5,13 @@ DESCRIPTION += " Support for XCB, and XCMS is disabled in this version."
 LICENSE = "MIT & MIT-style & BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bf75bfe4d05068311b5e6862d4b5f2c5"
 
-PR = "r0"
+PR = "r1"
 
 DEPENDS += "libxcb xproto xextproto xtrans libxau kbproto inputproto xf86bigfontproto xproto-native"
 
 SRC_URI += "file://../libx11-${PV}/x11_disable_makekeys.patch \
             file://../libx11-${PV}/include_fix.patch \
-            file://../libx11-${PV}/nodolt.patch"
+            file://../libx11-${PV}/nodolt.patch \
+            file://../libx11-${PV}/makekeys_crosscompile.patch"
 
 EXTRA_OECONF += "--disable-xcms --with-xcb"
diff --git a/meta/recipes-graphics/xorg-lib/libx11.inc b/meta/recipes-graphics/xorg-lib/libx11.inc
index 030b0db..c156ce6 100644
--- a/meta/recipes-graphics/xorg-lib/libx11.inc
+++ b/meta/recipes-graphics/xorg-lib/libx11.inc
@@ -6,6 +6,8 @@ basic functions of the window system."
 
 require xorg-lib-common.inc
 
+inherit siteinfo
+
 PROVIDES = "virtual/libx11"
 
 XORG_PN = "libX11"
@@ -22,7 +24,11 @@ do_compile() {
 	touch makekeys-makekeys.o
 	(
 		unset CC LD CXX CCLD CFLAGS CPPFLAGS LDFLAGS CXXFLAGS
-		${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} makekeys.c -o makekeys
+		if [ "${SITEINFO_BITS}" == "64" ]; then
+                        ${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} makekeys.c -o makekeys
+                else
+                        ${BUILD_CC} ${BUILD_CFLAGS} -I${STAGING_INCDIR_NATIVE} -DUSE32 makekeys.c -o makekeys
+                fi
 	)
 	if [ "$?" != "0" ]; then
 		exit 1
diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
index 08ba07b..3e046a1 100644
--- a/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
+++ b/meta/recipes-graphics/xorg-lib/libx11_1.3.4.bb
@@ -5,11 +5,12 @@ LICENSE = "MIT & MIT-style & BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bf75bfe4d05068311b5e6862d4b5f2c5"
 
 PE = "1"
-PR = "r0"
+PR = "r1"
 
 SRC_URI += "file://x11_disable_makekeys.patch \
             file://nodolt.patch \
-            file://include_fix.patch"
+            file://include_fix.patch \
+	    file://makekeys_crosscompile.patch"
 
 SRC_URI[md5sum] = "f65c9c7ecbfb64c19dbd7927160d63fd"
 SRC_URI[sha256sum] = "88d7238ce5f7cd123450567de7a3b56a43556e4ccc45df38b8324147c889a844"
-- 
1.7.0.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-06-01  9:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-24 11:13 [PATCH 0/1] libx11: fix libX11 keysyms to pass xts5 of lsb Jingdong Lu
2011-05-24 11:13 ` [PATCH 1/1] " Jingdong Lu
2011-05-25  1:01   ` Saul Wold
  -- strict thread matches above, loose matches on Subject: below --
2011-06-01  9:58 [PATCH 0/1] " Jingdong Lu
2011-06-01  9:58 ` [PATCH 1/1] " Jingdong Lu
2011-05-24  7:21 [PATCH 0/1] " Jingdong Lu
2011-05-24  7:21 ` [PATCH 1/1] " Jingdong Lu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.