compiling xf86-video-xgi 1.6.1 fails on ARM

bobafetthotmail starshipeleven at outlook.com
Sat Apr 16 18:29:29 UTC 2016


I'm compiling xf86-video-xgi 1.6.1 on my HP T5325 thin client (a 
Kirkwood SoC ARM v5 device with a XGI Volari graphics chip), inside a 
debian Jessie system.

Yes, Debian does not package this driver from jessie onwards, so I have 
to recompile it myself.

I get this output when I run a make (after the first run)

-----------------------------------------
root at t5325:~/xf86-video-xgi-1.6.1# make
make  all-recursive
make[1]: Entering directory '/root/xf86-video-xgi-1.6.1'
Making all in src
make[2]: Entering directory '/root/xf86-video-xgi-1.6.1/src'
   CC       xgi_driver.lo
In file included from xgi_driver.c:61:0:
/usr/include/xorg/xf86PciInfo.h:50:2: warning: #warning "xf86PciInfo.h 
is deprecated.  For greater compatibility, drivers should include 
necessary PCI IDs locally rather than relying on this file from 
xorg-server." [-Wcpp]
  #warning "xf86PciInfo.h is deprecated.  For greater compatibility, 
drivers should include necessary PCI IDs locally rather than relying on 
this file from xorg-server."
   ^
In file included from xgi_driver.c:71:0:
xgi_regs.h:55:0: warning: "outb" redefined
  #define outb(p, v)  moutb(p, v)
  ^
In file included from xgi.h:148:0,
                  from xgi_driver.c:70:
/usr/include/xorg/compiler.h:1073:0: note: this is the location of the 
previous definition
  #define outb xf_outb
  ^
xgi_driver.c: In function 'XGIDisplayPowerManagementSet':
xgi_driver.c:511:2: warning: implicit declaration of function 
'XGISetDPMS' [-Wimplicit-function-declaration]
   XGISetDPMS(pScrn, pVBInfo, pHwDevInfo, PowerState);
   ^
xgi_driver.c: In function 'XGIGenerateModeListFromMetaModes':
xgi_driver.c:1187:48: warning: passing argument 1 of 
'XGIGetModeFromName' discards 'const' qualifier from pointer target type
                      mode2 = XGIGetModeFromName(mode1->name, j);
                                                 ^
xgi_driver.c:1023:1: note: expected 'char *' but argument is of type 
'const char *'
  XGIGetModeFromName(char *str, DisplayModePtr i)
  ^
xgi_driver.c: In function 'XGIDDCPreInit':
xgi_driver.c:2310:24: warning: passing argument 1 of 'strcpy' discards 
'const' qualifier from pointer target type
                  strcpy(newm->name, tempm->name);
                         ^
In file included from /usr/include/xorg/os.h:53:0,
                  from /usr/include/xorg/misc.h:115,
                  from /usr/include/xorg/screenint.h:50,
                  from /usr/include/xorg/scrnintstr.h:50,
                  from /usr/include/xorg/fb.h:30,
                  from xgi_driver.c:50:
/usr/include/string.h:129:14: note: expected 'char * restrict' but 
argument is of type 'const char *'
  extern char *strcpy (char *__restrict __dest, const char *__restrict 
__src)
               ^
xgi_driver.c: In function 'XGIPreInit':
xgi_driver.c:2612:49: error: 'struct pci_device' has no member named 
'ioBase'
          VGAHWPTR(pScrn)->MapPhys = pXGI->PciInfo->ioBase[2] + 0xf2000000;
                                                  ^
xgi_driver.c:2903:36: warning: assignment makes integer from pointer 
without a cast
      pXGI->xgi_HwDevExt.pjIOAddress = (pointer)((XGIIOADDRESS) 
(pXGI->RelIO + 0x30));
                                     ^
xgi_driver.c: In function 'XGIMapMem':
xgi_driver.c:4087:9: warning: 'pci_device_map_region' is deprecated 
(declared at /usr/include/pciaccess.h:85) [-Wdeprecated-declarations]
          err = pci_device_map_region(pXGI->PciInfo, i, TRUE);
          ^
xgi_driver.c: In function 'XGIUnmapMem':
xgi_driver.c:4163:17: warning: 'pci_device_unmap_region' is deprecated 
(declared at /usr/include/pciaccess.h:88) [-Wdeprecated-declarations]
                  pci_device_unmap_region(pXGI->PciInfo, 1);
                  ^
xgi_driver.c:4197:17: warning: 'pci_device_unmap_region' is deprecated 
(declared at /usr/include/pciaccess.h:88) [-Wdeprecated-declarations]
                  pci_device_unmap_region(pXGI->PciInfo, 0);
                  ^
xgi_driver.c:4212:9: warning: 'pci_device_unmap_region' is deprecated 
(declared at /usr/include/pciaccess.h:88) [-Wdeprecated-declarations]
          pci_device_unmap_region(pXGI->PciInfo, 0);
          ^
xgi_driver.c:4213:9: warning: 'pci_device_unmap_region' is deprecated 
(declared at /usr/include/pciaccess.h:88) [-Wdeprecated-declarations]
          pci_device_unmap_region(pXGI->PciInfo, 1);
          ^
xgi_driver.c: In function 'XGIModeInit':
xgi_driver.c:4320:5: warning: implicit declaration of function 
'Volari_SetDefaultIdleWait' [-Wimplicit-function-declaration]
      Volari_SetDefaultIdleWait(pXGI, mode->HDisplay, pScrn->depth);
      ^
xgi_driver.c: In function 'XGIRestore':
xgi_driver.c:4481:2: warning: implicit declaration of function 
'XGISetModeNew' [-Wimplicit-function-declaration]
   XGISetModeNew( &pXGI->xgi_HwDevExt, pXGI->XGI_Pr, 0x03);
   ^
Makefile:505: recipe for target 'xgi_driver.lo' failed
make[2]: *** [xgi_driver.lo] Error 1
make[2]: Leaving directory '/root/xf86-video-xgi-1.6.1/src'
Makefile:433: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/root/xf86-video-xgi-1.6.1'
Makefile:364: recipe for target 'all' failed
make: *** [all] Error 2
------------------------------------------------



The important part seems to be

xgi_driver.c: In function 'XGIPreInit':
xgi_driver.c:2612:49: error: 'struct pci_device' has no member named 
'ioBase'
          VGAHWPTR(pScrn)->MapPhys = pXGI->PciInfo->ioBase[2] + 0xf2000000;

By looking at the source, this code is called only when building on ARM, 
which is probably not that common for this driver.


Has anyone ideas on what to do?


Addendum:
To get it to compile at all, I had to manually delete:
aclocal.m4, autom4te.cache directory, configure, Makefile.in, config.h, 
config.h.in, config.status, libtool, ltmain.sh

and then run a

autoreconf -vi

to regenerate updated files, so it would stop complaining about wrong 
macros versions and libtool




More information about the xorg-devel mailing list