[Buildroot] [PATCH 2/2] sdl: Fix compilation with libX11 >= 1.5.99.902

Vicente Olivert Riera Vincent.Riera at imgtec.com
Thu Jan 9 13:09:58 UTC 2014


On 01/09/2014 12:40 PM, Peter Korsgaard wrote:
>>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera at imgtec.com> writes:
>
>   > Applying an upstream patch to fix a compilation error with versions of
>   > libX11 since 1.5.99.902. This patch modifies configure.in so we need to
>   > run autogen.sh to make it working correctly. Running autoreconf will
>   > fail because SDL uses bit tricky automake/autoconf configuration.
>
>   > Upstream patch URL:
>   >    http://hg.libsdl.org/SDL/rev/91ad7b43317a
>
>   > Fixes:
>   >    http://autobuild.buildroot.net/results/bf8/bf83466a7bbb0635d97fe279a18778d92f20bea2/
>
>   > Signed-off-by: Vicente Olivert Riera <Vincent.Riera at imgtec.com>
>   > ---
>   >  .../sdl/sdl-0002-fix-compilation-with-libx11.patch |   60 ++++++++++++++++++++
>   >  package/sdl/sdl.mk                                 |    6 ++
>   >  2 files changed, 66 insertions(+), 0 deletions(-)
>   >  create mode 100644 package/sdl/sdl-0002-fix-compilation-with-libx11.patch
>
>   > diff --git a/package/sdl/sdl-0002-fix-compilation-with-libx11.patch b/package/sdl/sdl-0002-fix-compilation-with-libx11.patch
>   > new file mode 100644
>   > index 0000000..27f2448
>   > --- /dev/null
>   > +++ b/package/sdl/sdl-0002-fix-compilation-with-libx11.patch
>   > @@ -0,0 +1,60 @@
>   > +sdl: Fix compilation with libX11 >= 1.5.99.902
>   > +Signed-off-by: Vicente Olivert Riera <Vincent.Riera at imgtec.com>
>   > +
>   > +# HG changeset patch
>   > +# User Azamat H. Hackimov <azamat.hackimov at gmail.com>
>   > +# Date 1370184533 -21600
>   > +# Node ID 91ad7b43317a6387e115ecdf63a49137f47e42c8
>   > +# Parent  f7fd5c3951b9ed922fdf696f7182e71b58a13268
>   > +Fix compilation with libX11 >= 1.5.99.902.
>   > +
>   > +These changes fixes bug #1769 for SDL 1.2
>   > +(http://bugzilla.libsdl.org/show_bug.cgi?id=1769).
>   > +
>   > +diff -r f7fd5c3951b9 -r 91ad7b43317a configure.in
>   > +--- a/configure.in	Wed Apr 17 00:56:53 2013 -0700
>   > ++++ b/configure.in	Sun Jun 02 20:48:53 2013 +0600
>   > +@@ -1169,6 +1169,17 @@
>   > +             if test x$definitely_enable_video_x11_xrandr = xyes; then
>   > +                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR)
>   > +             fi
>   > ++            AC_MSG_CHECKING(for const parameter to _XData32)
>   > ++            have_const_param_xdata32=no
>   > ++            AC_TRY_COMPILE([
>   > ++              #include <X11/Xlibint.h>
>   > ++              extern int _XData32(Display *dpy,register _Xconst long *data,unsigned len);
>   > ++            ],[
>   > ++            ],[
>   > ++            have_const_param_xdata32=yes
>   > ++            AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32)
>   > ++            ])
>   > ++            AC_MSG_RESULT($have_const_param_xdata32)
>   > +         fi
>   > +     fi
>   > + }
>   > +diff -r f7fd5c3951b9 -r 91ad7b43317a include/SDL_config.h.in
>   > +--- a/include/SDL_config.h.in	Wed Apr 17 00:56:53 2013 -0700
>   > ++++ b/include/SDL_config.h.in	Sun Jun 02 20:48:53 2013 +0600
>   > +@@ -283,6 +283,7 @@
>   > + #undef SDL_VIDEO_DRIVER_WINDIB
>   > + #undef SDL_VIDEO_DRIVER_WSCONS
>   > + #undef SDL_VIDEO_DRIVER_X11
>   > ++#undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
>   > + #undef SDL_VIDEO_DRIVER_X11_DGAMOUSE
>   > + #undef SDL_VIDEO_DRIVER_X11_DYNAMIC
>   > + #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
>   > +diff -r f7fd5c3951b9 -r 91ad7b43317a src/video/x11/SDL_x11sym.h
>   > +--- a/src/video/x11/SDL_x11sym.h	Wed Apr 17 00:56:53 2013 -0700
>   > ++++ b/src/video/x11/SDL_x11sym.h	Sun Jun 02 20:48:53 2013 +0600
>   > +@@ -165,7 +165,11 @@
>   > +  */
>   > + #ifdef LONG64
>   > + SDL_X11_MODULE(IO_32BIT)
>   > ++#if SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
>   > ++SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
>   > ++#else
>   > + SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
>   > ++#endif
>   > + SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
>   > + #endif
>   > +
>   > diff --git a/package/sdl/sdl.mk b/package/sdl/sdl.mk
>   > index ef723dd..0032b97 100644
>   > --- a/package/sdl/sdl.mk
>   > +++ b/package/sdl/sdl.mk
>   > @@ -67,6 +67,12 @@ define SDL_FIXUP_SDL_CONFIG
>   >  		$(STAGING_DIR)/usr/bin/sdl-config
>   >  endef
>
>   > +define SDL_RUN_AUTOGEN
>   > +	cd $(@D) && ./autogen.sh
>   > +endef
>
> Hmm, this ends up relying on the use having compatible auto* tools
> installed on the build machine. Are you sure we cannot use our
> pkg_AUTORECONF = YES handling?

I tried it but I can't get it working properly. Maybe you could try it.

> Alternatively, it should depend on
> host-automake host-autoconf host-libtool so we build our own versions of
> the tools, similar to how AUTORECONF does.

So, what do you want I do, sending an updated patch adding those 
dependencies, or do you prefer to try to use the pkg_AUTORECONF = YES way?


-- 
Vincent




More information about the buildroot mailing list