libtool-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Libtool branch, master, updated. v2.2.4-39-ga05d258


From: Peter O'Gorman
Subject: [SCM] GNU Libtool branch, master, updated. v2.2.4-39-ga05d258
Date: Tue, 26 Aug 2008 17:50:20 +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 Libtool".

The branch, master has been updated
       via  a05d258b4c1c5acfee449e4ae305ac67bffd6f25 (commit)
       via  300fa580c49003080ae9c65a64821c790a44fac0 (commit)
      from  6c491fda98b074e37e6795a865014a46eb1f74f2 (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 a05d258b4c1c5acfee449e4ae305ac67bffd6f25
Author: Peter O'Gorman <address@hidden>
Date:   Tue Aug 26 12:42:53 2008 -0500

    Allow for extensions other than .a for preloaded modules.
    
    * libltdl/m4/ltdl.m4 (_LTDL_SETUP): Define LT_LIBEXT.
    * libltdl/ltdl.c (lt_dladvise_preload): Use it.
    Reported by Ralf Wildenhues.

commit 300fa580c49003080ae9c65a64821c790a44fac0
Author: Peter O'Gorman <address@hidden>
Date:   Tue Aug 26 12:41:25 2008 -0500

    Remove unnecessary global argz functions.
    
    * libltdl/argz.c (argz_add,argz_count): Remove.
    * libltdl/argz_.h (argz_add,argz_count): Remove.
    * NEWS: Announce it.
    * tests/ltdl-api.at: Test so we don't repeat it.
    * Makefile.am: Add new test.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                              |   17 +++++++++++++++++
 Makefile.am                            |    1 +
 NEWS                                   |    3 +++
 libltdl/argz.c                         |   28 ----------------------------
 libltdl/argz_.h                        |    3 ---
 libltdl/ltdl.c                         |   10 ++++++++--
 libltdl/m4/ltdl.m4                     |    2 ++
 tests/{cdemo-exec.test => ltdl-api.at} |   27 ++++++++++++++++-----------
 8 files changed, 47 insertions(+), 44 deletions(-)
 copy tests/{cdemo-exec.test => ltdl-api.at} (56%)
 mode change 100755 => 100644

diff --git a/ChangeLog b/ChangeLog
index 13cc2af..9a67fd5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2008-08-26  Peter O'Gorman  <address@hidden>
+
+       Allow for extensions other than .a for preloaded modules.
+       * libltdl/m4/ltdl.m4 (_LTDL_SETUP): Define LT_LIBEXT.
+       * libltdl/ltdl.c (lt_dladvise_preload): Use it.
+       Reported by Ralf Wildenhues.
+
+2008-08-26  Peter O'Gorman  <address@hidden>,
+           Ralf Wildenhues  <address@hidden>
+
+       Remove unnecessary global argz functions.
+       * libltdl/argz.c (argz_add,argz_count): Remove.
+       * libltdl/argz_.h (argz_add,argz_count): Remove.
+       * NEWS: Announce it.
+       * tests/ltdl-api.at: Test so we don't repeat it.
+       * Makefile.am: Add new test.
+
 2008-08-22  Ralf Wildenhues  <address@hidden>
 
        Initial support for Lahey Fortran on GNU/Linux.
diff --git a/Makefile.am b/Makefile.am
index 0085c7f..1417e84 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -454,6 +454,7 @@ TESTSUITE_AT        = tests/testsuite.at \
                  tests/am-subdir.at \
                  tests/lt_dlexit.at \
                  tests/lt_dladvise.at \
+                 tests/ltdl-api.at \
                  tests/need_lib_prefix.at \
                  tests/standalone.at \
                  tests/subproject.at \
diff --git a/NEWS b/NEWS
index e0d1062..c85f741 100644
--- a/NEWS
+++ b/NEWS
@@ -21,6 +21,9 @@ New in 2.2.??: 2008-08-??: git version 2.2.5a, Libtool team:
 
   - Several testsuite issues have been fixed, thanks to user feedback.
 
+  - Fix 2.2 regression that caused argz symbols to be exported from
+    libltdl unrenamed on systems that do not have working argz.
+
 New in 2.2.4: 2008-05-04: git version 2.2.3a, Libtool team:
 
 * New features:
diff --git a/libltdl/argz.c b/libltdl/argz.c
index f31ce17..8567723 100644
--- a/libltdl/argz.c
+++ b/libltdl/argz.c
@@ -76,14 +76,6 @@ argz_append (char **pargz, size_t *pargz_len, const char 
*buf, size_t buf_len)
 }
 
 
-/* Add a string to the argz vector.  */
-error_t
-argz_add (char **pargz, size_t *pargz_len, const char *str)
-{
-  return argz_append (pargz, pargz_len, str, strlen (str) + 1);
-}
-
-
 error_t
 argz_create_sep (const char *str, int delim, char **pargz, size_t *pargz_len)
 {
@@ -232,23 +224,3 @@ argz_stringify (char *argz, size_t argz_len, int sep)
     }
 }
 
