Hello!

I am trying to compile the linuxboot ISO on CentOS 5.  After "correcting" 
the DOSEMU issue I was having (described previously), I now get a compile 
error in pciutils.  For those that have not read the previous e-mail, I 
will describe the steps that got me to this point at the bottom of this 
e-mail.  In short, I am now trying to compile the linuxboot ISO using the 
following command:

        CFLAGS="-march=i686" make -j 4 CC=gcc44 iso

I get a error with pciutils:

dump.c:(.text+0x552): undefined reference to `__isoc99_sscanf'
lib/libpci.a(names-cache.o): In function `pci_id_cache_load':
names-cache.c:(.text+0x29c): undefined reference to `__isoc99_sscanf'
collect2: ld returned 1 exit status
make[1]: *** [setpci] Error 1
make[1]: Leaving directory 
`/data/unattended/EtonFall2011/trunk/linuxboot/pciutils-3.1.7'
make: *** [pciutils-3.1.7/lspci] Error 2


In order to fix this, I have to edit pciutils-3.1.7/Makefile:

--- pciutils-3.1.7/Makefile     2010-01-31 12:42:12.000000000 -0500
+++ pciutils-3.1.7/Makefile.new 2011-04-29 00:59:49.000000000 -0400
@@ -62,7 +62,7 @@
 lib/config.h lib/config.mk:
        cd lib && ./configure

-lspci: lspci.o ls-vpd.o ls-caps.o ls-ecaps.o ls-kernel.o ls-tree.o 
ls-map.o common.o lib/$(PCILIB)
+lspci: /data/unattended/trunk/linuxboot/stage1/lib/libc.so lspci.o 
ls-vpd.o ls-caps.o ls-ecaps.o ls-kernel.o ls-tree.o ls-map.o common.o 
lib/$(PCILIB)
 setpci: setpci.o common.o lib/$(PCILIB)

 LSPCIINC=lspci.h pciutils.h $(PCIINC)


In other words, I have to hard-code the path to the build-compiled 
libc.so.  If I don't, the build fails.

I found an e-mail that describes the seemingly exact same problem I'm 
having.  I've confirmed that the patch they're describing has already been 
applied to the SVN checkout, but I'm still having the issue.

        
http://www.mail-archive.com/unattended-devel@lists.sourceforge.net/msg01930.html

Any suggestions for a more elegant or permanent solution to this problem? 
Or does this point to some other problem with my build environment?

Thank you very much for any help you might be able to give me.  Please ask 
if you have any questions:  I have tried to cut down on extraneous 
information, but I have a lot more detail if you need it!

Timothy J. Massey

 
Out of the Box Solutions, Inc. 
Creative IT Solutions Made Simple!
http://www.OutOfTheBoxSolutions.com
tmas...@obscorp.com 
 
22108 Harper Ave.
St. Clair Shores, MI 48080
Office: (800)750-4OBS (4627)
Cell: (586)945-8796 





I have used Unattended for several years now, but usually with precompiled 
boot CD's.  However, the 4.9 Beta linuxboot ISO crashes a model of 
computer I am trying to load (I'll send another e-mail with this as well), 
and therefore I'm trying to compile to correct this issue.

Preliminary Setup:
Very basic CentOS 5.6 install
        All optional items unchecked except Base/Base, including GCC
yum update and reboot
yum install samba subversion gcc gcc44 flex bison gcc-c++ mkisofs

svn checkout 
https://unattended.svn.sourceforge.net/svnroot/unattended/trunk/

Perform some of the beginning Unattended setup steps that are not really 
related to ISO burning:  configure Samba, run script-update and prepare, 
edit config.pl, copy out the base OS files and hardware drivers.


Steps I've taken to build ISO:

        cd <path>/linuxboot
        make download
(NOTE:  This run ended with an error trying to download Syslinux 4.03. 
Another e-mail sent regarding this, but manually updated Makefile to 
4.04.)

>From previous personal experience last year at this time, I've found two 
errors when compiling the linuxboot ISO on CentOS 5 that seem to continue: 
 glibc requires GCC 4.4, and it must be built for i686.  My build command 
reflects these changes:

        CFLAGS="-march=i686" make -j 4 CC=gcc44 iso

Build continues until I get to DOSEMU, where the build fails.  According 
to the research I've done, it seems that DOSEMU does *not* support GCC 
4.4:  you must use GCC 4.3 or older!  Of course, I can't do that because 
of glibc, so I'm somewhat stuck.

Obviously, someone is able to build these properly, otherwise there'd be 
no 4.9 beta CD.  But how?  What am I missing?

As an alternative, we do not use DOSEMU, we use the nt5x script.  Is there 
an easy way to simply skip DOSEMU altogether?


For the record, here's what I did to get around it:
        (Clean up half-compiled mess:)
        rm -rf dosemu-1.4.0
        make download

        (Next, force the compile to stop as soon as DOSEMU is done:)
        rm -rf e2fsprogs-1.41.12

        (Compile without forcing GCC 4.4:)
        CFLAGS="-march=i686" make -j 4 iso
        (DOSEMU is compiled and the build stops because e2fsprogs is now 
missing)

        (Put e2fsprogs back)
        make download
        (Continue build)
        CFLAGS="-march=i686" make -j 4 CC=gcc44 iso
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
unattended-devel mailing list
unattended-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unattended-devel

Reply via email to