Difference between revisions of "Platform:Other"
Jump to navigation
Jump to search
(As suggested by Stefan Urbanek...) |
m (Add category) |
||
Line 136: | Line 136: | ||
References: http://lists.gnu.org/archive/html/discuss-gnustep/2005-02/msg00124.html | References: http://lists.gnu.org/archive/html/discuss-gnustep/2005-02/msg00124.html | ||
+ | |||
+ | |||
+ | [[Category:Development]] |
Revision as of 15:56, 2 September 2006
LiveCD for Intel
Current version is 0.9.4.2
Find the instructions to install and the CD itself here
Linksys NSLU2
- First thing need to happen is to gnerate a gcc cross compiler with objc enabled.
Current nslu2 supported gcc only has c and c++ enabled when building the crosstool-native package.
- check out unslung source using follow command.
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/nslu co unslung
- add in objc as language need to be enabled.
perl -pi -e 's!^GCC_LANGUAGES=.*!GCC_LANGUAGES="c,c++,objc"!' toolchain/crosstool/nslu2-cross335.sh perl -pi -e 's!^GCC_LANGUAGES=.*!GCC_LANGUAGES="c,c++,objc"!' sources/crosstool-native/nslu2-native335.sh
- Compile cross-compiler for arm cpu using gcc compiler on debian 3.1 linux.
tjyang@debian:~/unslung$ pwd /home/tjyang/unslung tjyang@debian:~/unslung$ rm toolchain/crosstool/.configured tjyang@debian:~/unslung$ rm toolchain/crosstool/.built tjyang@debian:~/unslung$ unset LD_LIBRARY_PATH tjyang@debian:~/unslung$make toolchain
- A arm gcc with objective-C enabled.
/export/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/bin/armv5b-softfloat-linux-gcc -v Reading specs from /export/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/lib/gcc-lib/armv5b-softfloat-linux/3.3.5/specs Configured with: /export/home/tjyang/slug/unslung/toolchain/crosstool/build/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/gcc-3.3.5/configure --target=armv5b-softfloat-linux --host=i686-host_pc-linux-gnu --prefix=/export/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5 --with-float=soft --with-cpu=xscale --enable-cxx-flags=-mcpu=xscale --with-headers=/export/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/armv5b-softfloat-linux/include --with-local-prefix=/export/home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/armv5b-softfloat-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++,objc --enable-shared --enable-c99 --enable-long-long Thread model: posix gcc version 3.3.5 [tjyang@dual unslung]$
- A simple test of objc on host linux machine.
[tjyang@dual bin]$ pwd /home/tjyang/slug/unslung/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/armv5b-softfloat-linux/bin [tjyang@dual bin]$ [tjyang@dual bin]$ cat helloworld.m #include <stdio.h> int main(void) { printf("Hello World\n"); } [tjyang@dual bin]$ ./gcc helloworld.m -lobjc -o helloworld [tjyang@dual bin]$ file helloworld hellow: ELF 32-bit MSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.3, dynamically linked (uses shared libs), not stripped [tjyang@dual bin]$ uname -a Linux dual 2.4.21-9.ELsmp #1 SMP Thu Jan 8 17:08:56 EST 2004 i686 i686 i386 GNU/Linux [tjyang@dual bin]$
- Second step is to use this cross-compiler which generate binaries code for armb cpu to compile a native compiler. This complier can only be run on native machine nslu2 not on Intel linux.
[tjyang@dual unslung]$ make crosstool-native;make crosstool-native-ipk [tjyang@dual unslung]$ ls -lrt builds/*.ipk -rw-rw-r-- 1 tjyang tjyang 5569523 Feb 17 13:32 builds/crosstool-native-bin_0.28-rc37-3_armeb.ipk -rw-rw-r-- 1 tjyang tjyang 12677163 Feb 17 13:33 builds/crosstool-native-lib_0.28-rc37-3_armeb.ipk -rw-rw-r-- 1 tjyang tjyang 1722660 Feb 17 13:33 builds/crosstool-native-inc_0.28-rc37-3_armeb.ipk -rw-rw-r-- 1 tjyang tjyang 7049858 Feb 17 13:34 builds/crosstool-native-arch-bin_0.28-rc37-3_armeb.ipk -rw-rw-r-- 1 tjyang tjyang 9032668 Feb 17 13:34 builds/crosstool-native-arch-lib_0.28-rc37-3_armeb.ipk -rw-rw-r-- 1 tjyang tjyang 7483945 Feb 17 13:35 builds/crosstool-native-arch-inc_0.28-rc37-3_armeb.ipk -rw-rw-r-- 1 tjyang tjyang 1058 Feb 17 13:35 builds/crosstool-native_0.28-rc37-3_armeb.ipk [tjyang@dual unslung]$ cp /export/home/tjyang/slug/unslung/builds/*.ipk /disk76/nslu2/tmp/ [tjyang@dual unslung]$ login into your nslu2, cd to where the ipk packages are. run following commands. bash-2.05b# for i in *.ipk > do > ipkg -force-overwrite install $i > done Upgrading crosstool-native-arch-bin on root from 0.28-rc37-3 to 0.28-rc37-5... Configuring crosstool-native-arch-bin Upgrading crosstool-native-arch-inc on root from 0.28-rc37-3 to 0.28-rc37-5... Configuring crosstool-native-arch-inc Upgrading crosstool-native-arch-lib on root from 0.28-rc37-3 to 0.28-rc37-5... Configuring crosstool-native-arch-lib Upgrading crosstool-native-bin on root from 0.28-rc37-3 to 0.28-rc37-5... Configuring crosstool-native-bin Upgrading crosstool-native-inc on root from 0.28-rc37-3 to 0.28-rc37-5... Configuring crosstool-native-inc Upgrading crosstool-native-lib on root from 0.28-rc37-3 to 0.28-rc37-5... Configuring crosstool-native-lib Upgrading crosstool-native on root from 0.28-rc37-3 to 0.28-rc37-5... Configuring crosstool-native bash-2.05b# date Sat Feb 19 01:04:07 CST 2005 bash-2.05b#
- try to compile helloworld.m objective-C file and run the helloworld binary on nslu2.
bash-2.05b# gcc helloworld.m -lobjc -o helloworld bash-2.05b# file helloworld helloworld: ELF 32-bit MSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.3, dynamically linked (uses shared libs), not stripped bash-2.05b# ./helloworld ./helloworld: error while loading shared libraries: libobjc.so.1: cannot open shared object file: No such file or directory bash-2.05b# libobjc.so.1 is in /opt/armeb/armv5b-softfloat-linux/lib, this path need to be in LD_LIBRARY_PATH. bash-2.05b# ./helloworld Hello World bash-2.05b# uname -a Linux LKG7BFA96 2.4.22-xfs #1 Sat Jan 1 21:34:54 HST 2005 armv5b unknown unknown GNU/Linux bash-2.05b# date Thu Feb 17 11:35:19 CST 2005 bash-2.05b# cat compile.sh /opt/armeb/armv5b-softfloat-linux/bin/gcc helloworld.m -o helloworld -lobjc bash-2.05b# cat /etc/profile PATH=/opt/bin:/share/hdd/data/public/nslu2/tjyang/unslung/staging/bin:${PATH} TERM=xterm export LD_LIBRARY_PATH=/opt/lib:/lib:/opt/armeb/armv5b-softfloat-linux/lib export PATH TERM bash-2.05b#
- Using Objective-C enalbed gcc to compile gnustep-core,gnustep-* software.
- more strong testing is needed. please add instructon below if you know how to run objective-c's testsuite in crosstool.
References: http://lists.gnu.org/archive/html/discuss-gnustep/2005-02/msg00124.html