BeagleBone Black detected as ARMv4

Jeffrey Walton noloader at gmail.com
Tue Dec 22 13:12:47 UTC 2015


This seems like an odd result considering the BeagleBone Black
processor is closer to a NEON. This particular BBB is running a Debian
8.2 based image.

I also believe CFLAGS should include hard-floats (i.e.,
-mfloat-abi=hard). Without it, entropy estimates for some of the RAND_
functions could produce incorrect results.

**********

$ cat /etc/dogtag
BeagleBoard.org Debian Image 2015-12-20

$ uname -a
Linux beaglebone 4.1.13-ti-r36 #1 SMP PREEMPT Fri Dec 11 00:44:56 UTC
2015 armv7l GNU/Linux

$ gcc --version
gcc (Debian 4.9.2-10) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.

**********

$ cpp -dM < /dev/null | grep __ARM | sort
#define __ARMEL__ 1
#define __ARM_32BIT_STATE 1
#define __ARM_ARCH 7
#define __ARM_ARCH_7A__ 1
#define __ARM_ARCH_ISA_ARM 1
#define __ARM_ARCH_ISA_THUMB 2
#define __ARM_ARCH_PROFILE 65
#define __ARM_EABI__ 1
#define __ARM_FEATURE_CLZ 1
#define __ARM_FEATURE_DSP 1
#define __ARM_FEATURE_LDREX 15
#define __ARM_FEATURE_QBIT 1
#define __ARM_FEATURE_SAT 1
#define __ARM_FEATURE_SIMD32 1
#define __ARM_FEATURE_UNALIGNED 1
#define __ARM_FP 12
#define __ARM_NEON_FP 4
#define __ARM_PCS_VFP 1
#define __ARM_SIZEOF_MINIMAL_ENUM 4
#define __ARM_SIZEOF_WCHAR_T 32

**********

$ cat /proc/cpuinfo
processor    : 0
model name    : ARMv7 Processor rev 2 (v7l)
BogoMIPS    : 996.14
Features    : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x3
CPU part    : 0xc08
CPU revision    : 2

Hardware    : Generic AM33XX (Flattened Device Tree)
Revision    : 0000
Serial        : ...

**********

beaglebone:~/openssl-1.0.2e$ ./config
Operating system: armv7l-whatever-linux2
Configuring for linux-armv4
Configuring for linux-armv4
    no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
    no-gmp          [default]  OPENSSL_NO_GMP (skip dir)
    no-jpake        [experimental] OPENSSL_NO_JPAKE (skip dir)
    no-krb5         [krb5-flavor not specified] OPENSSL_NO_KRB5
    no-libunbound   [experimental] OPENSSL_NO_LIBUNBOUND (skip dir)
    no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
    no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
    no-rfc3779      [default]  OPENSSL_NO_RFC3779 (skip dir)
    no-sctp         [default]  OPENSSL_NO_SCTP (skip dir)
    no-shared       [default]
    no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE (skip dir)
    no-store        [experimental] OPENSSL_NO_STORE (skip dir)
    no-unit-test    [default]  OPENSSL_NO_UNIT_TEST (skip dir)
    no-zlib         [default]
    no-zlib-dynamic [default]
