Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[openssl-users] 'makedepend' in openssl builds: clarify need and correct usage

390 views
Skip to first unread message

PGNet Dev

unread,
Mar 10, 2016, 9:53:21 AM3/10/16
to
I'm building openssl 1.0.2g on linux64.

After

./configure ...

I'm prompted

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

make depend

Exec'ing the 'make depend' stage returns lots of warnings,

make depend
making depend in crypto...
make[1]: Entering directory '/usr/local/src/openssl/openssl-1.0.2g/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
...

On the distro, stddef.h is available at

/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


Reading wiki & reports at openssl, there's confusing, if not
conflicting, advice.

Must use it,

(1) https://wiki.openssl.org/index.php/Compilation_and_Installation
Dependencies

If you are prompted to run make depend, then you must do so. Its not
just for developers who are updating sources. Its required to update the
standard distribution once configuration options change.

Don't need it

(2) https://wiki.openssl.org/index.php/Compilation_and_Installation
Compilation
After configuring the library, you should run make. If prompted,
there's usually no need to make depend since you are building from a
clean download.

(3)
https://rt.openssl.org/Ticket/Display.html?id=3566&user=guest&pass=guest
"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."


Re: 'makedepend',

https://en.wikipedia.org/wiki/Makedepend
makedepend was developed as part of MIT's Project Athena. It was used
extensively in building X11 and ancillary packages, but has since 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.

Further, a quick check (https://www.google.com/search?q=makedepend+stddef
) shows that there's a long history (unresolved?) re: not finding the
sys's stddef.h

Digging around some more, I find that virtually the same issue was
raised on openssl-dev in Apr 2015,

