【问题标题】:agl build fails in "recipe perl-native-5.24.4-r0: task do_configure:"agl build 在“recipe perl-native-5.24.4-r0: task do_configure:”中失败
【发布时间】:2020-10-22 03:52:27
【问题描述】:

我正在尝试根据https://wiki.automotivelinux.org/agl-distro/source-code 中的说明在基于crops/poky(https://github.com/crops/poky-container/blob/master/Dockerfile) 的容器内构建AGL(使用poky icefish

在运行bitbake agl-demo-platform 时,我在Configure 脚本的perl-native-5.24.4-r0 配方的do_configure 阶段收到以下错误(我正在使用https://downloads.yoctoproject.org/releases/yocto/yocto-3.1/buildtools/x86_64-buildtools-extended-nativesdk-standalone-3.1.sh 安装buildtools-extended

以下是 SDK 中的 gcc 和 ld 版本

admin@2a517c6c3748:/home/work/agl$ which gcc
/opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/bin/gcc
admin@2a517c6c3748:/home/work/agl$ gcc --version
gcc (GCC) 9.3.0
admin@2a517c6c3748://opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/bin$ ./x86_64-pokysdk-linux-ld -v
GNU ld (GNU Binutils) 2.34.0.20200220
ERROR: perl-native-5.24.4-r0 do_configure: Function failed: do_configure (log file is located at /home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/temp/log.do_configure.1100)
ERROR: Logfile of failure stored in: /home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/temp/log.do_configure.1100
Log data follows:
| DEBUG: Executing shell function do_configure
| First let's make sure your kit is complete.  Checking...
| Would you like to see the instructions? [n]
| Locating common programs...
| Checking compatibility between /home/work/agl/build/tmp/hosttools/echo and builtin echo (if any)...
| Symbolic links are supported.
| Checking how to test for symbolic links...
| You can test for symbolic links with 'test -h'.
| Checking for cross-compile
| No targethost for running compiler tests against defined, running locally
...
| Operating system name? [linux]
| Operating system version? [5.3.0-1019-aws]
| Installation prefix to use? (~name ok)
| [/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/usr]
| AFS does not seem to be running...
| What installation prefix should I use for installing files? (~name ok)
| [/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/usr]
| Getting the current patchlevel...
| Build a threading Perl? [y]
| Use which C compiler? [gcc ]
| Checking for GNU cc in disguise and/or its version number...
| Now, how can we feed standard input to your C preprocessor...
| Directories to use for library searches?
| [/usr/local/lib /opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib /opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib/gcc/x86_64-pokysdk-linux/9.3.0/include-fixed /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /usr/lib /lib64]
| What is the file extension used for shared libraries? [so]
| Make shared library basenames unique? [n]
| Build Perl for SOCKS? [n]
| Try to use long doubles if available? [n]
| Checking for optional libraries...
| What libraries to use? [-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc]
| What optimizer/debugger flag should be used? [-O2]
| Any additional cc flags?
| [-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include]
| Let me guess what the preprocessor flags are...
| Any additional ld flags (NOT including libraries)?
| [-L/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/usr/lib -L/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/lib -Wl,-rpath,/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/lib -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=/home/work/agl/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 -L/usr/local/lib]
| Checking your choice of C compiler and flags for coherency...
| I've tried to compile and run the following simple program:
| 
| #include <stdio.h>
| int main() { printf("Ok\n"); return(0); }
| 
| I used the command:
| 
|       gcc -o try -O2 -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -L/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/usr/lib -L/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/lib -Wl,-rpath,/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/recipe-sysroot-native/lib -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=/home/work/agl/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 -L/usr/local/lib try.c -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
|        ./try
| 
| and I got the following output:
| 
| /opt/poky/3.1/sysroots/x86_64-pokysdk-linux/usr/lib/gcc/x86_64-pokysdk-linux/9.3.0/../../../../x86_64-pokysdk-linux/bin/ld: cannot find -lnsl<=======
| collect2: error: ld returned 1 exit status
| I can't compile the test program.
| You have a BIG problem.  Shall I abort Configure [y]
| Ok.  Stopping Configure.
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_configure (log file is located at /home/work/agl/build/tmp/work/x86_64-linux/perl-native/5.24.4-r0/temp/log.do_configure.1100)
NOTE: recipe perl-native-5.24.4-r0: task do_configure: Failed
ERROR: Task (/home/work/agl/external/poky/meta/recipes-devtools/perl/perl-native_5.24.4.bb:do_configure) failed with exit code '1'
...
NOTE: Tasks Summary: Attempted 647 tasks of which 606 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
/home/work/agl/external/poky/meta/recipes-devtools/perl/perl-native_5.24.4.bb:do_configure
Summary: There was 1 WARNING message shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code

我尝试切换到不同的 SDK 3.1.1 (https://downloads.yoctoproject.org/releases/yocto/yocto-3.1.1/buildtools/x86_64-buildtools-nativesdk-standalone-3.1.1.sh),但这会导致 bitbake(https://stackoverflow.com/questions/62629159/aglbitbake-agl-demo-platform-hangs-in-task-16) 中的 do_fetch 挂起

【问题讨论】:

  • 您是否安装了 libnsl 并安装在工具可以找到的位置?
  • "ld: 找不到 -lnsl" :另见:gist.github.com/tpoxa/01bc06febb6b9c904baca639fe4d54d3
  • 表面问​​题是gcc被定向链接到libnsl(通过-lnsl),但是链接器找不到这个库。 (我不知道那是什么,需要什么,或者为什么它可能不存在。)
  • 我认为是指Network Information Service?不确定它是如何使用的。我想知道 Perl 是否可以通过从默认的 What libraries to use? 中删除 -lnsl 来生存。
  • This 建议它曾经是 gcc 的一部分,现在不再是了,Håkon Hægland 提供的链接显示了如何安装我在此评论开头链接的替换。当然,你的发行版完全有可能提供了一个提供 libnsl 的包。

标签: perl gcc yocto ld glibc


【解决方案1】:

由于 buildtools-tarball 提供的 gcc 9.3 中不再包含 libnsl,因此您可以改用 libnsl2(在 poky thud 上测试):

diff --git a/meta/recipes-devtools/perl/perl-native_5.24.4.bb b/meta/recipes-devtools/perl/perl-native_5.24.4.bb
index 81d3fd4898..ee4d4e3928 100644
--- a/meta/recipes-devtools/perl/perl-native_5.24.4.bb
+++ b/meta/recipes-devtools/perl/perl-native_5.24.4.bb
@@ -1,7 +1,7 @@
 require perl.inc
 
 # We need gnugrep (for -I)
-DEPENDS = "db-native grep-native gdbm-native zlib-native"
+DEPENDS = "db-native grep-native gdbm-native zlib-native libnsl2-native"
 
 EXTRA_OEMAKE = "-e MAKEFLAGS="
 
diff --git a/meta/recipes-devtools/perl/perl_5.24.4.bb b/meta/recipes-devtools/perl/perl_5.24.4.bb
index 2f27749c53..70a60d8699 100644
--- a/meta/recipes-devtools/perl/perl_5.24.4.bb
+++ b/meta/recipes-devtools/perl/perl_5.24.4.bb
@@ -1,7 +1,7 @@
 require perl.inc
 
 # We need gnugrep (for -I)
-DEPENDS = "db grep-native gdbm zlib virtual/crypt"
+DEPENDS = "db grep-native gdbm zlib virtual/crypt libnsl2"
 
 # Pick up patches from debian
 # http://ftp.de.debian.org/debian/pool/main/p/perl/perl_5.22.0-1.debian.tar.xz

另见Adding gcc 9.3.0 to ubuntu-16.04 image breaks builds for rocko and thud

【讨论】:

    猜你喜欢
    • 2020-04-17
    • 2019-12-03
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2021-10-08
    相关资源
    最近更新 更多