我一直在尝试在运行Arch Linux的amd64核i7机器上为powerpc64(特别是G5)设置一个交叉编译器。我一整天都在尝试设置这个,但遇到了一些障碍。我一直在使用
this guide
关于设置交叉编译器,但已将其改编为PowerPC。
我尝试设置的工具链有:
到目前为止,我能够很好地安装Kernel头文件。我使用了以下命令:
export TARGET=powerpc64-g5-elf
export PREFIX=/usr/local/$TARGET
export PATH=$PATH:$PREFIX/bin
export SYSROOTDIR=$PREFIX/powerpc64-g5-linux-glibc/sysroot
make g5_defconfig
sudo make ARCH=powerpc INSTALL_HDR_PATH=$SYSROOTDIR/usr headers_install
之后,我构建并安装了stage-1 gcc:
../gcc-10.2.0/configure --target=powerpc64-g5-linux-gnu \
--disable-fast-install \
--with-endian=big \
--disable-werror \
--disable-multilib \
--enable-languages=c \
--prefix=$PREFIX \
--without-headers \
--enable-shared \
--without-newlib \
--disable-c99 \
--with-sysroot=$SYSROOTDIR
make all-gcc -j6
sudo make install-gcc
这构建得很好。现在到glibc。。。
../glibc-2.32/configure --target=powerpc64-g5-linux-gnu \
--build=x86_64-pc-linux-gnu \
--host=powerpc64-g5-linux-gnu \
--with-headers=$SYSROOTDIR/usr/include \
--prefix=$PREFIX \
--disable-werror
这是我得到错误的时候:
configure: error: this configuration requires -mlong-double-128 IBM extended format support
遗憾的是,我未能解决这个问题。我尝试使用选项重建gcc第1阶段
--with-long-double-format=ibm
,但后来构建失败了,因为G5没有IBM的长期翻倍。
# Despite saying "configure error" this happens at build time
configure: error: Configuration option --with-long-double-format is only supported if the default cpu is power7 or newer
我也试过了
--with-long-double-128
,gcc将构建,但glibc仍抱怨需要IBM浮点数。出于好奇,我将gcc目标更改为
powerpc64-power7-linux-gnu
,
powerpc64-linux-gnu
,以及
powerpc64-unkown-linux-gnu
,我仍然得到了错误。