On 8 November 2014 17:56, Andy Polyakov <[email protected]> wrote:
>>>>> arm-linux-gnueabi-gcc -I.. -I../.. -I../modes -I../asn1 -I../evp
>>>>> -I../../include  -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN
>>>>> -DHAVE_DLFCN_H -D__ARM_MAX_ARCH__=8 -DTERMIO -O3 -Wall
>>>>> -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM
>>>>> -DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -c   -c -o aesv8-armx.o
>>>>> aesv8-armx.S
>>>>> aesv8-armx.S: Assembler messages:
>>>>> aesv8-armx.S:574: Error: selected processor does not support ARM mode
>>>>> `rev r8,r8'
>>>>> make[2]: *** [aesv8-armx.o] Error 1
>>>>>
>>>
>>> Attached is version that attempts to exploit the fact that .arch
>>> directive appears to be positional and add .arch armv7-a everywhere,
>>> just not in the beginnings of mixed-code files. For this I had to
>>> reorder code paths in armv4cpuid and armv4-gfm modules.
>>>
>>
>> I have tested this with the stock Ubuntu ARM EABI soft float toolchain
>> (which targets for armv5t non-Thumb), and added the max arch == 8, and
>> it builds fine and produces a binary that will use NEON or crypto
>> instructions if the cpu's capabilities allow it. (Tested on 32-bit and
>> 64-bit ARM systems)
>
> ¡Thank you very much! Attached is promised patch that reworks
> interworking logic. As mentioned earlier idea is to use __ARM_ARCH__>=5
> || !defined(__thumb__). Rationale is that load to pc does interworking
> since ARMv5, but without __thumb__ it does what we need even on ARMv4.
>

OK, this appears to build and run fine when built for ARMv5/arm and
ARMv5/thumb using the Ubuntu softfloat toolchains (arm-linux-gnueabi)

The only use case that we may break is where someone links to the
internal libcrypto.so symbols directly, and calls them from thumb code
on an ARMv4t but I guess if you deserve the pain in that case :-)

-- 
Ard.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to