如何在 cygwin 中构建 soft-float newlib?
How to build soft-float newlib in cygwin?
我无法将 -mfloat-abi 的默认值从 hard
更改为 soft
for newlib.
这是我如何配置 bintutils
../configure --target=$ARMTARGET --prefix=$TOOLPATH
--enable-interwork --enable-multilib --with-gnu-as
--with-gnu-ld --disable-nls --disable-werror --with-float=soft
--enable-soft-float
gcc
../configure --target=$ARMTARGET --prefix=$TOOLPATH
--enable-interwork --enable-multilib --enable-languages="c,c++"
--with-newlib --without-headers --disable-shared
--with-gnu-as --with-gnu-ld --with-float=soft --enable-soft-float
--disable-nls --with-gmp=$TOOLPATH --with-mpfr=$TOOLPATH
--with-mpc=$TOOLPATH --enable-obsolete
和newlib
../configure --target=$ARMTARGET --prefix=$TOOLPATH
--enable-interwork --disable-newlib-supplied-syscalls
--with-gnu-ld --with-gnu-as --disable-shared
--with-float=soft --enable-soft-float --disable-nls
--enable-newlib-io-long-long --enable-newlib-io-long-double
--enable-newlib-io-c99-formats
错误日志
..........
arm-softfloat-elf-gcc -B/home/Shadmanov_D/newlib-1.20.0/build/arm-softfloat- elf/fpu/newlib/
-isystem /home/Shadmanov_D/newlib-1.20.0/build/arm-softfloat-elf/fpu/newlib/targ-include -isystem /home/Shadmanov_D/newlib-1.20.0/newlib/libc/include
-B/home/Shadmanov_D/newlib-1.20.0/build/arm-softfloat-elf/fpu/libgloss/arm
-L/home/Shadmanov_D/newlib-1.20.0/build/arm-softfloat-elf/fpu/libgloss/libnosys -L/home/Shadmanov_D/newlib-1.20.0/libgloss/arm
-mfloat-abi=hard -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\" -DPACKAGE_VERSION=\"1.20.0\" -DPACKAGE_STRING=\"newlib\ 1.20.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I.
-I../../../../../../newlib/libc/argz -D__NO_SYSCALLS__
-fno-builtin -g -O2 -mfloat-abi=hard -c -o lib_a-dummy.o
`test -f 'dummy.c' || echo '../../../../../../newlib/libc/argz/'`dummy.c
Assembler messages:
Error: hard-float conflicts with specified fpu
感谢任何帮助!!
检查 arm-elf 目标的 multilib 配置文件,它位于 ${GCC_SRC_DIR}/gcc/config/arm/t-arm-elf
更改以下行(它们从我拥有的 GCC 版本 4.6.4 的第 56 行开始):
MULTILIB_OPTIONS += mfloat-abi=hard
MULTILIB_DIRNAMES += fpu
MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
至:
MULTILIB_OPTIONS += mfloat-abi=soft
MULTILIB_DIRNAMES += soft
更改后,重新配置并重新编译gcc。
如果此过程不能解决问题,请提供
- 您正在使用的 GCC 版本
- 你的 t-arm-elf 文件
- 命令的输出
arm-softfloat-elf-gcc -print-multi-lib
我无法将 -mfloat-abi 的默认值从 hard
更改为 soft
for newlib.
这是我如何配置 bintutils
../configure --target=$ARMTARGET --prefix=$TOOLPATH
--enable-interwork --enable-multilib --with-gnu-as
--with-gnu-ld --disable-nls --disable-werror --with-float=soft
--enable-soft-float
gcc
../configure --target=$ARMTARGET --prefix=$TOOLPATH
--enable-interwork --enable-multilib --enable-languages="c,c++"
--with-newlib --without-headers --disable-shared
--with-gnu-as --with-gnu-ld --with-float=soft --enable-soft-float
--disable-nls --with-gmp=$TOOLPATH --with-mpfr=$TOOLPATH
--with-mpc=$TOOLPATH --enable-obsolete
和newlib
../configure --target=$ARMTARGET --prefix=$TOOLPATH
--enable-interwork --disable-newlib-supplied-syscalls
--with-gnu-ld --with-gnu-as --disable-shared
--with-float=soft --enable-soft-float --disable-nls
--enable-newlib-io-long-long --enable-newlib-io-long-double
--enable-newlib-io-c99-formats
错误日志
..........
arm-softfloat-elf-gcc -B/home/Shadmanov_D/newlib-1.20.0/build/arm-softfloat- elf/fpu/newlib/
-isystem /home/Shadmanov_D/newlib-1.20.0/build/arm-softfloat-elf/fpu/newlib/targ-include -isystem /home/Shadmanov_D/newlib-1.20.0/newlib/libc/include
-B/home/Shadmanov_D/newlib-1.20.0/build/arm-softfloat-elf/fpu/libgloss/arm
-L/home/Shadmanov_D/newlib-1.20.0/build/arm-softfloat-elf/fpu/libgloss/libnosys -L/home/Shadmanov_D/newlib-1.20.0/libgloss/arm
-mfloat-abi=hard -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\" -DPACKAGE_VERSION=\"1.20.0\" -DPACKAGE_STRING=\"newlib\ 1.20.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I.
-I../../../../../../newlib/libc/argz -D__NO_SYSCALLS__
-fno-builtin -g -O2 -mfloat-abi=hard -c -o lib_a-dummy.o
`test -f 'dummy.c' || echo '../../../../../../newlib/libc/argz/'`dummy.c
Assembler messages:
Error: hard-float conflicts with specified fpu
感谢任何帮助!!
检查 arm-elf 目标的 multilib 配置文件,它位于 ${GCC_SRC_DIR}/gcc/config/arm/t-arm-elf
更改以下行(它们从我拥有的 GCC 版本 4.6.4 的第 56 行开始):
MULTILIB_OPTIONS += mfloat-abi=hard
MULTILIB_DIRNAMES += fpu
MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
至:
MULTILIB_OPTIONS += mfloat-abi=soft
MULTILIB_DIRNAMES += soft
更改后,重新配置并重新编译gcc。
如果此过程不能解决问题,请提供
- 您正在使用的 GCC 版本
- 你的 t-arm-elf 文件
- 命令的输出
arm-softfloat-elf-gcc -print-multi-lib