Re: [tip:perf/urgent] perf tools, x86: Fix 32-bit compile on 64-bitsystem

From: H. Peter Anvin
Date: Thu Jul 21 2011 - 12:07:59 EST


On 07/21/2011 08:36 AM, tip-bot for David Ahern wrote:
> Commit-ID: 08a4a43fc407d780bdde36d98f89c0dbb2a6be6b
> Gitweb: http://git.kernel.org/tip/08a4a43fc407d780bdde36d98f89c0dbb2a6be6b
> Author: David Ahern <dsahern@xxxxxxxxx>
> AuthorDate: Mon, 11 Jul 2011 15:38:24 -0600
> Committer: Ingo Molnar <mingo@xxxxxxx>
> CommitDate: Thu, 21 Jul 2011 13:42:30 +0200
>
> perf tools, x86: Fix 32-bit compile on 64-bit system
>
> Builds for 32-bit perf binaries on a 64-bit host currently fail
> with this error:
>
> [...]
> bench/../../../arch/x86/lib/memcpy_64.S: Assembler messages:
> bench/../../../arch/x86/lib/memcpy_64.S:29: Error: bad register name `%rdi'
> bench/../../../arch/x86/lib/memcpy_64.S:34: Error: invalid instruction suffix for `movs'
> bench/../../../arch/x86/lib/memcpy_64.S:50: Error: bad register name `%rdi'
> bench/../../../arch/x86/lib/memcpy_64.S:61: Error: bad register name `%rdi'
> ...
>
> The problem is the detection of the host arch without considering passed in
> flags. This change fixes 32-bit builds via:
>
> make EXTRA_CFLAGS=-m32
>
> and 64-bit builds still reference the memcpy_64.S.
>

But this is the wrong way to build 32-bit code on 64-bit platforms.
make ARCH=i386 is the supported way.

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/