> | > ----------
> | > 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]

Reply via email to