[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?
berryfarm at sent.com
berryfarm at sent.com
Wed Apr 29 16:32:35 UTC 2015
Hi all.
As prep to eventually building an Openssl instance with support for a specific hardware engine on linux/64, I'm first building a basic instance.
I start with
source ~/.bashrc
cd /usr/local/src/openssl/openssl-1.0.2a
make clean
unset CFLAGS CPPFLAGS CXXFLAGS
unset SHARED_LDFLAGS LDFLAGS LIBDEPS
unset ZLIB_INCLUDE C_INCLUDE_PATH
./config --openssldir=/usr/local/BUILDTEST --libdir=lib64 \
threads shared enable-ec_nistp_64_gcc_128 no-idea no-ssl2 no-rc5 no-mdc2
This returns
...
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.
So I exec
make depend
And that generates a *lot* of this noise about cannot find include file "stddef.h"
making depend in crypto...
make[1]: Entering directory '/usr/local/src/openssl/openssl-1.0.2a/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
makedepend: warning: cryptlib.c (reading /usr/include/alloca.h, line 24): 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: cryptlib.c (reading /usr/include/string.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: cryptlib.c (reading /usr/include/unistd.h, line 226): 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 my system
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
and gcc's cpp search path is
cpp -v
Using built-in specs.
COLLECT_GCC=cpp
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=c++98 --enable-version-specific-runtime-libs --enable-linker-build-id --enable-linux-futex --program-suffix=-5 --without-system-libunwind --enable-multilib --with-arch-32=i586 --with-tune=generic --build=x86_64-suse-linux --host=x86_64-suse-linux
Thread model: posix
gcc version 5.1.1 (SUSE Linux)
COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=x86-64'
/usr/lib64/gcc/x86_64-suse-linux/5/cc1 -E -quiet -v - -mtune=generic -march=x86-64
#include "..." search starts here:
#include <...> search starts here:
>>> /usr/lib64/gcc/x86_64-suse-linux/5/include
/usr/local/include
/usr/lib64/gcc/x86_64-suse-linux/5/include-fixed
/usr/lib64/gcc/x86_64-suse-linux/5/../../../../x86_64-suse-linux/include
/usr/include
End of search list.
Not that it's authoritative, but Wikipedia suggests (https://en.wikipedia.org/wiki/Makedepend) that 'makedepend' has
"become superseded by the dependency generation facilities of various compilers, and is now used primarily as a worst-case fallback, e.g. by depcomp and GNU Automake"
Also at this bug for an older version of openssl Dr. Stephen Henson had said
"#3566: make depend failes"
https://rt.openssl.org/Ticket/Display.html?id=3566#txn-49052 openssl-1.0.1j
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".
(1) Is the problem with my build because this bug hasn't been fixed yet in 1.0.2a?
(2) Is `makedepend` the problem, and should something else be used?
(3) Is that advice to not exec "make depend" correct, even though the output of the configure step says specifically to exec it?
Thanks,
Barry
More information about the openssl-dev
mailing list