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

Kiyoshi KANAZAWA via RT rt at openssl.org
Mon Mar 21 05:25:06 UTC 2016


Hmm,

% ./config --prefix=/tmp/install_check shared
makes 'ENGINES=engines/capi.so engines/dasync.so engines/ossltest.so engines/padlock.so'

I confirmed
% make install
passes in this case.
('AAAAA' is also echoed.)


Regards,

--- Kiyoshi <yoi_no_myoujou at yahoo.co.jp>





> Still I have the same error.
> 
> % 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 tried to enter 'echo "AAAAA"' before for loop, such as
> --- Makefile    2016-03-19 14:08:21.655179000 +0100
> +++ Makefile    2016-03-20 17:08:48.298012000 +0100
> @@ -284,7 +284,9 @@
>     @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; 
> exit 1)
>     @$(PERL) $(SRCDIR)/util/mkdir-p.pl 
> $(DESTDIR)$(INSTALLTOP)/$(LIBDIR)/engines/
>     @echo "*** Installing engines"
> -   @set -e; for e in $(ENGINES); do \
> +   @set -e; if [ "X$(ENGINES)" != "X" ]; then \
> +       echo "AAAAA"; \
> +       for e in $(ENGINES); do \
>         fn=`basename $$e`; \
>         if [ "$$fn" = 'ossltest.so' ]; then \
>             continue; \
> @@ -294,7 +295,8 @@
>         chmod 755 $(DESTDIR)$(INSTALLTOP)/$(LIBDIR)/engines/$$fn.new; \
>         mv -f $(DESTDIR)$(INSTALLTOP)/$(LIBDIR)/engines/$$fn.new \
>               $(DESTDIR)$(INSTALLTOP)/$(LIBDIR)/engines/$$fn; \
> -   done
> +       done; \
> +   fi
>  
>  uninstall_engines:
>     @echo "*** Uninstalling engines"
> 
> 
> % make install_engines
> *** Installing engines
> /bin/sh: syntax error at line 3: `;' unexpected
> Makefile:251: recipe for target 'install_engines' failed
> make: *** [install_engines] Error 2
> 
> 
> "AAAAA" is not echoed, but
> 
> '/bin/sh: syntax error at line 2: `;' unexpected'
> changed to
> '/bin/sh: syntax error at line 3: `;' unexpected'
> 
> 
> Inside of if condition is not executed,
> but seems to be checked by sh.
> 
> 
> BTW, is it OK that ENGINES is empty on Solaris 10 x86/x64,
> although
> ENGINES=engines/capi.so engines/dasync.so engines/ossltest.so engines/padlock.so
> on your Solaris Sparc ?
> 
> 
> Regards,
> 
> --- Kiyoshi <yoi_no_myoujou at yahoo.co.jp>
> 
> 
> 
> 
> 
>>  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
>> 
>


-- 
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