]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* libltdl/ltdl.c (lt_argz_insert): Work around newlib
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Wed, 14 Sep 2005 16:03:35 +0000 (16:03 +0000)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Wed, 14 Sep 2005 16:03:35 +0000 (16:03 +0000)
argz_insert bug.
* Makefile.am (VERSION_INFO): Bumped revision.
Reported by Eric Blake <ebb9@byu.net>.

ChangeLog
Makefile.am
libltdl/ltdl.c

index 454bd172ed97dc1c9f4fd977a0c2d59cca5665b2..77409e68cc64f2f5c79d471cbf4b5fddadf404a5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-09-14  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+       * libltdl/ltdl.c (lt_argz_insert): Work around newlib
+       argz_insert bug.
+       * Makefile.am (VERSION_INFO): Bumped revision.
+       Reported by Eric Blake <ebb9@byu.net>.
+
 2005-09-13  Peter Ekberg  <peda@lysator.liu.se>,
            Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
 
index b51e71b874c731e634b4e50a5ee11404d47f6add..86f6a61fddbe5a686ce04f8152be69b63e9e2c96 100644 (file)
@@ -230,7 +230,7 @@ DEFS                        = -DHAVE_CONFIG_H="<$(CONFIG_H)>" -DLTDL
 AM_CPPFLAGS            = -I. -I$(srcdir) -Ilibltdl -I$(srcdir)/libltdl \
                          -I$(srcdir)/libltdl/libltdl
 AM_LDFLAGS             = -no-undefined
-VERSION_INFO           = -version-info 6:0:0
+VERSION_INFO           = -version-info 6:1:0
 
 noinst_LTLIBRARIES     = $(LT_DLLOADERS)
 
index 22c5fc083d827afe50cbe73e5365fb4fd0458ae3..1692561c894dcadbdf0605d9b6cc08e548f2bf70 100644 (file)
@@ -1,5 +1,5 @@
 /* ltdl.c -- system independent dlopen wrapper
-   Copyright (C) 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2004, 2005 Free Software Foundation, Inc.
    Originally by Thomas Tanner <tanner@ffii.org>
 
    NOTE: The canonical source of this file is maintained with the
@@ -1445,7 +1445,14 @@ lt_argz_insert (char **pargz, size_t *pargz_len, char *before,
 {
   error_t error;
 
-  if ((error = argz_insert (pargz, pargz_len, before, entry)))
+  /* Prior to Sep 8, 2005, newlib had a bug where argz_insert(pargz,
+     pargz_len, NULL, entry) failed with EINVAL.  */
+  if (before) 
+    error = argz_insert (pargz, pargz_len, before, entry);
+  else
+    error = argz_append (pargz, pargz_len, entry, 1 + strlen (entry));
+
+  if (error)
     {
       switch (error)
        {