Opened 8 years ago
Closed 8 years ago
#11199 closed defect (fixed)
dhcp: Fix compiler error
| Reported by: | thomas | Owned by: | thomas |
|---|---|---|---|
| Priority: | normal | Milestone: | 8.4 |
| Component: | BOOK | Version: | SVN |
| Severity: | medium | Keywords: | |
| Cc: |
Description
(Reported by Clayton J. on blfs-dev)
Instructions in book leads to errors like
discover.c:646:4: error: 'strncpy' output may be truncated copying 15 bytes from a string of length 15 [-Werror=stringop-truncation]
strncpy(tmp->name, info.name, sizeof(tmp->name) - 1);
This is caused by a strange handling of set/unset CFLAGS. Doing an
export CFLAGS="-D...
makes it compile. Most likely it has been missed because we might had CFLAGS exported while testing. With this export of CFLAGS, our -D's are recognized but but -fno-strict-aliasing gets not set but it would be if CFLAGS are not spezified.
Remove the -Werror flag by doing a
sed -e "/STD_CWARNINGS=/ s/-Werror//" -i configure
This would make it compile too but the CFLAGS we set (without the export) will not be used. See summary of configure script.
I'd propose to solve it like this:
export CFLAGS="$CFLAGS -Wall -fno-strict-aliasing \
-D_PATH_DHCLIENT_SCRIPT='\"/sbin/dhclient-script\"' \
-D_PATH_DHCPD_CONF='\"/etc/dhcp/dhcpd.conf\"' \
-D_PATH_DHCLIENT_CONF='\"/etc/dhcp/dhclient.conf\"'"
./configure --prefix=/usr \
--sysconfdir=/etc/dhcp \
--localstatedir=/var \
--with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases \
--with-srv6-lease-file=/var/lib/dhcpd/dhcpd6.leases \
--with-cli-lease-file=/var/lib/dhclient/dhclient.leases \
--with-cli6-lease-file=/var/lib/dhclient/dhclient6.leases
The summary of configure than looks like (note the CFLAGS line):
ISC DHCP source configure results:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Package:
Name: DHCP
Version: 4.4.1
C Compiler: gcc
Flags:
DEFS: -DHAVE_CONFIG_H
CFLAGS: -Wall -fno-strict-aliasing -D_PATH_DHCLIENT_SCRIPT='"/sbin/dhclient-script"' -D_PATH_DHCPD_CONF='"/etc/dhcp/dhcpd.conf"' -D_PATH_DHCLIENT_CONF='"/etc/dhcp/dhclient.conf"' -I$(top_srcdir)/includes -I/home/lfs/dhcp-4.4.1/bind/include
DHCP versions: DHCPv4 and DHCPv6
Features:
debug: no
failover: yes
execute: yes
binary-leases: no
dhcpv6: yes
delayed-ack: yes
dhcpv4o6: no
relay-port: no
Developer:
ATF unittests : no
Now you can type make to build ISC DHCP
Please add comments!
Change History (3)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:3 by , 8 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed in r20561 by exporting modified CFLAGS in a subshell. The subshell saves CFLAGS if they are allready set in environment.

One thing to keep in mind is that we need to see if CFLAGS is already set and if it is, save it and restore it after the package has been installed,