https://mta.openssl.org/pipermail/openssl-dev/2015-April/001263.html
[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?

with no reply at all.

What, then, IS the current need for 'makedepend' in openssl, and what,
exactly, is the correct/recommended usage for its use in an openssl build?
--
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

PGNet Dev

unread,
Mar 10, 2016, 10:04:33 AM3/10/16
to
Actually, the actual admonition is more emphatic

> I'm prompted
>
> 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.

*** Because of configuration changes, you MUST do the following before
*** building:

make depend

lists

unread,
Mar 14, 2016, 11:19:34 AM3/14/16
to
On 03/10/2016 03:52 PM, PGNet Dev wrote:
> I'm building openssl 1.0.2g on linux64.
>
> After
>
> ./configure ...
>

Did you mean "./config ..."?

> I'm prompted
>
> Since you've disabled or enabled at least one algorithm, you need
> to do
> the following before building:
>
> make depend
>
> Exec'ing the 'make depend' stage returns lots of warnings,
>
> make depend
> making depend in crypto...
> make[1]: Entering directory
> '/usr/local/src/openssl/openssl-1.0.2g/crypto'
> makedepend: warning: cryptlib.c (reading
> /usr/include/stdlib.h, line 32): cannot find include file "stddef.h"
> not in ./stddef.h
> [...]
>
> On the distro, stddef.h is available at
>
> /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
>
>
> Reading wiki & reports at openssl, there's confusing, if not
> conflicting, advice.
>
> Must use it,
>
> (1) https://wiki.openssl.org/index.php/Compilation_and_Installation
> Dependencies
>
> If you are prompted to run make depend, then you must do so.
> Its not just for developers who are updating sources. Its required to
> update the standard distribution once configuration options change.
>

In your specific case, it seems that you have disabled a protocol or
cipher or whatever, in other words you have changed the default options.
I guess the "..." in your command means just that you are omitting some
options.
So in such case you need "make depend". What is said in point (1) is
correct.
For instance, if you compile some not-latest OpenSSL with -nossl2 (this
is the current hype), compilation will fail unless you issue "make depend".
Sorry but I don't exactly understand how you are quoting the rest, so I
cannot see exactly what is that you find confusing.

> Don't need it
>
> (2) https://wiki.openssl.org/index.php/Compilation_and_Installation
> Compilation
> After configuring the library, you should run make. If
> prompted, there's usually no need to make depend since you are
> building from a clean download.
>
> (3)
> https://rt.openssl.org/Ticket/Display.html?id=3566&user=guest&pass=guest
> "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".
>
>
>
> Re: 'makedepend',
>
> https://en.wikipedia.org/wiki/Makedepend
> makedepend was developed as part of MIT's Project Athena. It
> was used extensively in building X11 and ancillary packages, but has
> since 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.
>
> Further, a quick check (https://www.google.com/search?q=makedepend+stddef
> ) shows that there's a long history (unresolved?) re: not finding the
> sys's stddef.h
>
> Digging around some more, I find that virtually the same issue was
> raised on openssl-dev in Apr 2015,
>
> https://mta.openssl.org/pipermail/openssl-dev/2015-April/001263.html
> [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?
>
> with no reply at all.
>
> What, then, IS the current need for 'makedepend' in openssl, and what,
> exactly, is the correct/recommended usage for its use in an openssl
> build?




PGNet Dev

unread,
Mar 14, 2016, 11:27:08 AM3/14/16
to
On 03/14/2016 08:24 AM, lists wrote:
> Did you mean "./config ..."?

yep.

>> Must use it,
>>
>> (1) https://wiki.openssl.org/index.php/Compilation_and_Installation
>> Dependencies
>>
>> If you are prompted to run make depend, then you must do so.

Which I currently attempt to do, but get the reported errors about not
finding the stddef.h include etc.

> I cannot see exactly what is that you find confusing.

That the wiki says you don't need to,

"Compilation

After configuring the library, you should run make. If prompted,
there's usually no need to make depend since you are building from a
clean download."

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

PGNet Dev

unread,
Mar 14, 2016, 11:59:37 AM3/14/16
to
On 03/14/2016 08:26 AM, PGNet Dev wrote:
> Which I currently attempt to do, but get the reported errors about not finding the stddef.h include etc.

Specifically,

cd test
rm -rf *
wget https://www.openssl.org/source/openssl-1.0.2g.tar.gz
tar zxvf openssl-1.0.2g.tar.gz
cd openssl-1.0.2g

./config --openssldir=/home/work/sslTEST --libdir=lib64 \
threads shared -D_GNU_SOURCE -DPURIFY -DTERMIO -fno-common
-Wl,-rpath=/home/work/sslTEST/lib64 -Wa,--noexecstack
-Wl,-z,relro,-z,now -Wall

...
Configured for linux-x86_64.

*** Because of configuration changes, you MUST do the following before
*** building:

make depend

make depend
making depend in crypto...
make[1]: Entering directory
'/home/work/openssl-1.0.2g/test/openssl-1.0.2g/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
makedepend: warning: cryptlib.c (reading /usr/include/stdio.h, line
33): 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/_G_config.h,
line 15): 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/wchar.h, line
51): 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/libio.h, line
49): cannot find include file "stdarg.h"
not in ./stdarg.h
not in ../stdarg.h
not in ../include/stdarg.h
not in /usr/include/stdarg.h
makedepend: warning: cryptlib.c (reading ../include/openssl/buffer.h,
line 68): 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 ../include/openssl/bio.h,
line 67): cannot find include file "stdarg.h"
not in ./stdarg.h
not in ../stdarg.h
not in ../include/stdarg.h
not in /usr/include/stdarg.h
makedepend: warning: o_str.c (reading o_str.h, line 63): 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: o_str.c (reading /usr/include/strings.h, line
28): 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: o_dir.c (reading LPdir_unix.c, line 31): 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: o_dir.c (reading /usr/include/limits.h, line
123): cannot find include file "limits.h"
makedepend: warning: /usr/include/dirent.h includes
/usr/include/bits/types.h more than once!
Already have
/usr/include/features.h
/usr/include/bits/types.h
/usr/include/bits/dirent.h
makedepend: warning: o_dir.c (reading /usr/include/dirent.h, line
244): 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
making depend in crypto/objects...
make[2]: Entering directory
'/home/work/openssl-1.0.2g/test/openssl-1.0.2g/crypto/objects'
../../util/domd ../.. -MD makedepend -- -fPIC -DOPENSSL_PIC
-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -D_GNU_SOURCE
-DPURIFY -DTERMIO -fno-common -Wa,--noexecstack -Wall -Wa,--noexecstack
-m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT
-DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM
-DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM
-DGHASH_ASM -DECP_NISTZ256_ASM -I.. -I../.. -I../modes -I../asn1
-I../evp -I../../include -DOPENSSL_NO_DEPRECATED
-DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE
-DOPENSSL_NO_LIBUNBOUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5
-DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE
-DOPENSSL_NO_SSL2 -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST
-DOPENSSL_NO_WEAK_SSL_CIPHERS -- o_names.c obj_dat.c obj_lib.c
obj_err.c obj_xref.c
makedepend: warning: o_names.c (reading /usr/include/stdio.h, line
33): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: o_names.c (reading /usr/include/_G_config.h, line
15): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: o_names.c (reading /usr/include/wchar.h, line
51): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: o_names.c (reading /usr/include/libio.h, line
49): cannot find include file "stdarg.h"
not in ../stdarg.h
not in ../../stdarg.h
not in ../modes/stdarg.h
not in ../asn1/stdarg.h
not in ../evp/stdarg.h
not in ../../include/stdarg.h
not in /usr/include/stdarg.h
makedepend: warning: o_names.c (reading /usr/include/stdlib.h, line
32): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/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: o_names.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 ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: o_names.c (reading /usr/include/alloca.h, line
24): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: o_names.c (reading /usr/include/string.h, line
32): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: o_names.c (reading ../../include/openssl/bio.h,
line 67): cannot find include file "stdarg.h"
not in ../stdarg.h
not in ../../stdarg.h
not in ../modes/stdarg.h
not in ../asn1/stdarg.h
not in ../evp/stdarg.h
not in ../../include/stdarg.h
not in /usr/include/stdarg.h
makedepend: warning: obj_dat.c (reading /usr/include/limits.h, line
123): cannot find include file "limits.h"
makedepend: warning: obj_dat.c (reading /usr/include/unistd.h, line
226): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: obj_dat.c (reading
../../include/openssl/buffer.h, line 68): cannot find include file
"stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
make[2]: Leaving directory
'/home/work/openssl-1.0.2g/test/openssl-1.0.2g/crypto/objects'
making depend in crypto/md4...
make[2]: Entering directory
'/home/work/openssl-1.0.2g/test/openssl-1.0.2g/crypto/md4'
../../util/domd ../.. -MD makedepend -- -fPIC -DOPENSSL_PIC
-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -D_GNU_SOURCE
-DPURIFY -DTERMIO -fno-common -Wa,--noexecstack -Wall -Wa,--noexecstack
-m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT
-DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM
-DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM
-DGHASH_ASM -DECP_NISTZ256_ASM -I.. -I../.. -I../modes -I../asn1
-I../evp -I../../include -DOPENSSL_NO_DEPRECATED
-DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE
-DOPENSSL_NO_LIBUNBOUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5
-DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE
-DOPENSSL_NO_SSL2 -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST
-DOPENSSL_NO_WEAK_SSL_CIPHERS -- md4_dgst.c md4_one.c
makedepend: warning: md4_dgst.c (reading /usr/include/stdio.h, line
33): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: md4_dgst.c (reading /usr/include/_G_config.h,
line 15): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: md4_dgst.c (reading /usr/include/wchar.h, line
51): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: md4_dgst.c (reading /usr/include/libio.h, line
49): cannot find include file "stdarg.h"
not in ../stdarg.h
not in ../../stdarg.h
not in ../modes/stdarg.h
not in ../asn1/stdarg.h
not in ../evp/stdarg.h
not in ../../include/stdarg.h
not in /usr/include/stdarg.h
makedepend: warning: md4_dgst.c (reading /usr/include/stdlib.h, line
32): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/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: md4_dgst.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 ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: md4_dgst.c (reading /usr/include/alloca.h, line
24): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: md4_dgst.c (reading /usr/include/string.h, line
32): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
makedepend: warning: md4_dgst.c (reading ../../include/openssl/md4.h,
line 63): cannot find include file "stddef.h"
not in ../stddef.h
not in ../../stddef.h
not in ../modes/stddef.h
not in ../asn1/stddef.h
not in ../evp/stddef.h
not in ../../include/stddef.h
not in /usr/include/stddef.h
make[2]: Leaving directory
'/home/work/openssl-1.0.2g/test/openssl-1.0.2g/crypto/md4'
making depend in crypto/md5...
make[2]: Entering directory
'/home/work/openssl-1.0.2g/test/openssl-1.0.2g/crypto/md5'
...

