本文主要描述了
从开源社区下载源代码软件包在x86平台上创建飞腾CPU交叉编译环境利用交叉编译环境编译FT2000+/64服务器的内核Host主机平台:x86_64 Target目标平台:飞腾CPU
在x86_64上利用交叉编译环境配置、编译一个dummy.c程序
定义环境变量 ROOT=pwd export PREFIX=$ROOT/project export HDR_PATH=$PREFIX/usr export TARGET=aarch64-linux export TARGET_PREFIX=$PREFIX/$TARGET export PATH=$PREFIX/bin:$PATH
创建基本目录 mkdir -v $PREFIX mkdir -v $HDR_PATH
源代码工作
binutils tar xf ./binutils-2.35.tar.xz mkdir -v ./binutils-2.35/build gcc tar xf ./gcc-10.2.0.tar.xz mkdir -v ./gcc-10.2.0/build sed -e '/m64=/s/lib64/lib/' -i.orig ./gcc-10.2.0/gcc/config/i386/t-linux64 tar xf ./mpfr-3.1.4.tar.bz2 mv ./mpfr-3.1.4 ./gcc-10.2.0/mpfr tar xf ./mpc-1.0.3.tar.gz mv ./mpc-1.0.3 ./gcc-10.2.0/mpc tar xf ./gmp-6.1.0.tar.bz2 mv ./gmp-6.1.0 ./gcc-10.2.0/gmplinux tar xf ./linux-4.19.149.tar.xzglibc tar xf ./glibc-2.32.tar.xz mkdir -v ./glibc-2.32/build../configure --prefix=$PREFIX \ --with-sysroot=$PREFIX \ --target=$TARGET \ --disable-nls \ --disable-werror make -j 4 make install
../configure --target=$TARGET \ --prefix=$PREFIX \ --with-glibc-version=2.32 \ --with-sysroot=$PREFIX \ --with-newlib \ --without-headers \ --enable-initfini-array \ --disable-nls \ --disable-shared \ --disable-multilib \ --disable-decimal-float \ --disable-threads \ --disable-libatomic \ --disable-libgomp \ --disable-libquadmath \ --disable-libssp \ --disable-libvtv \ --disable-libstdcxx \ --enable-languages=c,c++
make -j 4 make install cat ../gcc/limitx.h ../gcc/glimits.h ../gcc/limity.h > $PREFIX/lib/gcc/aarch64-linux/10.2.0/install-tools/include/limits.h
make mrproper make ARCH=arm64 INSTALL_HDR_PATH=$HDR_PATH headers_install
../configure --prefix=/usr \ --host=$TARGET \ --with-sysroot=$PREFIX \ --build=$(../scripts/config.guess) \ --enable-kernel=4.19 \ --with-headers=$HDR_PATH/include \ libc_cv_slibdir=/lib
make make DESTDIR=$PREFIX install
建立一个最简单的c语言程序dummy.c int main() { } 用交叉编译命令aarch64-linux-gcc dummy.c来验证 如果发生错误请用aarch64-linux-gcc -v dummy.c来查找问题
