On 1 July 2014 17:21, Mike Bland <mbl...@acm.org> wrote: > Ah! Sorry for the spam, but I think I got it. According to the > makedepend man page: > > http://www.x.org/archive/current/doc/man/man1/makedepend.1.xhtml > > Makedepend makes assumptions about the #includes for files appearing > later on the command line: > > "But when the program parses file2.c and discovers that it, too, > includes header.h, it does not parse the file, but simply adds > header.h, def1.h anddef2.h to the list of dependencies for file2.o." > > Long story short, I narrowed it down to apps/req.c and apps/gendh.c > both #ifdef/undeffing OPENSSL_NO_DEPRECATED. Execute the command with > those two files removed, and dh.h disappears from dsa.o's deps. > > dsaparam.c, genrsa.c, and s_server.c also have this #undef, but coming > later on the command line than dsa.c, they don't trigger makedepend to > generate the dh.h include for dsa.o. Put them before dsa.c, and they > do.
Aha! Well done. I suspect there's not really any reason to support makedepend anymore - should perhaps just switch to always using gcc/clang for dependencies? > > Mike > > > On Tue, Jul 1, 2014 at 11:59 AM, Mike Bland <mbl...@acm.org> wrote: >> Whoops, of course, I meant it generates the same output for dsa.o, and >> only dsa.o. >> >> Mike >> >> On Tue, Jul 1, 2014 at 11:58 AM, Mike Bland <mbl...@acm.org> wrote: >>> Investigating... It seems to be an issue with the makedepend tool itself. >>> >>> I hacked util/domd to show the makedepend command line, and got this >>> command for apps/: >>> >>> makedepend -D OPENSSL_DOING_MAKEDEPEND -- -O -I.. -I../include >>> -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_EC_NISTP_64_GCC_128 >>> -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 >>> -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE >>> -DOPENSSL_NO_STORE -- openssl.c verify.c asn1pars.c req.c dgst.c dh.c >>> enc.c passwd.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c >>> rsautl.c dsa.c dsaparam.c ec.c ecparam.c x509.c genrsa.c gendsa.c >>> genpkey.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c >>> s_socket.c app_rand.c version.c sess_id.c ciphers.c nseq.c pkcs12.c >>> pkcs8.c pkey.c pkeyparam.c pkeyutl.c spkac.c smime.c cms.c rand.c >>> engine.c ocsp.c prime.c ts.c srp.c >>> >>> Running that through util/clean-depend.pl produces the existing >>> makedepend output. But just running this: >>> >>> makedepend -D OPENSSL_DOING_MAKEDEPEND -- -O -I.. -I../include >>> -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_EC_NISTP_64_GCC_128 >>> -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 >>> -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE >>> -DOPENSSL_NO_STORE -- dsa.c >>> >>> Produces the same output except *without* ../include/openssl/dh.h. (I >>> presume you meant dh.h, not dh.o earlier.) >>> >>> Of course, with your GitConfigure/GitMake scripts, you're using the >>> compiler to regenerate dsa.d in isolation from other files. >>> >>> I'll see if I can dig up a little more info here...but it does seem >>> that your normal flags are doing the right thing. >>> >>> Mike >>> >>> >>> >>> On Tue, Jul 1, 2014 at 5:38 AM, Ben Laurie <b...@links.org> wrote: >>>> I've been trying to figure out why my "make depend" differs from other >>>> developers, and why it appears to be wrong. >>>> >>>> For example, apps/dsa.o depends, according to makedepend, on dh.o, but >>>> with the standard developer flags ($gcc_devteam_warn) it should not. >>>> >>>> AFAICS, makedepend gets passed the right flags, and normally processes >>>> #ifndef lines correctly. >>>> >>>> Anyone got any clues what's going on? (I'm on FreeBSD 9.1) >>>> ______________________________________________________________________ >>>> OpenSSL Project http://www.openssl.org >>>> Development Mailing List openssl-dev@openssl.org >>>> Automated List Manager majord...@openssl.org > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > Development Mailing List openssl-dev@openssl.org > Automated List Manager majord...@openssl.org ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org