[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 04:53:54 UTC 2016


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