Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Native Development

Reply
New Contributor
respiro
Posts: 3
Registered: ‎02-07-2012
My Device: PlayBooks 1 and 2
My Carrier: Orange Israel

Building native dynamic library with a non-standard toolchain (Adobe RM SDK)

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



Please use plain text.
Developer
BGmot
Posts: 1,068
Registered: ‎11-24-2011
My Device: PlayBook
My Carrier: x

Re: Building native dynamic library with a non-standard toolchain (Adobe RM SDK)

Compile command looks crazy.

1) Why don't you start with something more simple like compiling from command line with 'default' settings:

qcc -V4.4.2,gcc_ntoarmv7le -w1 -I/Developer/SDKs/bbndk-1.0/target/qnx6/usr/include/freetype2 -I/Developer/SDKs/bbndk-1.0/target/qnx6/../target-override/usr/include -D_FORTIFY_SOURCE=2 -c -O2 -fstack-protector-all -fPIE -o hyphenator.o hyphenator.cpp

 2) anyway, how does all #include ... look like in hyphenator.cpp? can you post it here?

Please use plain text.
New Contributor
respiro
Posts: 3
Registered: ‎02-07-2012
My Device: PlayBooks 1 and 2
My Carrier: Orange Israel

Re: Building native dynamic library with a non-standard toolchain (Adobe RM SDK)

The file's include tree is too big to paste here, and the code is licensed from Adobe. Can I send it via e-mail?

Please use plain text.
Developer
BGmot
Posts: 1,068
Registered: ‎11-24-2011
My Device: PlayBook
My Carrier: x

Re: Building native dynamic library with a non-standard toolchain (Adobe RM SDK)

Sure. I've sent you a message with my e-mail address.

Please use plain text.
New Contributor
respiro
Posts: 3
Registered: ‎02-07-2012
My Device: PlayBooks 1 and 2
My Carrier: Orange Israel

Re: Building native dynamic library with a non-standard toolchain (Adobe RM SDK)

Please re-send, can't find anything from you

Please use plain text.
Developer
BGmot
Posts: 1,068
Registered: ‎11-24-2011
My Device: PlayBook
My Carrier: x

Re: Building native dynamic library with a non-standard toolchain (Adobe RM SDK)

Click on the envelope sign at the top of this page -)
Please use plain text.
New Member
Zahira1
Posts: 1
Registered: ‎04-16-2012
My Device: 10.10
My Carrier: ATT

Re: Building native dynamic library with a non-standard toolchain (Adobe RM SDK)

Hello,

 

I am wondering if you have found the solution to your problem. I am having the same problem with the QNX compiler.

Thanks,

-Zahira

Please use plain text.