Le 21/09/2010 17:57, Martin Kaiser a écrit :

Thus wrote Gregory Bellier (gregory.bell...@gmail.com):

I noticed in crypto/objects that 2 files (obj_dat.h and obj_mac.h) are
automatically generated from scripts which read obj_mac.num and objects.txt.
Therefore I did not update manually obj_dat.h and obj_mac.h.
However, when I run "make" I get errors. Those errors are from obj_dat.h and
obj_mac.h because they were not updated whereas it was supposed to be done
automatically. The scripts didn't run.
For ciphers already included, these errors are not triggered because the
released tarball contains obj_dat.h and obj_mac.h already up-to-date.
The question is, is this a normal behaviour ? In my opinion, it isn't.
Those files aren't updated because they already exist. To build correctly
OpenSSL, I have to rm -f obj_dat.h obj_mac.h. Then when I run "make", the
scripts are executed and those two files are correctly created.
I've just had a quick look at 0.9.8k's crypto/objects/Makefile, there's
a dependency between obj_mac.h and objects.txt

obj_mac.h: objects.pl objects.txt obj_mac.num
         $(PERL) objects.pl objects.txt obj_mac.num obj_mac.h

Changing one character in objects.txt and calling make in the top-level
directory causes the perl script to run.

What operating system are you using? I recall seeing a problem in this
area on Windows with an mk1mf build where everything is copied into one
large Makefile.
I'm using GNU/Linux and I am totally confused !

You are right, I modified an OID from objects.txt from the tarball and obj_dat.h and obj_mac.h got updated. However, I added some stuff in this file, how come is it not taken into account ? Moreover, I got it to build with a objects.txt and I saved it in a corner with its hash. I copied this modified objects.txt into my clean working folder. Checked the hash one more time, committed my changes and then copied my whole directory to do try to build and rechecked the hash. Guess what, it still doesn't build because the script doesn't run.

Let's test one more time.
I copied my clean folder and then I copied objects.txt. Basically, the exact same file is overwritten. It built!

Sorry, this email was written in several times but I left what I already typed in case it could be useful.
I think I figured it out.

I did 2 builds in parallel :
- First test, as I said, I copied my clean working directory and I started to build. I expected it to fail and it did. - Second test, I copied my clean working directory and overwritten. I expected the build to succeed and it did.

To put the whole matter in a nutshell, it's just a story of date. When I copied my working folder, all the files in the new folder had the same date. Therefore the script didn't run.
A simple :
cp objects.txt objects2.txt
ls -l
[wait a minute to see the time difference]
cp objects2.txt objects.txt
rm objects2.txt

is enough to make it work.

I think something is wrong here.

Gregory.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to