PGNet Dev

unread,
Mar 14, 2016, 12:45:53 PM3/14/16
to
On 03/14/2016 08:58 AM, PGNet Dev wrote:
> On 03/14/2016 08:26 AM, PGNet Dev wrote:
>> Which I currently attempt to do, but get the reported errors about not
>> finding the stddef.h include etc.

Here,

https://rt.openssl.org/Ticket/Display.html?id=4169&user=guest&pass=guest

it simply says

"fixed in 1.1"

There's no indication what the fix is -- use make depend, or don't use it?

And, no idea how we're _supposed_ to get to a successful/reliable build
in 1.0.2x series.

lists

unread,
Mar 16, 2016, 1:49:37 PM3/16/16
to
On 03/14/2016 04:26 PM, PGNet Dev wrote:
>
>>> Must use it,
>>>
>>> (1) https://wiki.openssl.org/index.php/Compilation_and_Installation
>>> Dependencies
>>>
>>> If you are prompted to run make depend, then you must do so.
>
> Which I currently attempt to do, but get the reported errors about not
> finding the stddef.h include etc.
>
>> I cannot see exactly what is that you find confusing.
>
> That the wiki says you don't need to,
>
> "Compilation
>
> After configuring the library, you should run make. If prompted,
> there's usually no need to make depend since you are building from a
> clean download."
>
IMHO the Wiki is wrong, also the phrase is not crystal clear to me: "If
prompted" meaning? "Even if prompted to do so" or "If _not_ prompted"?
Anyway, the header-file-not-found issue is a bug, of course, apart from
the necessity of running "make depend" or not. I doubt that without
running "make depend" you'd do better.

