trouble compiling 4.1.0p1
Chris Buxton
cbuxton at menandmice.com
Fri Aug 7 07:07:41 UTC 2009
I'm having a devil of a time compiling DHCP 4.1.0p1 on Ubuntu Linux.
It's a stock install of Ubuntu 9.04 (32-bit). The toolchain is the
standard for this distro version, based around gcc-4.3.3.
Here's what I'm executing:
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--with-srv-lease-file=/var/dhcp4/dhcpd.leases \
--with-srv6-lease-file=/var/dhcp4/dhcpd6.leases \
--with-cli-lease-file=/var/dhcp4/dhclient.leases \
--with-cli6-lease-file=/var/dhcp4/dhclient6.leases
make
As written there, I get a fatal error from common/parse.c because the
return value of 'write' is ignored. The output is:
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/
var"' -g -O2 -Wall -Werror -fno-strict-aliasing -MT parse.o -MD -MP
-MF ".deps/parse.Tpo" -c -o parse.o parse.c; \
then mv -f ".deps/parse.Tpo" ".deps/parse.Po"; else rm -f
".deps/parse.Tpo"; exit 1; fi
cc1: warnings being treated as errors
parse.c: In function ‘parse_warn’:
parse.c:5677: error: ignoring return value of ‘write’, declared with
attribute warn_unused_result
parse.c:5678: error: ignoring return value of ‘write’, declared with
attribute warn_unused_result
parse.c:5679: error: ignoring return value of ‘write’, declared with
attribute warn_unused_result
parse.c:5681: error: ignoring return value of ‘write’, declared with
attribute warn_unused_result
parse.c:5683: error: ignoring return value of ‘write’, declared with
attribute warn_unused_result
parse.c:5684: error: ignoring return value of ‘write’, declared with
attribute warn_unused_result
make[2]: Leaving directory `/home/sysadmin/dhcp/dhcp-4.1.0p1/common'
make[1]: Leaving directory `/home/sysadmin/dhcp/dhcp-4.1.0p1/common'
make[2]: *** [parse.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
So I added the following to the beginning:
sed -i '/STD_CWARNINGS=/s/-Werror//' configure
Now warnings are no longer treated as errors. This gets me to more
problems. First, those same warnings as before plus some new ones:
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/
var"' -g -O2 -Wall -fno-strict-aliasing -MT parse.o -MD -MP -MF
".deps/parse.Tpo" -c -o parse.o parse.c; \
then mv -f ".deps/parse.Tpo" ".deps/parse.Po"; else rm -f
".deps/parse.Tpo"; exit 1; fi
parse.c: In function ‘parse_warn’:
parse.c:5677: warning: ignoring return value of ‘write’, declared with
attribute warn_unused_result
parse.c:5678: warning: ignoring return value of ‘write’, declared with
attribute warn_unused_result
parse.c:5679: warning: ignoring return value of ‘write’, declared with
attribute warn_unused_result
parse.c:5681: warning: ignoring return value of ‘write’, declared with
attribute warn_unused_result
parse.c:5683: warning: ignoring return value of ‘write’, declared with
attribute warn_unused_result
parse.c:5684: warning: ignoring return value of ‘write’, declared with
attribute warn_unused_result
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/
var"' -g -O2 -Wall -fno-strict-aliasing -MT print.o -MD -MP -MF
".deps/print.Tpo" -c -o print.o print.c; \
then mv -f ".deps/print.Tpo" ".deps/print.Po"; else rm -f
".deps/print.Tpo"; exit 1; fi
print.c: In function ‘dump_raw’:
print.c:311: warning: format not a string literal and no format
arguments
print.c:335: warning: format not a string literal and no format
arguments
Then the errors:
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/
var"' -g -O2 -Wall -fno-strict-aliasing -MT socket.o -MD -MP -MF
".deps/socket.Tpo" -c -o socket.o socket.c; \
then mv -f ".deps/socket.Tpo" ".deps/socket.Po"; else rm -f
".deps/socket.Tpo"; exit 1; fi
socket.c: In function ‘send_packet6’:
socket.c:591: error: invalid application of ‘sizeof’ to incomplete
type ‘struct in6_pktinfo’
socket.c:628: error: dereferencing pointer to incomplete type
socket.c:630: error: dereferencing pointer to incomplete type
socket.c:631: error: dereferencing pointer to incomplete type
socket.c: In function ‘receive_packet6’:
socket.c:692: error: invalid application of ‘sizeof’ to incomplete
type ‘struct in6_pktinfo’
socket.c:744: error: dereferencing pointer to incomplete type
socket.c:745: error: dereferencing pointer to incomplete type
make[2]: Leaving directory `/home/sysadmin/dhcp/dhcp-4.1.0p1/common'
make[1]: Leaving directory `/home/sysadmin/dhcp/dhcp-4.1.0p1/common'
make[2]: *** [socket.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
Can anyone tell me the correct commands to use to compile this package
on Ubuntu 9.04?
Chris Buxton
Professional Services
Men & Mice
Address: Noatun 17, IS-105, Reykjavik, Iceland
US Phone: +1 707 439 0808
IS Phone: +354 412 1512
Email: cbuxton at menandmice.com
www.menandmice.com
Men & Mice
We bring control and flexibility to network management
This e-mail and its attachments may contain confidential and
privileged information only intended for the person or entity to which
it is addressed. If the reader of this message is not the intended
recipient, you are hereby notified that any retention, dissemination,
distribution or copy of this e-mail is strictly prohibited. If you
have received this e-mail in error, please notify us immediately by
reply e-mail and immediately delete this message and all its attachment.
More information about the dhcp-users
mailing list