From 5fe71fb5556880be1f0252615c663c2c61004eaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ertu=C4=9Frul=20Erata?= Date: Sat, 30 May 2015 11:31:49 +0300 Subject: [PATCH] curl and openssl rebuild --- pisi-index.xml | 31 +- pisi-index.xml.sha1sum | 2 +- pisi-index.xml.xz | Bin 97616 -> 97732 bytes pisi-index.xml.xz.sha1sum | 2 +- system/base/curl/actions.py | 10 +- system/base/curl/files/curl-ac.patch | 12 + system/base/curl/files/curl-krb5flags.patch | 20 ++ system/base/curl/pspec.xml | 11 + system/base/openssl/actions.py | 5 +- system/base/openssl/files/CVE-2014-0198.patch | 14 + .../files/openssl-1.0.2a-malloc-typo.patch | 37 +++ .../files/openssl-1.0.2a-parallel-build.patch | 314 ++++++++++++++++++ .../files/openssl-1.0.2a-x32-asm.patch | 42 +++ .../files/openssl-ca-certificates.patch | 12 + .../base/openssl/files/openssl-optflags.patch | 134 ++++---- .../openssl/files/openssl_fix_for_x32.patch | 44 +-- .../openssl/files/openssl_fix_for_x32_2.patch | 29 ++ system/base/openssl/pspec.xml | 17 +- 18 files changed, 629 insertions(+), 107 deletions(-) create mode 100644 system/base/curl/files/curl-ac.patch create mode 100644 system/base/curl/files/curl-krb5flags.patch create mode 100644 system/base/openssl/files/CVE-2014-0198.patch create mode 100644 system/base/openssl/files/openssl-1.0.2a-malloc-typo.patch create mode 100644 system/base/openssl/files/openssl-1.0.2a-parallel-build.patch create mode 100644 system/base/openssl/files/openssl-1.0.2a-x32-asm.patch create mode 100644 system/base/openssl/files/openssl-ca-certificates.patch create mode 100644 system/base/openssl/files/openssl_fix_for_x32_2.patch diff --git a/pisi-index.xml b/pisi-index.xml index 00b4fd38..ff5ea803 100644 --- a/pisi-index.xml +++ b/pisi-index.xml @@ -11538,6 +11538,13 @@ openssl-1.0.2-s_client-verify.patch openssl-include.patch openssl_fix_for_x32.patch + openssl_fix_for_x32_2.patch + openssl-ca-certificates.patch + CVE-2014-0198.patch + openssl-1.0.2a-malloc-typo.patch + openssl-1.0.2a-parallel-build.patch + openssl-1.0.2a-x32-asm.patch + openssl-optflags.patch system/base/openssl/pspec.xml @@ -11563,7 +11570,7 @@ openssl için geliştirme dosyaları system.devel - openssl + openssl /usr/include @@ -11582,7 +11589,7 @@ zlib-32bit - openssl + openssl zlib-32bit glibc-32bit @@ -11591,6 +11598,13 @@ + + 2015-05-23 + 1.0.2a + Rebuild. + Vedat Demir + vedat@pisilinux.org + 2015-04-11 1.0.2a @@ -13045,6 +13059,10 @@ libssh2-devel ca-certificates + + curl-krb5flags.patch + curl-ac.patch + system/base/curl/pspec.xml @@ -13073,7 +13091,7 @@ curl için geliştirme dosyaları system.devel - curl + curl /usr/lib/pkgconfig @@ -13083,6 +13101,13 @@ + + 2015-05-28 + 7.42.1 + Rebuild. + Vedat Demir + vedat@pisilinux.org + 2015-05-01 7.42.1 diff --git a/pisi-index.xml.sha1sum b/pisi-index.xml.sha1sum index e2fb30de..d1e57f71 100644 --- a/pisi-index.xml.sha1sum +++ b/pisi-index.xml.sha1sum @@ -1 +1 @@ -d8da93a0b7655a22da828c6708c82c265e6d7513 \ No newline at end of file +7d3125b5ca49a88c851926201a9746983800c3e7 \ No newline at end of file diff --git a/pisi-index.xml.xz b/pisi-index.xml.xz index 28a01f54f28cbdc3fd17c22c3fe258afac50305d..8b4c3a9bc3f76c34a56271d5528f5e30d97d9071 100644 GIT binary patch delta 39525 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 Zp!)^b$U;9&7|K2{4T}N*00001Sy~<{%`gA} delta 39408 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 Mivj=u00045S}2p{HUIzs diff --git a/pisi-index.xml.xz.sha1sum b/pisi-index.xml.xz.sha1sum index ec85a4b7..cbf304bc 100644 --- a/pisi-index.xml.xz.sha1sum +++ b/pisi-index.xml.xz.sha1sum @@ -1 +1 @@ -7c9555a2aa8565b6eb6a94e0781dcbd11cb0f16c \ No newline at end of file +98ee82c299d43eaa4d36bf9777f933147d3c093d \ No newline at end of file diff --git a/system/base/curl/actions.py b/system/base/curl/actions.py index 8e2af623..e6316ab3 100644 --- a/system/base/curl/actions.py +++ b/system/base/curl/actions.py @@ -18,6 +18,9 @@ def setup(): --with-zlib \ --with-libidn \ --with-libssh2 \ + --with-gssapi=no \ + --with-nghttp2 \ + --with-libmetalink \ --without-librtmp \ --enable-ipv6 \ --enable-http \ @@ -32,7 +35,12 @@ def setup(): --enable-threaded-resolver \ --enable-hidden-symbols \ --disable-versioned-symbols \ - --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt") + ac_cv_header_gss_h=no \ + --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt \ + --prefix=/usr \ + --with-random=/dev/urandom \ + --mandir=/usr/share/man ") + def build(): autotools.make() diff --git a/system/base/curl/files/curl-ac.patch b/system/base/curl/files/curl-ac.patch new file mode 100644 index 00000000..a9655f46 --- /dev/null +++ b/system/base/curl/files/curl-ac.patch @@ -0,0 +1,12 @@ +diff -urN curl-7.12.1.org/configure.ac curl-7.12.1/configure.ac +--- curl-7.12.1.org/configure.ac 2004-08-13 02:20:37.003335512 +0200 ++++ curl-7.12.1/configure.ac 2004-08-13 02:21:07.172749064 +0200 +@@ -392,7 +392,7 @@ + main() + { + if (socket(AF_INET6, SOCK_STREAM, 0) < 0) +- exit(1); ++ exit(0); + else + exit(0); + } \ No newline at end of file diff --git a/system/base/curl/files/curl-krb5flags.patch b/system/base/curl/files/curl-krb5flags.patch new file mode 100644 index 00000000..d6d846cd --- /dev/null +++ b/system/base/curl/files/curl-krb5flags.patch @@ -0,0 +1,20 @@ +--- curl-7.37.1/configure.ac.orig 2014-07-19 10:27:07.972697344 +0200 ++++ curl-7.37.1/configure.ac 2014-07-19 10:28:38.279360218 +0200 +@@ -1195,7 +1195,7 @@ + if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then + GSSAPI_INCS=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --cflags gssapi` + elif test -f "$GSSAPI_ROOT/bin/krb5-config"; then +- GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi` ++ GSSAPI_INCS=`CFLAGS= $GSSAPI_ROOT/bin/krb5-config --cflags gssapi` + elif test -f "$KRB5CONFIG"; then + GSSAPI_INCS=`$KRB5CONFIG --cflags gssapi` + elif test "$GSSAPI_ROOT" != "yes"; then +@@ -1285,7 +1285,7 @@ + elif test -f "$KRB5CONFIG"; then + dnl krb5-config doesn't have --libs-only-L or similar, put everything + dnl into LIBS +- gss_libs=`$KRB5CONFIG --libs gssapi` ++ gss_libs=`CFLAGS= $KRB5CONFIG --libs gssapi` + LIBS="$gss_libs $LIBS" + else + case $host in \ No newline at end of file diff --git a/system/base/curl/pspec.xml b/system/base/curl/pspec.xml index a1dae12b..743536ae 100644 --- a/system/base/curl/pspec.xml +++ b/system/base/curl/pspec.xml @@ -23,6 +23,10 @@ libssh2-devel ca-certificates + + curl-krb5flags.patch + curl-ac.patch + @@ -62,6 +66,13 @@ + + 2015-05-28 + 7.42.1 + Rebuild. + Vedat Demir + vedat@pisilinux.org + 2015-05-01 7.42.1 diff --git a/system/base/openssl/actions.py b/system/base/openssl/actions.py index b13300d8..c8c62844 100644 --- a/system/base/openssl/actions.py +++ b/system/base/openssl/actions.py @@ -15,8 +15,9 @@ def setup(): --openssldir=/etc/ssl \ --enginesdir=/usr/lib/openssl/engines \ shared -Wa,--noexecstack \ - zlib enable-camellia enable-seed enable-tlsext enable-rfc3779 \ - enable-cms enable-md2 threads" + zlib enable-camellia enable-idea \ + enable-seed enable-tlsext enable-rfc3779 enable-rc5 \ + enable-cms enable-md2 enable-mdc2 threads" if get.buildTYPE() == "_emul32": options += " --prefix=/_emul32 --libdir=lib32" diff --git a/system/base/openssl/files/CVE-2014-0198.patch b/system/base/openssl/files/CVE-2014-0198.patch new file mode 100644 index 00000000..c14faebd --- /dev/null +++ b/system/base/openssl/files/CVE-2014-0198.patch @@ -0,0 +1,14 @@ +--- openssl-1.0.2a/ssl/s3_pkt.c 2015-03-19 15:30:36.000000000 +0200 ++++ openssl-1.0.2a/ssl/s3_pkt_new.c 2015-05-23 16:45:24.896828800 +0300 +@@ -869,6 +869,11 @@ + if (i <= 0) + return (i); + /* if it went, fall through and send more stuff */ ++ /* we may have released our buffer, so get it again */ ++ if (wb->buf == NULL) ++ if (!ssl3_setup_write_buffer(s)) ++ return -1; ++ + } + + if (wb->buf == NULL) diff --git a/system/base/openssl/files/openssl-1.0.2a-malloc-typo.patch b/system/base/openssl/files/openssl-1.0.2a-malloc-typo.patch new file mode 100644 index 00000000..ad12835a --- /dev/null +++ b/system/base/openssl/files/openssl-1.0.2a-malloc-typo.patch @@ -0,0 +1,37 @@ +https://rt.openssl.org/Ticket/Display.html?id=3758 + +From 7b4152089fe39c3495508076ab81ed4aca3d65ba Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Sat, 21 Mar 2015 05:08:41 -0400 +Subject: [PATCH] fix malloc define typo + +Reported-by: Conrad Kostecki +URL: https://bugs.gentoo.org/543828 +--- + crypto/bio/bss_dgram.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/crypto/bio/bss_dgram.c b/crypto/bio/bss_dgram.c +index aef8149..ed275d1 100644 +--- a/crypto/bio/bss_dgram.c ++++ b/crypto/bio/bss_dgram.c +@@ -1338,7 +1338,7 @@ static int dgram_sctp_read(BIO *b, char *out, int outl) + (socklen_t) (sizeof(sctp_assoc_t) + 256 * sizeof(uint8_t)); + authchunks = OPENSSL_malloc(optlen); + if (!authchunks) { +- BIOerr(BIO_F_DGRAM_SCTP_READ, ERR_R_MALLOC_ERROR); ++ BIOerr(BIO_F_DGRAM_SCTP_READ, ERR_R_MALLOC_FAILURE); + return -1; + } + memset(authchunks, 0, optlen); +@@ -1410,7 +1410,7 @@ static int dgram_sctp_write(BIO *b, const char *in, int inl) + char *tmp; + data->saved_message.bio = b; + if(!(tmp = OPENSSL_malloc(inl))) { +- BIOerr(BIO_F_DGRAM_SCTP_WRITE, ERR_R_MALLOC_ERROR); ++ BIOerr(BIO_F_DGRAM_SCTP_WRITE, ERR_R_MALLOC_FAILURE); + return -1; + } + if (data->saved_message.data) +-- +2.3.3 diff --git a/system/base/openssl/files/openssl-1.0.2a-parallel-build.patch b/system/base/openssl/files/openssl-1.0.2a-parallel-build.patch new file mode 100644 index 00000000..bf4f9079 --- /dev/null +++ b/system/base/openssl/files/openssl-1.0.2a-parallel-build.patch @@ -0,0 +1,314 @@ +https://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest +https://rt.openssl.org/Ticket/Display.html?id=3738&user=guest&pass=guest + +--- openssl-1.0.2a/crypto/Makefile ++++ openssl-1.0.2a/crypto/Makefile +@@ -85,11 +85,11 @@ + @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi + + subdirs: +- @target=all; $(RECURSIVE_MAKE) ++ +@target=all; $(RECURSIVE_MAKE) + + files: + $(PERL) $(TOP)/util/files.pl "CPUID_OBJ=$(CPUID_OBJ)" Makefile >> $(TOP)/MINFO +- @target=files; $(RECURSIVE_MAKE) ++ +@target=files; $(RECURSIVE_MAKE) + + links: + @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER) +@@ -100,7 +100,7 @@ + # lib: $(LIB): are splitted to avoid end-less loop + lib: $(LIB) + @touch lib +-$(LIB): $(LIBOBJ) ++$(LIB): $(LIBOBJ) | subdirs + $(AR) $(LIB) $(LIBOBJ) + test -z "$(FIPSLIBDIR)" || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o + $(RANLIB) $(LIB) || echo Never mind. +@@ -111,7 +111,7 @@ + fi + + libs: +- @target=lib; $(RECURSIVE_MAKE) ++ +@target=lib; $(RECURSIVE_MAKE) + + install: + @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... +@@ -120,7 +120,7 @@ + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ + done; +- @target=install; $(RECURSIVE_MAKE) ++ +@target=install; $(RECURSIVE_MAKE) + + lint: + @target=lint; $(RECURSIVE_MAKE) +--- openssl-1.0.2a/engines/Makefile ++++ openssl-1.0.2a/engines/Makefile +@@ -72,7 +72,7 @@ + + all: lib subdirs + +-lib: $(LIBOBJ) ++lib: $(LIBOBJ) | subdirs + @if [ -n "$(SHARED_LIBS)" ]; then \ + set -e; \ + for l in $(LIBNAMES); do \ +@@ -89,7 +89,7 @@ + + subdirs: + echo $(EDIRS) +- @target=all; $(RECURSIVE_MAKE) ++ +@target=all; $(RECURSIVE_MAKE) + + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO +@@ -128,7 +128,7 @@ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ + done; \ + fi +- @target=install; $(RECURSIVE_MAKE) ++ +@target=install; $(RECURSIVE_MAKE) + + tags: + ctags $(SRC) +--- openssl-1.0.2a/Makefile.org ++++ openssl-1.0.2a/Makefile.org +@@ -274,17 +274,17 @@ + build_libs: build_crypto build_ssl build_engines + + build_crypto: +- @dir=crypto; target=all; $(BUILD_ONE_CMD) ++ +@dir=crypto; target=all; $(BUILD_ONE_CMD) +-build_ssl: ++build_ssl: build_crypto +- @dir=ssl; target=all; $(BUILD_ONE_CMD) ++ +@dir=ssl; target=all; $(BUILD_ONE_CMD) +-build_engines: ++build_engines: build_crypto +- @dir=engines; target=all; $(BUILD_ONE_CMD) ++ +@dir=engines; target=all; $(BUILD_ONE_CMD) +-build_apps: ++build_apps: build_libs +- @dir=apps; target=all; $(BUILD_ONE_CMD) ++ +@dir=apps; target=all; $(BUILD_ONE_CMD) +-build_tests: ++build_tests: build_libs +- @dir=test; target=all; $(BUILD_ONE_CMD) ++ +@dir=test; target=all; $(BUILD_ONE_CMD) +-build_tools: ++build_tools: build_libs +- @dir=tools; target=all; $(BUILD_ONE_CMD) ++ +@dir=tools; target=all; $(BUILD_ONE_CMD) + + all_testapps: build_libs build_testapps + build_testapps: +@@ -555,7 +555,7 @@ + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ + done; +- @set -e; target=install; $(RECURSIVE_BUILD_CMD) ++ +@set -e; target=install; $(RECURSIVE_BUILD_CMD) + @set -e; liblist="$(LIBS)"; for i in $$liblist ;\ + do \ + if [ -f "$$i" ]; then \ +--- openssl-1.0.2a/Makefile.shared ++++ openssl-1.0.2a/Makefile.shared +@@ -105,6 +105,7 @@ + SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ + LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ ++ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \ + LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ + $${SHAREDCMD} $${SHAREDFLAGS} \ + -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ +@@ -122,6 +123,7 @@ + done; \ + fi; \ + if [ -n "$$SHLIB_SOVER" ]; then \ ++ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \ + ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \ + ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \ + fi; \ +--- openssl-1.0.2a/test/Makefile ++++ openssl-1.0.2a/test/Makefile +@@ -133,7 +133,7 @@ + tags: + ctags $(SRC) + +-tests: exe apps $(TESTS) ++tests: exe $(TESTS) + + apps: + @(cd ..; $(MAKE) DIRS=apps all) +@@ -402,121 +402,121 @@ + link_app.$${shlib_target} + + $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO) +- @target=$(RSATEST); $(BUILD_CMD) ++ +@target=$(RSATEST); $(BUILD_CMD) + + $(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO) +- @target=$(BNTEST); $(BUILD_CMD) ++ +@target=$(BNTEST); $(BUILD_CMD) + + $(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO) +- @target=$(ECTEST); $(BUILD_CMD) ++ +@target=$(ECTEST); $(BUILD_CMD) + + $(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO) +- @target=$(EXPTEST); $(BUILD_CMD) ++ +@target=$(EXPTEST); $(BUILD_CMD) + + $(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO) +- @target=$(IDEATEST); $(BUILD_CMD) ++ +@target=$(IDEATEST); $(BUILD_CMD) + + $(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO) +- @target=$(MD2TEST); $(BUILD_CMD) ++ +@target=$(MD2TEST); $(BUILD_CMD) + + $(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO) +- @target=$(SHATEST); $(BUILD_CMD) ++ +@target=$(SHATEST); $(BUILD_CMD) + + $(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO) +- @target=$(SHA1TEST); $(BUILD_CMD) ++ +@target=$(SHA1TEST); $(BUILD_CMD) + + $(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO) +- @target=$(SHA256TEST); $(BUILD_CMD) ++ +@target=$(SHA256TEST); $(BUILD_CMD) + + $(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO) +- @target=$(SHA512TEST); $(BUILD_CMD) ++ +@target=$(SHA512TEST); $(BUILD_CMD) + + $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO) +- @target=$(RMDTEST); $(BUILD_CMD) ++ +@target=$(RMDTEST); $(BUILD_CMD) + + $(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO) +- @target=$(MDC2TEST); $(BUILD_CMD) ++ +@target=$(MDC2TEST); $(BUILD_CMD) + + $(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO) +- @target=$(MD4TEST); $(BUILD_CMD) ++ +@target=$(MD4TEST); $(BUILD_CMD) + + $(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO) +- @target=$(MD5TEST); $(BUILD_CMD) ++ +@target=$(MD5TEST); $(BUILD_CMD) + + $(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO) +- @target=$(HMACTEST); $(BUILD_CMD) ++ +@target=$(HMACTEST); $(BUILD_CMD) + + $(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO) +- @target=$(WPTEST); $(BUILD_CMD) ++ +@target=$(WPTEST); $(BUILD_CMD) + + $(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO) +- @target=$(RC2TEST); $(BUILD_CMD) ++ +@target=$(RC2TEST); $(BUILD_CMD) + + $(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO) +- @target=$(BFTEST); $(BUILD_CMD) ++ +@target=$(BFTEST); $(BUILD_CMD) + + $(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO) +- @target=$(CASTTEST); $(BUILD_CMD) ++ +@target=$(CASTTEST); $(BUILD_CMD) + + $(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO) +- @target=$(RC4TEST); $(BUILD_CMD) ++ +@target=$(RC4TEST); $(BUILD_CMD) + + $(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO) +- @target=$(RC5TEST); $(BUILD_CMD) ++ +@target=$(RC5TEST); $(BUILD_CMD) + + $(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO) +- @target=$(DESTEST); $(BUILD_CMD) ++ +@target=$(DESTEST); $(BUILD_CMD) + + $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO) +- @target=$(RANDTEST); $(BUILD_CMD) ++ +@target=$(RANDTEST); $(BUILD_CMD) + + $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO) +- @target=$(DHTEST); $(BUILD_CMD) ++ +@target=$(DHTEST); $(BUILD_CMD) + + $(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO) +- @target=$(DSATEST); $(BUILD_CMD) ++ +@target=$(DSATEST); $(BUILD_CMD) + + $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO) +- @target=$(METHTEST); $(BUILD_CMD) ++ +@target=$(METHTEST); $(BUILD_CMD) + + $(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO) +- @target=$(SSLTEST); $(FIPS_BUILD_CMD) ++ +@target=$(SSLTEST); $(FIPS_BUILD_CMD) + + $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO) +- @target=$(ENGINETEST); $(BUILD_CMD) ++ +@target=$(ENGINETEST); $(BUILD_CMD) + + $(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO) +- @target=$(EVPTEST); $(BUILD_CMD) ++ +@target=$(EVPTEST); $(BUILD_CMD) + + $(EVPEXTRATEST)$(EXE_EXT): $(EVPEXTRATEST).o $(DLIBCRYPTO) +- @target=$(EVPEXTRATEST); $(BUILD_CMD) ++ +@target=$(EVPEXTRATEST); $(BUILD_CMD) + + $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO) +- @target=$(ECDSATEST); $(BUILD_CMD) ++ +@target=$(ECDSATEST); $(BUILD_CMD) + + $(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO) +- @target=$(ECDHTEST); $(BUILD_CMD) ++ +@target=$(ECDHTEST); $(BUILD_CMD) + + $(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO) +- @target=$(IGETEST); $(BUILD_CMD) ++ +@target=$(IGETEST); $(BUILD_CMD) + + $(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO) +- @target=$(JPAKETEST); $(BUILD_CMD) ++ +@target=$(JPAKETEST); $(BUILD_CMD) + + $(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO) +- @target=$(ASN1TEST); $(BUILD_CMD) ++ +@target=$(ASN1TEST); $(BUILD_CMD) + + $(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO) +- @target=$(SRPTEST); $(BUILD_CMD) ++ +@target=$(SRPTEST); $(BUILD_CMD) + + $(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO) +- @target=$(V3NAMETEST); $(BUILD_CMD) ++ +@target=$(V3NAMETEST); $(BUILD_CMD) + + $(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO) +- @target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC) ++ +@target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC) + + $(CONSTTIMETEST)$(EXE_EXT): $(CONSTTIMETEST).o +- @target=$(CONSTTIMETEST) $(BUILD_CMD) ++ +@target=$(CONSTTIMETEST) $(BUILD_CMD) + + #$(AESTEST).o: $(AESTEST).c + # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c +@@ -529,7 +529,7 @@ + # fi + + dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO) +- @target=dummytest; $(BUILD_CMD) ++ +@target=dummytest; $(BUILD_CMD) + + # DO NOT DELETE THIS LINE -- make depend depends on it. + \ No newline at end of file diff --git a/system/base/openssl/files/openssl-1.0.2a-x32-asm.patch b/system/base/openssl/files/openssl-1.0.2a-x32-asm.patch new file mode 100644 index 00000000..e8d4baba --- /dev/null +++ b/system/base/openssl/files/openssl-1.0.2a-x32-asm.patch @@ -0,0 +1,42 @@ +https://rt.openssl.org/Ticket/Display.html?id=3759&user=guest&pass=guest + +From 6257d59b3a68d2feb9d64317a1c556dc3813ee61 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Sat, 21 Mar 2015 06:01:25 -0400 +Subject: [PATCH] crypto: use bigint in x86-64 perl + +When building on x32 systems where the default type is 32bit, make sure +we can transparently represent 64bit integers. Otherwise we end up with +build errors like: +/usr/bin/perl asm/ghash-x86_64.pl elf > ghash-x86_64.s +Integer overflow in hexadecimal number at asm/../../perlasm/x86_64-xlate.pl line 201, <> line 890. +... +ghash-x86_64.s: Assembler messages: +ghash-x86_64.s:890: Error: junk '.15473355479995e+19' after expression + +We don't enable this globally as there are some cases where we'd get +32bit values interpreted as unsigned when we need them as signed. + +Reported-by: Bertrand Jacquin +URL: https://bugs.gentoo.org/542618 +--- + crypto/perlasm/x86_64-xlate.pl | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl +index aae8288..0bf9774 100755 +--- a/crypto/perlasm/x86_64-xlate.pl ++++ b/crypto/perlasm/x86_64-xlate.pl +@@ -195,6 +195,10 @@ my %globals; + sub out { + my $self = shift; + ++ # When building on x32 ABIs, the expanded hex value might be too ++ # big to fit into 32bits. Enable transparent 64bit support here ++ # so we can safely print it out. ++ use bigint; + if ($gas) { + # Solaris /usr/ccs/bin/as can't handle multiplications + # in $self->{value} +-- +2.3.3 diff --git a/system/base/openssl/files/openssl-ca-certificates.patch b/system/base/openssl/files/openssl-ca-certificates.patch new file mode 100644 index 00000000..503d5efc --- /dev/null +++ b/system/base/openssl/files/openssl-ca-certificates.patch @@ -0,0 +1,12 @@ +diff -ruN openssl-1.0.2.orig/crypto/cryptlib.h openssl-1.0.2/crypto/cryptlib.h +--- openssl-1.0.2.orig/crypto/cryptlib.h 2015-01-22 15:58:32.000000000 +0100 ++++ openssl-1.0.2/crypto/cryptlib.h 2015-01-27 15:48:31.239123780 +0100 +@@ -82,7 +82,7 @@ + # ifndef OPENSSL_SYS_VMS + # define X509_CERT_AREA OPENSSLDIR + # define X509_CERT_DIR OPENSSLDIR "/certs" +-# define X509_CERT_FILE OPENSSLDIR "/cert.pem" ++# define X509_CERT_FILE "/etc/ssl/certs/ca-certificates.crt" + # define X509_PRIVATE_DIR OPENSSLDIR "/private" + # else + # define X509_CERT_AREA "SSLROOT:[000000]" \ No newline at end of file diff --git a/system/base/openssl/files/openssl-optflags.patch b/system/base/openssl/files/openssl-optflags.patch index 1f7c5a6d..e8264511 100644 --- a/system/base/openssl/files/openssl-optflags.patch +++ b/system/base/openssl/files/openssl-optflags.patch @@ -1,6 +1,6 @@ -diff -ruN openssl-1.0.2.orig/Configure openssl-1.0.2/Configure ---- openssl-1.0.2.orig/Configure 2015-01-22 15:58:32.000000000 +0100 -+++ openssl-1.0.2/Configure 2015-01-31 02:52:23.561553146 +0100 +diff -ruN openssl-1.0.2a.orig/Configure openssl-1.0.2a/Configure +--- openssl-1.0.2a.orig/Configure 2015-03-19 14:30:36.000000000 +0100 ++++ openssl-1.0.2a/Configure 2015-03-20 14:52:48.785578415 +0100 @@ -168,8 +168,8 @@ #"b2-is-ri-dp", "${tcc}:${tflags}::${tlib}:${bits2}IDEA_SHORT RC4_INDEX DES_PTR:${tbn_mul}::", @@ -13,25 +13,25 @@ diff -ruN openssl-1.0.2.orig/Configure openssl-1.0.2/Configure "debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::", "debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::", @@ -192,14 +192,14 @@ - "debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + "debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "debug-geoff32","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "debug-geoff64","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", --"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", --"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o::des-586.o crypt586.o:aes_x86core.o aes_cbc.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::ghash-x86.o::elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", +-"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", +-"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o::des-586.o crypt586.o:aes_x86core.o aes_cbc.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::ghash-x86.o::elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -"debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", -+"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", -+"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", -+"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -DTERMIO -fomit-frame-pointer $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o::des-586.o crypt586.o:aes_x86core.o aes_cbc.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::ghash-x86.o::elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", ++"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", ++"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -fomit-frame-pointer $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o::des-586.o crypt586.o:aes_x86core.o aes_cbc.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::ghash-x86.o::elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++"debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -g $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", "dist", "cc:-O::(unknown)::::::", # Basic configs that should work on any (32 and less bit) box @@ -39,10 +39,10 @@ diff -ruN openssl-1.0.2.orig/Configure openssl-1.0.2/Configure #### # *-generic* is endian-neutral target, but ./config is free to # throw in -D[BL]_ENDIAN, whichever appropriate... --"linux-generic32","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-generic32","gcc:-DTERMIO -fomit-frame-pointer $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-generic32","gcc:-O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-ppc", "gcc:-DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-generic32","gcc:-fomit-frame-pointer $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-ppc", "gcc:-DB_ENDIAN $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ####################################################################### # Note that -march is not among compiler options in below linux-armv4 @@ -50,44 +50,44 @@ diff -ruN openssl-1.0.2.orig/Configure openssl-1.0.2/Configure # # ./Configure linux-armv4 -march=armv6 -D__ARM_MAX_ARCH__=8 # --"linux-armv4", "gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"linux-aarch64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-armv4", "gcc:-DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-aarch64","gcc:-DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-armv4", "gcc: -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-aarch64","gcc: -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-armv4", "gcc: $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-aarch64","gcc: $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", # Configure script adds minimally required -march for assembly support, # if no -march was specified at command line. mips32 and mips64 below # refer to contemporary MIPS Architecture specifications, MIPS32 and @@ -388,20 +388,20 @@ - "linux-mips64", "gcc:-mabi=n32 -DTERMIO -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:n32:dlfcn:linux-shared:-fPIC:-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::32", - "linux64-mips64", "gcc:-mabi=64 -DTERMIO -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:64:dlfcn:linux-shared:-fPIC:-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", + "linux-mips64", "gcc:-mabi=n32 -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:n32:dlfcn:linux-shared:-fPIC:-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::32", + "linux64-mips64", "gcc:-mabi=64 -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:64:dlfcn:linux-shared:-fPIC:-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", #### IA-32 targets... --"linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2::-D_REENTRANT::-ldl -no_cpprt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out", -+"linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO $ENV{OPTFLAGS}::-D_REENTRANT::-ldl -no_cpprt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-elf", "gcc:-DL_ENDIAN -DTERMIO $ENV{OPTFLAGS} -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-aout", "gcc:-DL_ENDIAN -DTERMIO $ENV{OPTFLAGS} -fomit-frame-pointer -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out", +-"linux-ia32-icc", "icc:-DL_ENDIAN -O2::-D_REENTRANT::-ldl -no_cpprt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-elf", "gcc:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-aout", "gcc:-DL_ENDIAN -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out", ++"linux-ia32-icc", "icc:-DL_ENDIAN $ENV{OPTFLAGS}::-D_REENTRANT::-ldl -no_cpprt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-elf", "gcc:-DL_ENDIAN $ENV{OPTFLAGS} -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-aout", "gcc:-DL_ENDIAN $ENV{OPTFLAGS} -fomit-frame-pointer -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out", #### --"linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", --"linux-ppc64le","gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::", +-"linux-generic64","gcc:-O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-ppc64", "gcc:-m64 -DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", +-"linux-ppc64le","gcc:-m64 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::", -"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", --"linux-x86_64-clang", "clang: -m64 -DL_ENDIAN -DTERMIO -O3 -Weverything $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", --"linux-x86_64-icc", "icc:-DL_ENDIAN -DTERMIO -O2::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", --"linux-x32", "gcc:-mx32 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32", --"linux64-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", -+"linux-generic64","gcc:-DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", -+"linux-ppc64le","gcc:-m64 -DL_ENDIAN -DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::", +-"linux-ia64-icc","icc:-DL_ENDIAN -O2 -Wall::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-x86_64", "gcc:-m64 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", +-"linux-x86_64-clang", "clang: -m64 -DL_ENDIAN -O3 -Weverything $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", +-"linux-x86_64-icc", "icc:-DL_ENDIAN -O2::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", +-"linux-x32", "gcc:-mx32 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32", +-"linux64-s390x", "gcc:-m64 -DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++"linux-generic64","gcc:$ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-ppc64", "gcc:-m64 -DB_ENDIAN $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++"linux-ppc64le","gcc:-m64 -DL_ENDIAN $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::", +"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", -+"linux-x86_64-clang", "clang: -m64 -DL_ENDIAN -DTERMIO $ENV{OPTFLAGS} -Weverything $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", -+"linux-x86_64-icc", "icc:-DL_ENDIAN -DTERMIO $ENV{OPTFLAGS}::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", -+"linux-x32", "gcc:-mx32 -DL_ENDIAN -DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32", -+"linux64-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++"linux-ia64-icc","icc:-DL_ENDIAN $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-x86_64", "gcc:-m64 -DL_ENDIAN $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++"linux-x86_64-clang", "clang: -m64 -DL_ENDIAN $ENV{OPTFLAGS} -Weverything $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++"linux-x86_64-icc", "icc:-DL_ENDIAN $ENV{OPTFLAGS}::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++"linux-x32", "gcc:-mx32 -DL_ENDIAN $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32", ++"linux64-s390x", "gcc:-m64 -DB_ENDIAN $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", #### So called "highgprs" target for z/Architecture CPUs # "Highgprs" is kernel feature first implemented in Linux 2.6.32, see # /proc/cpuinfo. The idea is to preserve most significant bits of @@ -95,20 +95,20 @@ diff -ruN openssl-1.0.2.orig/Configure openssl-1.0.2/Configure # ldconfig and run-time linker to autodiscover. Unfortunately it # doesn't work just yet, because of couple of bugs in glibc # sysdeps/s390/dl-procinfo.c affecting ldconfig and ld.so.1... --"linux32-s390x", "gcc:-m31 -Wa,-mzarch -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$s390x_asm;$asm=~s/bn\-s390x\.o/bn_asm.o/;$asm}.":31:dlfcn:linux-shared:-fPIC:-m31:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/highgprs", -+"linux32-s390x", "gcc:-m31 -Wa,-mzarch -DB_ENDIAN -DTERMIO $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$s390x_asm;$asm=~s/bn\-s390x\.o/bn_asm.o/;$asm}.":31:dlfcn:linux-shared:-fPIC:-m31:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/highgprs", +-"linux32-s390x", "gcc:-m31 -Wa,-mzarch -DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$s390x_asm;$asm=~s/bn\-s390x\.o/bn_asm.o/;$asm}.":31:dlfcn:linux-shared:-fPIC:-m31:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/highgprs", ++"linux32-s390x", "gcc:-m31 -Wa,-mzarch -DB_ENDIAN $ENV{OPTFLAGS} -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$s390x_asm;$asm=~s/bn\-s390x\.o/bn_asm.o/;$asm}.":31:dlfcn:linux-shared:-fPIC:-m31:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/highgprs", #### SPARC Linux setups # Ray Miller has patiently # assisted with debugging of following two configs. --"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -fomit-frame-pointer $ENV{OPTFLAGS} -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -fomit-frame-pointer $ENV{OPTFLAGS} -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", # it's a real mess with -mcpu=ultrasparc option under Linux, but # -Wa,-Av8plus should do the trick no matter what. --"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -fomit-frame-pointer $ENV{OPTFLAGS} -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -fomit-frame-pointer $ENV{OPTFLAGS} -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", # GCC 3.1 is a requirement --"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", -+"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -fomit-frame-pointer $ENV{OPTFLAGS} -Wall::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", +-"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -fomit-frame-pointer $ENV{OPTFLAGS} -Wall::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", #### Alpha Linux with GNU C and Compaq C setups # Special notes: # - linux-alpha+bwx-gcc is ment to be used from ./config only. If you @@ -116,12 +116,12 @@ diff -ruN openssl-1.0.2.orig/Configure openssl-1.0.2/Configure # # # --"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-alpha-gcc","gcc:$ENV{OPTFLAGS} -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-alpha+bwx-gcc","gcc:$ENV{OPTFLAGS} -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", - "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", +-"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-alpha-gcc","gcc:$ENV{OPTFLAGS} -DL_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-alpha+bwx-gcc","gcc:$ENV{OPTFLAGS} -DL_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", + "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", @@ -1737,7 +1737,7 @@ elsif ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*\.[^\.]*$/) @@ -131,4 +131,4 @@ diff -ruN openssl-1.0.2.orig/Configure openssl-1.0.2/Configure + s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.\$(SHLIB_SOVER) .s$sotmp/; } elsif ($shared_extension ne "" && $shared_extension =~ /^\.[^\.]*\.[^\.]*\.dylib$/) - { + { \ No newline at end of file diff --git a/system/base/openssl/files/openssl_fix_for_x32.patch b/system/base/openssl/files/openssl_fix_for_x32.patch index 8d95b71b..8fc68b86 100644 --- a/system/base/openssl/files/openssl_fix_for_x32.patch +++ b/system/base/openssl/files/openssl_fix_for_x32.patch @@ -1,29 +1,15 @@ -diff -ruNp openssl-1.0.2.orig/crypto/bn/asm/x86_64-gcc.c openssl-1.0.2/crypto/bn/asm/x86_64-gcc.c ---- openssl-1.0.2.orig/crypto/bn/asm/x86_64-gcc.c 2015-01-22 15:58:32.000000000 +0100 -+++ openssl-1.0.2/crypto/bn/asm/x86_64-gcc.c 2015-01-27 16:19:21.432252035 +0100 -@@ -212,9 +212,9 @@ BN_ULONG bn_add_words(BN_ULONG *rp, cons - asm volatile (" subq %0,%0 \n" /* clear carry */ - " jmp 1f \n" - ".p2align 4 \n" -- "1: movq (%4,%2,8),%0 \n" -- " adcq (%5,%2,8),%0 \n" -- " movq %0,(%3,%2,8) \n" -+ "1: movq (%q4,%2,8),%0 \n" -+ " adcq (%q5,%2,8),%0 \n" -+ " movq %0,(%q3,%2,8) \n" - " lea 1(%2),%2 \n" - " loop 1b \n" - " sbbq %0,%0 \n":"=&r" (ret), "+c"(n), -@@ -238,9 +238,9 @@ BN_ULONG bn_sub_words(BN_ULONG *rp, cons - asm volatile (" subq %0,%0 \n" /* clear borrow */ - " jmp 1f \n" - ".p2align 4 \n" -- "1: movq (%4,%2,8),%0 \n" -- " sbbq (%5,%2,8),%0 \n" -- " movq %0,(%3,%2,8) \n" -+ "1: movq (%q4,%2,8),%0 \n" -+ " sbbq (%q5,%2,8),%0 \n" -+ " movq %0,(%q3,%2,8) \n" - " lea 1(%2),%2 \n" - " loop 1b \n" - " sbbq %0,%0 \n":"=&r" (ret), "+c"(n), +--- openssl-1.0.2/crypto/perlasm/x86_64-xlate.pl~ 2015-02-27 20:05:00.732776724 +0000 ++++ openssl-1.0.2/crypto/perlasm/x86_64-xlate.pl 2015-02-27 20:05:23.327082845 +0000 +@@ -199,8 +199,12 @@ + if ($gas) { + # Solaris /usr/ccs/bin/as can't handle multiplications + # in $self->{value} ++ if ($self->{value} =~ /0xA040608020C0E000/) { ++ $self->{value} = "11547335547999543296"; ++ } else { + $self->{value} =~ s/(?{value} =~ s/([0-9]+\s*[\*\/\%]\s*[0-9]+)/eval($1)/eg; ++ } + sprintf "\$%s",$self->{value}; + } else { + $self->{value} =~ s/(0b[0-1]+)/oct($1)/eig; \ No newline at end of file diff --git a/system/base/openssl/files/openssl_fix_for_x32_2.patch b/system/base/openssl/files/openssl_fix_for_x32_2.patch new file mode 100644 index 00000000..7584b936 --- /dev/null +++ b/system/base/openssl/files/openssl_fix_for_x32_2.patch @@ -0,0 +1,29 @@ +diff -ruNp openssl-1.0.2.orig/crypto/bn/asm/x86_64-gcc.c openssl-1.0.2/crypto/bn/asm/x86_64-gcc.c +--- openssl-1.0.2.orig/crypto/bn/asm/x86_64-gcc.c 2015-01-22 15:58:32.000000000 +0100 ++++ openssl-1.0.2/crypto/bn/asm/x86_64-gcc.c 2015-01-27 16:19:21.432252035 +0100 +@@ -212,9 +212,9 @@ BN_ULONG bn_add_words(BN_ULONG *rp, cons + asm volatile (" subq %0,%0 \n" /* clear carry */ + " jmp 1f \n" + ".p2align 4 \n" +- "1: movq (%4,%2,8),%0 \n" +- " adcq (%5,%2,8),%0 \n" +- " movq %0,(%3,%2,8) \n" ++ "1: movq (%q4,%2,8),%0 \n" ++ " adcq (%q5,%2,8),%0 \n" ++ " movq %0,(%q3,%2,8) \n" + " lea 1(%2),%2 \n" + " loop 1b \n" + " sbbq %0,%0 \n":"=&r" (ret), "+c"(n), +@@ -238,9 +238,9 @@ BN_ULONG bn_sub_words(BN_ULONG *rp, cons + asm volatile (" subq %0,%0 \n" /* clear borrow */ + " jmp 1f \n" + ".p2align 4 \n" +- "1: movq (%4,%2,8),%0 \n" +- " sbbq (%5,%2,8),%0 \n" +- " movq %0,(%3,%2,8) \n" ++ "1: movq (%q4,%2,8),%0 \n" ++ " sbbq (%q5,%2,8),%0 \n" ++ " movq %0,(%q3,%2,8) \n" + " lea 1(%2),%2 \n" + " loop 1b \n" + " sbbq %0,%0 \n":"=&r" (ret), "+c"(n), diff --git a/system/base/openssl/pspec.xml b/system/base/openssl/pspec.xml index 221d00d7..616a6558 100644 --- a/system/base/openssl/pspec.xml +++ b/system/base/openssl/pspec.xml @@ -27,13 +27,17 @@ openssl-1.0.0a-ldflags-norpath.patch openssl-1.0.0-beta4-ca-dir.patch openssl-1.0.0-beta5-enginesdir.patch - openssl-1.0.2-ipv6.patch openssl-1.0.2-s_client-verify.patch openssl-include.patch openssl_fix_for_x32.patch - - + openssl_fix_for_x32_2.patch + openssl-ca-certificates.patch + CVE-2014-0198.patch + openssl-1.0.2a-malloc-typo.patch + openssl-1.0.2a-parallel-build.patch + openssl-1.0.2a-x32-asm.patch + openssl-optflags.patch @@ -88,6 +92,13 @@ + + 2015-05-23 + 1.0.2a + Rebuild. + Vedat Demir + vedat@pisilinux.org + 2015-04-11 1.0.2a