I'm sorry and thanks for your patience: there's a bug in the patch: Replace the $$(ENGINE) in the line

@set -e; if [ "X$$(ENGINES)" != "X" ]; then \

by $(ENGINE) (no "$$" instead just a single "$").

The new line is

@set -e; if [ "X$(ENGINES)" != "X" ]; then \

(plus a tab and some additional whitespace in front).

The wrong "X$$(ENGINES)" is reduced by make into "X$(ENGINES)" which doesn't make sense in shell. The "X$$ENGINES" in your suggested echo line is reduced to "X$ENGINES" and since there's no shell variable named ENGINES set, this is reduced by the shell to "X". But I want "X$(ENGINES)" in my patch: make reduces this to "X", because the make variable ENGINES has an empty value and that's what we want to test in the new "if".

Regards,

Rainer

Am 21.03.2016 um 00:05 schrieb Kiyoshi KANAZAWA via RT:
Hello,

Tried your openssl-install-engines.patch, but have the same result.
% make install_engines
*** Installing engines
/bin/sh: syntax error at line 2: `;' unexpected
Makefile:251: recipe for target 'install_engines' failed
make: *** [install_engines] Error 2


I think it should work, and added, for double check,
@echo "XENGINES="X$$ENGINES
after the line

@echo "*** Installing engines".
% make install_engines
*** Installing engines
XENGINES=X
/bin/sh: syntax error at line 2: `;' unexpected
Makefile:251: recipe for target 'install_engines' failed
make: *** [install_engines] Error 2



Regards,

--- Kiyoshi <yoi_no_myou...@yahoo.co.jp>



----- Original Message -----
From: Rainer Jung via RT <r...@openssl.org>
To: yoi_no_myou...@yahoo.co.jp
Cc: openssl-dev@openssl.org
Date: 2016/3/21, Mon 01:16
Subject: Re: [openssl-dev] [openssl.org #4459] openssl-1.1.0-pre4: make install 
fals on solaris64-x86_64-gcc.

Am 20.03.2016 um 16:46 schrieb Kiyoshi KANAZAWA via RT:
  Hello,

  Yes, ENGINES in the top level Makefile is empty.

      22:  LIBS=libcrypto.a libssl.a
      23:  SHLIBS=
      24:  ENGINES=
      25:  PROGRAMS=apps/openssl

OK, that explains the error, because the install_engines target then
contains a shell snippet

    for e in ; do

($(ENGINES) is empty, but since it is not used as a shell variable but
instead as a make variable, that is the resulting for loop). That results in

    /bin/sh: syntax error at line 1: `;' unexpected

at least for /bin/sh on Solaris.

So we need to add special handling in $(ENGINES) is empty.

You could try the attached patch.

Regards,

Rainer

--
Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4459
Please log in as guest with password guest if prompted
--
openssl-dev mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev

Reply via email to