This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Compile Error in armcc (using DS5)

Tags: None
(comma "," separated)
anam
Registered Member
Posts
2
Karma
0

Compile Error in armcc (using DS5)

Wed Aug 15, 2012 10:51 am
Hi,

I am trying to integrate Eigen library in a project. I am using the ARM DS5 suite which uses ARM compiler (armcc). When I try to compile the project I get the following errors:

'Building file: ../test.cpp'
'Invoking: ARM C++ Compiler'
armcc --cpp -O0 --cpu=Cortex-A15 -g --arm_only --asm -c -o "test.o" "../test.cpp"

"../Eigen/src/Core/arch/NEON/PacketMath.h", line 115: Error: #146: too many initializer values
Packet4f countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3);

"../Eigen/src/Core/arch/NEON/PacketMath.h", line 224: Error: #18: expected a ")"
template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { __pld(addr); }

"../Eigen/src/Core/arch/NEON/Complex.h", line 32: Error: #146: too many initializer values
static uint32x4_t p4ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET4(0x00000000, 0x80000000, 0x00000000, 0x80000000);
^
"../Eigen/src/Core/arch/NEON/Complex.h", line 33: Error: #146: too many initializer values
static uint32x2_t p2ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET2(0x00000000, 0x80000000);

"../Eigen/src/Core/arch/NEON/Complex.h", line 131: Error: #18: expected a ")"
template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> * addr) { __pld((float *)addr); }

Any help is appreciated.

Thanks
anam
Registered Member
Posts
2
Karma
0
Anyone?
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
I don't have armcc to test. A quick solution is to disable the use of NEON: -DEIGEN_DONT_VECTORIZE. Of course it would be better to fix theses issues:

- Regarding the two with the 'prefetch' function, what if you remove the EIGEN_STRONG_INLINE ?

- Regarding EIGEN_INIT_NEON_PACKET*, look at the file Eigen/src/Core/Arch/NEON/PacketMath.h, line 42. Maybe you need to enable the first definitions of these macro for armcc instead of the default one (gcc), e.g.:

#if (defined(__llvm__) && !defined(__clang__)) || defined(__CC_ARM)


Bookmarks



Who is online

Registered users: Baidu [Spider], Bing [Bot], Google [Bot], Yahoo [Bot]