m4-commit
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]