On 2012-12-19 11:39, Otavio Salvador wrote: > On Wed, Dec 19, 2012 at 4:36 PM, Gary Thomas wrote: >> On 2012-12-19 11:26, Gary Thomas wrote: >>> >>> On 2012-12-19 11:11, Otavio Salvador wrote: >>>> >>>> On Wed, Dec 19, 2012 at 1:52 PM, Gary Thomas >>>> wrote: >>>>> >>>>> On 2012-12-19 08:35, Otavio Salvador wrote: >>>>>> >>>>>> >>>>>> On Wed, Dec 19, 2012 at 1:22 PM, Gary Thomas >>>>>> wrote: >>>>>> ... >>>>>>> >>>>>>> >>>>>>> Thanks, I'm now using the yoctoproject.org repository and can see the >>>>>>> recent changes. >>>>>>> >>>>>>> Sadly though, I can't build X11 drivers - full log attached. >>>>>>> | In file included from ./vivante_util/vivante_common.h:69:0, >>>>>>> | from vivante_fbdev/vivante_fbdev_driver.c:23: >>>>>>> | >>>>>>> >>>>>>> >>>>>>> /home/local/imx6_poky/tmp/sysroots/sabrelite/usr/include/xorg/fbdevhw.h:50:23: >>>>>>> note: declared here >>>>>>> | vivante_fbdev/vivante_fbdev_driver.c:780:26: warning: assignment >>>>>>> from >>>>>>> incompatible pointer type [enabled by default] >>>>>>> | vivante_fbdev/vivante_fbdev_driver.c: In function 'VivCloseScreen': >>>>>>> | vivante_fbdev/vivante_fbdev_driver.c:826:5: warning: passing >>>>>>> argument 1 >>>>>>> of >>>>>>> 'pScreen->CloseScreen' makes pointer from integer without a cast >>>>>>> [enabled >>>>>>> by >>>>>>> default] >>>>>>> | vivante_fbdev/vivante_fbdev_driver.c:826:5: note: expected >>>>>>> 'ScreenPtr' >>>>>>> but >>>>>>> argument is of type 'int' >>>>>>> | vivante_fbdev/vivante_fbdev_driver.c:826:5: error: too many >>>>>>> arguments >>>>>>> to >>>>>>> function 'pScreen->CloseScreen' >>>>>>> | make[2]: *** [vivante_fbdev_driver.lo] Error 1 >>>>>>> | make[2]: *** Waiting for unfinished jobs.... >>>>>>> | make[2]: Leaving directory >>>>>>> >>>>>>> >>>>>>> `/home/local/imx6_poky/tmp/work/sabrelite-amltd-linux-gnueabi/xf86-video-imxfb-vivante/2_12.09.01-r20.1/xserver-xorg-video-imx-viv-12.09.01/src' >>>>>>> | make[1]: *** [all-recursive] Error 1 >>>>>>> | make[1]: Leaving directory >>>>>>> >>>>>>> >>>>>>> `/home/local/imx6_poky/tmp/work/sabrelite-amltd-linux-gnueabi/xf86-video-imxfb-vivante/2_12.09.01-r20.1/xserver-xorg-video-imx-viv-12.09.01' >>>>>>> >>>>>>> Any ideas? Maybe I've missed something else. >>>>>>> >>>>>> >>>>>> It seems xf86 api changes; you need to check the change in API and >>>>>> prepare a patch to the driver ... otherwise I can do it ... >>>>> >>>>> >>>>> >>>>> OK, I'll look at this. I had expected this to already work, based on >>>>> the earlier comments, but no problem. >>>> >>>> >>>> I've researched how to make it in a flexible way and I found >>>> >>>> http://cgit.freedesktop.org/xorg/driver/xf86-video-geode/commit/?id=a83fcb6f84995dc50b8adffc27e264a663fbd606 >>>> >>>> So it's adviced to use a compat-api.h header that allows it to be >>>> usable in old and new Xorg API's. >>> >>> >>> Thanks. I found much the same and have already integrated this method. >>> I'll send a patch for it soon. >> >> >> This may take some time. While it does now build, it immediately dies >> with a segmentation violation. > > You might have did a wrong replace for a macro and then pass a wrong > param; another thing, when adding the patch in the commit please add: > > Upstream-Status: Pending > > So we can grep for it later and propose for merge. I think I may need to pass this on to you - it's blowing up during the very initial steps. Here's my GDB backtrace: Program received signal SIGSEGV, Segmentation fault. VivScreenInit (scrnIndex=scrnIndex@entry=1930440, pScreen=pScreen@entry=0x1, argc=argc@entry=2130705924, argv=) at vivante_fbdev/vivante_fbdev_driver.c:615 615 vivante_fbdev/vivante_fbdev_driver.c: No such file or directory. (gdb) dir tmp/work/sabrelite-amltd-linux-gnueabi/xf86-video-imxfb-vivante/2_12.09.01-r20.1/xserver-xorg-video-imx-viv-12.09.01/src/vivante_fbdev Source directories searched: /home/local/imx6_poky/tmp/work/sabrelite-amltd-linux-gnueabi/xf86-video-imxfb-vivante/2_12.09.01-r20.1/xserver-xorg-video-imx-viv-12.09.01/src/vivante_fbdev:$cdir:$cwd (gdb) l 610 TRACE_EXIT(TRUE); 611 } 612 613 static Bool 614 VivScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { 615 ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 616 VivPtr fPtr = GET_VIV_PTR(pScrn); 617 VisualPtr visual; 618 int init_picture = 0; 619 int ret, flags; (gdb) bt #0 VivScreenInit (scrnIndex=scrnIndex@entry=1930440, pScreen=pScreen@entry=0x1, argc=argc@entry=2130705924, argv=) at vivante_fbdev/vivante_fbdev_driver.c:615 #1 0x0003689c in AddScreen (pfnInit=0x2af556f0 , argc=1, argc@entry=509968, argv=0x7efffe04, argv@entry=0x6df14 ) at dispatch.c:3830 #2 0x000755fc in InitOutput (pScreenInfo=0x1aa870 , pScreenInfo@entry=0x1b5c88 , argc=509968, argc@entry=1, argv=0x6df14 , argv@entry=0x25fec ) at xf86Init.c:882 #3 0x00025fec in main (argc=1, argv=0x25fec , envp=) at main.c:204 Looks like there are more than the [cosmetic] changes I made for CloseScreen(). My preliminary patch is attached, maybe you can help.