|
From: Andy H. <an...@ga...> - 2014-05-19 15:39:48
|
On 04/17/2014 06:08 PM, John Reiser wrote:
>> I am trying to compile and install valgrind on a 64 bits CENT OS 6.5 system.
>>
>> When I compile valgrind (with make), I get the following errors:
>>
>> m_cpuid.S:40: Error: suffix or operands invalid for `push'
>
>> m_cpuid.S:43: Error: suffix or operands invalid for `pushf'
>
>> m_cpuid.S:45: Error: suffix or operands invalid for `pop'
>
>> gcc (GCC) 4.7.3
>
> Unfortunately that version of gcc/gas/bfd/binutils has a bug
> in not allowing the 'l' on "pushl %ebp", "popl %ebp", "pushfl".
> (They changed gcc and binutils together to omit the 'l',
> but forgot that the rest of the world requires
> backward compatibility with the old spellings of the opcodes.)
>
> Either change the source to remove the 'l' on the indicated lines,
> or upgrade to gcc-4.8.x.
>
I just ran into the same problem under CentOS 5.10. I removed the 'l', but still get the
same problem. gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)
m_cpuid.S:40: Error: suffix or operands invalid for `push'
Line 40 now has:
push %ebp
I tried to make -k to see what else has problems:
m_syscall.c
m_trampoline.S
dispatch-x86-linux.S
...
Along with a bunch of others. I think something else must be wrong, though I don't know
what. Make is running:
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../VEX/pub -DVGA_x86=1 -DVGO_linux=1
-DVGP_x86_linux=1 -DVGPV_x86_linux_vanilla=1 -I../coregrind
-DVG_LIBDIR="\"/usr/lib64/valgrind"\" -DVG_PLATFORM="\"x86-linux\"" -m32 -g
-Wno-long-long -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -MT libcoregrind_x86_linux_a-m_cpuid.o -MD
-MP -MF .deps/libcoregrind_x86_linux_a-m_cpuid.Tpo -c -o
libcoregrind_x86_linux_a-m_cpuid.o `test -f 'm_cpuid.S' || echo './'`m_cpuid.S
Regards,
Andy
|