Re: Compiling with 2.6.25-rc2 with binutils 2.17 fails?

From: Rob Landley
Date: Mon Feb 18 2008 - 05:39:57 EST


On Sunday 17 February 2008 21:09:10 Roland McGrath wrote:
> > Still trying to track down why, but it works on a toolchain built from
> > binutils 2.18 and gcc 4.1.3, but not with a toolchain from binutils 2.17
> > and gcc 4.1.2. And considering where it's failing...
>
> I don't think the vdso magic should require so new a binutils. Please try
> to figure out which of the steps is producing different results between the
> two tool setups.

I'm poking at it. Something in my cross compiling setup is driving this bit
screwy:

i686-nm arch/x86/vdso/vdso32-sysenter.so.dbg |
sed -n -e 's/^00*/0/' -e 's/^\([0-9a-fA-F]*\) . \(VDSO[a-zA-Z0-9_]*\)$/ =
0x;/p' | LC_ALL=C sort > arch/x86/vdso/vdso32-sysenter-syms.lds
if LC_ALL=C sort -u arch/x86/vdso/vdso32-int80-syms.lds
arch/x86/vdso/vdso32-sysenter-syms.lds > arch/x86/vdso/.tmp_vdso32-syms.lds
&& if grep -q VDSO32_SYSENTER_RETURN arch/x86/vdso/vdso32-int80-syms.lds;
then diff -u arch/x86/vdso/.tmp_vdso32-syms.lds
arch/x86/vdso/vdso32-int80-syms.lds; else sed /VDSO32_SYSENTER_RETURN/d
arch/x86/vdso/.tmp_vdso32-syms.lds | diff -u -
arch/x86/vdso/vdso32-int80-syms.lds; fi && if grep -q VDSO32_SYSENTER_RETURN
arch/x86/vdso/vdso32-sysenter-syms.lds; then diff -u
arch/x86/vdso/.tmp_vdso32-syms.lds arch/x86/vdso/vdso32-sysenter-syms.lds;
else sed /VDSO32_SYSENTER_RETURN/d arch/x86/vdso/.tmp_vdso32-syms.lds |
diff -u - arch/x86/vdso/vdso32-sysenter-syms.lds; fi && : ; then mv -f
arch/x86/vdso/.tmp_vdso32-syms.lds arch/x86/vdso/vdso32-syms.lds; else rm -f
arch/x86/vdso/.tmp_vdso32-syms.lds; exit 1; fi
--- - Sun Feb 17 20:24:03 2008
+++ arch/x86/vdso/vdso32-int80-syms.lds Sun Feb 17 20:24:03 2008
@@ -0,0 +1,5 @@
+VDSO32_PRELINK = 0x0;
+VDSO32_rt_sigreturn = 0x040c;
+VDSO32_sigreturn = 0x0400;
+VDSO32_vsyscall = 0x0414;
+VDSO32_vsyscall_eh_frame_size = 0x040;
make[1]: *** [arch/x86/vdso/vdso32-syms.lds] Error 1
make: *** [arch/x86/vdso] Error 2

If binutils is involved, it's due to i686-nm...

I'm still trying to puzzle out the "if thing && thing &&:; then" syntax above.
Never encountered that one before... A colon? I'll try to bang on it some
more tomorrow, it's gone 4am on me...

> Thanks,
> Roland

Rob
--
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.
--
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/