【问题标题】:Where is the GCC cross compiler for Xeon phi located?Xeon phi 的 GCC 交叉编译器在哪里?
【发布时间】:2015-08-31 22:55:26
【问题描述】:

我找到了两个编译器的二进制文件,如下所示 -

/usr/linux-k1om-4.7/bin/x86_64-k1om-linux-gcc

/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-linux/k1om-mpss-linux-gcc

我已经能够使用它们编译一个简单的测试程序并在 xeon phi 上成功运行可执行文件。

这两个是一样的吗?为什么他们在不同的位置?它们背后的命名约定是什么?

编辑:*gcc -v 的结果。除了$COLLECT_GCC之外,两者都是一样的。

Using built-in specs. COLLECT_GCC=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-linux/k1om-mpss-linux-gcc COLLECT_LTO_WRAPPER=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/libexec/k1om-mpss-linux/gcc/k1om-mpss-linux/4.7.0/lto-wrapper Target: k1om-mpss-linux Configured with: /sandbox/build/tmp/tmp/work/x86_64-nativesdk-mpsssdk-linux/gcc-cross-canadian-k1om-4.7.0+mpss3.5.1-1/gcc-4.7.0+mpss3.5.1/configure --build=x86_64-linux --host=x86_64-mpsssdk-linux --target=k1om-mpss-linux --prefix=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr --exec_prefix=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr --bindir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-linux --sbindir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-linux --libexecdir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/libexec/k1om-mpss-linux --datadir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/share --sysconfdir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/etc --sharedstatedir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/com --localstatedir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/var --libdir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/lib/k1om-mpss-linux --includedir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/include --oldincludedir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/include --infodir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/share/info --mandir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/sandbox/build/tmp/tmp/sysroots/x86_64-nativesdk-mpsssdk-linux --with-gnu-ld --enable-shared --enable-languages=c,c++ --enable-threads=posix --disable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=k1om-mpss-linux- --enable-target-optspace --enable-lto --enable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap --with-system-zlib --with-linker-hash-style=gnu --enable-cheaders=c_global --with-local-prefix=/opt/mpss/3.5.1/sysroots/k1om-mpss-linux/usr --with-gxx-include-dir=/opt/mpss/3.5.1/sysroots/k1om-mpss-linux/usr/include/c++ --with-build-time-tools=/sandbox/build/tmp/tmp/sysroots/x86_64-linux/usr/k1om-mpss-linux/bin --with-sysroot=/opt/mpss/3.5.1/sysroots/k1om-mpss-linux --with-build-sysroot=/sandbox/build/tmp/tmp/sysroots/knightscorner --disable-libunwind-exceptions --disable-libssp --disable-libgomp --disable-libmudflap --with-mpfr=/sandbox/build/tmp/tmp/sysroots/x86_64-nativesdk-mpsssdk-linux --with-mpc=/sandbox/build/tmp/tmp/sysroots/x86_64-nativesdk-mpsssdk-linux --enable-nls --enable-__cxa_atexit Thread model: posix gcc version 4.7.0 20110509 (experimental) (GCC)

【问题讨论】:

  • 每个“*gcc -v”的结果是什么?
  • 已在问题中编辑。不过两者都一样。
  • sha512 结果一样吗?如果是这样,那么这些是相同的二进制文件:-)
  • 是的,它是一样的。我想知道为什么安装了两个副本。无论如何,如果它是一个交叉编译器,你能告诉我为什么构建和主机配置不同吗?

标签: gcc cross-compiling xeon-phi


【解决方案1】:

您应该会发现 /usr/linux-k1om-4.7/bin/x86_64-k1om-linux-gcc 实际上是指向 /opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/ 的符号链接bin/k1om-mpss-linux/k1om-mpss-linux-gcc。因此,从字面上看,它们是相同的二进制文件。

在 /opt/mpss 中,所有内容都按照 MPSS 版本号进行组织。无论 MPSS 版本如何,/usr/linux-k1om-4.7 中的路径都保持不变。

命名似乎有点失控 - x86_64 是针对运行交叉编译器的架构,k1om 是针对您正在编译的架构(k 代表骑士 - 当前协处理器的代号为骑士角)当然,4.7 是编译器版本。

今天我的头脑不是特别敏锐,所以我不太了解有关构建和主机配置的问题。

编辑 - 啊,我看到你的另一篇文章 (32319745) 以及那里关于构建和主机配置的解释。讨论的比较远,我就悄悄溜过去边听边学。

【讨论】:

  • 是的,基本上我正在尝试从其源代码安装gcc-4.7.0+mpss3.5.2 编译器,而不是使用英特尔已经提供的预编译交叉编译器二进制文件。我正在尝试找出正确的参数以传递给configure 脚本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 1970-01-01
  • 2016-02-05
  • 2017-10-09
  • 1970-01-01
相关资源
最近更新 更多