Cygwin binutils无法找到isl
是的,这个问题以前有人问过。不,其他答案不能解决我的问题 我刚刚从源代码0.15和0.22构建了isl。 我有isl,我知道它在哪里,我很惊讶,尽管我已经指出了程序在哪里,但binutils却找不到它 几个月前,它确实这样做了Cygwin binutils无法找到isl,cygwin,gcc-warning,binutils,Cygwin,Gcc Warning,Binutils,是的,这个问题以前有人问过。不,其他答案不能解决我的问题 我刚刚从源代码0.15和0.22构建了isl。 我有isl,我知道它在哪里,我很惊讶,尽管我已经指出了程序在哪里,但binutils却找不到它 几个月前,它确实这样做了 。/gitrepos/binutils/configure--prefix=/tools--with sysroot=x86_64-w64-cygwin--with lib path=/tools/lib--disable nls--disable werror lt_c
。/gitrepos/binutils/configure--prefix=/tools--with sysroot=x86_64-w64-cygwin--with lib path=/tools/lib--disable nls--disable werror lt_cv_objdir=.libs--target=x86_64-w64-cygwin--with isl=/home/bragg usr/isl/0.22
我收到以下错误:所需的isl版本为0.15或更高
稍后配置:错误:找不到可用的isl。请参阅config.log
详情请参阅
是的,我知道由于Cygwin中的GCC版本,有很多汇编程序错误。我试图通过构建一个更新版本的gcc来取代它
这是我遇到的一个常见问题。在Cygwin中构建一些源代码时。似乎其中一个程序运行到这个是binutils
我不知道该怎么办
是的,我可以尝试在Linux中进行交叉编译,不,我不想,我希望我不必这样做。如果可以的话,我会天真地对Windows这样做。在我看来,您正在使自己的生活复杂化(
x86_64-pc-cygwin
是特定于平台的,不是您的选择),您应该开始使用标准cygport工具,相同的配置已经用于binutils
cygwin包和isl 0.16.1
。当您在configure
方面遇到问题时,正确的config.log将提供错误提示
下面是构建最新发布的binutils 2.33.1并创建cygwin包的方法。对于我的测试,我使用稳定的软件包:
$ cygcheck -cd binutils gcc-core libisl-devel
Cygwin Package Information
Package Version
binutils 2.31.1-1
gcc-core 7.4.0-1
libisl-devel 0.16.1-1
但您也可以尝试使用test 8.3.0-1 gcc编译器
下载源程序包并解压缩binutils.cygport
$ wget http://mirrors.kernel.org/sourceware/cygwin/x86/release/binutils/binutils-2.31.1-1-src.tar.xz
$ tar -xf binutils-2.31.1-1-src.tar.xz
$ cp binutils-2.31.1-1.src/binutils.cygport .
将cygport文件调整为从2.33.1版而不是从git版生成
$ cat binutils.cygport
TOOLCHAIN_TARGET="native"
# GIT_URI="git://sourceware.org/git/binutils-gdb.git"
# inherit toolchain git
# GIT_REV=be46fa23042ec88a7a42030476a301bf72a80e7e
# SRC_DIR=binutils-gdb
NAME="binutils"
VERSION=2.33.1
RELEASE=1
CATEGORY="Devel"
SUMMARY="GNU assembler, linker, and similar utilities"
DESCRIPTION="This directory contains various GNU compilers, assemblers, linkers,
debuggers, etc., plus their support routines, definitions, and documentation."
HOMEPAGE="http://www.gnu.org/software/binutils/"
case ${VERSION} in
*.*.[5-9][0-9])
SRC_URI="ftp://sourceware.org/pub/binutils/snapshots/binutils-${VERSION}.tar.bz2" ;;
*) SRC_URI="mirror://gnu/binutils/binutils-${VERSION}.tar.xz"
SRC_DIR=${PN}-${PV}
;;
esac
#PATCH_URI+=" 2.24.51-shared-libs.patch"
#2.24.51-ld-__dso_handle.patch
#PATCH_URI+="
#2.24.51-ld-__dso_handle.patch
#detect-rebasing-and-compute-an-address-bias.patch
#"
#PATCH_URI="e643cb45bf85fa5c8c49a89ff177de246af4212e.patch"
# gdb,etc.: https://sourceware.org/ml/binutils/2014-01/msg00341.html
# for shared libbfd/libopcodes, add:
# --enable-shared
CYGCONF_ARGS="
--enable-install-libiberty
--disable-gdb
--disable-libdecnumber
--disable-readline
--disable-sim
--enable-64-bit-bfd
"
# --enable-targets=i686-efi-pe,x86_64-efi-pe,ia64-efi-elf,x86_64-pc-cygwin,i686-pc-cygwin
src_install() {
cd ${B}
cyginstall
# for shared libbfd/libopcodes, add:
# APIs are unstable, do not allow linking against DLLs
# rm -f ${D}/usr/lib/*.dll.a
# sed -i -e '/^library_names=/d' ${D}/usr/lib/lib*.la
}
正如您所注意到的,我没有更改binutils配置的参数。现在我可以构建2.33.1包了:
$ cygport binutils.cygport download
...
binutils-2.33.1.tar 100%[===================>] 20.50M 1.50MB/s in 15s
2020-01-04 17:07:52 (1.38 MB/s) - ‘binutils-2.33.1.tar.xz.tmp’ saved [21490848/21490848]
$ cygport binutils.cygport almostall
>>> Preparing binutils-2.33.1-1.x86_64
>>> Unpacking source binutils-2.33.1.tar.xz
>>> Preparing working source directory
...
>>> Creating source patches
0 files changed
>>> Creating source package
binutils-2.33.1-1.src/
binutils-2.33.1-1.src/binutils-2.33.1.tar.xz
binutils-2.33.1-1.src/binutils.cygport
>>> binutils requires: cygwin libgcc1
您还可以测试构建:
$ cygport binutils.cygport check
=== binutils Summary ===
# of expected passes 136
# of unexpected failures 1
# of expected failures 1
# of unsupported tests 5
我注意到测试结束时出现了一个挂起,但检查似乎已完成,因为可能是其他因素造成的,我将不进行调查 在我看来,您正在使自己的生活复杂化(
x86_64-pc-cygwin
是特定于平台的,不是您的选择),您应该开始使用标准cygport工具,与binutils
cygwin包和isl 0.16.1
可用的配置相同。当您在configure
方面遇到问题时,正确的config.log将提供错误提示
下面是构建最新发布的binutils 2.33.1并创建cygwin包的方法。对于我的测试,我使用稳定的软件包:
$ cygcheck -cd binutils gcc-core libisl-devel
Cygwin Package Information
Package Version
binutils 2.31.1-1
gcc-core 7.4.0-1
libisl-devel 0.16.1-1
但您也可以尝试使用test 8.3.0-1 gcc编译器
下载源程序包并解压缩binutils.cygport
$ wget http://mirrors.kernel.org/sourceware/cygwin/x86/release/binutils/binutils-2.31.1-1-src.tar.xz
$ tar -xf binutils-2.31.1-1-src.tar.xz
$ cp binutils-2.31.1-1.src/binutils.cygport .
将cygport文件调整为从2.33.1版而不是从git版生成
$ cat binutils.cygport
TOOLCHAIN_TARGET="native"
# GIT_URI="git://sourceware.org/git/binutils-gdb.git"
# inherit toolchain git
# GIT_REV=be46fa23042ec88a7a42030476a301bf72a80e7e
# SRC_DIR=binutils-gdb
NAME="binutils"
VERSION=2.33.1
RELEASE=1
CATEGORY="Devel"
SUMMARY="GNU assembler, linker, and similar utilities"
DESCRIPTION="This directory contains various GNU compilers, assemblers, linkers,
debuggers, etc., plus their support routines, definitions, and documentation."
HOMEPAGE="http://www.gnu.org/software/binutils/"
case ${VERSION} in
*.*.[5-9][0-9])
SRC_URI="ftp://sourceware.org/pub/binutils/snapshots/binutils-${VERSION}.tar.bz2" ;;
*) SRC_URI="mirror://gnu/binutils/binutils-${VERSION}.tar.xz"
SRC_DIR=${PN}-${PV}
;;
esac
#PATCH_URI+=" 2.24.51-shared-libs.patch"
#2.24.51-ld-__dso_handle.patch
#PATCH_URI+="
#2.24.51-ld-__dso_handle.patch
#detect-rebasing-and-compute-an-address-bias.patch
#"
#PATCH_URI="e643cb45bf85fa5c8c49a89ff177de246af4212e.patch"
# gdb,etc.: https://sourceware.org/ml/binutils/2014-01/msg00341.html
# for shared libbfd/libopcodes, add:
# --enable-shared
CYGCONF_ARGS="
--enable-install-libiberty
--disable-gdb
--disable-libdecnumber
--disable-readline
--disable-sim
--enable-64-bit-bfd
"
# --enable-targets=i686-efi-pe,x86_64-efi-pe,ia64-efi-elf,x86_64-pc-cygwin,i686-pc-cygwin
src_install() {
cd ${B}
cyginstall
# for shared libbfd/libopcodes, add:
# APIs are unstable, do not allow linking against DLLs
# rm -f ${D}/usr/lib/*.dll.a
# sed -i -e '/^library_names=/d' ${D}/usr/lib/lib*.la
}
正如您所注意到的,我没有更改binutils配置的参数。现在我可以构建2.33.1包了:
$ cygport binutils.cygport download
...
binutils-2.33.1.tar 100%[===================>] 20.50M 1.50MB/s in 15s
2020-01-04 17:07:52 (1.38 MB/s) - ‘binutils-2.33.1.tar.xz.tmp’ saved [21490848/21490848]
$ cygport binutils.cygport almostall
>>> Preparing binutils-2.33.1-1.x86_64
>>> Unpacking source binutils-2.33.1.tar.xz
>>> Preparing working source directory
...
>>> Creating source patches
0 files changed
>>> Creating source package
binutils-2.33.1-1.src/
binutils-2.33.1-1.src/binutils-2.33.1.tar.xz
binutils-2.33.1-1.src/binutils.cygport
>>> binutils requires: cygwin libgcc1
您还可以测试构建:
$ cygport binutils.cygport check
=== binutils Summary ===
# of expected passes 136
# of unexpected failures 1
# of expected failures 1
# of unsupported tests 5
我注意到测试结束时出现了一个挂起,但检查似乎已完成,因为可能是其他因素造成的,我将不进行调查 cygwin提供了包0.16。有什么理由不使用它吗?是的。未检测到用于屏幕捕获的配置标志:../gitrepos/binutils/configure--prefix=/tools--with sysroot=x86_64-w64-cygwin--with lib path=/tools/lib--disable nls--disable werror lt_cv_objdir=.libs--target=x86_64-w64-cygwin您查看了
config.log查看它为什么没有检测到它吗?为什么x86_64-w64-cygwin
?对于Cygwin,默认值为x86_64-pc-Cygwin
,您无需指定它。您正在尝试构建交叉编译器吗?cygwin提供了包0.16。有什么理由不使用它吗?是的。未检测到用于屏幕捕获的配置标志:../gitrepos/binutils/configure--prefix=/tools--with sysroot=x86_64-w64-cygwin--with lib path=/tools/lib--disable nls--disable werror lt_cv_objdir=.libs--target=x86_64-w64-cygwin您查看了config.log查看它为什么没有检测到它吗?为什么x86_64-w64-cygwin
?对于Cygwin,默认值为x86_64-pc-Cygwin
,您无需指定它。您正在尝试构建交叉编译器吗?