mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: kernel-image-2.6.7
       [not found]             ` <Pine.GSO.4.58.0408230947190.29370@waterleaf.sonytel.be>
@ 2004-08-25 20:50               ` Geert Uytterhoeven
  2004-08-25 22:17                 ` kernel-image-2.6.7 Andreas Schwab
  2004-08-26 19:56                 ` kernel-image-2.6.7 Sam Ravnborg
  0 siblings, 2 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2004-08-25 20:50 UTC (permalink / raw)
  To: Roman Zippel, Sam Ravnborg
  Cc: Christian T. Steigies, Linux/m68k, Linux Kernel Development


[ Background: M68k 2.6.x kernels with CONFIG_MODULES=y have been crashing very
  early for me since quite a while. The problem seems to be incorrect addresses
  (and thus sizes) for various variables, causing data structure corruption ]

On Mon, 23 Aug 2004, Geert Uytterhoeven wrote:
> On Sun, 22 Aug 2004, Roman Zippel wrote:
> > Geert Uytterhoeven wrote:
> > > Easily explained by System.map:
> > > | 00194090 B amiga_model
> > > | 00194090 B m68k_memory
> > > | 00194094 B amiga_chipset
> > >
> > > So initializing amiga_model kills m68k_memory...

[ m68k_memory is supposed to be 32 bytes long, not 4 bytes ]

> > Anyway, I still can't reproduce this, but from the object files I've
> > seen, it seems the bss isn't correctly set. Could you please check the
> > various object files under arch/m68k/{kernel,amiga} for their bss size?
>
> At first sight, there seem to be more of them with a zero bss if
> CONFIG_MODULES=y. Will be investigated...

Indeed, in arch/m68k/kernel/setup.o .bss and .init.data become zero-sized,
while all other sections have the same size.

