Re: Etherboot 5.5

Marty Connor <[email protected]>
Newsgroups gmane.network.etherboot.devel
Message-ID <[email protected]>
On May 21, 2005, at 10:39 AM, Georg Baum wrote:
> Meanwhile I have a fix for gcc 3.3, 3.4 and 4.0, it is attached. It is
> ready to be applied IMO, with one exception:
> gcc 4.0 does not allow casts on lvalues. Therefore I got rid of them at
> several places. The change in src/proto/http.c leads to cleaner code
> actually, but the other changes are not optimal: I am not sure whether
> the changes in src/drivers/net/natsemi.c and src/drivers/net/sis900.c 
> are
> correct, and the change in src/proto/nmb.c should work but is pretty
> ugly.

Georg, thank you very much for the patches.  I wrote natsemi.c and 
sis900.c, and your changes look fine.  We'll find out more in testing 
the hardware.

The other patches seem fine as well, but I will defer to Michael on the 
unnamed union/struct issue.  We've had to deal with this kind of 
toolchain issues for as long as I can remember.

With regard to code ugliness, I think there is only so much we can do.  
For efficiency and aesthetic reasons we use features that seem to 
change between various releases.  I am not certain if these changes are 
bugs, compatibility with ANSI C, or for other reasons. I would really 
like to understand what the deal is.

In any case, we are are committed (and reliant) on the gcc toolchain, 
binutils, perl, and SYSLINUX, so part of the game is being compatible 
where reasonably possible, and getting our toolmakers to help fix 
things when it makes sense.

> Unfortunately I get now an internal linker error:
> $ make bin/e1000.dsk
> ld -N  -T arch/i386/scripts/i386.lds  -u obj_dskprefix --defsym
> check_obj_dskprefix=obj_dskprefix   -u obj_e1000 --defsym
> check_obj_e1000=obj_e1000   -u obj_config --defsym
> check_obj_config=obj_config   bin/blib.a -o bin/e1000.dsk.tmp \
>         -Map bin/e1000.dsk.tmp.map
> ld: internal error ../../ld/ldlang.c 1974
> make: *** [bin/e1000.dsk.tmp] Error 1
> $ ld -v
> GNU ld version 2.15

I think Michael may have previously run into this linker error, and may 
know what to do.  The ld people may have already fixed the bug.

> Do I need a newer version?

Actually, older might work better:

On my development machine (RHEL 3) I am using:

     $ ld --version
     GNU ld version 2.14.90.0.4 20030523
     Copyright 2002 Free Software Foundation, Inc.

and on rom-o-matic.net:

     $ ld --version
     GNU ld version 2.14 20030612
     Copyright 2002 Free Software Foundation, Inc.

I'm sure we'll soon get the toolchain dependencies figured out.

Best Regards,

Marty

-- 
     Try: http://rom-o-matic.net/ to make Etherboot images instantly.

    Name: Marty Connor
US Mail: Entity Cyber, Inc.; P.O. Box 391827;
          Cambridge, MA 02139; USA
   Voice: (617) 491-6935; Fax: (617) 491-7046
   Email: [email protected]
     Web: http://www.etherboot.org/



-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.