尝试在 Linux 中设置 PowerPC 交叉编译器,IBM float 错误

问题描述

我一直在尝试在运行 Arch Linux 的 amd64 核心 i7 机器上为 powerpc64(特别是 G5)设置交叉编译器。我一整天都在尝试设置它,但遇到了一些障碍。我一直在使用 this guide 来设置交叉编译器,但已将其用于 PowerPC。

我尝试设置的工具链有:

  • Linux 内核 5.4.80-gentoo-r1,我使用这个内核是因为我听说维护 ppc 变体的发行版通常有特殊的/从未上过的补丁,使一切都更有用。

  • binutils 2.35

  • gcc 10.2.0

  • glibc 2.32

到目前为止,我能够很好地安装内核头文件。我使用了命令:

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

很遗憾,我无法解决此问题。我尝试使用选项 --with-long-double-format=ibm 重建 gcc stage 1,但由于 G5 没有 IBM long doubles,因此构建失败。

# 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-gnupowerpc64-linux-gnupowerpc64-unkown-linux-gnu,但仍然出现错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)