If I do `make V=1 arch/m68k/kernel/setup.o', I get:

| anakin$ make V=1 arch/m68k/kernel/setup.o
| make -C /home/geert/linux/testing/linux-m68k-2.6.9-rc1 O=/home/geert/linux/testing/linux-m68k-2.6.x-amiga-mod arch/m68k/kernel/setup.o
| make -C /home/geert/linux/testing/linux-m68k-2.6.x-amiga-mod            \
| KBUILD_SRC=/home/geert/linux/testing/linux-m68k-2.6.9-rc1            KBUILD_VERBOSE=1   \
| KBUILD_CHECK= KBUILD_EXTMOD=""  \
|         -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/Makefile arch/m68k/kernel/setup.o
| make -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/scripts/Makefile.build obj=scripts/basic
| make -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/scripts/Makefile.build obj=scripts
| make -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/scripts/Makefile.build obj=scripts/genksyms
| make -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/scripts/Makefile.build obj=scripts/mod
| make -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/scripts/Makefile.build obj=arch/m68k/kernel arch/m68k/kernel/setup.o
|   m68k-linux-gcc -Wp,-MD,arch/m68k/kernel/.setup.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Iinclude2 -I/home/geert/linux/testing/linux-m68k-2.6.9-rc1/include -I/home/geert/linux/testing/linux-m68k-2.6.9-rc1/arch/m68k/kernel -Iarch/m68k/kernel -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -fno-strength-reduce -ffixed-a2 -m68040 -O2 -fomit-frame-pointer  -DKBUILD_BASENAME=setup -DKBUILD_MODNAME=setup -c -o arch/m68k/kernel/.tmp_setup.o /home/geert/linux/testing/linux-m68k-2.6.9-rc1/arch/m68k/kernel/setup.c
| anakin$

Note that according to the last line, m68k-linux-gcc will store its output in
arch/m68k/kernel/.tmp_setup.o instead of arch/m68k/kernel/setup.o! But
afterwards there is no arch/m68k/kernel/.tmp_setup.o, only
arch/m68k/kernel/setup.o?

If I execute the m68k-linux-gcc command by hand, it does create
arch/m68k/kernel/.tmp_setup.o, and ... surprise! The sizes of the .bss and .init.data sections in that file are correct:

| anakin$ m68k-linux-objdump -h arch/m68k/kernel/.tmp_setup.o
|
| arch/m68k/kernel/.tmp_setup.o:     file format elf32-m68k
|
| Sections:
| Idx Name          Size      VMA       LMA       File off  Algn
|   0 .text         0000024a  00000000  00000000  00000034  2**2
|                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
|   1 .data         0000001a  00000000  00000000  00000280  2**2
|                   CONTENTS, ALLOC, LOAD, RELOC, DATA
|   2 .bss          00000188  00000000  00000000  0000029c  2**2
                    ^^^^^^^^
|                   ALLOC
|   3 .note         00000014  00000000  00000000  0000029c  2**0
|                   CONTENTS, READONLY
|   4 .init.data    00000008  00000000  00000000  000002b0  2**1
                    ^^^^^^^^
|                   CONTENTS, ALLOC, LOAD, DATA
|   5 __kcrctab     00000004  00000000  00000000  000002b8  2**1
|                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
|   6 __ksymtab_strings 0000000f  00000000  00000000  000002bc  2**0
|                   CONTENTS, ALLOC, LOAD, READONLY, DATA
|   7 __ksymtab     00000008  00000000  00000000  000002cc  2**1
|                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
|   8 .rodata       00000256  00000000  00000000  000002d4  2**0
|                   CONTENTS, ALLOC, LOAD, READONLY, DATA
|   9 .init.text    00000396  00000000  00000000  0000052a  2**1
|                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
|  10 .comment      0000002f  00000000  00000000  000008c0  2**0
|                   CONTENTS, READONLY
| anakin$

while .bss and .init.data are of size zero in arch/m68k/kernel/setup.o:

| anakin$ m68k-linux-objdump -h arch/m68k/kernel/setup.o
|
| arch/m68k/kernel/setup.o:     file format elf32-m68k
|
| Sections:
| Idx Name          Size      VMA       LMA       File off  Algn
|   0 .text         0000024a  00000000  00000000  00000034  2**2
|                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
|   1 __kcrctab     00000004  00000000  00000000  0000027e  2**1
|                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
|   2 __ksymtab_strings 0000000f  00000000  00000000  00000282  2**0
|                   CONTENTS, ALLOC, LOAD, READONLY, DATA
|   3 __ksymtab     00000008  00000000  00000000  00000292  2**1
|                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
|   4 .rodata       00000256  00000000  00000000  0000029a  2**0
|                   CONTENTS, ALLOC, LOAD, READONLY, DATA
|   5 .init.text    00000396  00000000  00000000  000004f0  2**1
|                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
|   6 .data         0000001a  00000000  00000000  00000888  2**2
|                   CONTENTS, ALLOC, LOAD, RELOC, DATA
|   7 .bss          00000000  00000000  00000000  000008a4  2**2
                    ^^^^^^^^
|                   ALLOC
|   8 .init.data    00000000  00000000  00000000  000008a4  2**1
                    ^^^^^^^^
|                   CONTENTS, ALLOC, LOAD, DATA
|   9 .note         00000014  00000000  00000000  000008a4  2**0
|                   CONTENTS, READONLY
|  10 .comment      0000002f  00000000  00000000  000008b8  2**0
|                   CONTENTS, READONLY
| anakin$

Now the remaining questions are:
  1. Why does kbuild create arch/m68k/kernel/.tmp_setup.o?
  2. How does kbuild create setup.o from .tmp_setup.o, destroying .bss and
     .init.data?
  3. Why doesn't the above step show up with `make V=1'?

[ digging into scripts/Makefile.build ]

Aha, kbuild does this only if CONFIG_MODVERSIONS=y.

So it goes wrong during this step:

| m68k-linux-ld -r -o x.o arch/m68k/kernel/.tmp_setup.o -T \
| arch/m68k/kernel/.tmp_setup.ver

| anakin$ cat arch/m68k/kernel/.tmp_setup.ver
| __crc_mach_heartbeat = 0x39638af7 ;
| anakin$

Does the above look like a valid linker file? `mach_heartbeat' is indeed the
only exported symbol in arch/m68k/kernel/setup.c.

[ disabling CONFIG_MODVERSIONS ]

And now .bss and .initdata are OK as well... Let's see whether the resulting
kernel works...

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: kernel-image-2.6.7
  2004-08-25 20:50               ` kernel-image-2.6.7 Geert Uytterhoeven
