首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用guix编译缺失目标的交叉编译

用guix编译缺失目标的交叉编译
EN

Stack Overflow用户
提问于 2021-12-17 14:52:22
回答 1查看 88关注 0票数 1

例如,我可以为目标mips64el-linux-gnu构建

代码语言:javascript
复制
$ guix build --no-substitutes --target=mips64el-linux-gnu hello
...
successfully built /gnu/store/sdhhi1fhgbldl5qyfwvwlzhf2gq41n0j-hello-2.10.drv
/gnu/store/rbl4yrjyj3vxn27cap1y24z5wkr90p8y-hello-2.10

但不是针对目标mipsel-linux-gnu

代码语言:javascript
复制
$ guix build --no-substitutes --target=mipsel-linux-gnu hello
Backtrace:
In guix/store.scm:
   1341:2 19 (map/accumulate-builds #<store-connection 256.99 7f2ad…> …)
In srfi/srfi-1.scm:
   586:17 18 (map1 (#<package hello@2.10 gnu/packages/base.scm:74 7…>))
In guix/store.scm:
   1300:8 17 (call-with-build-handler #<procedure build-accumulator…> …)
In guix/scripts/build.scm:
   576:18 16 (_ _)
In guix/packages.scm:
  1169:16 15 (package-cross-derivation _ #<package hello@2.10 gnu/p…> …)
  1510:22 14 (thunk)
  1447:22 13 (bag->cross-derivation #<store-connection 256.99 7f2ad…> …)
In srfi/srfi-1.scm:
   586:17 12 (map1 (("cross-gcc" #<package gcc-cross-mipsel-lin…>) …))
In guix/packages.scm:
  1212:16 11 (expand-input #<store-connection 256.99 7f2ad8295910> #f …)
  1169:16 10 (package-derivation _ #<package gcc-cross-mipsel-linux…> …)
  1486:22  9 (thunk)
  1169:16  8 (package->bag _ _ _ #:graft? _)
  1279:43  7 (thunk)
In gnu/packages/cross-base.scm:
    265:9  6 (arguments #<package gcc-cross-mipsel-linux-gnu@7.5.0 g…>)
   121:20  5 (cross-gcc-arguments "mipsel-linux-gnu" #<package gcc@…> …)
In gnu/packages/gcc.scm:
   235:52  4 (arguments #<package gcc@4.8.5 gnu/packages/gcc.scm:364…>)
In gnu/packages/bootstrap.scm:
   306:14  3 (glibc-dynamic-linker _)
In ice-9/boot-9.scm:
  1669:16  2 (raise-exception _ #:continuable? _)
  1669:16  1 (raise-exception _ #:continuable? _)
  1669:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1669:16: In procedure raise-exception:
dynamic linker name not known for this system "mipsel-linux"

如何为这一目标构建?或者至少找出可用目标的完整清单?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-21 11:26:39

查找可用目标的完整列表

所有活动目标都列在glibc-dynamic-linker函数中的gnu/packages/bootstrap.scm中。

如何为这个目标构建?

你可以:

  1. 与您的未来包一起创建一个空目录;

将该路径保存到环境变量$GUIX_PACKAGE_PATH;中的

$GUIX_PACKAGE_PATH/gnu/packages/bootstrap.scm;:

  1. 将提到的bootstrap.scm文件放置在这里:

  1. 对其进行了必要的更改:

diff -git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm索引5a8028a465.102e7378ae 100644 - a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @ -317,6 +317,7 @@或误报错误。“(string=?系统"alpha-linux")“/lib/ld-linux.so.2”(string=?系统"s390x-linux")“/lib/ld64.so.1”((string=?系统“riscv64 64-linux”) "/lib/ld-linux-riscv64-lp64d.so.1") + ((string=?系统“mipsel”) "/lib/ld.so.1");XXX:这个系统使用裸骨,没有libc,所以添加一个情况;;这里,我们可以继续下去。

  1. 并构建一个包(同时,将构建一套完整的编译器/binutils/等等--工具链gcc):

$ guix构建-目标=mipsel-linux-gnu hello . /gnu/store/2vcvqn3c4ngif1l6s2dxambcpdmyywgc-hello-2.10

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

https://stackoverflow.com/questions/70394951

复制
相关文章

相似问题

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