Hi!
I just built a new LFS 8.3 system and everything seemed to work well at
a first glance. But when trying to install DHCP-4.4.1 according to BLFS
8.3 stable
(/http://www.linuxfromscratch.org/blfs/view/stable/basicnet/dhcp.html/)
the build aborts due to errors (please see the output below).
First warnings appear during the build of the bind libraries ("/In file
included from entropy.c:61: ../entropy.c: In function
'entropypool_adddata': ../entropy.c:327:7: warning: this statement may
fall through [-Wimplicit-fallthrough=] len--;/" and finally the build
breaks.
I also recognized that during startup of the machine I get multiple
errors like:
/[ 5.580768] random: udevd: uninitialized urandom read (16 bytes read)/
/[ 7.752273] random: sshd: uninitialized urandom read (32 bytes read)
/and finally:/
[ 44.233105] random: crng init done
/
Might it be, that the broken DHCP build is due to some failure of the
random generator as the first warning seems be related to entropy? But I
am not not sure, if the random generator is broken at all. How could I
figure out the core of the build issue?
At least the random and urandom devices exist:
/# ls -la /dev/*rand*//
//crw-rw-rw- 1 root root 1, 8 Dec 18 19:09 /dev/random//
//crw-rw-rw- 1 root root 1, 9 Dec 18 19:09 /dev/urandom/
I tried with kernels 4.18.14 and 4.18.5.
I also tried DHCP-4.3.5 but it fails in a similar manner.
Building other packages (e.g. zip, unzip, openssh) works flawlessly.
I also tried to build DHCP-4.4.1 on an older BLFS 6.8 and it built
flawlessly.
My system is running on VMware and I build several other LFS/BLFS
systems before and there never was an issue with random or DHCP.
By the way: The BLFS book suggests for DHCP to use the "/missing_ipv6/"
patch if the kernel has no IPv6 support. As I could not find this patch
in /http://www.linuxfromscratch.org/patches/blfs/8.3//, I had to compile
IPv6 into the kernel. Is there no such patch anymore available for BLFS 8.3?
Any help would be highly appreciated.
Regards
Alexander
--- start dhcp.4.4.1 build output ---
/# CFLAGS="-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 &&//
//> make -j1//
//checking for a BSD-compatible install... /usr/bin/install -c//
//checking whether build environment is sane... yes//
//checking for a thread-safe mkdir -p... /bin/mkdir -p//
//checking for gawk... gawk//
//checking whether make sets $(MAKE)... yes//
//checking whether make supports nested variables... yes//
//checking whether to enable maintainer-specific portions of
Makefiles... no//
//checking build system type... x86_64-unknown-linux-gnu//
//checking host system type... x86_64-unknown-linux-gnu//
//checking for gcc... gcc//
//checking whether the C compiler works... yes//
//checking for C compiler default output file name... a.out//
//checking for suffix of executables...//
//checking whether we are cross compiling... no//
//checking for suffix of object files... o//
//checking whether we are using the GNU C compiler... yes//
//checking whether gcc accepts -g... yes//
//checking for gcc option to accept ISO C89... none needed//
//checking whether gcc understands -c and -o together... yes//
//checking for style of include used by make... GNU//
//checking dependency style of gcc... gcc3//
//checking how to run the C preprocessor... gcc -E//
//checking for grep that handles long lines and -e... /bin/grep//
//checking for egrep... /bin/grep -E//
//checking for ANSI C header files... yes//
//checking for sys/types.h... yes//
//checking for sys/stat.h... yes//
//checking for stdlib.h... yes//
//checking for string.h... yes//
//checking for memory.h... yes//
//checking for strings.h... yes//
//checking for inttypes.h... yes//
//checking for stdint.h... yes//
//checking for unistd.h... yes//
//checking minix/config.h usability... no//
//checking minix/config.h presence... no//
//checking for minix/config.h... no//
//checking whether it is safe to define __EXTENSIONS__... yes//
//checking for ranlib... ranlib//
//checking for ar... /usr/bin/ar//
//checking whether byte ordering is bigendian... no//
//checking for dhcpd.leases location... /var/lib/dhcpd/dhcpd.leases//
//checking for dhcpd6.leases location... /var/lib/dhcpd/dhcpd6.leases//
//checking for dhclient.leases location...
/var/lib/dhclient/dhclient.leases//
//checking for dhclient6.leases location...
/var/lib/dhclient/dhclient6.leases//
//checking for int8_t... yes//
//checking for int16_t... yes//
//checking for int32_t... yes//
//checking for int64_t... yes//
//checking for u_int8_t... yes//
//checking for u_int16_t... yes//
//checking for u_int32_t... yes//
//checking for u_int64_t... yes//
//checking ifaddrs.h usability... yes//
//checking ifaddrs.h presence... yes//
//checking for ifaddrs.h... yes//
//checking linux/types.h usability... yes//
//checking linux/types.h presence... yes//
//checking for linux/types.h... yes//
//checking for linux/filter.h... yes//
//checking for struct lifnum... no//
//checking for struct if_laddrconf... no//
//checking for struct if_laddrreq... no//
//checking for GCC noreturn attribute... yes//
//checking sys/socket.h usability... yes//
//checking sys/socket.h presence... yes//
//checking for sys/socket.h... yes//
//checking net/if_dl.h usability... no//
//checking net/if_dl.h presence... no//
//checking for net/if_dl.h... no//
//checking net/if6.h usability... no//
//checking net/if6.h presence... no//
//checking for net/if6.h... no//
//checking regex.h usability... yes//
//checking regex.h presence... yes//
//checking for regex.h... yes//
//checking for library containing socket... none required//
//checking for library containing inet_ntoa... none required//
//checking for library containing inet_aton... none required//
//checking for library containing regcomp... none required//
//checking for strlcat... no//
//checking for library containing if_nametoindex... none required//
//checking for nanosleep... yes//
//checking for random device... /dev/random//
//checking for /dev/random... yes//
//checking for struct sockaddr.sa_len... no//
//checking size of struct iaddr *... 8//
//checking for struct msghdr.msg_control... yes//
//checking for struct tpacket_auxdata.tp_vlan_tci... yes//
//checking for flexible array members... yes//
//checking that generated files are newer than configure... done//
//configure: creating ./config.status//
//config.status: creating ./bind/Makefile//
//config.status: creating Makefile//
//config.status: creating client/Makefile//
//config.status: creating client/tests/Makefile//
//config.status: creating common/Makefile.am//
//config.status: creating common/Makefile//
//config.status: creating common/tests/Makefile//
//config.status: creating dhcpctl/Makefile.am//
//config.status: creating dhcpctl/Makefile//
//config.status: creating includes/Makefile//
//config.status: creating omapip/Makefile.am//
//config.status: creating omapip/Makefile//
//config.status: creating relay/Makefile//
//config.status: creating server/Makefile//
//config.status: creating tests/Makefile.am//
//config.status: creating tests/Makefile//
//config.status: creating tests/unittest.sh//
//config.status: creating server/tests/Makefile//
//config.status: creating doc/devel/doxyfile//
//config.status: creating includes/config.h//
//config.status: includes/config.h is unchanged//
//config.status: executing depfiles commands//
//
// ISC DHCP source configure results://
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
//
//Package://
// Name: DHCP//
// Version: 4.4.1//
//
//C Compiler: gcc//
//
//Flags://
// DEFS: -DHAVE_CONFIG_H//
// CFLAGS: -g -O2 -Wall -Werror -fno-strict-aliasing
-I$(top_srcdir)/includes -I/j/development/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//
//
//Making all in ./bind//
//make[1]: Entering directory '/j/development/dhcp-4.4.1/bind'//
//Configuring BIND libraries for DHCP.//
//Building BIND libraries - this takes some time.//
//Building isc library in
/j/development/dhcp-4.4.1/bind/bind-9.11.2-P1/lib/isc//
//In file included from entropy.c:61://
//../entropy.c: In function 'entropypool_adddata'://
//../entropy.c:327:7: warning: this statement may fall through
[-Wimplicit-fallthrough=]//
// len--;//
// ~~~^~//
//../entropy.c:328:3: note: here//
// case 2://
// ^~~~//
//../entropy.c:330:7: warning: this statement may fall through
[-Wimplicit-fallthrough=]//
// len--;//
// ~~~^~//
//../entropy.c:331:3: note: here//
// case 1://
// ^~~~//
//../entropy.c:350:8: warning: this statement may fall through
[-Wimplicit-fallthrough=]//
// val = *buf++;//
// ~~~~^~~~~~~~//
//../entropy.c:351:3: note: here//
// case 2://
// ^~~~//
//../entropy.c:352:8: warning: this statement may fall through
[-Wimplicit-fallthrough=]//
// val = val << 8 | *buf++;//
// ~~~~^~~~~~~~~~~~~~~~~~~//
//../entropy.c:353:3: note: here//
// case 1://
// ^~~~//
//file.c: In function 'isc_file_sanitize'://
//file.c:734:36: warning: '%s' directive output may be truncated writing
up to 1 bytes into a region of size between 0 and 4096
[-Wformat-truncation=]//
// snprintf(buf, sizeof(buf), "%s%s%s%s%s",//
// ^~//
//file.c:734:2: note: 'snprintf' output 1 or more bytes (assuming 4098)
into a destination of size 4096//
// snprintf(buf, sizeof(buf), "%s%s%s%s%s",//
// ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// dir != NULL ? dir : "", dir != NULL ? "/" : "",//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// hash, ext != NULL ? "." : "", ext != NULL ? ext : "");//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//file.c:744:36: warning: '%s' directive output may be truncated writing
up to 1 bytes into a region of size between 0 and 4096
[-Wformat-truncation=]//
// snprintf(buf, sizeof(buf), "%s%s%s%s%s",//
// ^~//
//file.c:744:2: note: 'snprintf' output 1 or more bytes (assuming 4098)
into a destination of size 4096//
// snprintf(buf, sizeof(buf), "%s%s%s%s%s",//
// ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// dir != NULL ? dir : "", dir != NULL ? "/" : "",//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// hash, ext != NULL ? "." : "", ext != NULL ? ext : "");//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//socket.c: In function 'socket_send'://
//socket.c:5194:6: warning: this statement may fall through
[-Wimplicit-fallthrough=]//
// if ((flags & ISC_SOCKFLAG_NORETRY) == 0) {//
// ^//
//socket.c:5223:2: note: here//
// case DOIO_HARD://
// ^~~~//
//Building dns library in
/j/development/dhcp-4.4.1/bind/bind-9.11.2-P1/lib/dns//
//dnssec.c: In function 'dns_dnssec_findzonekeys3'://
//dnssec.c:820:21: warning: '%s' directive output may be truncated
writing up to 1023 bytes into a region of size 242 [-Wformat-truncation=]//
// "key file for %s/%s/%d",//
// ^~//
// namebuf, algbuf, dst_key_id(pubkey));//
// ~~~~~~~//
//dnssec.c:820:7: note: directive argument in the range [0, 65535]//
// "key file for %s/%s/%d",//
// ^~~~~~~~~~~~~~~~~~~~~~~//
//dnssec.c:819:5: note: 'snprintf' output between 17 and 1063 bytes into
a destination of size 255//
// snprintf(filename, sizeof(filename) - 1,//
// ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// "key file for %s/%s/%d",//
// ~~~~~~~~~~~~~~~~~~~~~~~~//
// namebuf, algbuf, dst_key_id(pubkey));//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//dnssec.c: In function 'dns_dnssec_keylistfromrdataset'://
//dnssec.c:1750:21: warning: '%s' directive output may be truncated
writing up to 1023 bytes into a region of size 242 [-Wformat-truncation=]//
// "key file for %s/%s/%d",//
// ^~//
// namebuf, algbuf, dst_key_id(pubkey));//
// ~~~~~~~//
//dnssec.c:1750:7: note: directive argument in the range [0, 65535]//
// "key file for %s/%s/%d",//
// ^~~~~~~~~~~~~~~~~~~~~~~//
//dnssec.c:1749:5: note: 'snprintf' output between 17 and 1063 bytes
into a destination of size 255//
// snprintf(filename, sizeof(filename) - 1,//
// ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// "key file for %s/%s/%d",//
// ~~~~~~~~~~~~~~~~~~~~~~~~//
// namebuf, algbuf, dst_key_id(pubkey));//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//In file included from code.h:56,//
// from rdata.c:582://
//rdata/generic/loc_29.c: In function 'totext_loc.isra.323'://
//rdata/generic/loc_29.c:545:71: warning: 'sprintf' may write a
terminating nul past the end of the destination [-Wformat-overflow=]//
// sprintf(buf, "%d %d %d.%03d %s %d %d %d.%03d %s %s%ld.%02ldm %s %s
%s",//
//^//
//rdata/generic/loc_29.c:545:2: note: 'sprintf' output between 33 and 75
bytes into a destination of size 74//
// sprintf(buf, "%d %d %d.%03d %s %d %d %d.%03d %s %s%ld.%02ldm %s %s
%s",//
//^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// d1, m1, s1, fs1, north ? "N" : "S",//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// d2, m2, s2, fs2, east ? "E" : "W",//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// below ? "-" : "", altitude/100, altitude % 100,//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// sbuf, hbuf, vbuf);//
// ~~~~~~~~~~~~~~~~~//
//resolver.c: In function 'resquery_response'://
//resolver.c:7862:6: warning: this statement may fall through
[-Wimplicit-fallthrough=]//
// if (message->counts[DNS_SECTION_QUESTION] == 0)//
// ^//
//resolver.c:7864:2: note: here//
// case dns_rcode_nxrrset: /* Not expected. *///
// ^~~~//
//time.c: In function 'dns_time64_totext'://
//time.c:82:38: warning: '%02d' directive output may be truncated
writing between 2 and 10 bytes into a region of size between 2 and 9
[-Wformat-truncation=]//
// snprintf(buf, sizeof(buf), "%04d%02d%02d%02d%02d%02d",//
// ^~~~//
//time.c:82:29: note: directive argument in the range [1, 2147483647]//
// snprintf(buf, sizeof(buf), "%04d%02d%02d%02d%02d%02d",//
// ^~~~~~~~~~~~~~~~~~~~~~~~~~//
//time.c:82:29: note: directive argument in the range [0, 2147483647]//
//time.c:82:29: note: directive argument in the range [0, 2147483647]//
//time.c:82:29: note: directive argument in the range [0, 59]//
//time.c:82:2: note: 'snprintf' output between 15 and 46 bytes into a
destination of size 15//
// snprintf(buf, sizeof(buf), "%04d%02d%02d%02d%02d%02d",//
// ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// tm.tm_hour, tm.tm_min, tm.tm_sec);//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//xfrin.c: In function 'xfr_rr'://
//xfrin.c:56:6: warning: this statement may fall through
[-Wimplicit-fallthrough=]//
// if (result != ISC_R_SUCCESS) goto failure; \//
// ^//
//xfrin.c:616:3: note: in expansion of macro 'FAIL'//
// FAIL(DNS_R_EXTRADATA);//
// ^~~~//
//xfrin.c:618:2: note: here//
// default://
// ^~~~~~~//
//zone.c: In function 'zone_maintenance'://
//zone.c:9598:6: warning: this statement may fall through
[-Wimplicit-fallthrough=]//
// if (zone->masters == NULL)//
// ^//
//zone.c:9600:2: note: here//
// case dns_zone_slave://
// ^~~~//
//zone.c:9619:6: warning: this statement may fall through
[-Wimplicit-fallthrough=]//
// if (zone->masters == NULL)//
// ^//
//zone.c:9621:2: note: here//
// case dns_zone_slave://
// ^~~~//
//Building isccfg library in
/j/development/dhcp-4.4.1/bind/bind-9.11.2-P1/lib/isccfg//
//Building irs library in
/j/development/dhcp-4.4.1/bind/bind-9.11.2-P1/lib/irs//
//Installing BIND libraries to /j/development/dhcp-4.4.1/bind.//
//mkdir /j/development/dhcp-4.4.1/bind/include//
//mkdir /j/development/dhcp-4.4.1/bind/include/isc//
//mkdir /j/development/dhcp-4.4.1/bind/include/pk11//
//mkdir /j/development/dhcp-4.4.1/bind/include/pkcs11//
//mkdir /j/development/dhcp-4.4.1/bind/lib//
//mkdir /j/development/dhcp-4.4.1/bind/include/dns//
//mkdir /j/development/dhcp-4.4.1/bind/include/dst//
//mkdir /j/development/dhcp-4.4.1/bind/include/isccfg//
//mkdir /j/development/dhcp-4.4.1/bind/include/irs//
//make[1]: Leaving directory '/j/development/dhcp-4.4.1/bind'//
//Making all in includes//
//make[1]: Entering directory '/j/development/dhcp-4.4.1/includes'//
//make all-am//
//make[2]: Entering directory '/j/development/dhcp-4.4.1/includes'//
//make[2]: Leaving directory '/j/development/dhcp-4.4.1/includes'//
//make[1]: Leaving directory '/j/development/dhcp-4.4.1/includes'//
//Making all in tests//
//make[1]: Entering directory '/j/development/dhcp-4.4.1/tests'//
//make[1]: Nothing to be done for 'all'.//
//make[1]: Leaving directory '/j/development/dhcp-4.4.1/tests'//
//Making all in common//
//make[1]: Entering directory '/j/development/dhcp-4.4.1/common'//
//Making all in .//
//make[2]: Entering directory '/j/development/dhcp-4.4.1/common'//
//gcc -DHAVE_CONFIG_H -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"'
-g -O2 -Wall -Werror -fno-strict-aliasing -I../includes
-I/j/development/dhcp-4.4.1/bind/include -MT alloc.o -MD -MP -MF
.deps/alloc.Tpo -c -o alloc.o alloc.c//
//mv -f .deps/alloc.Tpo .deps/alloc.Po//
//gcc -DHAVE_CONFIG_H -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"'
-g -O2 -Wall -Werror -fno-strict-aliasing -I../includes
-I/j/development/dhcp-4.4.1/bind/include -MT bpf.o -MD -MP -MF
.deps/bpf.Tpo -c -o bpf.o bpf.c//
//mv -f .deps/bpf.Tpo .deps/bpf.Po//
//gcc -DHAVE_CONFIG_H -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"'
-g -O2 -Wall -Werror -fno-strict-aliasing -I../includes
-I/j/development/dhcp-4.4.1/bind/include -MT comapi.o -MD -MP -MF
.deps/comapi.Tpo -c -o comapi.o comapi.c//
//mv -f .deps/comapi.Tpo .deps/comapi.Po//
//gcc -DHAVE_CONFIG_H -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"'
-g -O2 -Wall -Werror -fno-strict-aliasing -I../includes
-I/j/development/dhcp-4.4.1/bind/include -MT conflex.o -MD -MP -MF
.deps/conflex.Tpo -c -o conflex.o conflex.c//
//mv -f .deps/conflex.Tpo .deps/conflex.Po//
//gcc -DHAVE_CONFIG_H -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"'
-g -O2 -Wall -Werror -fno-strict-aliasing -I../includes
-I/j/development/dhcp-4.4.1/bind/include -MT ctrace.o -MD -MP -MF
.deps/ctrace.Tpo -c -o ctrace.o ctrace.c//
//mv -f .deps/ctrace.Tpo .deps/ctrace.Po//
//gcc -DHAVE_CONFIG_H -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"'
-g -O2 -Wall -Werror -fno-strict-aliasing -I../includes
-I/j/development/dhcp-4.4.1/bind/include -MT dhcp4o6.o -MD -MP -MF
.deps/dhcp4o6.Tpo -c -o dhcp4o6.o dhcp4o6.c//
//mv -f .deps/dhcp4o6.Tpo .deps/dhcp4o6.Po//
//gcc -DHAVE_CONFIG_H -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"'
-g -O2 -Wall -Werror -fno-strict-aliasing -I../includes
-I/j/development/dhcp-4.4.1/bind/include -MT discover.o -MD -MP -MF
.deps/discover.Tpo -c -o discover.o discover.c//
//discover.c: In function 'discover_interfaces'://
//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);//
// ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//cc1: all warnings being treated as errors//
//make[2]: *** [Makefile:500: discover.o] Error 1//
//make[2]: Leaving directory '/j/development/dhcp-4.4.1/common'//
//make[1]: *** [Makefile:563: all-recursive] Error 1//
//make[1]: Leaving directory '/j/development/dhcp-4.4.1/common'//
//make: *** [Makefile:462: all-recursive] Error 1//
/
--- end dhcp.4.4.1 build output ---
--
http://lists.linuxfromscratch.org/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page