@ 2004-08-25 22:17                 ` Andreas Schwab
  2004-08-26 19:56                 ` kernel-image-2.6.7 Sam Ravnborg
  1 sibling, 0 replies; 6+ messages in thread
From: Andreas Schwab @ 2004-08-25 22:17 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Roman Zippel, Sam Ravnborg, Christian T. Steigies, Linux/m68k,
	Linux Kernel Development

Geert Uytterhoeven <geert@linux-m68k.org> writes:

> So it goes wrong during this step:
>
> | m68k-linux-ld -r -o x.o arch/m68k/kernel/.tmp_setup.o -T \
> | arch/m68k/kernel/.tmp_setup.ver
>
> | anakin$ cat arch/m68k/kernel/.tmp_setup.ver
> | __crc_mach_heartbeat = 0x39638af7 ;
> | anakin$
>
> Does the above look like a valid linker file? `mach_heartbeat' is indeed the
> only exported symbol in arch/m68k/kernel/setup.c.

Looks correct.  If anything goes wrong then it must be the ld -r call.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: kernel-image-2.6.7
  2004-08-25 20:50               ` kernel-image-2.6.7 Geert Uytterhoeven
  2004-08-25 22:17                 ` kernel-image-2.6.7 Andreas Schwab
@ 2004-08-26 19:56                 ` Sam Ravnborg
  2004-08-29 11:38                   ` kernel-image-2.6.7 Geert Uytterhoeven
  1 sibling, 1 reply; 6+ messages in thread
From: Sam Ravnborg @ 2004-08-26 19:56 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Roman Zippel, Sam Ravnborg, Christian T. Steigies, Linux/m68k,
	Linux Kernel Development

On Wed, Aug 25, 2004 at 10:50:36PM +0200, Geert Uytterhoeven wrote:
 
> Indeed, in arch/m68k/kernel/setup.o .bss and .init.data become zero-sized,
> while all other sections have the same size.
Not good.. Se below.

> 
> If I do `make V=1 arch/m68k/kernel/setup.o', I get:
> 
> | anakin$ make V=1 arch/m68k/kernel/setup.o
> | make -C /home/geert/linux/testing/linux-m68k-2.6.9-rc1 O=/home/geert/linux/testing/linux-m68k-2.6.x-amiga-mod arch/m68k/kernel/setup.o
> | make -C /home/geert/linux/testing/linux-m68k-2.6.x-amiga-mod            \
> | KBUILD_SRC=/home/geert/linux/testing/linux-m68k-2.6.9-rc1            KBUILD_VERBOSE=1   \
> | KBUILD_CHECK= KBUILD_EXTMOD=""  \
> |         -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/Makefile arch/m68k/kernel/setup.o
> | make -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/scripts/Makefile.build obj=scripts/basic
> | make -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/scripts/Makefile.build obj=scripts
> | make -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/scripts/Makefile.build obj=scripts/genksyms
> | make -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/scripts/Makefile.build obj=scripts/mod
> | make -f /home/geert/linux/testing/linux-m68k-2.6.9-rc1/scripts/Makefile.build obj=arch/m68k/kernel arch/m68k/kernel/setup.o
> |   m68k-linux-gcc -Wp,-MD,arch/m68k/kernel/.setup.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Iinclude2 -I/home/geert/linux/testing/linux-m68k-2.6.9-rc1/include -I/home/geert/linux/testing/linux-m68k-2.6.9-rc1/arch/m68k/kernel -Iarch/m68k/kernel -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -fno-strength-reduce -ffixed-a2 -m68040 -O2 -fomit-frame-pointer  -DKBUILD_BASENAME=setup -DKBUILD_MODNAME=setup -c -o arch/m68k/kernel/.tmp_setup.o /home/geert/linux/testing/linux-m68k-2.6.9-rc1/arch/m68k/kernel/setup.c
> | anakin$
> 
> Note that according to the last line, m68k-linux-gcc will store its output in
> arch/m68k/kernel/.tmp_setup.o instead of arch/m68k/kernel/setup.o! But
> afterwards there is no arch/m68k/kernel/.tmp_setup.o, only
> arch/m68k/kernel/setup.o?
> 
> If I execute the m68k-linux-gcc command by hand, it does create
> arch/m68k/kernel/.tmp_setup.o, and ... surprise! The sizes of the .bss and .init.data sections in that file are correct:
> 
> | anakin$ m68k-linux-objdump -h arch/m68k/kernel/.tmp_setup.o
> |
> | arch/m68k/kernel/.tmp_setup.o:     file format elf32-m68k
> |
> | Sections:
> | Idx Name          Size      VMA       LMA       File off  Algn
> |   0 .text         0000024a  00000000  00000000  00000034  2**2
> |                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
> |   1 .data         0000001a  00000000  00000000  00000280  2**2
> |                   CONTENTS, ALLOC, LOAD, RELOC, DATA
> |   2 .bss          00000188  00000000  00000000  0000029c  2**2
>                     ^^^^^^^^
> |                   ALLOC
> |   3 .note         00000014  00000000  00000000  0000029c  2**0
> |                   CONTENTS, READONLY
> |   4 .init.data    00000008  00000000  00000000  000002b0  2**1
>                     ^^^^^^^^
> |                   CONTENTS, ALLOC, LOAD, DATA
> |   5 __kcrctab     00000004  00000000  00000000  000002b8  2**1
> |                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
> |   6 __ksymtab_strings 0000000f  00000000  00000000  000002bc  2**0
> |                   CONTENTS, ALLOC, LOAD, READONLY, DATA
> |   7 __ksymtab     00000008  00000000  00000000  000002cc  2**1
> |                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
> |   8 .rodata       00000256  00000000  00000000  000002d4  2**0
> |                   CONTENTS, ALLOC, LOAD, READONLY, DATA
> |   9 .init.text    00000396  00000000  00000000  0000052a  2**1
> |                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
> |  10 .comment      0000002f  00000000  00000000  000008c0  2**0
> |                   CONTENTS, READONLY
> | anakin$
> 
> while .bss and .init.data are of size zero in arch/m68k/kernel/setup.o:
> 
> | anakin$ m68k-linux-objdump -h arch/m68k/kernel/setup.o
> |
> | arch/m68k/kernel/setup.o:     file format elf32-m68k
> |
> | Sections:
> | Idx Name          Size      VMA       LMA       File off  Algn
> |   0 .text         0000024a  00000000  00000000  00000034  2**2
> |                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
> |   1 __kcrctab     00000004  00000000  00000000  0000027e  2**1
> |                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
> |   2 __ksymtab_strings 0000000f  00000000  00000000  00000282  2**0
> |                   CONTENTS, ALLOC, LOAD, READONLY, DATA
> |   3 __ksymtab     00000008  00000000  00000000  00000292  2**1
> |                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
> |   4 .rodata       00000256  00000000  00000000  0000029a  2**0
> |                   CONTENTS, ALLOC, LOAD, READONLY, DATA
> |   5 .init.text    00000396  00000000  00000000  000004f0  2**1
> |                   CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
> |   6 .data         0000001a  00000000  00000000  00000888  2**2
> |                   CONTENTS, ALLOC, LOAD, RELOC, DATA
> |   7 .bss          00000000  00000000  00000000  000008a4  2**2
>                     ^^^^^^^^
> |                   ALLOC
> |   8 .init.data    00000000  00000000  00000000  000008a4  2**1
>                     ^^^^^^^^
> |                   CONTENTS, ALLOC, LOAD, DATA
> |   9 .note         00000014  00000000  00000000  000008a4  2**0
> |                   CONTENTS, READONLY
> |  10 .comment      0000002f  00000000  00000000  000008b8  2**0
> |                   CONTENTS, READONLY
> | anakin$
> 
> Now the remaining questions are:
>   1. Why does kbuild create arch/m68k/kernel/.tmp_setup.o?
>   2. How does kbuild create setup.o from .tmp_setup.o, destroying .bss and
>      .init.data?
>   3. Why doesn't the above step show up with `make V=1'?
> 
> [ digging into scripts/Makefile.build ]
> 
> Aha, kbuild does this only if CONFIG_MODVERSIONS=y.
> 
> So it goes wrong during this step:
> 
> | m68k-linux-ld -r -o x.o arch/m68k/kernel/.tmp_setup.o -T \
> | arch/m68k/kernel/.tmp_setup.ver
> 
> | anakin$ cat arch/m68k/kernel/.tmp_setup.ver
> | __crc_mach_heartbeat = 0x39638af7 ;
> | anakin$