Jeffrey Walton

unread,
Mar 16, 2016, 5:52:54 PM3/16/16
to
> After
>
> ./configure ...
>
> I'm prompted
>
> Since you've disabled or enabled at least one algorithm, you need to
> do
> the following before building:
>
> make depend
>
> Exec'ing the 'make depend' stage returns lots of warnings,
>
> ....

I'm not sure what's going on here. A lot has changed recently, and
something could have been knocked loose.

> Reading wiki & reports at openssl, there's confusing, if not conflicting,
> advice.
>

OK, so the issue here is... Painting with a broad brush, there are
three OpenSSL distros - 1.0.1, 1.0.2 and 1.1.0 (and even 0.9.8). There
are also two build systems - the classic one from 1.0.1/1.0.2 (and
even 0.9.8) and the new unified one from 1.1.0.

Our task is to come up with one rule that "just works" everywhere to
teach users. We want "one rule to rule them all" because its easiest
on users. We don't want multiple rules. Its the reason 1.1.0 accepts a
config of "./config no-ssl2 ..." even though SSLv2 has been removed.
Its the rule we've been pounding into people's head's.

The rule I've been following/practicing is the following. I do it
regardless of whether I am prompted or not (because I like one simple
rule to follow):

make depend && make clean && make

- 'make depend' gets the dependencies right
- 'make clean' gets rid of old/dated artifacts (with dependencies
accounted for)
- 'make' builds under a "good" state (since depend and clean have executed)

************

Regarding this from the wiki:

After configuring the library, you should run make. If prompted,
there's usually no need to make depend since you are building
from a clean download."

We should probably remove that statement and replace it with the one
rule. Sadly, I'm probably the guy who put it there. I'll get that
fixed later today.

************

If I can ask.... as a user, if I say do this _all the time_, then
would it be easiest on you?

make depend && make clean && make

Or is there something else you would recommend?

************

As far as not configuring because stddef.h, that sounds like a bug.

Jeff

PGNet Dev

