[OE-core] [PATCH 3/4] libxxf86dga: fix compilation with x32 toolchain
Khem Raj
raj.khem at gmail.com
Sat Jan 21 23:26:25 UTC 2012
On (06/01/12 18:27), Kamble, Nitin A wrote:
>
>
> > -----Original Message-----
> > From: openembedded-core-bounces at lists.openembedded.org
> > [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
> > Khem Raj
> > Sent: Thursday, January 05, 2012 12:49 PM
> > To: Patches and discussions about the oe-core layer
> > Subject: Re: [OE-core] [PATCH 3/4] libxxf86dga: fix compilation with
> > x32 toolchain
> >
> > 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&co
> > ntent-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
> >
> Khem,
> base is char * as seen in the changed file src/XF86DGA2.c:
> static Bool
> DGAMapPhysical(
> int screen,
> char *name, /* optional device name */
> unsigned char* base, /* physical memory */
> CARD32 size, /* size */
> CARD32 offset, /* optional offset */
> CARD32 extra, /* optional extra data */
> DGAMapPtr pMap
> ) {
>
is that a local change ?
> Nitin
>
> > > +
> > > +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
> >
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core at lists.openembedded.org
> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
--
-Khem
More information about the Openembedded-core
mailing list