Hello all, I am working on Node.JS's OpenEmbedded support for a project here, test platform is Yocto "danny"/armv7a-vfp-neon-poky-linux-gnueabi/OMAP3730.
So far I have updated the recipe to v0.8.15 and it builds, compiles, and runs node correctly, with support for npm and pure js libraries. I plan to post this back to OE-core once I clean up the recipe, but I am trying to get native builds working to build at least node-sqlite3 for our application. I would really like to build the libraries in the OpenEmbedded cross-compile environment and not on the target device itself, like what was posted here http://fastr.github.com/articles/Node.js-on-OpenEmbedded.html . I have made lots of progress on this, up to the point where it cross-builds the library for ARM with node-gyp. This required a bit of hacking on node-gyp, using native gyp instead of the one included with node, and some differences in the way node-gyp handles paths, since they are being run out of the cross-compile environment directory instead of relative to / . Unfortunately the library that is getting built doesn't work in the target environment: root@device:/usr/lib/node_modules/npm/node_modules/sqlite3# node > var sqlite3 = require('./node-sqlite3.node').verbose(); Error: /usr/lib/node_modules/npm/node_modules/sqlite3/node-sqlite3.node: undefined symbol: init at Object.Module._extensions..node (module.js:485:11) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:362:17) at require (module.js:378:17) at repl:1:15 at REPLServer.self.eval (repl.js:109:21) at rli.on.self.bufferedCmd (repl.js:258:20) at REPLServer.self.eval (repl.js:116:5) at Interface.<anonymous> (repl.js:248:12) > My question is, what are the steps from here? I'm not really familiar with the internals of node libraries or node-gyp to know what is not working. I can provide the built object or an armv7a node if it would help... Looking at an objdump of the module, it doesn't look like there is an init... venture@embedded-dev:/home/yocto-danny/poky/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/node-sqlite3-git-r5/git/build/Release$ $OBJDUMP -t node_sqlite3.node | grep -i init 00009f50 l d .init 00000000 .init 000a9370 l d .init_array 00000000 .init_array 000a9370 l O .init_array 00000000 __frame_dummy_init_array_entry 0001cf24 l F .text 00000008 sqlite3MemInit 0001d018 l F .text 00000008 noopMutexInit 0001d044 l F .text 00000008 pthreadMutexInit 00020f90 l F .text 000000a8 sqlite3VdbeIntegerAffinity 000219a8 l F .text 00000084 applyNumericAffinity 00021ea4 l F .text 000000b4 sqlite3ExprNeedsNoAffinityChange 0002225c l F .text 00000150 sqlite3AffinityType 000223ac l F .text 00000080 sqlite3ExprAffinity 0002242c l F .text 00000044 sqlite3CompareAffinity 00022470 l F .text 00000058 comparisonAffinity 000224c8 l F .text 00000044 sqlite3IndexAffinityOk 0002a084 l F .text 0000009c sqlite3TableAffinityStr 0002ce4c l F .text 000000b4 sqlite3IndexAffinityStr.clone.111 00033ad4 l F .text 000000e4 codeApplyAffinity 000373ac l F .text 00000074 nodeReaderInit 0003e670 l F .text 00000218 btreeInitPage 0003e888 l F .text 0000002c pageReinit 00046cc0 l F .text 00000060 applyAffinity 0004bee4 l F .text 000001c8 sqlite3Fts3InitTokenizer 0004d144 l F .text 00000074 pcache1Init 00051134 l F .text 00000054 getAndInitPage 000718b4 l F .text 000001b0 sqlite3InitCallback 00085a88 l F .text 000000ac fts3ExprTermOffsetInit 00077858 l F .text 000004dc rtreeInit 00077e74 l F .text 000004b0 sqlite3InitOne 00078324 l F .text 00000100 sqlite3Init 00081d8c l F .text 00001254 fts3InitVtab 0001bf04 w F .text 000000f4 _ZNSt11_Deque_baseIPN12node_sqlite39Statement4CallESaIS3_EE17_M_initialize_mapEj 0004d284 g F .text 00000044 sqlite3_os_init 0005e464 g F .text 00000150 sqlite3_backup_init 00000000 *UND* 00000000 uv_async_init 00000000 *UND* 00000000 pthread_mutexattr_init 000116d8 g F .text 000001bc _ZN12node_sqlite39Statement4InitEN2v86HandleINS1_6ObjectEEE 00000000 F *UND* 00000000 pthread_mutex_init@@GLIBC_2.4 0000b8e0 g F .text 000001ec _ZN12node_sqlite38Database4InitEN2v86HandleINS1_6ObjectEEE 00031308 g F .text 000005dc sqlite3_initialize 0000f374 w F .text 000000f4 _ZNSt11_Deque_baseIPN12node_sqlite38Database4CallESaIS3_EE17_M_initialize_mapEj 00009f50 g F .init 00000000 _init Thanks, Kevin Baker -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
