2011-05-06 16:54:48

by Riccardo Magliocchetti

[permalink] [raw]
Subject: compiling of tools/perf fail on x86 64bit kernel and 32bit userspace

Hi,

with latest git, i cannot compile perf on 32 bit userspace with a 64 bit
kernel.

~/src/linux-2.6/tools/perf$ make
PERF_VERSION = 2.6.39.rc6.224.g06d006f
GEN common-cmds.h
* new build flags or prefix
CC perf.o
CC builtin-annotate.o
CC builtin-bench.o
CC bench/sched-messaging.o
CC bench/sched-pipe.o
CC bench/mem-memcpy-x86-64-asm.o
bench/../../../arch/x86/lib/memcpy_64.S: Assembler messages:
bench/../../../arch/x86/lib/memcpy_64.S:28: Error: bad register name `%rdi'
bench/../../../arch/x86/lib/memcpy_64.S:33: Error: invalid instruction
suffix for `movs'

ARCH=x86 make works fine

thanks,
riccardo


2011-05-07 04:55:31

by Ming Lin

[permalink] [raw]
Subject: Re: compiling of tools/perf fail on x86 64bit kernel and 32bit userspace

On Sat, May 7, 2011 at 12:54 AM, Riccardo Magliocchetti
<[email protected]> wrote:
> Hi,
>
> with latest git, i cannot compile perf on 32 bit userspace with a 64 bit
> kernel.
>
> ~/src/linux-2.6/tools/perf$ make
> PERF_VERSION = 2.6.39.rc6.224.g06d006f
> ? ?GEN common-cmds.h
> ? ?* new build flags or prefix
> ? ?CC perf.o
> ? ?CC builtin-annotate.o
> ? ?CC builtin-bench.o
> ? ?CC bench/sched-messaging.o
> ? ?CC bench/sched-pipe.o
> ? ?CC bench/mem-memcpy-x86-64-asm.o
> bench/../../../arch/x86/lib/memcpy_64.S: Assembler messages:
> bench/../../../arch/x86/lib/memcpy_64.S:28: Error: bad register name `%rdi'
> bench/../../../arch/x86/lib/memcpy_64.S:33: Error: invalid instruction
> suffix for `movs'

Hi,

I just send out a patch to fix this.
https://lkml.org/lkml/2011/5/7/4

Could you have a try it?

Thanks,
Lin Ming

2011-05-07 14:46:50

by Riccardo Magliocchetti

[permalink] [raw]
Subject: Re: compiling of tools/perf fail on x86 64bit kernel and 32bit userspace

Hi there,

Il 07/05/2011 06:55, Lin Ming ha scritto:
> On Sat, May 7, 2011 at 12:54 AM, Riccardo Magliocchetti
> <[email protected]> wrote:
>> Hi,
>>
>> with latest git, i cannot compile perf on 32 bit userspace with a 64 bit
>> kernel.
>>
>> ~/src/linux-2.6/tools/perf$ make
>> PERF_VERSION = 2.6.39.rc6.224.g06d006f
>> GEN common-cmds.h
>> * new build flags or prefix
>> CC perf.o
>> CC builtin-annotate.o
>> CC builtin-bench.o
>> CC bench/sched-messaging.o
>> CC bench/sched-pipe.o
>> CC bench/mem-memcpy-x86-64-asm.o
>> bench/../../../arch/x86/lib/memcpy_64.S: Assembler messages:
>> bench/../../../arch/x86/lib/memcpy_64.S:28: Error: bad register name `%rdi'
>> bench/../../../arch/x86/lib/memcpy_64.S:33: Error: invalid instruction
>> suffix for `movs'
>
> Hi,
>
> I just send out a patch to fix this.
> https://lkml.org/lkml/2011/5/7/4
>
> Could you have a try it?

Works fine, thanks!

riccardo