unread,
Mar 16, 2016, 6:07:07 PM3/16/16
to
On 03/16/2016 02:52 PM, Jeffrey Walton wrote:
> If I can ask.... as a user, if I say do this _all the time_, then
> would it be easiest on you?
>
> make depend && make clean && make
>
> Or is there something else you would recommend?

If it were up to _me_, I'd move to a cmake build system, with clear &
completely documented params in config files.

Since that's not likely going to happen any time soon, if at all, to
answer your question ... TBH, I don't really mind one way or the other.

Any working build process is frankly fine with me ... as long as it's
consistently & thoroughly documented, and, if followed, doesn't generate
K's of warnings/errors.

> As far as not configuring because stddef.h, that sounds like a bug.

Which sounds like it will/should go away in 1.1.0, as the use of 'make
depend' is going away?

Jakob Bohm

unread,
Mar 16, 2016, 6:11:36 PM3/16/16
to
On 16/03/2016 22:52, Jeffrey Walton wrote:
After

        ./configure ...

I'm prompted

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

                make depend

Exec'ing the 'make depend' stage returns lots of warnings,

....
I'm not sure what's going on here. A lot has changed recently, and
something could have been knocked loose.

Reading wiki & reports at openssl, there's confusing, if not conflicting,
advice.

OK, so the issue here is... Painting with a broad brush, there are
three OpenSSL distros - 1.0.1, 1.0.2 and 1.1.0 (and even 0.9.8). There
are also two build systems - the classic one from 1.0.1/1.0.2 (and
even 0.9.8) and the new unified one from 1.1.0.

Our task is to come up with one rule that "just works" everywhere to
teach users. We want "one rule to rule them all" because its easiest
on users. We don't want multiple rules. Its the reason 1.1.0 accepts a
config of "./config no-ssl2 ..." even though SSLv2 has been removed.
Its the rule we've been pounding into people's head's.
Wait, are you saying that OpenSSL 1.1.0 no longer implements
all the known SSL/TLS versions (some of which are disabled by
default because of security)?


That would mean it is no longer a full featured TLS and SSL
toolkit?


The rule I've been following/practicing is the following. I do it
regardless of whether I am prompted or not (because I like one simple
rule to follow):

     make depend && make clean && make

    - 'make depend' gets the dependencies right
    - 'make clean' gets rid of old/dated artifacts (with dependencies
accounted for)
    - 'make' builds under a "good" state (since depend and clean have executed)

************

Regarding this from the wiki:

    After configuring the library, you should run make. If prompted,
    there's usually no need to make depend since you are building
    from a clean download."

We should probably remove that statement and replace it with the one
rule. Sadly, I'm probably the guy who put it there. I'll get that
fixed later today.

************

If I can ask.... as a user, if I say do this _all the time_, then
would it be easiest on you?

    make depend && make clean && make

Or is there something else you would recommend?

************

As far as not configuring because stddef.h, that sounds like a bug.

Jeff


Enjoy

Jakob
-- 
Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded 

Viktor Dukhovni

unread,
Mar 16, 2016, 6:53:12 PM3/16/16
to
On Wed, Mar 16, 2016 at 11:10:33PM +0100, Jakob Bohm wrote:

> Wait, are you saying that OpenSSL 1.1.0 no longer implements
> all the known SSL/TLS versions (some of which are disabled by
> default because of security)?
>
> That would mean it is no longer a full featured TLS and SSL
> toolkit?

Well, SSLv2 is no longer a feature. While OpenSSL 1.1.0 not
bug-compatible with some earlier releases it is fully-featured.

--
Viktor.

Salz, Rich

unread,
Mar 16, 2016, 8:42:33 PM3/16/16
to

> > Wait, are you saying that OpenSSL 1.1.0 no longer implements all the
> > known SSL/TLS versions (some of which are disabled by default because
> > of security)?
> >
> > That would mean it is no longer a full featured TLS and SSL toolkit?

SSlv2 is a bug, not a feature :)

Perhaps less flippantly, OpenSSL 1.0.2 is a long-term supported release and fully supports SSLv2 if configured to do so.

So OpenSSL can still claim to be a full-featured TLS and SSL toolkit with a straight face.
0 new messages