Hi,
On 29.05.2010 20:54, Gregg Levine wrote:
system is running a later version of the PCI libraries. And the program builds properly on the other one running Slackware 11.0 because the PCI libraries are older. I am referring to libpci.a here. According to the lists of installed things, its 2.2.10 for the 12.1 system.
To be honest I really don't know why this is happening: root@jimkirk2:/usr/src/lobos/stb/trunk/ip1000_tvout# make gcc -O2 -g -Wall -c -o main.o main.c gcc -O2 -g -Wall -c -o gmch.o gmch.c gcc -O2 -g -Wall -c -o i2c.o i2c.c gcc -O2 -g -Wall -c -o cx2587x.o cx2587x.c gcc -O2 -g -Wall -c -o i830_video.o i830_video.c gcc -O2 -g -Wall -c -o video_modes.o video_modes.c gcc -o ip1000-tvout main.o gmch.o i2c.o cx2587x.o i830_video.o video_modes.o -lp ci /usr/lib/gcc/i486-slackware-linux/4.2.3/../../../libpci.a(names.o): In function `pci_load_name_list': names.c:(.text+0x46b): undefined reference to `gzopen' names.c:(.text+0x4f3): undefined reference to `gzgets' names.c:(.text+0x54a): undefined reference to `gzeof' names.c:(.text+0x612): undefined reference to `gzclose' names.c:(.text+0x783): undefined reference to `gzclose' names.c:(.text+0x975): undefined reference to `gzerror' names.c:(.text+0x992): undefined reference to `gzclose' names.c:(.text+0xa27): undefined reference to `gzopen' names.c:(.text+0xaa0): undefined reference to `zError' collect2: ld returned 1 exit status make: *** [ip1000-tvout] Error 1
Haha, the infamous libpci dependency on libz strikes again. Either recompile libpci without gzip compression support, or add -lz to the linker options in the makefile. That's it.
An alternative would be to use the huge chunk of code in the flashrom makefile which deals with this ugly wart of libpci. There's no need to write such makefile code from scratch because flashrom already handles it, and it works on pretty much every platform out there (DOS/Linux/*BSD/Solaris/MacOSX).
Regards, Carl-Daniel