[discuss] RE: [PATCH] [1/2] x86_64: Pass -32 to the assembler when compiling the 32bit vsyscall pages
H. J. Lu
hjl@lucon.org
Fri Apr 21 23:22:00 GMT 2006
On Fri, Apr 21, 2006 at 09:25:33AM -0500, Baker, Brian (ISS - Houston) wrote:
> The credit for this should actually go to Dave Altobelli, not myself.
>
> -----Original Message-----
> From: ak@suse.de [mailto:ak@suse.de]
> Sent: Friday, April 21, 2006 2:42 AM
> To: torvalds@osdl.org
> Cc: discuss@x86-64.org; akpm@osdl.org; Baker, Brian (ISS - Houston)
> Subject: [PATCH] [1/2] x86_64: Pass -32 to the assembler when compiling
> the 32bit vsyscall pages
>
>
> This quietens warnings and actually fixes a bug. The unwind tables would
> come out wrong without -32, causing pthread cancellation during them
> to crash in the gcc runtime.
>
> The problem seems to only happen with newer binutils
> (it doesn't happen with 2.16.91.0.2 but happens wit 2.16.91.0.5)
If you believe it is true, please open a bug report at
http://www.sourceware.org/bugzilla/
>
> Thanks to Brian Baker @ HP for test case and initial analysis.
>
> Cc: brian.b@hp.com
>
> Signed-off-by: Andi Kleen <ak@suse.de>
>
> ---
> arch/x86_64/ia32/Makefile | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> Index: linux/arch/x86_64/ia32/Makefile
> ===================================================================
> --- linux.orig/arch/x86_64/ia32/Makefile
> +++ linux/arch/x86_64/ia32/Makefile
> @@ -27,5 +27,5 @@ $(obj)/vsyscall-sysenter.so $(obj)/vsysc
> $(obj)/vsyscall-%.so: $(src)/vsyscall.lds $(obj)/vsyscall-%.o FORCE
> $(call if_changed,syscall)
>
> -AFLAGS_vsyscall-sysenter.o = -m32
> -AFLAGS_vsyscall-syscall.o = -m32
> +AFLAGS_vsyscall-sysenter.o = -m32 -Wa,-32
> +AFLAGS_vsyscall-syscall.o = -m32 -Wa,-32
I can't reproduce it with binutils 2.16.91.0.5. Unless you have a bad
gcc driver, -m32 will pass --32 to assembler, which is the same as -32.
H.J.
More information about the Binutils
mailing list