问题标签 [crosstool-ng]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
170 浏览

android - 将 GCC 编译为静态工具链和插件是否支持互斥?

我正在使用 crosstool-ng 交叉编译 AVR GCC 以在 Android 上使用。我需要使用 LTO 支持 (-flto和) 编译它,-fuse-linker-plugin从而传递CT_STATIC_TOOLCHAIN=y, CT_CC_GCC_USE_LTO=y,和in 。CT_CC_GCC_ENABLE_PLUGINSCT_CC_SHARED_LIBSCT_BINUTILS_PLUGINS=y.config

这就是它的配置方式(部分build.log):

[EXTRA] 配置最终 gcc 编译器 [DEBUG] 额外配置通过:'--with-headers=/home/anton/x-tools/HOST-aarch64-linux-gnu/avr/avr/include --with-newlib -- enable-threads=no --disable-shared --with-pkgversion=crosstool-NG 1.24.0-rc3.1-f7b1ece --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --disable-libmpx -- disable-libssp --disable-libquadmath --disable-libquadmath-support --with-gmp=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr /buildtools --with-mpfr=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools --with-mpc=/home/anton/ esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools --enable-lto --with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,- lstdc++ -lm --enable-target-optspace --disable-nls --enable-multiarch'[DEBUG] ==> 执行:CC_FOR_BUILD='x86_64-build_pc-linux-gnu-gcc' CFLAGS='-O2 -g -I/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/ HOST-aarch64-linux-gnu/avr/buildtools/include 'CFLAGS_FOR_BUILD='-O2 -g -I/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu /avr/buildtools/include 'CXXFLAGS='-O2 -g -I/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools/include ' CXXFLAGS_FOR_BUILD='-O2 -g -I/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools/include 'LDFLAGS='-L/home /anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools/lib -static -lstdc++ -lm' CFLAGS_FOR_TARGET='-idirafter /home/anton/x-tools/HOST-aarch64-linux-gnu/avr/avr/include' CXXFLAGS_FOR_TARGET=' -idirafter /home/anton/x-tools/HOST-aarch64-linux-gnu/avr/avr /include'LDFLAGS_FOR_TARGET='''/bin/bash''/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/src/gcc/configure' '--build=x86_64-build_pc-linux-gnu' '--host=x86_64-build_pc-linux-gnu' '--target=avr' '--prefix=/home/anton/esp8266-2/crosstool-NG /installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools''--with-local-prefix=/home/anton/x-tools/HOST-aarch64-linux-gnu/avr/avr' '--with-headers=/home/anton/x-tools/HOST-aarch64-linux-gnu/avr/avr/include' '--with-newlib' '--enable-threads=no' '--disable -shared''--with-pkgversion=crosstool-NG 1.24.0-rc3。1-f7b1ece''--disable-__cxa_atexit'''--disable-libgomp''--disable-libmudflap''--disable-libmpx''--disable-libssp''--disable-libquadmath''--disable -libquadmath-support' '--with-gmp=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools' '--with-mpfr =/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools'--with-mpc=/home/anton/esp8266-2/crosstool -NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools''--enable-lto''--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' '--enable-target-optspace' '--disable-nls' '--enable-multiarch' '--enable-languages=c,c++' '--enable-plugin'--disable-__cxa_atexit' '--disable-libgomp' '--disable-libmudflap' '--disable-libmpx' '--disable-libssp' '--disable-libquadmath' '--disable-libquadmath-support' '--with-gmp=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools' '--with-mpfr=/home/anton /esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools' '--with-mpc=/home/anton/esp8266-2/crosstool-NG/installed/ bin/.build/HOST-aarch64-linux-gnu/avr/buildtools' '--enable-lto' '--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' '- -enable-target-optspace' '--disable-nls' '--enable-multiarch' '--enable-languages=c,c++' '--enable-plugin'--disable-__cxa_atexit' '--disable-libgomp' '--disable-libmudflap' '--disable-libmpx' '--disable-libssp' '--disable-libquadmath' '--disable-libquadmath-support' '--with-gmp=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools' '--with-mpfr=/home/anton /esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools' '--with-mpc=/home/anton/esp8266-2/crosstool-NG/installed/ bin/.build/HOST-aarch64-linux-gnu/avr/buildtools' '--enable-lto' '--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' '- -enable-target-optspace' '--disable-nls' '--enable-multiarch' '--enable-languages=c,c++' '--enable-plugin'--disable-libmudflap' '--disable-libmpx' '--disable-libssp' '--disable-libquadmath' '--disable-libquadmath-support' '--with-gmp=/home/anton/esp8266- 2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools'--with-mpfr=/home/anton/esp8266-2/crosstool-NG/installed/bin/. build/HOST-aarch64-linux-gnu/avr/buildtools'--with-mpc=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr /buildtools' '--enable-lto' '--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' '--enable-target-optspace' '--disable-nls' '--enable-multiarch' '--enable-languages=c,c++' '--enable-plugin'--disable-libmudflap' '--disable-libmpx' '--disable-libssp' '--disable-libquadmath' '--disable-libquadmath-support' '--with-gmp=/home/anton/esp8266- 2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools'--with-mpfr=/home/anton/esp8266-2/crosstool-NG/installed/bin/. build/HOST-aarch64-linux-gnu/avr/buildtools'--with-mpc=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr /buildtools' '--enable-lto' '--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' '--enable-target-optspace' '--disable-nls' '--enable-multiarch' '--enable-languages=c,c++' '--enable-plugin'--disable-libquadmath-support''--with-gmp=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools''-- with-mpfr=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools' '--with-mpc=/home/anton/esp8266- 2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools''--enable-lto''--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic ,-lstdc++ -lm' '--enable-target-optspace' '--disable-nls' '--enable-multiarch' '--enable-languages=c,c++' '--enable-plugin'--disable-libquadmath-support''--with-gmp=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools''-- with-mpfr=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools' '--with-mpc=/home/anton/esp8266- 2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr/buildtools''--enable-lto''--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic ,-lstdc++ -lm' '--enable-target-optspace' '--disable-nls' '--enable-multiarch' '--enable-languages=c,c++' '--enable-plugin'build/HOST-aarch64-linux-gnu/avr/buildtools'--with-mpc=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr /buildtools' '--enable-lto' '--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' '--enable-target-optspace' '--disable-nls' '--enable-multiarch' '--enable-languages=c,c++' '--enable-plugin'build/HOST-aarch64-linux-gnu/avr/buildtools'--with-mpc=/home/anton/esp8266-2/crosstool-NG/installed/bin/.build/HOST-aarch64-linux-gnu/avr /buildtools' '--enable-lto' '--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' '--enable-target-optspace' '--disable-nls' '--enable-multiarch' '--enable-languages=c,c++' '--enable-plugin'