-
-/* Count number of elements (null bytes) in argz vector.  */
-
-size_t
-argz_count (const char *argz, size_t argz_len)
-{
-  size_t count = 0;
-
-  assert ((argz && argz_len) || (!argz && !argz_len));
-
-  while (argz_len > 0)
-    {
-      size_t part_len = strlen (argz);
-      argz += part_len + 1;
-      argz_len -= part_len + 1;
-      count++;
-    }
-
-  return count;
-}
diff --git a/libltdl/argz_.h b/libltdl/argz_.h
index 40d5176..0557575 100644
--- a/libltdl/argz_.h
+++ b/libltdl/argz_.h
@@ -49,8 +49,6 @@ extern "C" {
 
 LT_SCOPE error_t argz_append   (char **pargz, size_t *pargz_len,
                                 const char *buf, size_t buf_len);
-LT_SCOPE error_t argz_add       (char **pargz, size_t *pargz_len,
-                                 const char *str);
 LT_SCOPE error_t argz_create_sep(const char *str, int delim,
                                 char **pargz, size_t *pargz_len);
 LT_SCOPE error_t argz_insert   (char **pargz, size_t *pargz_len,
@@ -58,7 +56,6 @@ LT_SCOPE error_t argz_insert  (char **pargz, size_t 
*pargz_len,
 LT_SCOPE char *         argz_next      (char *argz, size_t argz_len,
                                 const char *entry);
 LT_SCOPE void   argz_stringify (char *argz, size_t argz_len, int sep);
-LT_SCOPE size_t  argz_count     (const char *argz, size_t argz_len);
 
 #if defined(__cplusplus)
 }
diff --git a/libltdl/ltdl.c b/libltdl/ltdl.c
index 5a26565..6e19599 100644
--- a/libltdl/ltdl.c
+++ b/libltdl/ltdl.c
@@ -50,6 +50,10 @@ or obtained by writing to the Free Software Foundation, Inc.,
 #  define LT_FILENAME_MAX      1024
 #endif
 
+#if !defined(LT_LIBEXT)
+#  define LT_LIBEXT "a"
+#endif
+
 /* This is the maximum symbol size that won't require malloc/free */
 #undef LT_SYMBOL_LENGTH
 #define LT_SYMBOL_LENGTH       128
@@ -67,6 +71,7 @@ or obtained by writing to the Free Software Foundation, Inc.,
 
 static const char      objdir[]                = LT_OBJDIR;
 static const char      archive_ext[]           = LT_ARCHIVE_EXT;
+static  const char     libext[]                = LT_LIBEXT;
 #if defined(LT_MODULE_EXT)
 static const char      shlib_ext[]             = LT_MODULE_EXT;
 #endif
@@ -1258,7 +1263,8 @@ try_dlopen (lt_dlhandle *phandle, const char *filename, 
const char *ext,
 
       if (vtable)
        {
-         archive_name = MALLOC (char, LT_STRLEN (name) + 3);
+         /* name + "." + libext + NULL */
+         archive_name = MALLOC (char, LT_STRLEN (name) + LT_STRLEN (libext) + 
2);
          *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle));
 
          if ((*phandle == NULL) || (archive_name == NULL))
@@ -1270,7 +1276,7 @@ try_dlopen (lt_dlhandle *phandle, const char *filename, 
const char *ext,
 
          /* Preloaded modules are always named according to their old
             archive name.  */
-         sprintf (archive_name, "%s.a", name);
+         sprintf (archive_name, "%s.%s", name, libext);
 
          if (tryall_dlopen (&newhandle, archive_name, advise, vtable) == 0)
            {
diff --git a/libltdl/m4/ltdl.m4 b/libltdl/m4/ltdl.m4
index 563889e..bac721e 100644
--- a/libltdl/m4/ltdl.m4
+++ b/libltdl/m4/ltdl.m4
@@ -413,6 +413,8 @@ AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h 
mach-o/dyld.h dirent.h],
 AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])])
 AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])])
 
+AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension])
+
 name=ltdl
 LTDLOPEN=`eval "\\$ECHO \"$libname_spec\""`
 AC_SUBST([LTDLOPEN])
diff --git a/tests/cdemo-exec.test b/tests/ltdl-api.at
old mode 100755
new mode 100644
similarity index 56%
copy from tests/cdemo-exec.test
copy to tests/ltdl-api.at
index dce62f2..465a513
--- a/tests/cdemo-exec.test
+++ b/tests/ltdl-api.at
@@ -1,8 +1,7 @@
-#! /bin/sh
-# cdemo-exec.test - check that programs in the cdemo subdirectory are viable
+# ltdl-api.at -- test libltdl API                -*- Autotest -*-
 #
-#   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-#   Written by Gary V. Vaughan, 2003
+#   Copyright (C) 2008 Free Software Foundation, Inc.
+#   Written by Ralf Wildenhues, 2008.
 #
 #   This file is part of GNU Libtool.
 #
@@ -23,12 +22,18 @@
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 ####
 
-. tests/defs || exit 1
+AT_SETUP([ltdl API])
+AT_KEYWORDS([libltdl])
 
-func_require "cdemo-make" "tests/cdemo/cdemo$EXEEXT"
+# Ensure that no symbols from argz are unrenamed.
+eval `$LIBTOOL --config | $EGREP '^(NM|global_symbol_pipe|objext)='`
+argz_o=$abs_top_builddir/libltdl/argz.$objext
+AT_CHECK([test -f "$argz_o" || exit 77])
+AT_CHECK([eval "$NM \"\$argz_o\" | $global_symbol_pipe"],
+        [], [stdout], [ignore])
+# Check for global symbols beginning with "argz_"
+AT_CHECK([grep "^T argz_" stdout], [1])
+# and also for the _ prefixed version "_argz_"
+AT_CHECK([grep "^T _argz_" stdout], [1])
 
-func_rmprefixdir
-func_exec_init "uninstalled"
-func_exec "tests/cdemo/cdemo$EXEEXT"
-
-exit $exec_status
+AT_CLEANUP


hooks/post-receive
--
GNU Libtool




reply via email to

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