[openssl-dev] [openssl.org #4311] OpenSSL 1.1.0-pre3: quote PERL=$(PERL) in Makefiles

Rainer Jung via RT rt at openssl.org
Tue May 10 14:56:16 UTC 2016


Am 10.05.2016 um 15:29 schrieb Richard Levitte via RT:
> On Tue May 10 13:18:22 2016, matt wrote:
>> Makefile.in doesn't exist any more. Ping Richard Levitte - does
>> anything need
>> to be done for the new build system?
>
> The run_tests.pl line in Configurations/unix-Makefile.tmpl would still need
> that change...
>
> ... but I don't quite understand the background story. What you end up with is
> perl calls like this:
>
> /usr/bin/env perl ... blah ...
>
> and the difference between that and this is nil:
>
> perl ... blah ...

No, this is about lines which set the PERL shell variable from the 
Makefile variable and then run a command on the same line, e.g.

PERL=$(PERL) /path/to/something

Now if the Makefile variable PERL is set to

PERL=/usr/bin/env perl

without quotes the shell command resolves to:

PERL=/usr/bin/env perl /path/to/something

so we call perl with argument /path/to/something and environment 
variable PERL set to /usr/bin/env.

With quotes it is

PERL="/usr/bin/env perl" /path/to/something

so we call /path/to/something with PERL env var set to "/usr/bin/env perl".

Currently (1.1.0pre5) I patch only one file before building, the 
unix-Makefile.tmpl file:

--- ./Configurations/unix-Makefile.tmpl.orig    2016-04-19 
18:51:16.000000000 +0200
+++ ./Configurations/unix-Makefile.tmpl 2016-04-19 19:39:11.000000000 +0200
@@ -231,7 +231,7 @@
         @ : {- output_on() if !$disabled{tests}; "" -}

  list-tests:
-       @TOP=$(SRCDIR) PERL=$(PERL) $(PERL) $(SRCDIR)/test/run_tests.pl list
+       @TOP=$(SRCDIR) PERL="$(PERL)" $(PERL) 
$(SRCDIR)/test/run_tests.pl list

  libclean:
         @set -e; for s in $(SHLIB_INFO); do \
@@ -939,7 +939,7 @@
  $target: $lib$libext $deps $ordinalsfile
         \$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
                 PLATFORM=\$(PLATFORM) \\
-               PERL=\$(PERL) SRCDIR='\$(SRCDIR)' DSTDIR="$libd" \\
+               PERL="\$(PERL)" SRCDIR='\$(SRCDIR)' DSTDIR="$libd" \\
                 INSTALLTOP='\$(INSTALLTOP)' LIBDIR='\$(LIBDIR)' \\
                 LIBDEPS='\$(PLIB_LDFLAGS) '"$linklibs"' \$(EX_LIBS)' \\
                 LIBNAME=$libname 
LIBVERSION=\$(SHLIB_MAJOR).\$(SHLIB_MINOR) \\
@@ -975,7 +975,7 @@
  $target: $objs $deps
         \$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
                 PLATFORM=\$(PLATFORM) \\
-               PERL=\$(PERL) SRCDIR='\$(SRCDIR)' DSTDIR="$libd" \\
+               PERL="\$(PERL)" SRCDIR='\$(SRCDIR)' DSTDIR="$libd" \\
                 LIBDEPS='\$(PLIB_LDFLAGS) '"$shlibdeps"' \$(EX_LIBS)' \\
                 LIBNAME=$libname LDFLAGS='\$(LDFLAGS)' \\
                 CC='\$(CC)' CFLAGS='\$(CFLAGS) \$(DSO_CFLAGS)' \\
@@ -1012,7 +1012,7 @@
  $bin$exeext: $objs $deps
         \$(RM) $bin$exeext
         \$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
-               PERL=\$(PERL) SRCDIR=\$(SRCDIR) \\
+               PERL="\$(PERL)" SRCDIR=\$(SRCDIR) \\
                 APPNAME=$bin$exeext OBJECTS="$objs" \\
                 LIBDEPS='\$(PLIB_LDFLAGS) '"$linklibs"' \$(EX_LIBS)' \\
                 CC='\$(CC)' CFLAGS='\$(CFLAGS) \$(BIN_CFLAGS)' \\

I haven't checked for other platform files though.

Regards,

Rainer


-- 
Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4311
Please log in as guest with password guest if prompted



More information about the openssl-dev mailing list