Alexandre Julliard : makefiles: Also pass -fPIC flag when linking.
Alexandre Julliard
julliard at winehq.org
Tue Apr 30 15:59:56 CDT 2019
Module: wine
Branch: master
Commit: 8039941c52758113955d376bd7b6b6e1e5b5f76c
URL: https://source.winehq.org/git/wine.git/?a=commit;h=8039941c52758113955d376bd7b6b6e1e5b5f76c
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Apr 30 22:42:17 2019 +0200
makefiles: Also pass -fPIC flag when linking.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
Makefile.in | 2 +-
configure | 15 ++++++++++-----
configure.ac | 11 ++++++++---
tools/makedep.c | 6 +++---
4 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index ffdd61c..63e58d5 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -44,7 +44,7 @@ EXTRACFLAGS = @EXTRACFLAGS@
EXTRACROSSCFLAGS= @EXTRACROSSCFLAGS@
MSVCRTFLAGS = @BUILTINFLAG@
TARGETFLAGS = @TARGETFLAGS@
-UNWINDFLAGS = @UNWINDFLAGS@
+LDDLLFLAGS = @LDDLLFLAGS@
LDEXECFLAGS = @LDEXECFLAGS@
LIBS = @LIBS@
BISON = @BISON@
diff --git a/configure b/configure
index 253a820..40c6a7d 100755
--- a/configure
+++ b/configure
@@ -631,7 +631,6 @@ RT_LIBS
POLL_LIBS
DL_LIBS
TOOLSEXT
-UNWINDFLAGS
BUILTINFLAG
EXCESS_PRECISION_CFLAGS
EXTRACFLAGS
@@ -743,6 +742,7 @@ WINELOADER_LDFLAGS
TOP_INSTALL_DEV
TOP_INSTALL_LIB
LDEXECFLAGS
+LDDLLFLAGS
LDRPATH_LOCAL
LDRPATH_INSTALL
DLLFLAGS
@@ -7849,6 +7849,8 @@ LDRPATH_INSTALL=""
LDRPATH_LOCAL=""
+LDDLLFLAGS=""
+
LDEXECFLAGS=""
TOP_INSTALL_LIB=""
@@ -8660,6 +8662,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
LIBEXT="dylib"
DLLFLAGS="$DLLFLAGS -fPIC"
+ LDDLLFLAGS="-fPIC"
LDRPATH_INSTALL="-Wl,-rpath, at loader_path/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`"
LDRPATH_LOCAL="-Wl,-rpath, at loader_path/\$(top_builddir)/libs/wine"
COREFOUNDATION_LIBS="-framework CoreFoundation"
@@ -9038,6 +9041,7 @@ fi
linux-android*)
DLLFLAGS="$DLLFLAGS -fPIC"
+ LDDLLFLAGS="-fPIC"
LDEXECFLAGS="-Wl,-pie"
enable_wineandroid_drv=${enable_wineandroid_drv:-yes}
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fPIC -Wl,--export-dynamic" >&5
@@ -9280,9 +9284,11 @@ fi
*)
case $host_cpu in
*i[3456789]86*)
- DLLFLAGS="$DLLFLAGS -fno-PIC" ;;
+ DLLFLAGS="$DLLFLAGS -fno-PIC"
+ LDDLLFLAGS="-fno-PIC" ;;
*)
- DLLFLAGS="$DLLFLAGS -fPIC" ;;
+ DLLFLAGS="$DLLFLAGS -fPIC"
+ LDDLLFLAGS="-fPIC" ;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build a GNU style ELF dll" >&5
$as_echo_n "checking whether we can build a GNU style ELF dll... " >&6; }
@@ -17548,8 +17554,7 @@ then
$as_echo "#define __ASM_CFI(str) str" >>confdefs.h
- UNWINDFLAGS=-fasynchronous-unwind-tables
-
+ LDDLLFLAGS="$LDDLLFLAGS -fasynchronous-unwind-tables"
else
$as_echo "#define __ASM_CFI(str) \"\"" >>confdefs.h
diff --git a/configure.ac b/configure.ac
index cb98a45..e35189c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -707,6 +707,7 @@ dnl **** Check for working dll ****
AC_SUBST(DLLFLAGS,"-D_REENTRANT")
AC_SUBST(LDRPATH_INSTALL,"")
AC_SUBST(LDRPATH_LOCAL,"")
+AC_SUBST(LDDLLFLAGS,"")
AC_SUBST(LDEXECFLAGS,"")
AC_SUBST(TOP_INSTALL_LIB,"")
AC_SUBST(TOP_INSTALL_DEV,"")
@@ -746,6 +747,7 @@ case $host_os in
AC_LANG_POP([Objective C])
LIBEXT="dylib"
DLLFLAGS="$DLLFLAGS -fPIC"
+ LDDLLFLAGS="-fPIC"
LDRPATH_INSTALL="-Wl,-rpath, at loader_path/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`"
LDRPATH_LOCAL="-Wl,-rpath, at loader_path/\$(top_builddir)/libs/wine"
dnl declare needed frameworks
@@ -891,6 +893,7 @@ case $host_os in
linux-android*)
DLLFLAGS="$DLLFLAGS -fPIC"
+ LDDLLFLAGS="-fPIC"
LDEXECFLAGS="-Wl,-pie"
enable_wineandroid_drv=${enable_wineandroid_drv:-yes}
WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic],
@@ -926,9 +929,11 @@ case $host_os in
*)
case $host_cpu in
*i[[3456789]]86*)
- DLLFLAGS="$DLLFLAGS -fno-PIC" ;;
+ DLLFLAGS="$DLLFLAGS -fno-PIC"
+ LDDLLFLAGS="-fno-PIC" ;;
*)
- DLLFLAGS="$DLLFLAGS -fPIC" ;;
+ DLLFLAGS="$DLLFLAGS -fPIC"
+ LDDLLFLAGS="-fPIC" ;;
esac
AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
[WINE_TRY_SHLIB_FLAGS([-fPIC -shared -Wl,-Bsymbolic],
@@ -2137,7 +2142,7 @@ then
asm_func_header="$asm_func_header.cfi_startproc\\n\\t"
asm_func_trailer="\\n\\t.cfi_endproc$asm_func_trailer"
AC_DEFINE([__ASM_CFI(str)],[str],[Define to a macro to output a .cfi assembly pseudo-op])
- AC_SUBST([UNWINDFLAGS],[-fasynchronous-unwind-tables])
+ LDDLLFLAGS="$LDDLLFLAGS -fasynchronous-unwind-tables"
else
AC_DEFINE([__ASM_CFI(str)],[""])
if test "x$enable_win64" = "xyes"
diff --git a/tools/makedep.c b/tools/makedep.c
index 05c574d..f5c5e0a 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -134,7 +134,7 @@ static struct strarray msvcrt_flags;
static struct strarray extra_cflags;
static struct strarray extra_cross_cflags;
static struct strarray cpp_flags;
-static struct strarray unwind_flags;
+static struct strarray lddll_flags;
static struct strarray libs;
static struct strarray enable_tests;
static struct strarray cmdline_vars;
@@ -2282,7 +2282,7 @@ static void output_winegcc_command( struct makefile *make, int cross )
else
{
output_filenames( target_flags );
- output_filenames( unwind_flags );
+ output_filenames( lddll_flags );
}
}
@@ -4201,7 +4201,7 @@ int main( int argc, char *argv[] )
extra_cflags = get_expanded_make_var_array( top_makefile, "EXTRACFLAGS" );
extra_cross_cflags = get_expanded_make_var_array( top_makefile, "EXTRACROSSCFLAGS" );
cpp_flags = get_expanded_make_var_array( top_makefile, "CPPFLAGS" );
- unwind_flags = get_expanded_make_var_array( top_makefile, "UNWINDFLAGS" );
+ lddll_flags = get_expanded_make_var_array( top_makefile, "LDDLLFLAGS" );
libs = get_expanded_make_var_array( top_makefile, "LIBS" );
enable_tests = get_expanded_make_var_array( top_makefile, "ENABLE_TESTS" );
top_install_lib = get_expanded_make_var_array( top_makefile, "TOP_INSTALL_LIB" );
More information about the wine-cvs
mailing list