[openssl-dev] [openssl.org #4459] openssl-1.1.0-pre4: make install fals on solaris64-x86_64-gcc.

Rainer Jung via RT rt at openssl.org
Mon Mar 21 00:11:46 UTC 2016


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_myoujou at yahoo.co.jp>
>
>
>
> ----- Original Message -----
>> From: Rainer Jung via RT <rt at openssl.org>
>> To: yoi_no_myoujou at yahoo.co.jp
>> Cc: openssl-dev at 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


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



More information about the openssl-dev mailing list