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