Re: gcc 3.4.6 fails to build 2.6.25 due to offsetof() not digestible by gas

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 02, 2008 at 02:53:42AM +0200, sampo@xxxxxxxxxxx wrote:
> Adrian Bunk wrote:
> > On Thu, May 01, 2008 at 11:39:52PM +0200, Sam Ravnborg wrote:
> >>
> >> Do we know why it picked up the busy box version?
> 
> I think it has to do with my /bin/sh being the busybox ash. It seems
> the ash prefers its built-in version over the one in path. This is
> probably due to me having compiled busybox with some option. Sorry
> for the confusion.

This makes sense - thanks for the explanation!

> If I edit linux/Kbuild to reference explicitly /usr/bin/sed (which
> is the gnu sed), the compile proceeds ok up to a point where
> following happens
> 
> (snip)
> make -f scripts/Makefile.build obj=arch/x86/vdso
>   gcc -Wp,-MD,arch/x86/vdso/vdso32/.int80.o.d  -nostdinc -isystem
> /apps/gcc/3.4.6/lib/gcc/i686-pc-linux-gnu/3.4.6/include -D__KERNEL__
> -Iinclude  -include include/linux/autoconf.h -D__ASSEMBLY__ -m32
> -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1
> -Iinclude/asm-x86/mach-default     -c -o arch/x86/vdso/vdso32/int80.o
> arch/x86/vdso/vdso32/int80.S
> arch/x86/vdso/vdso32/int80.S: Assembler messages:
> arch/x86/vdso/vdso32/int80.S:68: Fatal error: cannot write to output file
> make[1]: *** [arch/x86/vdso/vdso32/int80.o] Error 1
> make: *** [arch/x86/vdso] Error 2

I will assume this is sed that is playing tricks with us again.
If you replace sed with /usr/bin/sed in the arch/x86/vdso/Makefile
does the build then proceed?

If this does not fix it then try to post what happens a few lines
before the gcc invocation - this is likely where we start to see
the problem.

> I would wish at least busybox sed be accommodated. Looking at the
> sed expression, it seems unnecessarily complicated. I'll try to formulate
> a simpler expression that accomplishes the same net result, namely
> transforming
> 
>   ->IA32_SIGCONTEXT_ax $44 offsetof(struct sigcontext, ax)
> 
> to
> 
>   #define IA32_SIGCONTEXT_ax 44 /* offsetof(struct sigcontext, ax) # */
> 
> It can't be as difficult as
> 
>   "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:;
> s:->::; p;}"

There a special mips case to consider too.
A patch is appreciated!

	Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux