Files
loongoffice/external/openssl/opensslmingw.patch
Caolán McNamara 01798050c1 upgrade openssl to 1.0.2g
We can't "break symlinks after extracting tarball" because they populate
that dir during the build now. So instead cripple mklink.pl to
copy instead of link. (Configure no-symlinks simply skips the symlink
step instead of copying, so that appears useless)

Change-Id: Ib30b2c1b8b3de72511d09c478297a7a5a4bc691e
Reviewed-on: https://gerrit.libreoffice.org/21880
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-03-07 16:07:39 +00:00

124 lines
5.3 KiB
Diff

diff -ru openssl.orig/Makefile.shared openssl/Makefile.shared
--- a/openssl.orig/Makefile.shared 2016-03-03 21:16:48.751822016 +0100
+++ b/openssl/Makefile.shared 2016-03-03 21:27:12.615802449 +0100
@@ -278,7 +278,7 @@
link_a.cygwin:
@ $(CALC_VERSIONS); \
INHIBIT_SYMLINKS=yes; \
- SHLIB=cyg$(LIBNAME); SHLIB_SOVER=-$(LIBVERSION); SHLIB_SUFFIX=.dll; \
+ SHLIB=cyg$(LIBNAME); SHLIB_SOVER=; SHLIB_SUFFIX=.dll; \
dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; extras=; \
base=-Wl,--enable-auto-image-base; \
if expr $(PLATFORM) : 'mingw' > /dev/null; then \
@@ -289,7 +289,11 @@
SHLIB_SOVER=32; \
extras="$(LIBNAME).def"; \
$(PERL) util/mkdef.pl 32 $$SHLIB > $$extras; \
- base=; [ $(LIBNAME) = "crypto" -a -n "$(FIPSCANLIB)" ] && base=-Wl,--image-base,0x63000000; \
+ base=; \
+ if test $(LIBNAME) = "crypto"; then \
+ SHLIB=libeay32; \
+ base=-Wl,--image-base,0x63000000; \
+ fi; \
fi; \
dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \
$(PERL) util/mkrc.pl $$dll_name | \
@@ -297,7 +301,7 @@
extras="$$extras rc.o"; \
ALLSYMSFLAGS='-Wl,--whole-archive'; \
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
- SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \
+ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-s,-Bsymbolic -Wl,--export-all-symbols -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \
[ -f apps/$$dll_name ] && rm apps/$$dll_name; \
[ -f test/$$dll_name ] && rm test/$$dll_name; \
$(LINK_SO_A) || exit 1; \
diff -ru openssl.orig/e_os2.h openssl/e_os2.h
--- a/openssl.orig/e_os2.h 2016-03-01 14:35:53.000000000 +0100
+++ b/openssl/e_os2.h 2016-03-03 21:27:33.179801804 +0100
@@ -293,7 +293,7 @@
# ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION
# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \
type *_shadow_##name(void) \
- { static type _hide_##name=value; return &_hide_##name; }
+ { type _hide_##name=value; return &_hide_##name; }
# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void)
# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name()))
# else
diff -ru openssl.orig/ms/mingw32.bat openssl/ms/mingw32.bat
--- a/openssl.orig/ms/mingw32.bat 2016-03-01 14:35:05.000000000 +0100
+++ b/openssl/ms/mingw32.bat 2016-03-03 21:27:56.487801073 +0100
@@ -75,15 +75,41 @@
rem copy ms\tlhelp32.h outinc
echo Building the libraries
-mingw32-make -f ms/mingw32a.mak
+make -f ms/mingw32a.mak
if errorlevel 1 goto end
echo Generating the DLLs and input libraries
-dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lws2_32 -lgdi32
+mv out/libcrypto.a out/libcrypto_static.a
+mv out/libssl.a out/libssl_static.a
+dlltool --dllname libeay32.dll --output-lib out/libcrypto.a --input-def ms/libeay32.def
if errorlevel 1 goto end
-dllwrap --dllname libssl32.dll --output-lib out/libssl32.a --def ms/ssleay32.def out/libssl.a out/libeay32.a
+gcc --shared --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lws2_32 -lgdi32
if errorlevel 1 goto end
+dlltool --dllname ssleay32.dll --output-lib out/libssl.a --input-def ms/ssleay32.def
+if errorlevel 1 goto end
+if "%MINGW_SHARED_GXXLIB%"=="TRUE" goto shared_gxxlib
+if "%MINGW_SHARED_GCCLIB%"=="TRUE" goto shared_gcclib
+gcc --shared --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lws2_32 -lgdi32
+if errorlevel 1 goto end
+gcc --shared --enable-pseudo-reloc -Wl,-Map,out/ssleay32.map -Lout ms/ssleay32.def -o out/ssleay32.dll out/libssl_static.a -lcrypto
+if errorlevel 1 goto end
+goto finished
+
+:shared_gcclib
+gcc --shared -shared-libgcc --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lws2_32 -lgdi32
+if errorlevel 1 goto end
+gcc --shared -shared-libgcc --enable-pseudo-reloc -Wl,-Map,out/ssleay32.map -Lout ms/ssleay32.def -o out/ssleay32.dll out/libssl_static.a -lcrypto
+if errorlevel 1 goto end
+goto finished
+:shared_gxxlib
+gcc --shared -shared-libgcc --enable-pseudo-reloc -Wl,-Map,out/libeay32.map ms/libeay32.def -o out/libeay32.dll out/libcrypto_static.a -lws2_32 -lgdi32 %MINGW_SHARED_LIBSTDSPP%
+if errorlevel 1 goto end
+gcc --shared -shared-libgcc --enable-pseudo-reloc -Wl,-Map,out/ssleay32.map -Lout ms/ssleay32.def -o out/ssleay32.dll out/libssl_static.a -lcrypto %MINGW_SHARED_LIBSTDSPP%
+if errorlevel 1 goto end
+goto finished
+
+:finished
echo Done compiling OpenSSL
:end
diff -ru openssl.orig/util/pl/Mingw32.pl openssl/util/pl/Mingw32.pl
--- a/openssl.orig/util/pl/Mingw32.pl 2016-03-01 14:33:04.000000000 +0100
+++ b/openssl/util/pl/Mingw32.pl 2016-03-03 21:28:16.691800440 +0100
@@ -6,11 +6,11 @@
$o='/';
$cp='cp';
$rm='rm -f';
-$mkdir='gmkdir';
+#$mkdir='gmkdir';
-$o='\\';
-$cp='copy';
-$rm='del';
+#$o='\\';
+#$cp='copy';
+#$rm='del';
$mkdir='mkdir';
# C compiler stuff
@@ -85,7 +85,8 @@
($Name=$name) =~ tr/a-z/A-Z/;
$ret.="$target: \$(${Name}OBJ)\n";
- $ret.="\tif exist $target \$(RM) $target\n";
+ $ret.="\t\$(RM) $target\n";
+# $ret.="\tif exist $target \$(RM) $target\n";
$ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
$ret.="\t\$(RANLIB) $target\n\n";
}