[discuss] RE: [PATCH] [1/2] x86_64: Pass -32 to the assembler when compiling the 32bit vsyscall pages

Andi Kleen ak@suse.de
Sun Apr 23 20:24:00 GMT 2006


> > 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

What did you try exactly? 

You have to recompile the file and either run the pthreads
cancellation test case with the right glibc version, or examine
the unwind tables in the .so by hand. Or just check if the warning
appears or not.

> 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.

It definitely fixed the problem here and the warning went away.
gcc used was 4.1

But you're right it could have been the gcc - in the case where it worked
I was using gcc 4.0.

-Andi



More information about the Binutils mailing list