[openssl-users] Help compiling on HPUX

Dan Freed dfreed at epic.com
Wed Nov 8 17:07:22 UTC 2017


I can confirm that I can compile with no-asm.  That’s a good thing.

I cannot however get any level of optimizations to compile correctly.  This may not be a problem for my use case, but it may be for others.

If I update Configurations/10-main.conf for hpux64-ia64-cc to use +O0, +O1, or +O2 (+O3 was the default) it will trigger the issue.  
  "hpux64-ia64-cc" => {
        inherit_from     => [ "BASE_unix", asm("ia64_asm") ],
        cc               => "cc",
        cflags           => combine(picker(default => "-Ae +DD64 +Olit=all -z -DB_ENDIAN",
                                           debug   => "+O0 +d -g",
                                           release => "+O0"),   #### I changed the value here!

This is also shown in the CFLAGS in the summary output from Configure:

Configuring for hpux64-ia64-cc
CC            =cc
CFLAG         =-Ae +DD64 +Olit=all -z -DB_ENDIAN +O0 -D_REENTRANT


While I can proceed with my project using no-asm, I am willing to try other changes to help the OpenSSL project out to see if the problem is just around one function that cannot be optimized, etc if anyone has any suggestions.  

I'm not sure if the git-hub bug moderators are on this list, so I'll update the bug report there with this new info.

-Dan




On 11/8/17, 7:33 AM, "openssl-users on behalf of Ludwig, Mark" <openssl-users-bounces at openssl.org on behalf of ludwig.mark at siemens.com> wrote:

    > From: Michael Wojcik, Wednesday, November 08, 2017 7:03 AM
    > To: openssl-users at openssl.org
    > Subject: Re: [openssl-users] Help compiling on HPUX
    > 
    > > From: openssl-users [mailto:openssl-users-bounces at openssl.org] On Behalf
    > Of Dan Freed
    > > Sent: Tuesday, November 07, 2017 19:14
    > > To: openssl-users at openssl.org
    > > Subject: [openssl-users] Help compiling on HPUX
    > 
    > > I see that there are a few posts about compiling openssl on HP-UX, so I’m
    > hopeful that someone can help me out.
    > 
    > My initial suspect is the assembly modules. I suggest configuring with no-asm,
    > and if that works and you really want the assembly code for performance, then
    > investigate further.
    > 
    > Another possibility is optimization. We had issues building OpenSSL for HP-UX
    > (PA-RISC and Itanium) with +O4, which is what Configure specifies for at least
    > some HP-UX builds. We backed it off to +O1 (by editing Configure; we actually
    > use our own Configure script, and merge in changes from the official one each
    > time we update to a new OpenSSL release).
    
    Dan, you did not specify the platform.  I have not built on RISC since OpenSSL 0.9.8.
    I have built OpenSSL 1.0.2k on Itanium as follows.  I mostly agree with Michael, 
    but have not backed off optimization quite as far.  Note that my use cases do not
    include encrypting/decrypting large payloads, so can get away with reduced
    performance to get correct results (i.e., pass the tests).
    
    I had to edit util/selftest.pl for the compiler's identification output
    and because the ar(1) command will not accept /dev/null as an input file.
    
    I also eliminated a lot of the tests in test/cms-tests, because we do not use the 
    modules being tested.  (They were failing.)  I can believe these might work with 
    lower optimization such as Michael recommends.
    
    Below is the Configure output.  Hope this helps.
    
    Configuring for hpux64-ia64-cc
        no-asm          [option]   OPENSSL_NO_ASM
        no-dso          [option]  
        no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
        no-gmp          [default]  OPENSSL_NO_GMP (skip dir)
        no-jpake        [experimental] OPENSSL_NO_JPAKE (skip dir)
        no-krb5         [krb5-flavor not specified] OPENSSL_NO_KRB5
        no-libunbound   [experimental] OPENSSL_NO_LIBUNBOUND (skip dir)
        no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
        no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
        no-rfc3779      [default]  OPENSSL_NO_RFC3779 (skip dir)
        no-sctp         [default]  OPENSSL_NO_SCTP (skip dir)
        no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE (skip dir)
        no-ssl2         [default]  OPENSSL_NO_SSL2 (skip dir)
        no-store        [experimental] OPENSSL_NO_STORE (skip dir)
        no-unit-test    [default]  OPENSSL_NO_UNIT_TEST (skip dir)
        no-weak-ssl-ciphers [default]  OPENSSL_NO_WEAK_SSL_CIPHERS (skip dir)
        no-zlib         [default] 
        no-zlib-dynamic [default] 
    IsMK1MF=0
    CC            =cc
    CFLAG         =+Z -DOPENSSL_PIC -DOPENSSL_THREADS  -Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN -D_REENTRANT
    EX_LIBS       =-ldl
    CPUID_OBJ     =mem_clr.o
    BN_ASM        =bn_asm.o
    EC_ASM        =
    DES_ENC       =des_enc.o fcrypt_b.o
    AES_ENC       =aes_core.o aes_cbc.o
    BF_ENC        =bf_enc.o
    CAST_ENC      =c_enc.o
    RC4_ENC       =rc4_enc.o rc4_skey.o
    RC5_ENC       =rc5_enc.o
    MD5_OBJ_ASM   =
    SHA1_OBJ_ASM  =
    RMD160_OBJ_ASM=
    CMLL_ENC      =camellia.o cmll_misc.o cmll_cbc.o
    MODES_OBJ     =
    ENGINES_OBJ   =
    PROCESSOR     =
    RANLIB        =/usr/ccs/bin/ranlib
    ARFLAGS       =
    PERL          =/usr/local/smd/bin/perl
    SIXTY_FOUR_BIT_LONG mode
    DES_RISC1 used
    DES_UNROLL used
    DES_INT used
    RC4_INDEX mode
    RC4_CHUNK is undefined
    MD2 uses uchar
    
    > 
    > --
    > Michael Wojcik
    > Distinguished Engineer, Micro Focus
    > 
    > 
    > --
    > openssl-users mailing list
    > To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
    -- 
    openssl-users mailing list
    To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
    



More information about the openssl-users mailing list