[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU M4 source repository branch, master, updated. cvs-readonly-339
From: |
Gary V. Vaughan |
Subject: |
[SCM] GNU M4 source repository branch, master, updated. cvs-readonly-339-g3834539 |
Date: |
Wed, 26 Nov 2014 15:51:34 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU M4 source repository".
http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=3834539812ee0415494f2bfd1aa1d67745b1b293
The branch, master has been updated
via 3834539812ee0415494f2bfd1aa1d67745b1b293 (commit)
from f70f0564a3a3a0c7c4590107e1a4107465efabb9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3834539812ee0415494f2bfd1aa1d67745b1b293
Author: Gary V. Vaughan <address@hidden>
Date: Wed Nov 26 15:10:06 2014 +0000
configury: does dlsym require leading symbol name underscore?
* m4/module.c (uscore_sym): Change NEED_USCORE guarde to
LDSYM_USCORE.
* configure.ac: Move compiler characteristics checks above libtool
initialization section.
(Dynamic Loader Characteristics): Determine whether dlsym requires
a leading symbol name underscore, without requiring that self
dlopening works like LT_FUNC_DLSYM_USCORE macro does.
Reported by KO Myung-Hun
Signed-off-by: Gary V. Vaughan <address@hidden>
-----------------------------------------------------------------------
Summary of changes:
configure.ac | 127 ++++++++++++++++++++++++++++++++++++++++++++++++---------
m4/module.c | 2 +-
2 files changed, 108 insertions(+), 21 deletions(-)
diff --git a/configure.ac b/configure.ac
index 35cd37d..8981e10 100644
--- a/configure.ac
+++ b/configure.ac
@@ -78,6 +78,16 @@ AM_PROG_CC_C_O
M4_CHECK_DEBUGGING
+## --------------------------- ##
+## C compiler characteristics. ##
+## --------------------------- ##
+AC_TYPE_SIZE_T
+AC_CHECK_SIZEOF([long long int])
+
+AS_CASE([$host], [*-*-os2*], [OS2_LDFLAGS=-Zargs-resp])
+AC_SUBST([OS2_LDFLAGS])
+
+
## ----------------------- ##
## Libtool initialization. ##
## ----------------------- ##
@@ -166,6 +176,103 @@ esac
## ------------------------------- ##
+## Dynamic Loader Characteristics. ##
+## ------------------------------- ##
+
+LT_LIB_DLLOAD
+LT_SYS_SYMBOL_USCORE
+
+if test yes = "$sys_symbol_underscore"; then
+ AC_MSG_CHECKING([whether dlsym requires underscore prefixed symbols])
+ AC_CACHE_VAL([mfour_cv_sys_dlsym_uscore], [dnl
+ # Use Libtool to make a loadable module
+ cat >conftest_loadme.$ac_ext <<_M4_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) ||
(__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+int fnord () { return 42; }]
+_M4_EOF
+ save_module=$module; module=yes
+ mfour_shrext=`eval printf '%s' \"$shrext_cmds\"`
+ module=$save_module
+
+ libobjs=conftest_loadme.$ac_objext; lib=conftest_loadme$mfour_shrext
+ save_module_cmds=$module_cmds; module_cmds=`eval echo $module_cmds`
+ test -n "$module_cmds" || module_cmds=`eval echo $archive_cmds`
+ $CC $pic_flag -c conftest_loadme.$ac_ext
+ eval "wl=\"$lt_prog_compiler_wl\"; major=; versuffix=; verstring=;
deplibs=; \
+ rpath=/not-exists/conftest_loadme$mfour_shrext; $module_cmds"
+ module_cmds=$save_module_cmds
+
+ # Try to fetch fnord with dlsym().
+ mfour_dlunknown=0; mfour_dlnouscore=1; mfour_dluscore=2
+ cat >conftest.$ac_ext <<_M4_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+#include <stdio.h>
+#ifndef RTLD_GLOBAL
+# ifdef DL_GLOBAL
+# define RTLD_GLOBAL DL_GLOBAL
+# else
+# define RTLD_GLOBAL 0
+# endif
+#endif
+#ifndef RTLD_NOW
+# ifdef DL_NOW
+# define RTLD_NOW DL_NOW
+# else
+# define RTLD_NOW 0
+# endif
+#endif
+int main () {
+ void *handle = dlopen ("`pwd`/$objdir/conftest_loadme$mfour_shrext",
RTLD_GLOBAL|RTLD_NOW);
+ int status = $mfour_dlunknown;
+ if (handle) {
+ if (dlsym (handle, "fnord"))
+ status = $mfour_dlnouscore;
+ else {
+ if (dlsym (handle, "_fnord"))
+ status = $mfour_dluscore;
+ else
+ puts (dlerror ());
+ }
+ dlclose (handle);
+ } else
+ puts (dlerror ());
+ return status;
+}]
+_M4_EOF
+ if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+ mfour_status=$?
+ case x$mfour_status in
+ x$mfour_dlnouscore) mfour_cv_sys_dlsym_uscore=no ;;
+ x$mfour_dluscore) mfour_cv_sys_dlsym_uscore=yes ;;
+ x*) mfour_cv_sys_dlsym_uscore=unknown ;;
+ esac
+ fi
+ rm -rf conftest*
+ ])
+ sys_dlsym_uscore=$mfour_cv_sys_dlsym_uscore
+ AC_MSG_RESULT($sys_dlsym_uscore)
+ if test yes = "$sys_dlsym_uscore"; then
+ AC_DEFINE([DLSYM_USCORE], [1],
+ [Define if dlsym() requires a leading underscore in symbol names.])
+ fi
+fi
+
+AC_DEFINE_UNQUOTED([PATH_SEPARATOR], ['$PATH_SEPARATOR'],
+ [Define this to system search path delimiter])
+
+
+## ------------------------------- ##
## Preloaded module configuration. ##
## ------------------------------- ##
AS_IF([test "x$enable_shared" != xno],
@@ -205,16 +312,6 @@ AC_SUBST([DLPREOPEN])
AC_SUBST([PREOPEN_DEPENDENCIES])
-## ------------------------------- ##
-## Dynamic Loader Characteristics. ##
-## ------------------------------- ##
-
-LT_LIB_DLLOAD
-LT_FUNC_DLSYM_USCORE
-AC_DEFINE_UNQUOTED([PATH_SEPARATOR], ['$PATH_SEPARATOR'],
- [Define this to system search path delimiter])
-
-
## ---------------- ##
## Gettext support. ##
## ---------------- ##
@@ -239,16 +336,6 @@ M4_REGEX
M4_RENAME
-## --------------------------- ##
-## C compiler characteristics. ##
-## --------------------------- ##
-AC_TYPE_SIZE_T
-AC_CHECK_SIZEOF([long long int])
-
-AS_CASE([$host], [*-*-os2*], [OS2_LDFLAGS=-Zargs-resp])
-AC_SUBST([OS2_LDFLAGS])
-
-
## ------------------------- ##
## C headers required by M4. ##
## ------------------------- ##
diff --git a/m4/module.c b/m4/module.c
index 838c5f9..022ff2e 100644
--- a/m4/module.c
+++ b/m4/module.c
@@ -67,7 +67,7 @@
#define MODULE_SELF_NAME "!myself!"
-#if NEED_USCORE
+#if DLSYM_USCORE
static void *
uscore_sym (void *handle, const char *symbol)
{
hooks/post-receive
--
GNU M4 source repository
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU M4 source repository branch, master, updated. cvs-readonly-339-g3834539,
Gary V. Vaughan <=