This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]