Subject: Strange make error
To: None <current-users@netbsd.org>
From: Xavier HUMBERT <xavier@xavhome.fr.eu.org>
List: current-users
Date: 06/13/2002 16:25:07
While building the userland, I had this error.

/usr/src/lib/libcrypto/../../crypto/dist/openssl/crypto/cryptlib.c:105:
    #error "Inconsistency between crypto.h and cryptlib.c"

Looking at cryptlib.c :

| #include <openssl/crypto.h>
| ....
| #if CRYPTO_NUM_LOCKS != 29
| #error Blah...

Now, I search this include, wich is
--> src/crypto/dist/openssl/include/openssl/crypto.h
| #define CRYPTO_NUM_LOCKS                29

Uh, strange, there is _no_ error.

Mmmm, look at /usr/include/openssl/crypto.h ..
Bingo !

| #define CRYPTO_NUM_LOCKS                28

This file is
-r--r--r--  1 root wheel 15097 Jun 29 2001 /usr/include/openssl/crypto.h

It is on _all_ my systems

How can this happen ? Even if CVS missed something, the "make includes"
step should replace this file, shouldn't it ?

Running manually `make includes` from source tree does *not* update the
include. But deleting the old one from /usr/include, then running `make
includes`onece again finally copies the right file from
src/crypto/dist/openssl/include/openssl/ to /usr/includes/openssl/

I simply can't understand how make should miss this ...

And, AFAIK, there's no "force" option for make... Perhaps in mk.conf ?

Thanks for any clue,

-- 
Xavier HUMBERT  -  Systemes et Reseaux     |     labo-info@injep.fr
INJEP                                      |     humbert@injep.fr