首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到isl的二进制文件

找不到isl的二进制文件
EN

Stack Overflow用户
提问于 2020-01-02 06:10:26
回答 1查看 2.6K关注 0票数 1

是的,这个问题以前也有人问过。不,其他的答案不能解决我的问题。

我刚刚从0.15和0.22两个来源建立了isl。我有isl,我知道它在哪里,我很惊讶,尽管我已经指出了程序在配置中的位置,二进制文件却找不到它。

几个月前这样做是可行的。

代码语言:javascript
复制
../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/brazg/usr/isl/0.22

I得到以下错误:所需的isl版本为0.15或更高版本: error:无法找到可用的isl。详情请参见config.log。

代码语言:javascript
复制
/tmp/cc3B0zAy.s: Assembler messages:
/tmp/cc3B0zAy.s:14: Error: unknown .loc sub-directive `view'
/tmp/cc3B0zAy.s:14: Error: junk at end of line, first unrecognized character is `-'
/tmp/cc3B0zAy.s:20: Error: unknown .loc sub-directive `view'
/tmp/cc3B0zAy.s:20: Error: unknown pseudo-op: `.lvu1'
/tmp/cc3B0zAy.s:23: Error: unknown .loc sub-directive `view'
/tmp/cc3B0zAy.s:23: Error: unknown pseudo-op: `.lvu2'
configure:5079: $? = 1
configure: failed program was:

是的,我知道,由于GCC在Cygwin中的版本,有很多汇编程序错误。我正试图用一个更现代版本的gcc来取代它。

这是我一直遇到的一个常见问题。在Cygwin中构建一些源代码时。似乎其中一个程序是二进制程序.

我不知道该怎么办。

是的,我可以尝试在Linux中进行交叉编译,不,我不想这样做,我希望我不必这样做。如果可以的话,我很想在Windows上这么做。

EN

回答 1

Stack Overflow用户

发布于 2020-01-04 16:36:59

在我看来,您正在使自己的生活变得复杂(x86_64-pc-cygwin是特定于平台的,而不是您的选择),您应该开始使用标准的cygport工具、已经用于binutils cygwin包的配置和isl 0.16.1可用的配置。当您对configure有问题时,适当的config.log将提供错误所在的提示。

下面是构建最后一个发布的二进制文件2.33.1并创建一个cygwin包的配方。在我的测试中,我使用了稳定的包:

代码语言:javascript
复制
$ 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

但是你也可以试试8.3.0-1 gcc编译器的测试.

下载源代码包并解压缩binutils.cygport

代码语言:javascript
复制
$ 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构建

代码语言:javascript
复制
$ 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包了:

代码语言:javascript
复制
$  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

您还可以测试构建:

代码语言:javascript
复制
$ cygport binutils.cygport check

                === binutils Summary ===

# of expected passes            136
# of unexpected failures        1
# of expected failures          1
# of unsupported tests          5

我注意到测试结束时有个问题,但检查似乎已经完成,因为它可能是其他我不会调查的因素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59558985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档