xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.5.0.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunDESCRIPTION = "Parallelism library for C++ - runtime files \
2*4882a593Smuzhiyun    TBB is a library that helps you leverage multi-core processor \
3*4882a593Smuzhiyun    performance without having to be a threading expert. It represents a \
4*4882a593Smuzhiyun    higher-level, task-based parallelism that abstracts platform details \
5*4882a593Smuzhiyun    and threading mechanism for performance and scalability."
6*4882a593SmuzhiyunHOMEPAGE = "https://software.intel.com/en-us/tbb"
7*4882a593SmuzhiyunLICENSE = "Apache-2.0"
8*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327"
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunDEPENDS:append:libc-musl = " libucontext"
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunPE = "1"
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunBRANCH = "onetbb_2021"
15*4882a593SmuzhiyunSRCREV = "3df08fe234f23e732a122809b40eb129ae22733f"
16*4882a593SmuzhiyunSRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
17*4882a593Smuzhiyun            file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
18*4882a593Smuzhiyun            file://0001-CMakeLists.txt-exclude-riscv64-riscv32.patch \
19*4882a593Smuzhiyun            file://0001-Disable-use-of-_tpause-instruction.patch \
20*4882a593Smuzhiyun            file://0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch \
21*4882a593Smuzhiyun            file://0001-Disable-LTO-on-clang-riscv32.patch \
22*4882a593Smuzhiyun"
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunS = "${WORKDIR}/git"
25*4882a593Smuzhiyun
26*4882a593Smuzhiyuninherit cmake
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun# test build fails, error: 'mallinfo mallinfo()' is deprecated
29*4882a593SmuzhiyunEXTRA_OECMAKE += " \
30*4882a593Smuzhiyun                    -DTBB_TEST=OFF \
31*4882a593Smuzhiyun                    -DCMAKE_BUILD_TYPE=Release \
32*4882a593Smuzhiyun                "
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun# fails with thumb enabled:
36*4882a593Smuzhiyun# | arm-oe-linux-gnueabi-g++  -march=armv7-a -mthumb -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -D__ARM__ -D__LINUX_ARM_ARCH__=7 -funwind-tables -mvectorize-with-neon-quad -rdynamic --sysroot=/OE/sysroots/m14tv -c -MMD -DTBB_USE_DEBUG  -g -O0 -DUSE_PTHREAD -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden   -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp
37*4882a593Smuzhiyun# | {standard input}: Assembler messages:
38*4882a593Smuzhiyun# | {standard input}:250: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]'
39*4882a593Smuzhiyun# ...
40*4882a593Smuzhiyun# | make[1]: *** [concurrent_queue.o] Error 1
41*4882a593SmuzhiyunARM_INSTRUCTION_SET = "arm"
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunASNEEDED = ""
44*4882a593Smuzhiyun
45*4882a593SmuzhiyunLDFLAGS:append:mips = " -latomic"
46*4882a593SmuzhiyunLDFLAGS:append:mipsel = " -latomic"
47*4882a593SmuzhiyunLDFLAGS:append:riscv32:toolchain-clang = " -latomic"
48*4882a593Smuzhiyun
49*4882a593SmuzhiyunLDFLAGS:append:libc-musl = " -lucontext"
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun# The latest version of oneTBB does not support PPC
52*4882a593SmuzhiyunCOMPATIBLE_MACHINE:powerpc = "(!.*ppc).*"
53*4882a593Smuzhiyun
54*4882a593SmuzhiyunBBCLASSEXTEND = "native nativesdk"
55