IsMK1MF=0
CC            =gcc
CFLAG         =-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN
-DHAVE_DLFCN_H -march=armv7-a -Wa,--noexecstack -O3 -Wall
-DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM
-DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM
EX_LIBS       =-ldl
CPUID_OBJ     =armcap.o armv4cpuid.o
BN_ASM        =bn_asm.o armv4-mont.o armv4-gf2m.o
EC_ASM        =
DES_ENC       =des_enc.o fcrypt_b.o
AES_ENC       =aes_cbc.o aes-armv4.o bsaes-armv7.o aesv8-armx.o
BF_ENC        =bf_enc.o
CAST_ENC      =c_enc.o
RC4_ENC       =rc4_enc.o rc4_skey.o
RC5_ENC       =rc5_enc.o
MD5_OBJ_ASM   =
SHA1_OBJ_ASM  =sha1-armv4-large.o sha256-armv4.o sha512-armv4.o
RMD160_OBJ_ASM=
CMLL_ENC      =camellia.o cmll_misc.o cmll_cbc.o
MODES_OBJ     =ghash-armv4.o ghashv8-armx.o
ENGINES_OBJ   =
PROCESSOR     =
RANLIB        =/usr/bin/ranlib
ARFLAGS       =
PERL          =/usr/bin/perl
THIRTY_TWO_BIT mode
DES_UNROLL used
DES_INT used
BN_LLONG mode
RC4 uses uchar
RC4_CHUNK is unsigned long
BF_PTR used
created directory `include/openssl'
e_os2.h => include/openssl/e_os2.h
making links in crypto...
make[1]: Entering directory '/.../openssl-1.0.2e/crypto'
crypto.h => ../include/openssl/crypto.h
opensslv.h => ../include/openssl/opensslv.h
opensslconf.h => ../include/openssl/opensslconf.h
ebcdic.h => ../include/openssl/ebcdic.h
symhacks.h => ../include/openssl/symhacks.h
ossl_typ.h => ../include/openssl/ossl_typ.h
constant_time_test.c => ../test/constant_time_test.c
making links in crypto/objects...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/objects'
objects.h => ../../include/openssl/objects.h
obj_mac.h => ../../include/openssl/obj_mac.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/objects'
making links in crypto/md4...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/md4'
md4.h => ../../include/openssl/md4.h
md4test.c => ../../test/md4test.c
md4.c => ../../apps/md4.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/md4'
making links in crypto/md5...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/md5'
md5.h => ../../include/openssl/md5.h
md5test.c => ../../test/md5test.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/md5'
making links in crypto/sha...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/sha'
sha.h => ../../include/openssl/sha.h
shatest.c => ../../test/shatest.c
sha1test.c => ../../test/sha1test.c
sha256t.c => ../../test/sha256t.c
sha512t.c => ../../test/sha512t.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/sha'
making links in crypto/mdc2...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/mdc2'
mdc2.h => ../../include/openssl/mdc2.h
mdc2test.c => ../../test/mdc2test.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/mdc2'
making links in crypto/hmac...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/hmac'
hmac.h => ../../include/openssl/hmac.h
hmactest.c => ../../test/hmactest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/hmac'
making links in crypto/ripemd...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/ripemd'
ripemd.h => ../../include/openssl/ripemd.h
rmdtest.c => ../../test/rmdtest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/ripemd'
making links in crypto/whrlpool...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/whrlpool'
whrlpool.h => ../../include/openssl/whrlpool.h
wp_test.c => ../../test/wp_test.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/whrlpool'
making links in crypto/des...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/des'
des.h => ../../include/openssl/des.h
des_old.h => ../../include/openssl/des_old.h
destest.c => ../../test/destest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/des'
making links in crypto/aes...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/aes'
aes.h => ../../include/openssl/aes.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/aes'
making links in crypto/rc2...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/rc2'
rc2.h => ../../include/openssl/rc2.h
rc2test.c => ../../test/rc2test.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/rc2'
making links in crypto/rc4...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/rc4'
rc4.h => ../../include/openssl/rc4.h
rc4test.c => ../../test/rc4test.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/rc4'
making links in crypto/idea...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/idea'
idea.h => ../../include/openssl/idea.h
ideatest.c => ../../test/ideatest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/idea'
making links in crypto/bf...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/bf'
blowfish.h => ../../include/openssl/blowfish.h
bftest.c => ../../test/bftest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/bf'
making links in crypto/cast...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/cast'
cast.h => ../../include/openssl/cast.h
casttest.c => ../../test/casttest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/cast'
making links in crypto/camellia...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/camellia'
camellia.h => ../../include/openssl/camellia.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/camellia'
making links in crypto/seed...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/seed'
seed.h => ../../include/openssl/seed.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/seed'
making links in crypto/modes...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/modes'
modes.h => ../../include/openssl/modes.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/modes'
making links in crypto/bn...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/bn'
bn.h => ../../include/openssl/bn.h
bntest.c => ../../test/bntest.c
exptest.c => ../../test/exptest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/bn'
making links in crypto/ec...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/ec'
ec.h => ../../include/openssl/ec.h
ectest.c => ../../test/ectest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/ec'
making links in crypto/rsa...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/rsa'
rsa.h => ../../include/openssl/rsa.h
rsa_test.c => ../../test/rsa_test.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/rsa'
making links in crypto/dsa...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/dsa'
dsa.h => ../../include/openssl/dsa.h
dsatest.c => ../../test/dsatest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/dsa'
making links in crypto/ecdsa...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/ecdsa'
ecdsa.h => ../../include/openssl/ecdsa.h
ecdsatest.c => ../../test/ecdsatest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/ecdsa'
making links in crypto/dh...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/dh'
dh.h => ../../include/openssl/dh.h
dhtest.c => ../../test/dhtest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/dh'
making links in crypto/ecdh...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/ecdh'
ecdh.h => ../../include/openssl/ecdh.h
ecdhtest.c => ../../test/ecdhtest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/ecdh'
making links in crypto/dso...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/dso'
dso.h => ../../include/openssl/dso.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/dso'
making links in crypto/engine...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/engine'
engine.h => ../../include/openssl/engine.h
enginetest.c => ../../test/enginetest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/engine'
making links in crypto/buffer...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/buffer'
buffer.h => ../../include/openssl/buffer.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/buffer'
making links in crypto/bio...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/bio'
bio.h => ../../include/openssl/bio.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/bio'
making links in crypto/stack...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/stack'
stack.h => ../../include/openssl/stack.h
safestack.h => ../../include/openssl/safestack.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/stack'
making links in crypto/lhash...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/lhash'
lhash.h => ../../include/openssl/lhash.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/lhash'
making links in crypto/rand...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/rand'
rand.h => ../../include/openssl/rand.h
randtest.c => ../../test/randtest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/rand'
making links in crypto/err...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/err'
err.h => ../../include/openssl/err.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/err'
making links in crypto/evp...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/evp'
evp.h => ../../include/openssl/evp.h
evp_test.c => ../../test/evp_test.c
evp_extra_test.c => ../../test/evp_extra_test.c
evptests.txt -> ../../test/evptests.txt
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/evp'
making links in crypto/asn1...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/asn1'
asn1.h => ../../include/openssl/asn1.h
asn1_mac.h => ../../include/openssl/asn1_mac.h
asn1t.h => ../../include/openssl/asn1t.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/asn1'
making links in crypto/pem...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/pem'
pem.h => ../../include/openssl/pem.h
pem2.h => ../../include/openssl/pem2.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/pem'
making links in crypto/x509...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/x509'
x509.h => ../../include/openssl/x509.h
x509_vfy.h => ../../include/openssl/x509_vfy.h
verify_extra_test.c => ../../test/verify_extra_test.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/x509'
making links in crypto/x509v3...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/x509v3'
x509v3.h => ../../include/openssl/x509v3.h
v3nametest.c => ../../test/v3nametest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/x509v3'
making links in crypto/conf...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/conf'
conf.h => ../../include/openssl/conf.h
conf_api.h => ../../include/openssl/conf_api.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/conf'
making links in crypto/txt_db...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/txt_db'
txt_db.h => ../../include/openssl/txt_db.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/txt_db'
making links in crypto/pkcs7...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/pkcs7'
pkcs7.h => ../../include/openssl/pkcs7.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/pkcs7'
making links in crypto/pkcs12...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/pkcs12'
pkcs12.h => ../../include/openssl/pkcs12.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/pkcs12'
making links in crypto/comp...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/comp'
comp.h => ../../include/openssl/comp.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/comp'
making links in crypto/ocsp...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/ocsp'
ocsp.h => ../../include/openssl/ocsp.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/ocsp'
making links in crypto/ui...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/ui'
ui.h => ../../include/openssl/ui.h
ui_compat.h => ../../include/openssl/ui_compat.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/ui'
making links in crypto/krb5...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/krb5'
krb5_asn.h => ../../include/openssl/krb5_asn.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/krb5'
making links in crypto/cms...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/cms'
cms.h => ../../include/openssl/cms.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/cms'
making links in crypto/pqueue...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/pqueue'
pqueue.h => ../../include/openssl/pqueue.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/pqueue'
making links in crypto/ts...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/ts'
ts.h => ../../include/openssl/ts.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/ts'
making links in crypto/srp...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/srp'
srp.h => ../../include/openssl/srp.h
srptest.c => ../../test/srptest.c
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/srp'
making links in crypto/cmac...
make[2]: Entering directory '/.../openssl-1.0.2e/crypto/cmac'
cmac.h => ../../include/openssl/cmac.h
make[2]: Leaving directory '/.../openssl-1.0.2e/crypto/cmac'
make[1]: Leaving directory '/.../openssl-1.0.2e/crypto'
making links in ssl...
make[1]: Entering directory '/.../openssl-1.0.2e/ssl'
ssl.h => ../include/openssl/ssl.h
ssl2.h => ../include/openssl/ssl2.h
ssl3.h => ../include/openssl/ssl3.h
ssl23.h => ../include/openssl/ssl23.h
tls1.h => ../include/openssl/tls1.h
dtls1.h => ../include/openssl/dtls1.h
kssl.h => ../include/openssl/kssl.h
srtp.h => ../include/openssl/srtp.h
ssltest.c => ../test/ssltest.c
heartbeat_test.c => ../test/heartbeat_test.c
clienthellotest.c => ../test/clienthellotest.c
make[1]: Leaving directory '/.../openssl-1.0.2e/ssl'
making links in engines...
make[1]: Entering directory '/.../openssl-1.0.2e/engines'
making links in engines/ccgost...
make[2]: Entering directory '/.../openssl-1.0.2e/engines/ccgost'
make[2]: Nothing to be done for 'links'.
make[2]: Leaving directory '/.../openssl-1.0.2e/engines/ccgost'
make[1]: Leaving directory '/.../openssl-1.0.2e/engines'
making links in apps...
make[1]: Entering directory '/.../openssl-1.0.2e/apps'
make[1]: Nothing to be done for 'links'.
make[1]: Leaving directory '/.../openssl-1.0.2e/apps'
making links in test...
make[1]: Entering directory '/.../openssl-1.0.2e/test'
make[1]: Nothing to be done for 'links'.
make[1]: Leaving directory '/.../openssl-1.0.2e/test'
making links in tools...
make[1]: Entering directory '/.../openssl-1.0.2e/tools'
make[1]: Nothing to be done for 'links'.
make[1]: Leaving directory '/.../openssl-1.0.2e/tools'
generating dummy tests (if needed)...
make[1]: Entering directory '/.../openssl-1.0.2e/test'
md2test.c => dummytest.c
rc5test.c => dummytest.c
jpaketest.c => dummytest.c
make[1]: Leaving directory '/.../openssl-1.0.2e/test'

Configured for linux-armv4.



More information about the openssl-bugs-mod mailing list