On Wed, Dec 19, 2012 at 5:09 PM, Gary Thomas <[email protected]> wrote: > On 2012-12-19 11:39, Otavio Salvador wrote: >> >> On Wed, Dec 19, 2012 at 4:36 PM, Gary Thomas <[email protected]> >> 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 <[email protected]> >>>>> wrote: >>>>>> >>>>>> >>>>>> On 2012-12-19 08:35, Otavio Salvador wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Dec 19, 2012 at 1:22 PM, Gary Thomas <[email protected]> >>>>>>> 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=<optimized out>) 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=<optimized out>) at vivante_fbdev/vivante_fbdev_driver.c:615 > #1 0x0003689c in AddScreen (pfnInit=0x2af556f0 <VivScreenInit>, argc=1, > argc@entry=509968, argv=0x7efffe04, > argv@entry=0x6df14 <xf86SetDGAMode>) at dispatch.c:3830 > #2 0x000755fc in InitOutput (pScreenInfo=0x1aa870 <nmajor>, > pScreenInfo@entry=0x1b5c88 <screenInfo>, argc=509968, > argc@entry=1, argv=0x6df14 <xf86SetDGAMode>, argv@entry=0x25fec > <main+596>) at xf86Init.c:882 > #3 0x00025fec in main (argc=1, argv=0x25fec <main+596>, envp=<optimized > out>) 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. >
The xf86ScreenToScrn(pScrn) is the macro to use in place of xf86Screens[pScrn->myNum]; you need to convert all code to use those macros so it does the trick for you. -- Otavio Salvador O.S. Systems E-mail: [email protected] http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br _______________________________________________ meta-freescale mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-freescale
