I thought I'd give 2.0.36 a go, seeing as I'd been having such 
memory problems with 2.2.2.  However, I've returned to the same
getconstants.h problems (`extractinfo.perl' was completely failing
to grok the objdump output).  I think I've tracked this down to a
change in binutils's objdump output format somewhere along the line.

The relevant broken code is:

    open (DATA, $OBJDUMP.' --syms getconsdata.o | grep \' 07 \' |') ||
            die ('Cant objdump!');
    while (<DATA>) {
            ($addr, $flags, $sect, $a1, $a2, $a3, $name) = split (' ');
            $nam[hex($addr)] = substr($name, 1);
    }
    close (DATA);

Changing that `07' to `O' in the grep statement, and removing one of 
the $a[123] variables, and also changing the substr to ($name, 0) 
appears to fix the problem and provide intelligble output again, but
I'm not actually sure whether it's correct.

Here's what objdump says:

    % armv2-linux-objdump --syms linux/arch/arm/lib/getconsdata.o
    
    getconsdata.o:     file format elf32-arm
    
    SYMBOL TABLE:
    00000000 l    df *ABS*  00000000 getconsdata.c
    00000000 l    d  .text  00000000
    00000000 l    d  .data  00000000
    00000000 l    d  .bss   00000000
    00000000 l       .text  00000000 gcc2_compiled.
    00000000 l       .text  00000000 __gnu_compiled_c
    00000000 l    d  .comment       00000000
    00000000 g     O .data  00000004 tss_memmap
    00000004 g     O .data  00000004 mm
    00000008 g     O .data  00000004 pgd
    0000000c g     O .data  00000004 tss_save
    00000010 g     O .data  00000004 tss_fpesave
    00000014 g     O .data  00000004 tss_memcmap

And, with my patches, here's the modified getconstants.h:

    unsigned long tss_memmap = 696;
    #define __HAS_tss_memmap
    unsigned long mm = 1732;
    #define __HAS_mm
    unsigned long pgd = 4;
    #define __HAS_pgd
    unsigned long tss_save = 692;
    #define __HAS_tss_save
    unsigned long tss_fpesave = 552;
    #define __HAS_tss_fpesave
    unsigned long tss_memcmap = 700;
    #define __HAS_tss_memcmap

It looks *plausible*, but I've none other to test against.  Can anyone
verify that my patch does the right thing?

-- 
Chris <[EMAIL PROTECTED]>                         ( http://www.fluff.org/chris )

unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]

Reply via email to