[OE-core] [PATCH 3/4] libxxf86dga: fix compilation with x32 toolchain
Khem Raj
raj.khem at gmail.com
Thu Jan 5 20:48:40 UTC 2012
On Wed, Jan 4, 2012 at 5:02 PM, <nitin.a.kamble at intel.com> wrote:
> From: Nitin A Kamble <nitin.a.kamble at intel.com>
>
> Fix type conversion for x32. For x32 the off_t is 64bit and pointers are
> 32bit.
> so the conversion of pointer to off_t was resulting into this error:
>
> | XF86DGA2.c:931:24: error: cast from pointer to integer of different
> size [-Werror=pointer-to-int-cast]
> | cc1: some warnings being treated as errors
> |
> | make[2]: *** [XF86DGA2.lo] Error 1
>
> Fixed it by typecasting pointer into unsigned long 1st and then again
> typecasting unsigned long to off_t.
>
> Signed-off-by: Nitin A Kamble <nitin.a.kamble at intel.com>
> ---
> .../libxxf86dga-1.1.2_fix_for_x32.patch | 30 ++++++++++++++++++++
> .../recipes-graphics/xorg-lib/libxxf86dga_1.1.2.bb | 5 ++-
> 2 files changed, 34 insertions(+), 1 deletions(-)
> create mode 100644 meta/recipes-graphics/xorg-lib/libxxf86dga/libxxf86dga-1.1.2_fix_for_x32.patch
>
> diff --git a/meta/recipes-graphics/xorg-lib/libxxf86dga/libxxf86dga-1.1.2_fix_for_x32.patch b/meta/recipes-graphics/xorg-lib/libxxf86dga/libxxf86dga-1.1.2_fix_for_x32.patch
> new file mode 100644
> index 0000000..30692ad
> --- /dev/null
> +++ b/meta/recipes-graphics/xorg-lib/libxxf86dga/libxxf86dga-1.1.2_fix_for_x32.patch
> @@ -0,0 +1,30 @@
> +Upstream-Status: pending
> +
> +Fix type conversion for x32. For x32 the off_t is 64bit and pointers are 32bit.
> +so the conversion of pointer to off_t was resulting into this error:
> +
> +| XF86DGA2.c:931:24: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
> +| cc1: some warnings being treated as errors
> +|
> +| make[2]: *** [XF86DGA2.lo] Error 1
> +
> +Fixed it by typecasting pointer into unsigned long 1st and then again typecasting
> +unsigned long to off_t.
where is pointer here ?
http://cvsweb.xfree86.org/cvsweb/xc/lib/Xxf86dga/XF86DGA2.c?rev=1.30&content-type=text/vnd.viewcvs-markup
shows that base is of type mmapOffset which is
#if !defined(_LP64) && defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
typedef unsigned long long mmapOffset;
#else
typedef unsigned long mmapOffset;
#endif
and off_t is typedef'ed to long int
> +
> +Signed-Off-by: Nitin A Kamble <nitin.a.kamble at intel.com>
> +2012/01/04
> +
> +
> +Index: libXxf86dga-1.1.2/src/XF86DGA2.c
> +===================================================================
> +--- libXxf86dga-1.1.2.orig/src/XF86DGA2.c 2010-10-06 21:17:11.000000000 -0700
> ++++ libXxf86dga-1.1.2/src/XF86DGA2.c 2012-01-04 14:21:36.275971172 -0800
> +@@ -928,7 +928,7 @@ DGAMapPhysical(
> + if ((pMap->fd = open(name, O_RDWR)) < 0)
> + return False;
> + pMap->virtual = mmap(NULL, size, PROT_READ | PROT_WRITE,
> +- MAP_FILE | MAP_SHARED, pMap->fd, (off_t)base);
> ++ MAP_FILE | MAP_SHARED, pMap->fd, (off_t)(unsigned long)base);
> + if (pMap->virtual == (void *)-1)
> + return False;
> + mprotect(pMap->virtual, size, PROT_READ | PROT_WRITE);
> diff --git a/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.2.bb b/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.2.bb
> index 8e777c3..9a1c96f 100644
> --- a/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.2.bb
> +++ b/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.2.bb
> @@ -8,7 +8,10 @@ allows relative mouse reporting, et al. It is mainly used by games and \
> emulators for games."
>
> DEPENDS += "libxext xf86dgaproto"
> -PR = "r1"
> +PR = "r2"
> +
> +SRC_URI += "file://libxxf86dga-1.1.2_fix_for_x32.patch"
> +
> PE = "1"
>
> XORG_PN = "libXxf86dga"
> --
> 1.7.6.4
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
More information about the Openembedded-core
mailing list