This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [discuss] RE: [PATCH] [1/2] x86_64: Pass -32 to the assembler when compiling the 32bit vsyscall pages
- From: "H. J. Lu" <hjl at lucon dot org>
- To: Andi Kleen <ak at suse dot de>
- Cc: discuss at x86-64 dot org, "Baker, Brian (ISS - Houston)" <Brian dot B at hp dot com>, torvalds at osdl dot org, akpm at osdl dot org, "Altobelli, David" <david dot altobelli at hp dot com>, binutils at sources dot redhat dot com
- Date: Fri, 21 Apr 2006 16:32:44 -0700
- Subject: Re: [discuss] RE: [PATCH] [1/2] x86_64: Pass -32 to the assembler when compiling the 32bit vsyscall pages
- References: <6095103C4F0ACD4FAE3522E0F27ADF42022CEE33@cceexc13.americas.cpqcorp.net> <20060421145001.GA13830@lucon.org> <200604220025.53501.ak@suse.de>
On Sat, Apr 22, 2006 at 12:25:52AM +0200, Andi Kleen wrote:
>
> > > 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?
I compared the outputs of vsyscall-sysenter.o with -m32 and -m32
-Wa,-32, using gcc 3.4. They are identical.
>
> 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.
There is no need to do that. If you believe the problem is due to
binutils 2.16.91.0.5, it is a binutils bug. Please open a bug report
at
http://www.sourceware.org/bugzilla/
and assign it to me. I need the preprocessed .s file, the expected .o
file and the expected .so file with procedures to reproduce the
difference. Since they are assembly codes, I will expect -m32 and
-m32 -Wa,-32 should generate the same output.
>
> > 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.
>
Since they are assembly codes, it sounds like a gcc driver issue to me.
H.J.