DNS320、Fonzplug、NodeJS、Funplug,(DNS323,我原来的目标)似乎也适用于 sheeva 插件!!。
(感兴趣的是,323 编译需要大约 7.5 小时,而 320 需要 1 小时 3 分钟)
(同样在 1G8 Intel Linux (Debian) 上编译大约需要 15 分钟)
======================== 注意:在 fonz 插件上 - 您需要安装以下内容:
- 二进制工具
- 项目清单
- 内核头文件
- 包配置
- uclibc
- 海合会
- 制作
- 获取文本
- 修补
- 野牛
- 柔性
- 自动配置
- 汽车制造
======================== 那么你可以:
exported TMPDIR=/ffp/tmp (need this to put tmp files on HD not in memory!)
export CC='gcc -march=armv5t -mfloat-abi=softfp -fno-tree-sink -O0'
export CCFLAGS='-march=armv5t -mfloat-abi=softfp -fno-tree-sink -O0'
export CXX='g++ -march=armv5t -mfloat-abi=softfp -fno-tree-sink -O0'
export GCC='-march=armv5t -mfloat-abi=softfp -fno-tree-sink -O0'
./configure --prefix=/ffp --without-snapshot
......
make
.............
make install
笔记:
我有过使用 NodeJS 0.4.9 的经验 - 所以我一直在使用它 - 请继续阅读以了解原因!
实际上编译没有错误!但!
运行时 - 非法指令 - 弹出
这似乎是因为预计 V8 将在不是 arm 的主机上编译!
请参阅下面我找到的参考资料:(我花了 6 个月的时间才找到所有这些)有人在某个地方决定在 ARM 上运行是一个嵌入式环境,因此你永远不会在它上面编译!
有权威的人能解决这个问题吗!!!!!!!!!
我可以得到一个干净的编译,这说明它可以工作,但至少 V8 不想要我们呢????
原始说明:
https ://github.com/joyent/node/wiki/Installation
我还发现了什么:
http://code.google.com/p/v8/wiki/CrossCompilingForARM
http://code.google.com/p/v8/issues/detail?id=914
http://code.google.com/p/v8/issues/detail?id=1632&q=vfp%20off&colspec=ID%20Type%20Status%20Priority%20Owner%20Summary%20HW%20OS%20Area%20Stars
https://github.com/joyent/node/issues/1566
http://fastr.github.com/articles/Node.js-on-OpenEmbedded.html
http://freebsd.1045724.n5.nabble.com/problems-with-cvsup-on-FreeBSD-9-snapshot-201101-td4491053.html
http://code.google.com/p/v8/issues/detail?id=1446
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0133c/index.html
http://infocenter.arm.com/help/topic/com.arm.doc.qrc0007e/QRC0007_VFP.pdf
https://github.com/joyent/node/issues/1386
https://github.com/joyent/node/issues/2131
从这篇文章中,需要预先安装的 fonz 东西的最低安装:
http://www.shadowandy.net/2008/08/adding-compiling-capabilities-to-your-dns-323.htm
DNS323 - wiki 站点(新的??!!)
http://dns323.kood.org/dns-320
http://tsd.dlink.com.tw/downloads2008detail.asp (open source for dlink find dns then 320 - or 323 etc)
编译器选项:
http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
调试选项:
http: //gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
兴趣:
http://itrs.tw/wiki/Code_Sourcery_G%2B%2B_Lite
http://pandorawiki.org/Floating_Point_Optimization
http://wiki.debian.org/ArmHardFloatPort/VfpComparison
https://groups.google.com/group/nodejs-dev/browse_thread/thread/18bfc495b01e2f9b/8507143b5578ebf9#8507143b5578ebf9
http://stackoverflow.com/questions/6788768/cannot-build-node-on-sheevaplug-armv5t-with-debian-squeeze/6790823#6790823
http://www.plugcomputer.org/plugwiki/index.php/Scratchbox2_based_cross_compiling
为什么是 0.4.9,而不是 0.6.6?6.6 可能会在同一个地方出错,但错误提示 EABI 错误,Fonz 的编译器不理解 EABI。
我认为 V8 人员(或节点人员)已将错误描述符重新标记为 EABI,我对跟踪问题的了解不足。编译器还有很多其他可用的开关——我已经放弃了全部尝试(其他人似乎发现了同样的问题,他们比我知识渊博,所以我假设他们已经尝试了所有可用的开关可能会有所作为)。
有趣的是,V8 编译仅使用 CXXFLAGS 开关进行编译,而 NodeJS 的其余部分似乎使用我标记的其他!
另请注意,为了让快照运行它指向 /tmp - 无论我做什么, - 我最终将 /tmp 移动到 /tmp1,并且 ln -s /tmp /ffp/tmp 即
mv /tmp /tmp1
ln -s /tmp /ffp/tmp