A bit code from Makefile.build:
cmd_modversions =						\
if ! $(OBJDUMP) -h $(@D)/.tmp_$(@F) | grep -q __ksymtab; then	\
	mv $(@D)/.tmp_$(@F) $@;					\
else								\
	$(CPP) -D__GENKSYMS__ $(c_flags) $<			\
	| $(GENKSYMS)						\
	> $(@D)/.tmp_$(@F:.o=.ver);				\
								\
	$(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) 		\
		-T $(@D)/.tmp_$(@F:.o=.ver);			\
	rm -f $(@D)/.tmp_$(@F) $(@D)/.tmp_$(@F:.o=.ver);	\
fi;

First part checks if there is any exported symbols - which we have in this case.
The $(CPP) and $(GENKSYMS) part finds exported symbols and creates the .ver file.
Your .ver file looked fine - so this step has succeded..
Then we do the linking.

Could you try to stuff in an echo line here - something like:
	echo  $(LD) $(LDFLAGS) 					\
        $(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F)              \
                -T $(@D)/.tmp_$(@F:.o=.ver);                    \

Just to be confirmed that there is no LDFLAGS that fouls us here.

Otherwise I have no good suggestions.

	Sam

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: kernel-image-2.6.7
  2004-08-26 19:56                 ` kernel-image-2.6.7 Sam Ravnborg
@ 2004-08-29 11:38                   ` Geert Uytterhoeven
  2004-08-29 12:11                     ` kernel-image-2.6.7 Sam Ravnborg
  0 siblings, 1 reply; 6+ messages in thread
From: Geert Uytterhoeven @ 2004-08-29 11:38 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Roman Zippel, Christian T. Steigies, Linux/m68k,
	Linux Kernel Development

On Thu, 26 Aug 2004, Sam Ravnborg wrote:
> Could you try to stuff in an echo line here - something like:
> 	echo  $(LD) $(LDFLAGS) 					\
>         $(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F)              \
>                 -T $(@D)/.tmp_$(@F:.o=.ver);                    \
>
> Just to be confirmed that there is no LDFLAGS that fouls us here.

And LDFLAGS doesn't foul us here (it's just `-m m68kelf').

