Adobe RMSDK is known to not honor foreign toolchains, and is not flexible to build under the platform's toolchain.
Like on other platforms, we have tried to find the winning solution in trial and error, but have been facing series of blocking problems in PB NDK v2 b3.
The latest and greates is an Adobe RM SDK cpp file (hyphenator.cpp) includes math.h which subsequently includes xtgmath.h. The build fails in that file, since it combines standard C calling convention and declaration and instantiation of template types. We can't reproduce it in CPP builds on NDK standard toolchain. We tried to resemble all defines (-D) like in the sample/new project CPP build as hard as we could, but to no avail.
The problem is a blocker. We're currently at DevCon Europe and discussed this problem with Suavek and Elena, but they adviced to post it to the forum.
Here is the build output:
Compiling hyphenator.cpp
PATH=/opt/bbndk-2.0.0-beta3/host/linux/x86/usr/bin:/opt/bbndk-2.0.0-beta3/host/linux/x86/usr/bin:/etc/rim/bbndk/bin:/opt/bbndk-2.0.0-beta3/host/linux/x86/usr/qde/eclipse/jre/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/testuser/.local/bin:/home/testuser/bin ntoarmv7-gcc -I/home/testuser/qnxrmsdk/hobbes/include -I/home/testuser/qnxrmsdk/hobbes/asapi -I/home/testuser/qnxrmsdk/hobbes/cssparser/Public -I/home/testuser/qnxrmsdk/hobbes/cssparser/Source -I/home/testuser/qnxrmsdk/hobbes/director/public -I/home/testuser/qnxrmsdk/hobbes/director/src -I/home/testuser/qnxrmsdk/hobbes/text/public -I/home/testuser/qnxrmsdk/hobbes/text/src/common -I/home/testuser/qnxrmsdk/hobbes/../embed/public -I/home/testuser/qnxrmsdk/hobbes/layout/public -I/home/testuser/qnxrmsdk/hobbes/../xml/mdom/public -I/home/testuser/qnxrmsdk/hobbes/mrend/public -I/home/testuser/qnxrmsdk/hobbes/splicer/public -I/home/testuser/qnxrmsdk/hobbes/splicer/src -I/home/testuser/qnxrmsdk/hobbes/style/public -I/home/testuser/qnxrmsdk/hobbes/t3rend/public -I/home/testuser/qnxrmsdk/hobbes/ncx/public -I/home/testuser/qnxrmsdk/hobbes/../xml/uft/public -I/home/testuser/qnxrmsdk/hobbes/../xml/wisdom/public -I/home/testuser/qnxrmsdk/hobbes/../xml/xpath/public -I/home/testuser/qnxrmsdk/hobbes/packaging/public -I/home/testuser/qnxrmsdk/hobbes/../xml/metadata/public -I/home/testuser/qnxrmsdk/hobbes/../embed/public -I/home/testuser/qnxrmsdk/hobbes/../embed/util/public -I/home/testuser/qnxrmsdk/hobbes/../t3/embed/public -I/home/testuser/qnxrmsdk/hobbes/../t3/source -I/home/testuser/qnxrmsdk/hobbes/../t3/source/thirdparty/aes/source -I/home/testuser/qnxrmsdk/hobbes/../t3/config -I/home/testuser/qnxrmsdk/hobbes/../thirdparty/xml/axe/public/include/expat -I/home/testuser/qnxrmsdk/hobbes/embed/public -I/home/testuser/qnxrmsdk/hobbes/../CryptUtils/Headers -I/home/testuser/qnxrmsdk/hobbes/../drm/adept/public -I/home/testuser/qnxrmsdk/hobbes/fonts/public -I/home/testuser/qnxrmsdk/hobbes/../t3/source/thirdparty/jp2k/source/common/inc -I/home/testuser/qnxrmsdk/hobbes/../t3/source/thirdparty/jp2k/public/include -I/home/testuser/qnxrmsdk/hobbes/../t3/source/thirdparty/jp2k/include -I/home/testuser/qnxrmsdk/hobbes/../t3/source/thirdparty/jp2k/source/enc/inc -I/home/testuser/qnxrmsdk/hobbes/../t3/source/thirdparty/jp2k/source/dec/inc -I/home/testuser/qnxrmsdk/hobbes/../t3/shared/public -I/home/testuser/qnxrmsdk/hobbes/../dp/public -I/home/testuser/qnxrmsdk/hobbes/../fonts/public -I/home/testuser/qnxrmsdk/hobbes/../cts/src/cts -I/home/testuser/qnxrmsdk/hobbes/../thirdparty/libhyphen/hyphen-2.4 -I/home/testuser/qnxrmsdk/hobbes/text/src/common -I/home/testuser/qnxrmsdk/hobbes/../thirdparty/zlib -I/home/testuser/qnxrmsdk/hobbes/../thirdparty/png/src -I/home/testuser/qnxrmsdk/hobbes/../thirdparty/libjpeg/sources -I/home/testuser/qnxrmsdk/build/make/arm_release_qnx-ndk/mschema -I/home/testuser/qnxrmsdk/build/make/arm_release_qnx-ndk/hobbes -Iopt/bbndk-2.0.0-beta3/target/qnx6/usr/include -DUFT_ATOM_COMPILE_TIME -DPXF_STATIC -DADOBE_ONLY -DDISABLE_ANTI_ALIASING_EXCEPT_TEXT -DLINUX_OS -DINCLUDE_DEFAULT_DESTRUCTORS -DxTETRAPHILIA_INSTRUMENTED_PIXELSTORAGE -DxTETRAPHILIA_INSTRUMENTED_ERROR -DxTETRAPHILIA_SIMULATE_EMBEDDED -DTETRAPHILIA_SUPPORTS_SCALED_REDRAW -DxTETRAPHILIA_USE_BLOCKED_STACK -DxTETRAPHILIA_FORCE_ALL_ALLOCS_TO_OS_MALLOC -DxTETRAPHILIA_INSTRUMENTED_LOG -DxTETRAPHILIA_INSTRUMENTED_STACK_DEPTH -DxTETRAPHILIA_SIMULATE_HTTP_DELAYS -DNOMINMAX -DxTETRAPHILIA_USE_CUSTOM_SETJMP -DxTETRAPHILIA_BUILD_FOR_VTUNE -DTETRAPHILIA_APP_TRAITS=T3AppTraits -DTETRAPHILIA_SUPPORT_JBIG2 -DNO_DEBUG_PTRS -DTETRAPHILIA_NO_EXPLICIT_ZLIB_PATH -DTETRAPHILIA_SUPPORT_JP2K_DLL -DJP2K_REAL_IS_FIXED -DJP2K_PREFIX="\"tetraphilia/imaging_model/tetrajpeg2kprefix.hpp\"" -DTETRAPHILIA_FILE_TRAITS_DEF="\"T3AppTraits.h\"" -DUNIX_ENV -DxTETRAPHILIA_SUPPORTS_APS -DxTETRAPHILIA_SUPPORTS_EBX -DxEDC_STATIC_LIB_BUILD -DNO_DEBUG_PTRS -DCTS_CLIENT_CONFIG=config/ClientConfig.rmsdk.h -D__GCC32__ -DUFT_MEMORY_DEBUG=0 -DNDEBUG -DOS=os_linux -DLINUX_ENV -DSUPPORT_JAPANESE -DSUPPORT_SIMPLIFIED_CHINESE -DSUPPORT_TRADITIONAL_CHINESE -DSUPPORT_KOREAN -DJAPANESE_GOTHIC_FONT_PATH=\"res:///fonts/RyoGothicPlusN-Medium.otf\" -DJAPANESE_MINCHO_FONT_PATH=\"res:///fonts/RyoGothicPlusN-Medium.otf\" -DSIMPLIFIED_CHINESE_GOTHIC_FONT_PATH=\"res:///fonts/AdobeHeitiStd-Regular.otf\" -DSIMPLIFIED_CHINESE_SONG_FONT_PATH=\"res:///fonts/AdobeHeitiStd-Regular.otf\" -DTRADITIONAL_CHINESE_GOTHIC_FONT_PATH=\"res:///fonts/AdobeMingStd-Light.otf\" -DTRADITIONAL_CHINESE_MING_FONT_PATH=\"res:///fonts/AdobeMingStd-Light.otf\" -DKOREAN_GOTHIC_FONT_PATH=\"res:///fonts/AdobeMyungjoStd-Medium.otf\" -DKOREAN_MING_FONT_PATH=\"res:///fonts/AdobeMyungjoStd-Medium.otf\" -DWESTERN_SERIF_FONT_PATH=\"res:///fonts/MinionPro-Regular.otf\" -DWESTERN_SERIF_BOLD_FONT_PATH=\"res:///fonts/MinionPro-Bold.otf\" -DWESTERN_SERIF_ITALIC_FONT_PATH=\"res:///fonts/MinionPro-It.otf\" -DWESTERN_SERIF_BOLD_ITALIC_FONT_PATH=\"res:///fonts/MinionPro-BoldIt.otf\" -DWESTERN_SANS_SERIF_FONT_PATH=\"res:///fonts/MyriadPro-Regular.otf\" -DWESTERN_SANS_SERIF_BOLD_FONT_PATH=\"res:///fonts/MyriadPro-Bold.otf\" -DWESTERN_SANS_SERIF_ITALIC_FONT_PATH=\"res:///fonts/MyriadPro-It.otf\" -DWESTERN_SANS_SERIF_BOLD_ITALIC_FONT_PATH=\"res:///fonts/MyriadPro-BoldIt.otf\" -DWESTERN_MONOSPACE_FONT_PATH=\"res:///fonts/CourierStd.otf\" -DWESTERN_MONOSPACE_BOLD_FONT_PATH=\"res:///fonts/CourierStd-Bold.otf\" -DWESTERN_MONOSPACE_OBLIQUE_FONT_PATH=\"res:///fonts/CourierStd-Oblique.otf\" -DWESTERN_MONOSPACE_BOLD_OBLIQUE_FONT_PATH=\"res:///fonts/CourierStd-BoldOblique.otf\" -DSYMBOL_FONT_PATH=\"res:///fonts/SymbolStd.otf\" -DTETRAPHILIA_SIMULATE_EMBEDDED -DUSE_FIXED_POINT -DTETRAPHILIA_USE_FIXED_POINT -DOPTIMIZE_MONOCHROME -DMAX_UNCOMPRESSED_CHAPTER_SIZE="4000*1024" -DMAX_COMPRESSED_CHAPTER_SIZE="1000*1024" -DMAX_UNBROKEN_CHAPTER_SIZE="200*1024" -DTARGET_CHAPTER_CHUNK_SIZE="150*1024" -DSTOP_LOAD_ON_CHAPTER_TOO_LONG -DBB_ENV -D_NO_EX -D__arm__ -D__ARM__ -D__cplusplus -D__DEPRECATED -D__ELF__ -D__GNUC__=4 -D__GNUC_MINOR__=4 -D__GNUC_PATCHLEVEL__=2 -D__NO_INLINE__ -D__QNX__ -D__QNXNTO__ -D__unix -D__unix__ -pipe -w -fsigned-char -fno-exceptions -fPIC -fno-rtti -fno-exceptions -fvisibility=hidden -s -O2 -fno-strict-aliasing -DNDEBUG -fno-rtti -c -I/home/testuser/qnxrmsdk/hobbes/text/src/cts -MMD -o /home/testuser/qnxrmsdk/build/make/arm_release_qnx-ndk/hobbes/hyphenator.o /home/testuser/qnxrmsdk/hobbes/text/src/cts/hyphenator.cpp
In file included from /opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/math.h:4,
from /home/testuser/qnxrmsdk/hobbes/../cts/src/cts/config/PlatformConfig.default.h:219,
from /home/testuser/qnxrmsdk/hobbes/../cts/src/cts/config/Config.h:36,
from /home/testuser/qnxrmsdk/hobbes/../cts/src/cts/cmn/CTS_CMN_Config.h:38,
from /home/testuser/qnxrmsdk/hobbes/../cts/src/cts/rt/CTS_RT_Behavior.h:25,
from /home/testuser/qnxrmsdk/hobbes/../cts/src/cts/rt/CTS_RT_Runtime.h:25,
from /home/testuser/qnxrmsdk/hobbes/text/src/cts/hyphenator.cpp:22:
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:116: error: template with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:150: error: template with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:157: error: template with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:163: error: template specialization with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:200: error: template with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:207: error: template specialization with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:212: error: template specialization with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:218: error: template with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:224: error: template specialization with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:229: error: template specialization with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:234: error: template specialization with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:239: error: template specialization with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:245: error: template with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:251: error: template specialization with C linkage
/opt/bbndk-2.0.0-beta3/target/qnx6//usr/include/xtgmath.h:256: error: template specialization with C linkage