openssl-1.0.2e build still recommends deprecated (unnecessary?) `make depend`, returns numerous warnings abt not finding stddef.h

PGNet Dev pgnet.dev at gmail.com
Sun Dec 6 18:05:17 UTC 2015


Building openssl-1.0.2e from src

	wget http://www.openssl.org/source/openssl-1.0.2e.tar.gz
	tar zxvf openssl-1.0.2e.tar.gz
	cd openssl-1.0.2e

on

	lsb_release -rd
		Description:    openSUSE Leap 42.1 (x86_64)
		Release:        42.1
	gcc -v
		Using built-in specs.
		COLLECT_GCC=gcc
		COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/5/lto-wrapper
		Target: x86_64-suse-linux
		Configured with: ../configure --prefix=/usr --infodir=/usr/share/info 
--mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada,go 
--enable-checking=release --with-gxx-include-dir=/usr/include/c++/5 
--enable-ssp --disable-libssp --disable-libvtv --enable-libmpx 
--disable-plugin --with-bugurl=http://bugs.opensuse.org/ 
--with-pkgversion='SUSE Linux' --disable-libgcj --with-slibdir=/lib64 
--with-system-zlib --enable-__cxa_atexit 
--enable-libstdcxx-allocator=new --disable-libstdcxx-pch 
--with-default-libstdcxx-abi=gcc4-compatible 
--enable-version-specific-runtime-libs --enable-linker-build-id 
--enable-linux-futex --program-suffix=-5 --without-system-libunwind 
--enable-multilib --with-arch-32=x86-64 --with-tune=generic 
--build=x86_64-suse-linux --host=x86_64-suse-linux
		Thread model: posix
		gcc version 5.2.1 20151130 [gcc-5-branch revision 231058] (SUSE Linux)
	gcc -print-search-dirs
		install: /usr/lib64/gcc/x86_64-suse-linux/5/
		programs: 
=/usr/lib64/gcc/x86_64-suse-linux/5/:/usr/lib64/gcc/x86_64-suse-linux/5/:/usr/lib64/gcc/x86_64-suse-linux/:/usr/lib64/gcc/x86_64-suse-linux/5/:/usr/lib64/gcc/x86_64-suse-linux/:/usr/lib64/gcc/x86_64-suse-linux/5/../../../../x86_64-suse-linux/bin/x86_64-suse-linux/5/:/usr/lib64/gcc/x86_64-suse-linux/5/../../../../x86_64-suse-linux/bin/
		libraries: 
=/usr/lib64/gcc/x86_64-suse-linux/5/:/usr/lib64/gcc/x86_64-suse-linux/5/../../../../x86_64-suse-linux/lib/x86_64-suse-linux/5/:/usr/lib64/gcc/x86_64-suse-linux/5/../../../../x86_64-suse-linux/lib/../lib64/:/usr/lib64/gcc/x86_64-suse-linux/5/../../../x86_64-suse-linux/5/:/usr/lib64/gcc/x86_64-suse-linux/5/../../../../lib64/:/lib/x86_64-suse-linux/5/:/lib/../lib64/:/usr/lib/x86_64-suse-linux/5/:/usr/lib/../lib64/:/usr/lib64/gcc/x86_64-suse-linux/5/../../../../x86_64-suse-linux/lib/:/usr/lib64/gcc/x86_64-suse-linux/5/../../../:/lib/:/usr/lib/

with following config

	./config ... \
	enable-ec_nistp_64_gcc_128 \
	enable-rfc3779 \
	enable-ecdsa \
	no-idea \
	no-ssl2 \
	no-rc5 \
	no-rc2 \
	no-mdc2

invokes need for subsequent `make depend`

	...
	Since you've disabled or enabled at least one algorithm, you need to do
	the following before building:

	        make depend

	Configured for linux-x86_64.

which completes, but reports many instances of 'stddef.h' not found,

	make depend
		making depend in crypto...
		make[1]: Entering directory 
'/usr/local/src/openssl-TEST/openssl-1.0.2e/crypto'
		makedepend: warning:  cryptlib.c (reading /usr/include/stdlib.h, line 
32): cannot find include file "stddef.h"
		        not in ./stddef.h
		        not in ../stddef.h
		        not in ../include/stddef.h
		        not in /usr/include/stddef.h
		makedepend: warning:  /usr/include/time.h includes 
/usr/include/bits/types.h more than once!
		Already have
		        /usr/include/bits/types.h
		makedepend: warning:  /usr/include/time.h includes 
/usr/include/bits/types.h more than once!
		Already have
		        /usr/include/bits/types.h
		makedepend: warning:  /usr/include/time.h includes 
/usr/include/bits/types.h more than once!
		Already have
		        /usr/include/bits/types.h
		makedepend: warning:  cryptlib.c (reading /usr/include/sys/types.h, 
line 146): cannot find include file "stddef.h"
		        not in ./stddef.h
		        not in ../stddef.h
		        not in ../include/stddef.h
		        not in /usr/include/stddef.h
		...

On this machine

	locate stddef.h
		/usr/include/linux/stddef.h
		/usr/lib64/gcc/x86_64-suse-linux/4.8/include/stddef.h
		/usr/lib64/gcc/x86_64-suse-linux/5/include/stddef.h
		/usr/src/linux-4.3.0-21.g0e6e680/include/linux/stddef.h
		/usr/src/linux-4.3.0-21.g0e6e680/include/uapi/linux/stddef.h


This same issue is raised, and unanswered at

	[openssl-dev] `make depend`, advised by ./config, fails to find 
stddef.h in system/compiler path. old bug (#3566) says don't bother with 
`make depend`? true, or another bug?
	https://mta.openssl.org/pipermail/openssl-dev/2015-April/001263.html

Also references this BUG

	http://openssl-dev.openssl.narkive.com/93uFX5UC/openssl-org-3566-openssl-1-0-1j-make-depend-failes

with comment

	
	Stephen Henson via RT 2014-10-16 12:50:20 UTC

	Obviously this needs fixing but as a workaround: if you're building from
	scratch (or after "make clean") it should compile fine with without 
doing "make
	depend".

	Steve.
	--
	Dr Stephen N. Henson. OpenSSL project core developer.
	Commercial tech support now available see: http://www.openssl.org

with no subsequent fix or reference

If I skip `make depend`

	make clean
	./config ...
	make -j4

build completes with no obvious errors

At this upstream bug, 2007-2011,

	Bug 10021 - [makedepend] complains of being unable to find stddef.h, 
stdarg.h and others (edit)
	https://bugs.freedesktop.org/show_bug.cgi?id=10021

		" Jeremy Huddleston Sequoia 2011-10-09 03:11:01 UTC
		
		If you want to submit a patch to add this support, we'll certainly 
consider it, but nobody really cares about makedepend any more since we 
migrated away from that build system..."

It's reasonable to expect to get a consistent/uptodate 'story' about the 
use of 'make depend' ...

makedepend's been deprecated.
it seems it's NOT necessary (?) to a successful build of openssl from src.
the advice from the build system to use it is questionable, if not 
unnecessary.



More information about the openssl-bugs-mod mailing list