2

我正在尝试在 Ubuntu 11.04 操作系统下的 Tegra3 ARM CPU(cortex-a9)上安装 ATLAS 库(v3.10.1),但我无法通过配置步骤。当我启动“./configure”可执行文件时,我得到以下输出:

make: `xconfig' is up to date.
./xconfig -d s /home/ubuntu/Libraries/ATLAS/build/.././ -d b /home/ubuntu/Libraries/ATLAS/build  -D c -DATL_ARM_HARDFP=1 -Ss ADdir /Libraries/ATLAS/build/ARMHARDFP -Si archdef 0 -Fa alg -mfloat-abi=hard

OS configured as Linux (1)

Assembly configured as GAS_ARM (7)

Vector ISA Extension configured as  NEON (10,1024)

Architecture configured as  ARMv7 (46)

Bad CPU MHZ value=0, res='CPU MHZ=0
'

Clock rate configured as 0Mhz

Maximum number of threads configured as  4
Parallel make command configured as '$(MAKE) -j 4'

Pointer width configured as 32
Cannot detect CPU throttling.
rm -f config1.out
make atlas_run atldir=/home/ubuntu/Libraries/ATLAS/build exe=xprobe_comp redir=config1.out \
                args="-v 0 -o atlconf.txt -O 1 -A 46 -Si nof77 0 -V 1024  -Fa ic '-mfloat-abi=hard' -Fa sm '-mfloat-abi=hard' -Fa dm '-mfloat-abi=hard' -Fa sk '-mfloat-abi=hard' -Fa dk '-mfloat-abi=hard' -Fa xc '-mfloat-abi=hard' -Fa gc '-mfloat-abi=hard' -Fa if '-mfloat-abi=hard' -b 32 -d b /home/ubuntu/Libraries/ATLAS/build"
make[1]: Entering directory `/home/ubuntu/Libraries/ATLAS/build'
cd /home/ubuntu/Libraries/ATLAS/build ; ./xprobe_comp -v 0 -o atlconf.txt -O 1 -A 46 -Si nof77 0 -V 1024  -Fa ic '-mfloat-abi=hard' -Fa sm '-mfloat-abi=hard' -Fa dm '-mfloat-abi=hard' -Fa sk '-mfloat-abi=hard' -Fa dk '-mfloat-abi=hard' -Fa xc '-mfloat-abi=hard' -Fa gc '-mfloat-abi=hard' -Fa if '-mfloat-abi=hard' -b 32 -d b /home/ubuntu/Libraries/ATLAS/build > config1.out
sh: Syntax error: EOF in backquote substitution
sh: Syntax error: EOF in backquote substitution
sh: Syntax error: EOF in backquote substitution
/usr/bin/ld: error: /tmp/cck4AYUv.o uses VFP register arguments, xctest does not
/usr/bin/ld: failed to merge target specific data of file /tmp/cck4AYUv.o
collect2: ld returned 1 exit status
make[2]: *** [IRunCComp] Error 1
/usr/bin/ld: error: /tmp/ccuMjBW4.o uses VFP register arguments, xctest does not
/usr/bin/ld: failed to merge target specific data of file /tmp/ccuMjBW4.o
collect2: ld returned 1 exit status
make[2]: *** [IRunCComp] Error 1


Unable to find usable compiler for ICC; abortingMake sure compilers are in your path, and specify good compilers to configure
(see INSTALL.txt or 'configure --help' for details)make[1]: *** [atlas_run] Error 1
make[1]: Leaving directory `/home/ubuntu/Libraries/ATLAS/build'
make: *** [IRun_comp] Error 2
ERROR 512 IN SYSCMND: 'make IRun_comp args="-v 0 -o atlconf.txt -O 1 -A 46 -Si nof77 0 -V 1024  -Fa ic '-mfloat-abi=hard' -Fa sm '-mfloat-abi=hard' -Fa dm '-mfloat-abi=hard' -Fa sk '-mfloat-abi=hard' -Fa dk '-mfloat-abi=hard' -Fa xc '-mfloat-abi=hard' -Fa gc '-mfloat-abi=hard' -Fa if '-mfloat-abi=hard' -b 32"'
mkdir src bin tune interfaces
mkdir: cannot create directory `src': File exists
mkdir: cannot create directory `bin': File exists
mkdir: cannot create directory `tune': File exists
mkdir: cannot create directory `interfaces': File exists
make: *** [make_subdirs] Error 1
make -f Make.top startup
make[1]: Entering directory `/home/ubuntu/Libraries/ATLAS/build'
Make.top:1: Make.inc: No such file or directory
Make.top:325: warning: overriding commands for target `/AtlasTest'
Make.top:76: warning: ignoring old commands for target `/AtlasTest'
make[1]: *** No rule to make target `Make.inc'.  Stop.
make[1]: Leaving directory `/home/ubuntu/Libraries/ATLAS/build'
make: *** [startup] Error 2
mv: cannot stat `lib/Makefile': No such file or directory
.././configure: 450: cannot create lib/Makefile: Directory nonexistent
.././configure: 451: cannot create lib/Makefile: Directory nonexistent
.././configure: 452: cannot create lib/Makefile: Directory nonexistent
.././configure: 453: cannot create lib/Makefile: Directory nonexistent
.././configure: 509: cannot create lib/Makefile: Directory nonexistent
DONE configure

所以,我有三个问题:

第一:为什么“ Bad CPU MHZ value=0, res='CPU MHZ=0 ”?我准确地说所有内核的 CPU 节流设置为 0(我检查了 /sys/devices/system/cpu/cpu*/cpufreq/throttle 文件)。有没有办法将 ARM cpu 的时钟频率作为参数传递?

第二:为什么“ sh:语法错误:反引号替换中的EOF ”?

第三:“无法为 ICC 找到可用的编译器;abortingMake.. ”有没有办法在 ./configure 可执行文件中说不寻找 ICC?因为我正在尝试在 ARM 上构建 ATLAS,因此 ICC 不可用。

在此先感谢您的帮助 !

吉克斯

4

1 回答 1

2

ARM 的 ATLAS 配置环境被破坏了,一般来说容错性不是很好:

  • 首先,它尝试通过在 /proc/cpuinfo 中进行 grepping 来确定系统性能(除了一些人类可读的信息转储之外,它从未用于任何其他用途)。您可以通过在配置命令行上指定频率来覆盖它:-m <MHz>
  • 然后它会探测是否启用了电源管理——如果是,它会再次退出。看不到配置选项,但是如果您返回 0 ProbeThrottle()CONFIG/src/backend/archinfo_linux.c它就会过去。
  • 然后,您会被以下事实所震惊:几年前似乎实际上已经为某些 Cortex-A8 平台完成了一些工作,并且默认情况下为 ARMv7 设置了编译器标志CONFIG/src/atlcomp.txtinclude -mfloat-abi=softfp。将其更改为“硬”,它实际上可以在现代 ARM Linux 发行版上运行。
  • 语法错误是由于尝试在其中查找编译器/opt/bin/opt/sbin不是处理错误而产生的。

使用上述解决方法,我看不到任何 ICC 错误,并且构建在崩溃和烧毁之前得到了相当大的进展。

简而言之,需要进行一些移植工作才能使其在 ARM 上正常工作。也许您可以先向他们的开发者邮件列表发送错误报告?

于 2013-02-20T22:27:02.583 回答