Make libcrypto position independent on i386

Prior to this change libcrypto ended up with a .text relocation.

Submitted by:	Rafael Espíndola (earlier version)
Reviewed by:	kib
Approved by:	so (glebius)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D6164
This commit is contained in:
Ed Maste 2016-05-05 21:25:41 +00:00
parent c43c22982e
commit 50b5c1f0e6
2 changed files with 9 additions and 1 deletions

View File

@ -137,7 +137,7 @@ SRCS+= cbc_cksm.c cbc_enc.c cfb64ede.c cfb64enc.c cfb_enc.c des_old.c \
fcrypt.c ofb64ede.c ofb64enc.c ofb_enc.c pcbc_enc.c qud_cksm.c \
rand_key.c read2pwd.c rpc_enc.c set_key.c str2key.c xcbc_enc.c
.if ${MACHINE_CPUARCH} == "i386"
SRCS+= crypt586.s des-586.s
SRCS+= crypt586.S des-586.s
.else
SRCS+= des_enc.c fcrypt_b.c
.endif

View File

@ -14,7 +14,15 @@ fcrypt_body:
xorl %edi,%edi
xorl %esi,%esi
#ifdef PIC
calll .L1
.L1:
popl %edx
addl $_GLOBAL_OFFSET_TABLE_+(.-.L1), %edx
movl DES_SPtrans@GOT(%edx), %edx
#else
leal DES_SPtrans,%edx
#endif
pushl %edx
movl 28(%esp),%ebp
pushl $25