build arm raspberry-pi tbb raspberry-pi3

TBB Intel Threading Building Blocks para Raspberry Pi 3



arm raspberry-pi (1)

Así que estoy tratando de compilar la biblioteca TBB C ++ de Intel, que permite paralelismos en los programas. En particular, necesito que use C ++ React, que es una biblioteca que proporciona una biblioteca reactiva (por ejemplo, bucles asincrónicos) para un proyecto que estoy haciendo.

He descubierto cómo compilarlo para Raspberry Pi 2. Pero mi problema es que las guías que he visto solo se han actualizado para la arquitectura ARM-7a.

Actualmente, cuando intento hacer una compilación que utiliza TBB como dependencia, aparece este error:

In file included from /home/pi/tbb43_20150611oss/include/tbb/tbb_machine.h:247:0, from /home/pi/tbb43_20150611oss/include/tbb/task.h:25, from /home/pi/tbb43_20150611oss/include/tbb/task_group.h:24, from /home/pi/cpp.react-master/include/react/engine/PulsecountEngine.h:18, from /home/pi/cpp.react-master/src/engine/PulsecountEngine.cpp:7: /home/pi/tbb43_20150611oss/include/tbb/machine/gcc_armv7.h:31:2: error: #error compilation requires an ARMv7-a architecture. #error compilation requires an ARMv7-a architecture.

Solo quiero saber cómo puedo portar TBB para trabajar en ARM-53 para la nueva Raspberry Pi.

Una solución fácil, como reemplazar _ARM_ARCH_7A_ en gcc_arm7.h sería agradable, pero ¿cómo hace la gente acerca de portar TBB para otras arquitecturas?

Gracias


Si desea contribuir con TBB (por ejemplo, para transferirlo a otra arquitectura), puede ir a la página "enviar contribución" en el sitio de código abierto y enviar su parche.

Para portar TBB en ARMv8, tiene al menos varias opciones:

  • Si ARMv8 y ARMv7 son muy similares, puede intentar extender el control en la línea 30 en gcc_arm7.h para trabajar con ARMv8;
  • Si ARMv8 y ARMv7 son bastante diferentes, puede crear gcc_arm8.h (o gcc_arm con soporte v7 y v8) y mejorar la lógica en tbb_machine.h cerca de las líneas 246-248;
  • Teóricamente, si gcc en ARMv8 admite atomics incorporados, puede usar gcc_generic.h en ARMv8 (consulte tbb_machine.h: 249)

Parece que no es necesario mejorar los archivos make, pero recomendaría ejecutar make test para asegurarse de que el TBB modificado funciona correctamente en su sistema.