⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 build-arm-linux-3.4.4

📁 arm linux交叉编译环境的搭建
💻 4
字号:
HOWTO build arm-linux toolchain for ARM/XSCALE----------------------------------------------These instructions document how to build an arm-linux tool chainthat contains both little-endian and big-endian target libraries.1. Packages used:    binutils-2.16.tar.gz    gcc-3.4.4.tar.gz    glibc-2.3.3.tar.gz    glibc-linuxthreads-2.3.3.tar.gz2. binutils-2.16   tar xvzf binutils-2.16.tar.gz   cd binutils-2.16   mkdir arm-linux   cd arm-linux   ../configure --target=arm-linux --with-lib-path=/usr/local/arm-linux/lib:/usr/local/arm-linux/lib/be:/usr/local/arm-linux/lib/soft-float:/usr/local/arm-linux/lib/be/soft-float   make   make install   chmod 777 /usr/local/arm-linux3. gcc-3.4.4   tar xvzf gcc-3.4.4.tar.gz   cd gcc-3.4.4   cp $(ATTACHED t-linux file) gcc/config/arm/   vi gcc/config/arm/linux-elf.h     -- remove line that defines LIBGCC_SPEC   mkdir arm-linux   cd arm-linux   ../configure --target=arm-linux --disable-shared --disable-threads \	--prefix=/usr/local --with-headers=linux-2.4.x/include \	--with-gnu-as --with-gnu-ld --enable-multilib --enable-languages=c   make   make install4. glibc-2.3.3 (big-endian)   tar xvzf glibc-2.3.3.tar.gz   cd glibc-2.3.3   tar xvzf glibc-linuxthreads-2.3.3.tar.gz   rm -rf nptl   vi sysdeps/unix/sysv/linux/arm/ioperm.c      - change "BUS_ISA" to be "CTL_BUS_ISA" lines 103 and 104   vi config.make.in      - change "slibdir = @...@" to "slibdir = @libdir@"   vi Makeconfig      - change all occurrances of "O2" to "O"      - remove any occurrances of -lgcc_eh   vi configure      - change all occurrances of "O2" to "O"   touch sysdeps/arm/framestate.c   mkdir arm-linux   cd arm-linux   CC="arm-linux-gcc -mbig-endian -finline-limit=10000" \   AS="arm-linux-as -mbig-endian" \   LD="arm-linux-ld -EB" \   ../configure --host=arm-linux --build=i686-pc-linux-gnu \	--with-headers=linux-2.4.x/include \	--enable-add-ons --enable-shared --prefix=/usr/local/arm-linux \	--libdir=/usr/local/arm-linux/lib/be   make   make install5. glibc-2.3.3 (little-endian)   tar xvzf glibc-2.3.3.tar.gz   cd glibc-2.3.3   tar xvzf glibc-linuxthreads-2.3.3.tar.gz   [ Apply same fixes as above ]   mkdir arm-linux   cd arm-linux   CC="arm-linux-gcc -finline-limit=10000" \   AS="arm-linux-as" \   LD="arm-linux-ld" \   ../configure --host=arm-linux --build=i686-pc-linux-gnu \	--with-headers=linux-2.4.x/include \	--enable-add-ons --enable-shared --prefix=/usr/local/arm-linux   make   make install6. glibc-2.3.3 (big-endian/soft-float)   tar xvzf glibc-2.3.3.tar.gz   cd glibc-2.3.3   tar xvzf glibc-linuxthreads-2.3.3.tar.gz   [ Apply same fixes as above ]   mkdir arm-linux   cd arm-linux   CC="arm-linux-gcc -mbig-endian -msoft-float -finline-limit=10000" \   AS="arm-linux-as -mbig-endian" \   LD="arm-linux-ld -EB" \   ../configure --host=arm-linux --build=i686-pc-linux-gnu \	--with-headers=linux-2.4.x/include \	--enable-add-ons --enable-shared --prefix=/usr/local/arm-linux \	--without-fp --libdir=/usr/local/arm-linux/lib/be/soft-float   make   make install7. glibc-2.3.3 (little-endian/soft-float)   tar xvzf glibc-2.3.3.tar.gz   cd glibc-2.3.3   tar xvzf glibc-linuxthreads-2.3.3.tar.gz   [ Apply same fixes as above ]   mkdir arm-linux   cd arm-linux   CC="arm-linux-gcc -msoft-float -finline-limit=10000" \   AS="arm-linux-as" \   LD="arm-linux-ld" \   ../configure --host=arm-linux --build=i686-pc-linux-gnu \	--with-headers=linux-2.4.x/include \	--enable-add-ons --enable-shared --prefix=/usr/local/arm-linux \	--without-fp --libdir=/usr/local/arm-linux/lib/soft-float   make   make install8. gcc-3.4.4 (c++, etc)   tar xvzf gcc-3.4.4.tar.gz   cd gcc-3.4.4   cp $(ATTACHED t-linux file) gcc/config/arm/   vi gcc/config/arm/t-linux        - remove all "-Dinhibit_libc" occruances   vi gcc/config/arm/linux-elf.h     -- remove line that defines LIBGCC_SPEC   perl -pi -e 's/int namelen/unsigned int namelen/' libjava/java/net/natInetAddressPosix.cc   mkdir arm-linux   cd arm-linux   ../configure --target=arm-linux --disable-shared \	--prefix=/usr/local --with-headers=linux-2.4.x/include \	--with-gnu-as --with-gnu-ld --enable-multilib   make   make install9. cd /   find /usr/local/arm-linux -name CVS -type d | xargs rm -rf   strip /usr/local/arm-linux/bin/*   strip /usr/local/bin/arm-linux-*   tar cvzf /tmp/arm-linux-tools-xxxxxxxx.tar.gz \	/usr/local/arm-linux \	/usr/local/lib/gcc/arm-linux \	/usr/local/include/c++/3.4.4 \	/usr/local/bin/arm-linux-* \	/usr/local/libexec/gcc/arm-linux/3.4.4 \	/usr/local/bin/genext2fs------------------------------------------------------------------------------APPENDIX A  --  modified t-linux for gcc-3.4.4------------------------------------------------------------------------------# Just for these, we omit the frame pointer since it makes such a big# difference.  It is then pointless adding debugging.TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC -Dinhibit_libc -D__gthr_posixLIBGCC2_DEBUG_CFLAGS = -g0# Don't build enquireENQUIRE=LIB1ASMSRC = arm/lib1funcs.asmLIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \	_bb_init_func _call_via_rX _interwork_call_via_rX \	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \	_fixsfsi _fixunssfsiMULTILIB_OPTIONS = mlittle-endian/mbig-endian mhard-float/msoft-floatMULTILIB_DIRNAMES = le be hard-float soft-floatEXTRA_MULTILIB_PARTS = crtbegin.o crtbeginS.o crtend.o crtendS.o crti.o crtn.oLIBGCC = stmp-multilibINSTALL_LIBGCC = install-multilibT_CFLAGS = -Dinhibit_libc -D__gthr_posix_h# Assemble startup files.$(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \	  -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/arm/crti.asm$(T)crtn.o: $(srcdir)/config/arm/crtn.asm $(GCC_PASSES)	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \	  -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/arm/crtn.asm------------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -