"Kandroid Toolchain" is Development tool for compiling android kernel and system libraries
(ex: webkit, sqlite, libc, Etc) in android softwar stack for kandroid.org members.
This Toolchain is a collection of software tools used for the development and building of software
for a particular target architecture like ARM.
[common]Kandroid Toolchain Ver.20090108 for Cortex-A8
ㆍ작성자
인베인
ㆍ작성일
2009-10-08 (목) 11:05
ㆍ추천: 0 ㆍ조회: 8271
ㆍIP: 202.xxx.254
안드로이드 커널 및 시스템 라이브러리 (예: libc , webkit , sqlite , etc), 기존 C/++ 코드 재사용을 위한 처지에 있는 분들이 안드로이드용 툴체인을 반드시 사용해야 되는 경우에 해당될것으로 알고 있습니다. 아래의 툴체인을 사용하시면서 버그 및 문제 사항들을 댓글로 올려 주시면 신속히 조치 및 의견을 드리겠습니다. 제작된 본 툴체인으로 arm cortex-a8 이상의 타겟보드에서 테스트를 마쳤습니다.
Kandroid Toolchain Ver.20090108 for Cortex-A8 ---------------------------------------------
1. Definition
"Kandroid Toolchain" is Development tool for compiling android kernel and system libraries (ex: webkit, sqlite, libc, Etc) in android software stack for kandroid.org members. This Tool-chain is a collection of software tools used for the development and building of software for a particular target architecture like ARM.
2. Goal -Easy to Use (Just decompress using tar command) -EABI Support ( ABI Compatibility ) -Support various compiler like gcc , g++ -The recent opensource version to reduce gap between versions. -NPTL Thread Model (Kernel Requirement : FUTEX , EPOLL) -Hard Floating Point is default setting(Hard-Float). -Little Endian is default setting. -Support MPFR for multiple-precision floating-point computations with correct rounding. -Include GDB, Strace for Fast Debugging and Tuning
3. Package Version information
-Supported DesktopLinux : Fedora cor 6+ , CentOS 5.X , Ubuntu 8.04.X (official linux distributionn for android) -Target : arm-cortex_a8-linux-gnueabi -gcc version : 4.4.0 -libc : glibc (GNU C Library) 2.11 uClibc 0.90.3 -binutils version : 2.19.1 -kernel headers : 2.6.27 -float support : hard-float (If have some problems, Use the options -mfpu=vfp{vfp|vfp3|neon} -mfloat-abi=softfp to enable VFP instructions. ) -Multiple-precision: . GMP 4.3.1 (LGPL) : Gnu Multiple Precision arithmetic library (http://gmplib.org/manual/ ) . MPFR 2.4.1 (LGPL) : C library for multiple-precision floating-point computations (http://www.mpfr.org/) -Threading model : NPTL(Native Posix Thread Library) -Misc : GDB 6.8, strace 4.5.18 , ltrace 0.5.2 , DUMA(Detect Unintended Memory Access) 2.5.15 , dmalloc 5.5.2 -Release history 2009.10.08 1st release 2010.01.08 2nd release -Source list: .binutils-2.19.1.tar.bz2 (a collection of binary tools like ld,as,ar,objdump) .cloog-ppl-0.15.7.tar.gz (library to generate code for scanning Z-polyhedra) .dmalloc-5.5.2.tgz (Debug Malloc Library) .duma_2_5_15.tar.gz (Detect Unintended Memory Access) .gcc-4.4.3.tar.bz2 (GNU compiler collection) .gdb-7.0.1.tar.bz2 (GNU Debugger) .glibc-2.11.tar.bz2 (GNU C library) .glibc-ports-2.11.tar.bz2 (ports for GNU C library) .gmp-4.3.1.tar.bz2 (Gnu Multiple Precision arithmetic library) .libelf-0.8.11.tar.gz (library to read, modify or create ELF files in an architecture-independent way.) .linux-2.6.27.45.tar.bz2 ( Linux kernel to build cross toolchain) .ltrace-0.5.2.tar.gz (intercepts and records dynamic library calls) .mpc-0.8.1.tar.gz (C library for the arithmetic of complex numbers) .mpfr-2.4.2.tar.bz2 (C library for multiple-precision floating-point computations) .ncurses-5.7.tar.gz (software emulation of curses in System) .ppl-0.10.2.tar.bz2 (The Parma Polyhedra Library) .sstrip.c (a small utility that removes a few bytes from an executable) .strace-4.5.18.tar.bz2 (a system call tracer)
Ok. It's finished installation android tool-chain successfully. Enjoy!
8. Bug Report or Contacts Use http://kandroid.org website or leemgs@gmail.com For example, Compile your android kernel source or system libraries with this android toolchain.
9. Ref -gcc 4.4 depends on mpfr>=2.4.1
10. Kandroid Toolchain's Merits against other toolcahin - This is analysis contents based on Android perflab(Google) benchmark results,
2). Size: • Both gcc-4.4.1 & gcc-4.4.0: 17.5% improvement • Both gcc-4.3.3 & gcc-4.3.3 based Toolchain Version: 15% better • gcc-4.3.1: 3% improvement
3). Performance: No significant variance among many toolchains. • gcc-4.4’s size benefit comes with no performance penalty
4). Kandroid’s strength: Addressing ARM’s hardware errata early. We then port the fixes to gcc-4.4.0 • gcc-4.4 wins : Toolchain moved to 4.4 now.
11. Todo
- Support ltrace for glibc api and user libraries tracing - Extensible cross languages like ada , object C ,object C++ - --enable-thread-safe option problem of MPFR configure command. - I have to improve floating point caculation by default.
Cortex-A8코어를 사용하는 스냅샷드랜곤 개발보드 또는 이 계열의 개발보드에서 커널 소스 및 C/C++ 오픈소스가 정상적으로 동작되는 것을 확인하였습니다. 사용중에 문제가 있으신분은 언제든지 댓글 문의 환영하옵니다.
인베인
2010-01-08 11:55
Cortex-A8 툴체인을 업데이트 하였습니다. 업데이트된 이번 버젼부터는 Fedor core 6이상의 사용자들에게 지원이 되도록 하였습니다. 그리고 numerical abstractions을 위한 Parma Polyhedra 라이브러리를 추가하였습니다.
*Before: Fedora 11이상버젼 (Only) 리눅스 배포판 지원
* After : Fedora 6이상버젼 and CentOS 5.4 리눅스 배포판 지원
인베인
현재 릴리즈한 툴체인을 이용하여 성능 비교를 해본 결과 기존 안드로이드 툴체인 및 코드소스리툴체인에 비해서 9~ 16%의 성능우위를 확인하였씁니다. 제품개발자들에게 도움이 되시길 바라며...
1/8 17:06
챨리권
2010-01-08 15:27
진정 이렇게 묵묵히 바닥을 다지시는분이 계시기에 그위에 개발자들이 꽃을 피울수 있는거겠죠.. 모든 오픈소스 공헌자들에게 다시한번 경의를 표하는 바입니다.
인베인
간신히 허둥지둥하고 있는 수준이라 어찌할바를 모르겠사옵니다.
1/8 17:04
인베인
2010-01-09 19:11
cortex-a8 를 위한 "arm-cortex_a8-linux-gnueabi-20100108.1030.tar.bz2" 버젼부터는 ubuntu 8.04을 추가로 정상 지원합니다. ( 페도라/레드헷만 지원하려다가, 안드로이드의 공식권장 리눅스 배포판이 우분투 8.04인 관계로 효과적으로 이용할수 있기 위해서 . . . . . . . . . . )