From: Ralf Wildenhues Date: Wed, 14 Sep 2005 16:08:13 +0000 (+0000) Subject: * libltdl/ltdl.c (lt_argz_insert): Work around newlib X-Git-Tag: release-1-5-22~71 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1a93b47c70a5db00831648993efdf320f826e906;p=thirdparty%2Flibtool.git * libltdl/ltdl.c (lt_argz_insert): Work around newlib argz_insert bug. * libltdl/Makefile.am (libltdl_la_LDFLAGS): Bumped revision. Reported by Eric Blake . --- diff --git a/ChangeLog b/ChangeLog index 8d34f6ceb..e7429c29d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-09-14 Ralf Wildenhues + + * libltdl/ltdl.c (lt_argz_insert): Work around newlib + argz_insert bug. + * libltdl/Makefile.am (libltdl_la_LDFLAGS): Bumped revision. + Reported by Eric Blake . + 2005-09-09 Ralf Wildenhues * libtool.m4 (_LT_COMPILER_BOILERPLATE, _LT_LINKER_BOILERPLATE) diff --git a/libltdl/Makefile.am b/libltdl/Makefile.am index 14e8eebe9..8baa96f5d 100644 --- a/libltdl/Makefile.am +++ b/libltdl/Makefile.am @@ -18,7 +18,7 @@ endif CLEANFILES = libltdl.la libltdlc.la libltdl_la_SOURCES = ltdl.c -libltdl_la_LDFLAGS = -no-undefined -version-info 4:2:1 +libltdl_la_LDFLAGS = -no-undefined -version-info 4:3:1 libltdl_la_LIBADD = $(LIBADD_DL) libltdlc_la_SOURCES = ltdl.c diff --git a/libltdl/ltdl.c b/libltdl/ltdl.c index b1a0e38ae..bc27b3656 100644 --- a/libltdl/ltdl.c +++ b/libltdl/ltdl.c @@ -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 This file is part of GNU Libtool. @@ -3552,7 +3552,14 @@ lt_argz_insert (pargz, pargz_len, before, entry) { 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 + LT_STRLEN (entry)); + + if (error) { switch (error) {