Just for those that are interested: after some more digging this turned out to
be a bug in the (old) binutils I'm using. It got fixed in later releases of
binutils. (Originally I thought the problem was introduced during the final
linking step of the kernel, and it showed up with whatever version of ld I
used for the final linking step).

How to reproduce:

| anakin$ cat test.s
|         .version        "01.01"
| .section        .bss
| m68k_memory:
|         .zero   32
| anakin$

The key is the `.version' keyword, without that the problem cannot be
reproduced.

| anakin$ cat test.ver
| anakin$

Yep, an empty linker script is fine. Without a linker script it cannot be
reproduced, though.

Results for dfferent versions of binutils:

| anakin$ m68k-linux-as -o test.o test.s && m68k-linux-ld -r -o test2.o test.o -T test.ver && m68k-linux-objdump -h test*.o | grep bss; m68k-linux-ld -V
|   2 .bss          00000020  00000000  00000000  00000034  2**2
|   2 .bss          00000000  00000000  00000000  00000034  2**2
                    ^^^^^^^^
BUG! .bss becomes zero sized!

| GNU ld version 2.9.5 (with BFD 2.9.5.0.37)
|   Supported emulations:
|    m68kelf
|    m68klinux
| anakin$

And newer binutils are fine:

| tux$ m68k-linux-as -o test.o test.s && m68k-linux-ld -r -o test2.o test.o -T test.ver && m68k-linux-objdump -h test*.o | grep bss; m68k-linux-ld -V
|   2 .bss          00000020  00000000  00000000  00000034  2**2
|   2 .bss          00000020  00000000  00000000  00000034  2**2
| GNU ld version 2.13.90.0.10 20021010
|   Supported emulations:
|    m68kelf
|    m68klinux
| tux$

| anakin$ m68k-linux-as -o test.o test.s && m68k-linux-ld -r -o test2.o test.o -T test.ver && m68k-linux-objdump -h test*.o | grep bss; m68k-linux-ld -V
|   2 .bss          00000020  00000000  00000000  00000034  2**2
|   2 .bss          00000020  00000000  00000000  00000034  2**2
| GNU ld version 2.14.90.0.7 20031029 Debian GNU/Linux
|   Supported emulations:
|    m68kelf
|    m68klinux
| anakin$

Conclusions: gcc 2.95.2 and binutils 2.9.5 are fine for compiling 2.6.x kernels
for m68k, but:
  - You need a newer binutils for building initramfs (make usr/)
  - You need a newer binutils for building modular kernels with
    CONFIG_MODVERSIONS=y

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: kernel-image-2.6.7
  2004-08-29 11:38                   ` kernel-image-2.6.7 Geert Uytterhoeven
