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]
