meson 0.56.1 no logra establecer correctamente la máquina anfitriona.
Estoy tratando de construir bibliotecas de Mesa de 32 bits a partir del código fuente, utilizando el paquete fuente de Debian 20.3.5-1 de Mesa. He instalado el meson 0.56.1 de los backports de Debian Buster porque Mesa 20.3.5 requiere un meson más reciente que el nativo 0.49.2 de Buster.
Entiendo que debo especificar un --cross-file
para construir bibliotecas de 32 bits en un sistema de 64 bits. Este es el contenido de ese archivo:
[host_machine]
system = 'linux'
cpu_family = 'x86'
cpu = 'i386'
endian = 'little'
[properties]
c_args = ['-m32']
cpp_args = ['-m32']
[binaries]
c = 'gcc'
cpp = 'g++'
ar = 'ar'
strip = 'strip'
pkgconfig = 'pkg-config'
windres = 'windres'
Estoy especificando [host_machine]
porque estoy construyendo (build_machine
) en x86_64 pero necesito enlazar las bibliotecas resultantes (host_machine
) con binarios existentes de 32 bits.
He borrado y recreado un nuevo directorio build
vacío.
Invoco a meson
con una línea de comando como esta:
meson --cross-file i386.cross [... opciones específicas de mesa ...] build .
Salida parcial:
El sistema de construcción Meson
Versión: 0.56.1
Directorio fuente: /tmp/mesa-20.3.5
Directorio de construcción: /tmp/mesa-20.3.5/build
Tipo de construcción: construcción cruzada
Programa python encontrado: SÍ (/usr/bin/python)
Nombre del proyecto: mesa
Versión del proyecto: 20.3.5
Compilador C para la máquina host: gcc (gcc 8.3.0 "gcc (Debian 8.3.0-6) 8.3.0")
Enlazador C para la máquina host: gcc ld.bfd 2.31.1
Compilador C++ para la máquina host: g++ (gcc 8.3.0 "g++ (Debian 8.3.0-6) 8.3.0")
Enlazador C++ para la máquina host: g++ ld.bfd 2.31.1
Compilador C para la máquina de construcción: cc (gcc 8.3.0 "cc (Debian 8.3.0-6) 8.3.0")
Enlazador C para la máquina de construcción: cc ld.bfd 2.31.1
Compilador C++ para la máquina de construcción: c++ (gcc 8.3.0 "c++ (Debian 8.3.0-6) 8.3.0")
Enlazador C++ para la máquina de construcción: c++ ld.bfd 2.31.1
Familia de CPU de la máquina de construcción: x86_64
CPU de la máquina de construcción: x86_64
Familia de CPU de la máquina host: x86_64
CPU de la máquina host: x86_64
Familia de CPU de la máquina objetivo: x86
CPU de la máquina objetivo: i386
Programa python3 encontrado: SÍ (/usr/bin/python3)
La “Máquina host” simplemente está equivocada. Necesito bibliotecas de 32 bits. ¿Cómo puedo insistir en esto?
davy.ai
Para especificar la arquitectura de la máquina de host en una compilación de 32 bits, puedes agregar la opción
--native-file
a la instrucciónmeson
y proporcionar un archivo.txt
que contenga la configuración para la arquitectura de 32 bits. El contenido del archivo podría verse así:Luego, puedes modificar tu comando
meson
para incluir la opción--native-file
y especificar el archivo correspondiente:Esto asegurará que tu compilación
meson
para bibliotecas de 32 bits utilice la configuración correcta de la máquina de host.