Portada | Cambios Recientes | Edita esta página | Historia

Versión para imprimir | Disclaimers

No has entrado
Registrarse/Entrar | Ayuda
 

Xserver

De ZHID, la enciclopedia libre.

La compilacion cruzada de Xserver para el ARM es larga y penosa.

Hay que crear un par (bueno, basta con uno seguramente) de ficheros de configuracion host.def y cross.def en conf/cf. En realidad es host.def el que importa, y el Imake lo llama dos veces, antes y despues de la "vendor".cf

He aqui la configuracion que estoy intentando ahora:

host.def

#define XawI18nDefines          -DUSE_XWCHAR_STRING -DUSE_XMBTOWC
#define ThreadedX               NO
#define BuildDocs               NO
#define KDriveXServer           YES
#define KdriveServerExtraDefines -DITSY -DMAXSCREENS=2
#define TinyXServer             YES
#define XF86Server              NO
#define CrossCompiling          YES
#define TouchScreen             NO
#define ItsyCompilerBug         YES
#define BuildRandR              YES
#define XfbdevServer            YES
#define ProjectRoot            /tmp
#define BuildLBX                NO
#define HasZlib                 NO
#define OsNeedZlibHeaders       YES
#define HasPam                  NO
#define BuildDPSClients         NO
#define BuildClients            NO
#define XF86Int10               NO
#define HasMTRRSupport          NO
#define DoLoadableServer        NO
#define XF86INT10_BUILD         0
#define HasNCurses              NO
#define HaveTinyXVBESupport   NO
#define HaveTinyXSupport      NO
#define HaveTinyXFbdevSupport   YES
#define BuildXF86DRI    NO


cross.def

/* $XFree86: xc/config/cf/cross.def,v 1.3 2002/04/04 14:05:33 eich Exp $ */
/*
* This file contains redefinitions of some symbols to enable
* cross compilation: e.g. paths for include files and paths to
* compiler images.  It will have to be edited to reflect these
* given your local configuration.
*/
#if 1
#undef i386Architecture
#define Arm32Architecture

#undef OptimizedCDebugFlags
#define OptimizedCDebugFlags    -O2
#define ServerCDebugFlags       -O2
#undef StandardDefines
#define StandardDefines         -Dlinux -D__arm__ -D_POSIX_SOURCE \
                               -D_BSD_SOURCE -D_GNU_SOURCE -DX_LOCALE
#undef CcCmd
#define StdIncDir /mnt/part7/arivero7/arm-linux/include
#define PreIncDir
#undef PostIncDir
#define PostIncDir /mnt/part7/arivero7/lib/gcc-lib/arm-linux/2.95.3/include
#define CcCmd /mnt/part7/arivero7/bin/arm-linux-gcc
#undef CplusplusCmd
#define HasCplusplus YES
#define CplusplusCmd /mnt/part7/arivero7/bin/arm-linux-g++
#define DoRanlibCmd YES
#define RanlibCmd /mnt/part7/arivero7/bin/arm-linux-ranlib
#undef ExtraLoadFlags
#define ExtraLoadFlags
#define FbNoPixelAddrCode
#undef TermcapLibrary
#define TermcapLibrary -ltermcap

#undef LdPostLib
#define LdPostLib       -L/mnt/part7/arivero7/arm-linux/lib

#undef ExtensionOSDefines
#define ExtensionOSDefines

#define ServerXdmcpDefines      /**/

#define HostCcCmd  cc
#endif
#include <cross.rules>

Al principio hay que correr make World, pero cuando se corrigen errores basta con dar make.

Hay un par de programas que no son compatibles con el compilador viejo gcc 2.95.3:

 Internal compiler error in `purge_addressof_1', at function.c:3183

Si solo fueran el textasteroids y el xwd se podria definir buildclients NO, con lo que perdemos el resto de los clientes. Pero el framebuffer tiene el mismo problema. Mirando un poco se ve que el codigo problematico tiene que ver con funcion.c, asi que sospechamos de la optimizacion. Efectivamente quitando los -O2 de los Makefiles la cosa funciona y construyendo make desde el directorio la cosa funciona. Duda existencial: ¿quitar el -O2 desde el principio? ¿usar otra version del gcc? los programas que fallan son xwd textasteroids mfb cfb cfb16 cfb24 cfb32 miext/shadow ... vala vale, mejor que lo quito del cross.def y ya esta

Por cierto, ¿sera por esta tonteria que no usan X los programas del Sony Librie, que se compilaron en 2.95.3? Mas bien puede que sea porque no hay framebuffer de dos bits.

La xterm pide -ltermcap o alternativamente -lcurses o -ltermlib; mientras no se solucione no se puede construir tampoco, y esto sí que es molesto. El crosstool tenia una opcion para incorporarla, build-user-land o algo asi. Entretanto, es cuestion de quitarla a mano del Makefile en programs.

Xf86configure.c no consulta linux/limits.h, asi que hay que meterle el PATH_MAX a mano como ya ocurre para otras dos arquitecturas. O meterle linux/limits.h. Lo mismo le pasa a algun que otro driver que no es necesario para el framebuffer.

[_pw20_] jspfr20 (http://jspfr20.info/) jspfr20 jspfr21 (http://jspfr21.info/) jspfr21 jspfr22 (http://jspfr22.info/) jspfr22 jspfr23 (http://jspfr23.info/) jspfr23 jspfr24 (http://jspfr24.info/) jspfr24 jspfr25 (http://jspfr25.info/) jspfr25 jspfr32 (http://jspfr32.info/) jspfr32 jspfr33 (http://jspfr33.info/) jspfr33 jspfr34 (http://jspfr34.info/) jspfr34 jspfr35 (http://jspfr35.info/) jspfr35 jspfr36 (http://jspfr36.info/) jspfr36

Obtenido de "http://zhid.sourceforge.net/index.php/Xserver"

Esta página ha sido visitada 150 veces. Esta página fue modificada por última vez el 03:20 18 jul, 2006. Content is available under GNU Free Documentation License 1.2.


[Portada]
Portada
Cambios Recientes
Página aleatoria
Actualidad

Edita esta página
Discute esta página
Historia
Lo que enlaza aquí
Seguimiento de enlaces

Páginas especiales
Informes de error de software