> | > ----------
> | > making all in crypto/aes...
> | > cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include
> -DOPENSSL_THREADS -Kthread -DDSO_DLFCN -DHAVE_DLFCN_H -D__i386__ -O -DFILIO_H
> -Kalloca -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT
> -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM
> -DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -c -o aes-586.o aes-586.s
> | > UX:as: ERROR: aes-586.s:1003:defined relocatable values from the same
> section required, op -
> | > UX:as: ERROR: aes-586.s:2195:defined relocatable values from the same
> section required, op -
> | > UX:as: ERROR: aes-586.s:2251:defined relocatable values from the same
> section required, op -
> | > *** Error code 1 (bu21)
> | > UX:make: ERROR: fatal error.
> | > ----------
> |
> | But how did it work in 1.0.0? I mean this is not code that appeared in
> | 1.0.2.
>
> Interesting. I've been running a 1.0.1f-dev version on one of my
> UnixWare 7.1.4 boxes for quite soem time now.
>
> $ /opt/bin/openssl version -a
> OpenSSL 1.0.1f-dev 14 May 2013
> built on: Mon May 27 15:49:18 PDT 2013
> platform: unixware-7
> options: bn(64,32) rc4(8x,mmx) des(ptr,risc1,16,long) idea(int)
> blowfish(idx)
> compiler: cc -Kpic -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS
> -Kthread -DDSO_DLFCN -DHAVE_DLFCN_H -Kpentium_pro -D__i386__ -O -DFILIO_H
> -Kalloca -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT
> -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM
> -DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
> OPENSSLDIR: "/etc/ssl"
>
> crypto/aes/asm/aes-586.pl has not changes between the version I am
> running and the released 1.0.1f but
> gdiff -ru openssl-1.0.1f/crypto/aes/asm/aes-586.pl \
> openssl-1.0.2-beta1/crypto/aes/asm/aes-586.pl
> produces a 496 line file.
>
> Doing a diff -u on the crypto/aes/aes-586.s files shows the
> changes that chokes the assembler.
> ........
> --- Xopenssl-1.0.1f/crypto/aes/aes-586.s 2014-02-24 23:09:12.771751012
> -0800
> +++ openssl-1.0.2-beta1/crypto/aes/aes-586.s 2014-02-24 22:07:47.869751012
> -0800
> @@ -994,8 +1000,7 @@
> call .L004pic_point
> .L004pic_point:
> popl %ebp
> - leal _GLOBAL_OFFSET_TABLE_+[.-.L004pic_point](%ebp),%eax
> - movl OPENSSL_ia32cap_P@GOT(%eax),%eax
> + leal OPENSSL_ia32cap_P-.L004pic_point(%ebp),%eax
> leal .LAES_Te-.L004pic_point(%ebp),%ebp
> leal 764(%esp),%ebx
> subl %ebp,%ebx
Aha! Try following. In crypto/perlasm/x86gas.pl you'll find ::picmeup,
which starts with
if (defined($base) && $sym eq "OPENSSL_ia32cap_P" && !$::macosx)
{ &::lea($dst,&::DWP("$sym-$reflabel",$base)); }
elsif (($::pic && ($::elf || $::aout)) || $::macosx)
{ if (!defined($base))
Comment first two line and replace elsif with if, i.e.
#if (defined($base) && $sym eq "OPENSSL_ia32cap_P" && !$::macosx)
#{ &::lea($dst,&::DWP("$sym-$reflabel",$base)); }
if (($::pic && ($::elf || $::aout)) || $::macosx)
{ if (!defined($base))
What happens?
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [email protected]