它会导致以下构建错误:

它似乎有静态(不依赖于任何东西)和“带插件”听起来是相互排斥的。这是对的吗?

有没有办法不使用 lto_plugin 共享库而是静态地(并且仍然调用-flto)来构建它?

PS。我可以避免静态链接它,但我不希望它动态链接:

/tmp/avr-gcc.dynamic//avr/bin/avr-gcc:ELF 64 位 LSB 可执行文件,ARM aarch64,版本 1 (SYSV),动态链接,解释器 /lib/ld-,适用于 GNU/Linux 3.7。 0,BuildID[sha1]=3a743be83f76347643d78fcdba6e81444b76c3d0,剥离

0 投票
0 回答
619 浏览

crosstool-ng - 无法在 crosstool-ng 中下载 expat

我正在尝试使用我的 Ubuntu 机器为我的 Raspberry Pi 创建一个工具链。我已经安装了 crosstool-ng 1.24.0。当我运行时./ct-ng build,它说它无法下载 expat。这是输出:

.build/tarballs正如我所看到的其他人推荐的那样,我已经尝试手动将 expat 2.2.6 的 tar 球放入。但是,错误不会改变。

0 投票
0 回答
70 浏览

embedded-linux - 如何通过 docker 容器中的 buildroot 使用预构建/安装的 Crosstool-NG 工具链构建真正的可重定位 SDK?

