代码之家  ›  专栏  ›  技术社区  ›  ryan

试图在Linux中设置PowerPC交叉编译器,IBM浮点错误

  •  1
  • ryan  · 技术社区  · 3 年前

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

    我尝试设置的工具链有:

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

    • binutils 2.35

    • 通用条款10.2.0

    • glibc 2.32

    到目前为止,我能够很好地安装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 ,我仍然得到了错误。

    0 回复  |  直到 3 年前