forked from amazingfate/loongoffice
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>
124 lines
5.3 KiB
Diff
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";
|
|
}
|