On Wed, Apr 22, 2009, Brad House wrote:

> First, an overview...
> 
> Solaris 9, gcc 4.1.2, binutils 2.18, gnu make 3.80, fails while
> assembling aes-sparcv9.s ... A similar system, with the same version of gcc,
> binutils, and gnu make, but running Solaris 8 does _not_ exhibit
> this behavior.  Both systems are sun4u sparc SUNW,UltraAX-i2.
> 
> Looking at the file on both systems, the one generated on Solaris8 is 33267 
> bytes,
> the one generated on Solaris9 is 77926 bytes.  Copying over the generated
> aes-sparcv9.s from Solaris8 allows the build to complete and pass all tests
> on Solaris 9 (so that means the other generated assembly files are ok).
> 
> Solaris 9 fails the same way regardless of if compiling for 
> solaris64-sparcv9-gcc
> or solaris-sparcv9-gcc ...
> 
> I'm looking for some insight, I'm assuming it is a bug in asm/aes-sparcv9.pl,
> but someone more familiar with that perl script might be able to
> shed some more light on why Solaris8 works but not Solaris9.  I've
> not yet actually looked at that perl script.  The perl versions on the
> systems do appear to be different if that matters, Solaris 8 uses 5.005_03,
> whereas Solaris 9 uses 5.8.0)
> 
> Configuring/compiling with the no-asm flag also resolves the issue, but
> is not optimal.
> 
> 
> Some more detailed system info:
> 
> # uname -a
> SunOS solaris9 5.9 Generic_117171-12 sun4u sparc SUNW,UltraAX-i2
> 
> # gcc -v
> Using built-in specs.
> Target: sparc-sun-solaris2.9
> Configured with: ../configure --prefix=/usr/local/gcc-4.1.2-pic 
> --enable-shared --enable-static --enable-languages=c,c++ --with-gnu-as 
> --with-as=/usr/local/binutils/bin/as --with-gnu-ld 
> --with-ld=/usr/local/binutils/bin/ld
> Thread model: posix
> gcc version 4.1.2
> 
> # as --version
> GNU assembler (GNU Binutils) 2.18
> Copyright 2007 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public License version 3 or later.
> This program has absolutely no warranty.
> This assembler was configured for a target of `sparc-sun-solaris2.9'.
> 
> # gmake --version
> GNU Make 3.80
> Copyright (C) 2002  Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.
> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> PARTICULAR PURPOSE.
> 
> # perl --version
> This is perl, v5.8.0 built for sun4-solaris
> (Solaris8's says: This is perl, version 5.005_03 built for sun4-solaris)
> 
> # ./Configure threads no-shared --prefix=/usr/local/ssl-1.0.0-beta2 
> solaris-sparcv9-gcc
> 
> Compilation error:
> 
> /usr/local/bin/perl asm/aes-sparcv9.pl -I.. -I../.. -I../asn1 -I../evp 
> -I../../include  -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H 
> -m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W 
> -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM >
> aes-sparcv9.s
> gcc -I.. -I../.. -I../asn1 -I../evp -I../../include  -DOPENSSL_THREADS 
> -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m32 -mcpu=ultrasparc -O3 
> -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W -DOPENSSL_BN_ASM_MONT 
> -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -c  -o aes-sparcv9.o 
> aes-sparcv9.s
> aes-sparcv9.s: Assembler messages:
> aes-sparcv9.s:338: Error: symbol `AES_Te' is already defined
> aes-sparcv9.s:632: Error: symbol `_sparcv9_AES_encrypt' is already defined
> aes-sparcv9.s:653: Error: symbol `.Lenc_loop' is already defined
> aes-sparcv9.s:1853: Error: symbol `_sparcv9_AES_decrypt' is already defined
> aes-sparcv9.s:1874: Error: symbol `.Ldec_loop' is already defined
> aes-sparcv9.s:2062: Error: symbol `.Ldec_last' is already defined
> aes-sparcv9.s:2177: Error: symbol `AES_decrypt' is already defined
> aes-sparcv9.s:2202: Error: symbol `.Lunaligned_dec' is already defined
> aes-sparcv9.s:2305: Error: junk at end of line, first unrecognized character 
> is `,'
> aes-sparcv9.s:2326: Error: symbol `.Lunaligned_dec' is already defined
> aes-sparcv9.s:2434: Error: junk at end of line, first unrecognized character 
> is `1'
> aes-sparcv9.s:2463: Error: junk at end of line, first unrecognized character 
> is `5'
> aes-sparcv9.s:2479: Error: junk at end of line, first unrecognized character 
> is `2'
> aes-sparcv9.s:2495: Error: junk at end of line, first unrecognized character 
> is `1'
> aes-sparcv9.s:2512: Error: junk at end of line, first unrecognized character 
> is `5'
> aes-sparcv9.s:2553: Error: symbol `.Lenc_last' is already defined
> aes-sparcv9.s:2602: Error: junk at end of line, first unrecognized character 
> is `2'
> aes-sparcv9.s:2610: Error: junk at end of line, first unrecognized character 
> is `2'
> aes-sparcv9.s:2635: Error: junk at end of line, first unrecognized character 
> is `4'
> aes-sparcv9.s:2668: Error: symbol `AES_encrypt' is already defined
> aes-sparcv9.s:2693: Error: symbol `.Lunaligned_enc' is already defined
> aes-sparcv9.s:2782: Error: symbol `AES_Td' is already defined
> aes-sparcv9.s:3076: Error: symbol `_sparcv9_AES_decrypt' is already defined
> aes-sparcv9.s:3097: Error: symbol `.Ldec_loop' is already defined
> aes-sparcv9.s:3113: Error: junk at end of line, first unrecognized character 
> is `1'
> aes-sparcv9.s:3129: Error: junk at end of line, first unrecognized character 
> is `3'
> aes-sparcv9.s:3145: Error: junk at end of line, first unrecognized character 
> is `6'
> aes-sparcv9.s:3154: Error: junk at end of line, first unrecognized character 
> is `3'
> aes-sparcv9.s:3166: Error: junk at end of line, first unrecognized character 
> is `3'
> aes-sparcv9.s:3195: Error: junk at end of line, first unrecognized character 
> is `6'
> aes-sparcv9.s:3211: Error: junk at end of line, first unrecognized character 
> is `1'
> aes-sparcv9.s:3227: Error: junk at end of line, first unrecognized character 
> is `1'
> aes-sparcv9.s:3244: Error: junk at end of line, first unrecognized character 
> is `3'
> aes-sparcv9.s:3285: Error: symbol `.Ldec_last' is already defined
> aes-sparcv9.s:3334: Error: junk at end of line, first unrecognized character 
> is `2'
> aes-sparcv9.s:3342: Error: junk at end of line, first unrecognized character 
> is `2'
> aes-sparcv9.s:3367: Error: junk at end of line, first unrecognized character 
> is `1'
> aes-sparcv9.s:3400: Error: symbol `AES_decrypt' is already defined
> aes-sparcv9.s:3425: Error: symbol `.Lunaligned_dec' is already defined
> gmake[2]: *** [aes-sparcv9.o] Error 1
> 

Looks like a perl issue, exactly the same arguments on my system produces a
file of the "correct" size.

Well either that or OpenSSL is doing something non-portable which causes
issues in some versions of perl.

Steve.
--
Dr Stephen N. Henson. Email, S/MIME and PGP keys: see homepage
OpenSSL project core developer and freelance consultant.
Homepage: http://www.drh-consultancy.demon.co.uk
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to