xref: /minix3/external/gpl3/binutils/patches/0005-gold-libdl.patch (revision c81f587520dfe822d879c1d3a93696669d98c7a2)
1*c81f5875SBen Grascommit 6632e8ccecd8fe5de18ad78ced1c14755a24b169
2*c81f5875SBen GrasAuthor: Cary Coutant <ccoutant@google.com>
3*c81f5875SBen GrasDate:   Fri Nov 22 15:46:51 2013 -0800
4*c81f5875SBen Gras
5*c81f5875SBen Gras    Add check for which library is needed for dlopen.
6*c81f5875SBen Gras
7*c81f5875SBen Gras    gold/
8*c81f5875SBen Gras    	PR gold/16203
9*c81f5875SBen Gras    	* configure.ac: Add check for which library is needed for
10*c81f5875SBen Gras    	dlopen.
11*c81f5875SBen Gras    	* configure: Regenerate.
12*c81f5875SBen Gras
13*c81f5875SBen Grasdiff --git a/gold/configure b/gold/configure
14*c81f5875SBen Grasindex 83f5aa9..24140cf 100755
15*c81f5875SBen Gras--- a/gold/configure
16*c81f5875SBen Gras+++ b/gold/configure
17*c81f5875SBen Gras@@ -7193,13 +7193,71 @@ if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
18*c81f5875SBen Gras   cat >>confdefs.h <<_ACEOF
19*c81f5875SBen Gras #define HAVE_DLFCN_H 1
20*c81f5875SBen Gras _ACEOF
21*c81f5875SBen Gras- DLOPEN_LIBS="-ldl"
22*c81f5875SBen Gras-else
23*c81f5875SBen Gras-  DLOPEN_LIBS=""
24*c81f5875SBen Gras+
25*c81f5875SBen Gras fi
26*c81f5875SBen Gras
27*c81f5875SBen Gras done
28*c81f5875SBen Gras
29*c81f5875SBen Gras+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
30*c81f5875SBen Gras+$as_echo_n "checking for library containing dlopen... " >&6; }
31*c81f5875SBen Gras+if test "${ac_cv_search_dlopen+set}" = set; then :
32*c81f5875SBen Gras+  $as_echo_n "(cached) " >&6
33*c81f5875SBen Gras+else
34*c81f5875SBen Gras+  ac_func_search_save_LIBS=$LIBS
35*c81f5875SBen Gras+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
36*c81f5875SBen Gras+/* end confdefs.h.  */
37*c81f5875SBen Gras+
38*c81f5875SBen Gras+/* Override any GCC internal prototype to avoid an error.
39*c81f5875SBen Gras+   Use char because int might match the return type of a GCC
40*c81f5875SBen Gras+   builtin and then its argument prototype would still apply.  */
41*c81f5875SBen Gras+#ifdef __cplusplus
42*c81f5875SBen Gras+extern "C"
43*c81f5875SBen Gras+#endif
44*c81f5875SBen Gras+char dlopen ();
45*c81f5875SBen Gras+int
46*c81f5875SBen Gras+main ()
47*c81f5875SBen Gras+{
48*c81f5875SBen Gras+return dlopen ();
49*c81f5875SBen Gras+  ;
50*c81f5875SBen Gras+  return 0;
51*c81f5875SBen Gras+}
52*c81f5875SBen Gras+_ACEOF
53*c81f5875SBen Gras+for ac_lib in '' dl dld; do
54*c81f5875SBen Gras+  if test -z "$ac_lib"; then
55*c81f5875SBen Gras+    ac_res="none required"
56*c81f5875SBen Gras+  else
57*c81f5875SBen Gras+    ac_res=-l$ac_lib
58*c81f5875SBen Gras+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
59*c81f5875SBen Gras+  fi
60*c81f5875SBen Gras+  if ac_fn_cxx_try_link "$LINENO"; then :
61*c81f5875SBen Gras+  ac_cv_search_dlopen=$ac_res
62*c81f5875SBen Gras+fi
63*c81f5875SBen Gras+rm -f core conftest.err conftest.$ac_objext \
64*c81f5875SBen Gras+    conftest$ac_exeext
65*c81f5875SBen Gras+  if test "${ac_cv_search_dlopen+set}" = set; then :
66*c81f5875SBen Gras+  break
67*c81f5875SBen Gras+fi
68*c81f5875SBen Gras+done
69*c81f5875SBen Gras+if test "${ac_cv_search_dlopen+set}" = set; then :
70*c81f5875SBen Gras+
71*c81f5875SBen Gras+else
72*c81f5875SBen Gras+  ac_cv_search_dlopen=no
73*c81f5875SBen Gras+fi
74*c81f5875SBen Gras+rm conftest.$ac_ext
75*c81f5875SBen Gras+LIBS=$ac_func_search_save_LIBS
76*c81f5875SBen Gras+fi
77*c81f5875SBen Gras+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
78*c81f5875SBen Gras+$as_echo "$ac_cv_search_dlopen" >&6; }
79*c81f5875SBen Gras+ac_res=$ac_cv_search_dlopen
80*c81f5875SBen Gras+if test "$ac_res" != no; then :
81*c81f5875SBen Gras+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
82*c81f5875SBen Gras+
83*c81f5875SBen Gras+fi
84*c81f5875SBen Gras+
85*c81f5875SBen Gras+case "$ac_cv_search_dlopen" in
86*c81f5875SBen Gras+  no*) DLOPEN_LIBS="";;
87*c81f5875SBen Gras+  *)   DLOPEN_LIBS="$ac_cv_search_dlopen";;
88*c81f5875SBen Gras+esac
89*c81f5875SBen Gras
90*c81f5875SBen Gras
91*c81f5875SBen Gras for ac_func in mallinfo posix_fallocate fallocate readv sysconf times
92*c81f5875SBen Grasdiff --git a/gold/configure.ac b/gold/configure.ac
93*c81f5875SBen Grasindex 82ad11e..9bc216b 100644
94*c81f5875SBen Gras--- a/gold/configure.ac
95*c81f5875SBen Gras+++ b/gold/configure.ac
96*c81f5875SBen Gras@@ -528,9 +528,14 @@ AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
97*c81f5875SBen Gras AC_CHECK_HEADERS(byteswap.h)
98*c81f5875SBen Gras
99*c81f5875SBen Gras dnl When plugins enabled dynamic loader interface is required. Check headers
100*c81f5875SBen Gras-dnl which may provide this interface. In case of dlfcn.h add libdl to link.
101*c81f5875SBen Gras+dnl which may provide this interface. Add the necessary library to link.
102*c81f5875SBen Gras AC_CHECK_HEADERS(windows.h)
103*c81f5875SBen Gras-AC_CHECK_HEADERS(dlfcn.h, [DLOPEN_LIBS="-ldl"], [DLOPEN_LIBS=""])
104*c81f5875SBen Gras+AC_CHECK_HEADERS(dlfcn.h)
105*c81f5875SBen Gras+AC_SEARCH_LIBS(dlopen, [dl dld])
106*c81f5875SBen Gras+case "$ac_cv_search_dlopen" in
107*c81f5875SBen Gras+  no*) DLOPEN_LIBS="";;
108*c81f5875SBen Gras+  *)   DLOPEN_LIBS="$ac_cv_search_dlopen";;
109*c81f5875SBen Gras+esac
110*c81f5875SBen Gras AC_SUBST(DLOPEN_LIBS)
111*c81f5875SBen Gras
112*c81f5875SBen Gras AC_CHECK_FUNCS(mallinfo posix_fallocate fallocate readv sysconf times)
113