c++ raspberry-pi cross-compiling v8

c++ - Cruz compila la biblioteca de google v8 para la frambuesa pi



raspberry-pi cross-compiling (1)

Encontré una solución gracias a publicar en v8 google group. https://groups.google.com/forum/#!topic/v8-users/LTppUbqNrzI

El problema estaba en hacer argumentos que debería ser.

make arm arm_version=6 armfpu=vfp armfloatabi=hard

Tengo un problema con la compilación cruzada de las bibliotecas de google v8 para raspberry pi, y constantemente obtengo un error de "instrucción ilegal" al compilar la muestra oficial del sitio. Estos son los pasos que seguí:

  1. Compilación cruzada descargada https://github.com/raspberrypi/tools/
  2. Clonado v8 git https://chromium.googlesource.com/v8/v8.git
  3. Punto CXX LINK exportado a arm-linux-gnueabihf-g++ desde herramientas de compilación cruzada.
  4. ejecutar make arm.release armv7=false hardfp=on snapshot=off armfpu=vfp armfloatabi=hard -j5
  5. Se copió el shell ejecutable generado y d8 del directorio out / arm.release en pi (kernel Raspbian versión 3.6.11) y FUNCIONA. Estos pasos demuestran que la cadena de herramientas de compilación cruzada es funcional.

Se produce un problema al intentar ejecutar otro software compilado de forma cruzada que está vinculado a las bibliotecas v8. Por ejemplo, código de ejemplo de https://developers.google.com/v8/get_started#intro . El código se compila de manera cruzada con este comando (igual que el ejemplo, el compilador cambiado)

arm-linux-gnueabihf-g++ -I. hello_world.cc -o hello_world -Wl,--start-group out/x64.release/obj.target/{tools/gyp/libv8_{base,libbase,snapshot,libplatform},third_party/icu/libicu{uc,i18n,data}}.a -Wl,--end-group -lrt -pthread

Cuando copio ese código en pi y lo ejecuto, obtengo SIGILL (instrucción ilegal).

Nota: el software de compilación cruzada que no usa bibliotecas v8 funciona bien. También las bibliotecas x64 v8 en la computadora host funcionan bien.

En versiones de kernel más nuevas, shell y d8 también lanzaban SIGILL, pero cambié a la versión anterior 3.6.11 (problemas con el nuevo kernel https://groups.google.com/forum/#!topic/v8-users/IPT9EeYK9bg ) y ellos comenzó a funcionar, pero el código de muestra compilado todavía muestra los mismos problemas.

¿Alguien tiene una experiencia similar? ¿Alguna sugerencia sobre cómo superar este problema?