设置:

  • 主机:Ubuntu 20.04 Docker容器
  • 工作区路径:/workspace
  • 外部工具链:预建并安装/workspace/crosstool_ng/arm-**
  • BuildSystem : BuildRoot 在/workspace/buildroot
  • 构建根输出:/workspace/buildroot/images/*

通过上述设置,我尝试在我的 docker 容器中构建 BSP( make) 和 SDK( )。make sdk一切顺利,

但是 make sdk 会生成一个包含 sysroot 和工具链的 tarball,并且该工具链仍然指向符号链接以指向docker conainer 从/workspace/**.

如果我使用该压缩包并移动到主机或任何其他 PC,那么它将无法正常工作。我们有那个relocate_sdk.sh脚本,但这对我也没有帮助。

解决方法: 如果我直接在主机上构建我的 SDK,那么这个修复路径将仍然存在,所以它可以工作,但我不想要。我想要一个可重定位的 sdk,我可以提供给任何人。

有人可以帮我解决这个问题(特别是它需要在docker下构建)

0 投票
0 回答
40 浏览

cygwin - ctosstool-ng 在 cygwin 上为 armv8-rpi3-linux-gnueabihf 构建失败

我正在尝试使用ctosstool-ng-1.24.0在 Windows 10 上的 cygwin 上构建 arm RPI4 交叉编译器和工具链

该过程工作正常,从 ubuntu 20.4 主机生成 arm RPI4 工具链,但在 Windows 10 上失败

Raspberry Pi的预构建 Windows 工具链 有黄金链接器问题,无法解决 Windows 上的 gtk-3 和 gdk-3 依赖库。所以我想看看新生成的是否可以解决问题。

ctosstool-ng 在 cygwin 上为 armv8-rpi3-linux-gnueabihf 构建失败,伴随着一阵阵

其次是

我已经尝试过 cygwin gcc 版本 9.3 和 11.3 以及在 menuconfig、glib2.28 和 glib2.24 下。在安装 kernel_headers 后,它们都在“libc_start_files”步骤中失败。

从以下步骤开始:

链接到:构建日志 .config make 和 make-install 日志

如果有人在 Windows 主机上成功构建了这个,请分享您的步骤/配置。

===[更新 1] ===

看起来c:/cygwin64//usr/includecygwin env 已包含在编译器选项中。我ac_cv_env_CPPFLAGS_value=-Ic:/cygwin64//usr/include位于build/build-libc-startfiles/multilib/config.cache. 但不确定这是否是导致 linux 文件进入 cygwin64 的原因。

同样不清楚这些是如何从根构建目录传播到组件构建/编译器选项的。

任何跟踪/调试编译器选项的建议都将是最有帮助的。

===

有没有人遇到过这些错误?

可能是什么原因造成的?

请分享您在上述方面的任何经验。

0 投票
0 回答
9 浏览

arm - 使用 crosstool-ng 构建基于 uclibc 的工具链

我想编译一个 C++17 库并在我的项目中使用它。我有海思评估板。该板带有一个工具链。原始工具链不支持 C++17。我想使用 crosstool-ng 构建一个新的工具链。原始工具链配置是:

因为我有 Uclibc rootfs (uclibc 0.9.33.2),所以我必须用 uclibc 0.9.33 构建工具链。如何指定 crosstool-ng 以使用 uclibc 0.9.33.2 和升级的 gcc(支持 c++17)构建工具链。