@ 2004-08-29 12:11                     ` Sam Ravnborg
  2004-08-30  8:53                       ` kernel-image-2.6.7 Geert Uytterhoeven
  0 siblings, 1 reply; 6+ messages in thread
From: Sam Ravnborg @ 2004-08-29 12:11 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Sam Ravnborg, Roman Zippel, Christian T. Steigies, Linux/m68k,
	Linux Kernel Development

On Sun, Aug 29, 2004 at 01:38:02PM +0200, Geert Uytterhoeven wrote:
 
> Conclusions: gcc 2.95.2 and binutils 2.9.5 are fine for compiling 2.6.x kernels
> for m68k, but:
>   - You need a newer binutils for building initramfs (make usr/)
>   - You need a newer binutils for building modular kernels with
>     CONFIG_MODVERSIONS=y

Is this something you can make a check for in arch/m68k/Makefile?
Just so others don't hit the same trap..

	Sam

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: kernel-image-2.6.7
  2004-08-29 12:11                     ` kernel-image-2.6.7 Sam Ravnborg
@ 2004-08-30  8:53                       ` Geert Uytterhoeven
  0 siblings, 0 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2004-08-30  8:53 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Roman Zippel, Christian T. Steigies, Linux/m68k,
	Linux Kernel Development

On Sun, 29 Aug 2004, Sam Ravnborg wrote:
> On Sun, Aug 29, 2004 at 01:38:02PM +0200, Geert Uytterhoeven wrote:
> > Conclusions: gcc 2.95.2 and binutils 2.9.5 are fine for compiling 2.6.x kernels
> > for m68k, but:
> >   - You need a newer binutils for building initramfs (make usr/)
> >   - You need a newer binutils for building modular kernels with
> >     CONFIG_MODVERSIONS=y
>
> Is this something you can make a check for in arch/m68k/Makefile?
> Just so others don't hit the same trap..

Probably. But please note that the first item doesn't need an explicit check,
since as will just error out when not recognizing the .incbin keyword.

About the second item, I don't know whether there are binutils versions that
have the ld bug, but do implement .incbin in as. If these don't exist, no such
test is necessary.

So it's just the people (like me :-) who work around installing a new version
of binutils that got hit...

The reason I'm still using gcc 2.95.2 is that 3.2 gives ICEs on some source
files.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-08-30  8:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20040809073126.GA4669@skeeve>
     [not found] ` <Pine.LNX.4.58.0408221129590.25793@anakin>
     [not found]   ` <Pine.LNX.4.58.0408221145090.25793@anakin>
     [not found]     ` <20040822101914.GA7480@skeeve>
     [not found]       ` <Pine.GSO.4.58.0408221224310.12638@waterleaf.sonytel.be>
     [not found]         ` <Pine.LNX.4.58.0408221333460.13834@anakin>
     [not found]           ` <4128C3F4.6070507@linux-m68k.org>
     [not found]             ` <Pine.GSO.4.58.0408230947190.29370@waterleaf.sonytel.be>
2004-08-25 20:50               ` kernel-image-2.6.7 Geert Uytterhoeven
2004-08-25 22:17                 ` kernel-image-2.6.7 Andreas Schwab
2004-08-26 19:56                 ` kernel-image-2.6.7 Sam Ravnborg
2004-08-29 11:38                   ` kernel-image-2.6.7 Geert Uytterhoeven
2004-08-29 12:11                     ` kernel-image-2.6.7 Sam Ravnborg
2004-08-30  8:53                       ` kernel-image-2.6.7 Geert Uytterhoeven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®