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