Make apps/progs.pl not look at apps/progs.c

apps/progs.pl will have apps/progs.c as output, and on some systems,
the output file of a program is locked against reading.
Unfortunately, apps/progs.c is also part of the sources that make up
apps/openssl, so it's necessary to mark that file in a way that makes
progs.pl skip over it.

Fortunately, this is easily done with a special attribute in
apps/build.info and a simple adaptation of apps/progs.pl.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15332)
This commit is contained in:
Richard Levitte 2021-05-18 18:22:57 +02:00
parent dd05c7938d
commit da750b15c0
2 changed files with 9 additions and 3 deletions

View File

@ -11,7 +11,7 @@ ENDIF
# Source for the 'openssl' program
$OPENSSLSRC=\
openssl.c progs.c \
openssl.c \
asn1parse.c ca.c ciphers.c crl.c crl2pkcs7.c dgst.c \
enc.c errstr.c \
genpkey.c kdf.c mac.c nseq.c passwd.c pkcs7.c \
@ -61,7 +61,12 @@ IF[{- !$disabled{apps} -}]
INCLUDE[openssl]=.. ../include include
DEPEND[openssl]=libapps.a ../libssl
DEPEND[${OPENSSLSRC/.c/.o}]=progs.h
# The nocheck attribute is picked up by progs.pl as a signal not to look
# at that file; some systems may have locked it as the output file, and
# therefore don't allow it to be read at the same time, making progs.pl
# fail.
SOURCE[openssl]{nocheck}=progs.c
DEPEND[${OPENSSLSRC/.c/.o} progs.o]=progs.h
GENERATE[progs.c]=progs.pl "-C" $(APPS_OPENSSL)
GENERATE[progs.h]=progs.pl "-H" $(APPS_OPENSSL)
# progs.pl tries to read all 'openssl' sources, including progs.c, so we make

View File

@ -28,7 +28,8 @@ my $YEAR = [localtime()]->[5] + 1900;
# the lookups in %unified_info
my @openssl_source =
map { @{$unified_info{sources}->{$_}} }
grep { /\.o$/ }
grep { /\.o$/
&& !$unified_info{attributes}->{sources}->{$apps_openssl}->{$_}->{nocheck} }
@{$unified_info{sources}->{$apps_openssl}};
foreach my $filename (@openssl_source) {