2004-04-13 Gary V. Vaughan <gary@gnu.org>
+ * libltdl/lt__pre89.h, libltdl/memcpy.c, libltdl/memmove.c,
+ libltdl/strchr.c, libltdl/strcmp.c, libltdl/strrchr.c: Remove
+ half-assed pre-c89 support entirely.
+ * libltdl/lt__private.h: Don't refer to lt__pre89.h.
+ * libltdl/Makefile.am (ltdldata_DATA): Remove references to
+ deleted files.
+ * NEWS: Mention it.
+
* libltdl/lt__pre89.h, libltdl/ltdl.c, libltdl/ltdl.h, libltdl/argz.c,
libltdl/argz.h, libltdl/lt__glibc.h, libltdl/lt_dlloader.h,
libltdl/lt__dirent.c, libltdl/lt__dirent.h, libltdl/lt__private.h,
up the stack; it is also not recommended practice.
* libltdl no longer uses lt_dlmalloc, lt_dlrealloc and lt_dlfree. The symbols
are still exported for backwards compatibility.
+* libltdl no longer supports pre-c89 compilers. Some of the pre89 portability
+ functions had compile time bugs in them anyway, so you guys can't have been
+ using it :-)
* make install now deletes preexisting $prefix/share/libtool before installing
latest files.
* Extracting symbols from an import library on cygwin and win32 now works.
loader-preopen.c \
lt_error.h lt_error.c lt_mutex.h lt_mutex.c \
lt__private.h lt__alloc.h lt__alloc.c \
- lt__pre89.h lt__glibc.h argz.h lt__dirent.h \
+ lt__glibc.h argz.h lt__dirent.h \
lt_system.h
libltdl_la_LDFLAGS = -no-undefined -version-info 5:0:2
libltdl_la_LIBADD = $(LIBADD_DL) $(LTLIBOBJS)
## These are installed as a subdirectory of pkgdatadir so that
## libtoolize --ltdl can find them later:
ltdldatadir = $(pkgdatadir)/libltdl
-ltdldata_DATA = COPYING.LIB Makefile.am README $(libltdl_la_SOURCES) \
- memcpy.c memmove.c strchr.c strcmp.c strrchr.c
+ltdldata_DATA = COPYING.LIB Makefile.am README $(libltdl_la_SOURCES)
# endif /* !RTLD_LAZY */
#endif
#if !defined(LT_LAZY_OR_NOW)
-# ifd efined(RTLD_NOW)
+# if defined(RTLD_NOW)
# define LT_LAZY_OR_NOW RTLD_NOW
# else
# if defined(DL_NOW)
+++ /dev/null
-/* lt__pre89.h -- support for pre-c89 libc implementations
- Copyright (C) 2004 Free Software Foundation, Inc.
- Originally by Gary V. Vaughan <gary@gnu.org>
-
- NOTE: The canonical source of this file is maintained with the
- GNU Libtool package. Report bugs to bug-libtool@gnu.org.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-As a special exception to the GNU Lesser General Public License,
-if you distribute this file as part of a program or library that
-is built using GNU libtool, you may include it under the same
-distribution terms that you use for the rest of that program.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA
-
-*/
-
-#if !defined(LT__PREC89_H)
-#define LT__PREC89_H 1
-
-#if defined(HAVE_CONFIG_H)
-# include HAVE_CONFIG_H
-#endif
-
-#include "lt_system.h"
-
-LT_BEGIN_C_DECLS
-
-#if !defined(HAVE_STRCMP)
-# undef strcmp
-# define strcmp lt__strcmp
-int strcmp (const char *str1, const char *str2);
-#endif
-
-#if !defined(HAVE_STRCHR)
-# if defined(HAVE_INDEX)
-# define strchr index
-# else
-# undef strchr
-# define strchr lt__strchr
-const char *strchr (const char *str, int ch);
-# endif
-#endif
-
-#if !defined(HAVE_STRRCHR)
-# if defined(HAVE_RINDEX)
-# define strrchr rindex
-# else
-# undef strcmp
-# define strcmp lt__strcmp
-const char *strrchr (const char *str, int ch);
-# endif
-#endif
-
-#if !defined(HAVE_MEMCPY)
-# if defined(HAVE_BCOPY)
-# define memcpy(dest, src, size) bcopy((src), (dest), (size))
-# else
-# undef memcpy
-# define memcpy lt__memcpy
-void *memcpy (void *dest, const void *src, size_t size);
-# endif
-#endif
-
-#if !defined(HAVE_MEMMOVE)
-# undef memmove
-# define memmove lt__memmove
-void *memmove (void *dest, const void *src, size_t size);
-#endif
-
-LT_END_C_DECLS
-
-#endif /*!defined(LT__PREC89)*/
#include "lt__alloc.h"
#include "lt__dirent.h"
#include "lt__glibc.h"
-#include "lt__pre89.h"
/* ...and all exported interfaces. */
#include "ltdl.h"
+++ /dev/null
-/* memcpy.c -- copy a block of memory for pre-c89 libc
- Copyright (C) 2004 Free Software Foundation, Inc.
- Originally by Gary V. Vaughan <gary@gnu.org>
-
- NOTE: The canonical source of this file is maintained with the
- GNU Libtool package. Report bugs to bug-libtool@gnu.org.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-As a special exception to the GNU Lesser General Public License,
-if you distribute this file as part of a program or library that
-is built using GNU libtool, you may include it under the same
-distribution terms that you use for the rest of that program.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA
-
-*/
-
-#include "lt__pre89.h"
-
-#include <stddef.h>
-#include <sys/types.h>
-
-/* NOTE: memcpy does not reliably handle copying in overlapping areas
- of memory. Use memmove if you need that behaviour. */
-
-void *
-memcpy (void *dest, const void *src, size_t size)
-{
- char *d = dest;
- const char *s = src;
-
- while (size-- > 0)
- {
- *d++ = *s++;
- }
-
- return dest;
-}
+++ /dev/null
-/* memmove.c -- move to a possibly overlapping block of memory for pre-c89 libc
- Copyright (C) 2004 Free Software Foundation, Inc.
- Originally by Gary V. Vaughan <gary@gnu.org>
-
- NOTE: The canonical source of this file is maintained with the
- GNU Libtool package. Report bugs to bug-libtool@gnu.org.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-As a special exception to the GNU Lesser General Public License,
-if you distribute this file as part of a program or library that
-is built using GNU libtool, you may include it under the same
-distribution terms that you use for the rest of that program.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA
-
-*/
-
-#include "lt__pre89.h"
-
-#include <stddef.h>
-#include <sys/types.h>
-
-void *
-memmove (void * dest, void * src, size_t size)
-{
- char *d = dest;
- char *s = src;
- size_t i;
-
- if (dest < src)
- while (size-- > 0)
- {
- *d++ = *s++;
- }
- else if (dest > src)
- {
- d += size;
- s += size;
- while (size-- > 0)
- {
- *--d = *--s;
- }
- }
-
- return dest;
-}
+++ /dev/null
-/* strchr.c -- scan for a char in a string for pre-c89 libc
- Copyright (C) 2004 Free Software Foundation, Inc.
- Originally by Gary V. Vaughan <gary@gnu.org>
-
- NOTE: The canonical source of this file is maintained with the
- GNU Libtool package. Report bugs to bug-libtool@gnu.org.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-As a special exception to the GNU Lesser General Public License,
-if you distribute this file as part of a program or library that
-is built using GNU libtool, you may include it under the same
-distribution terms that you use for the rest of that program.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA
-
-*/
-
-#include "lt__pre89.h"
-
-const char *
-strchr (const char *str, int ch)
-{
- const char *p;
-
- for (p = str; *p != (char)ch && *p != '\0'; ++p)
- /*NOWORK*/;
-
- return (*p == (char)ch) ? p : 0;
-}
+++ /dev/null
-/* strcmp.c -- compare strings for pre-c89 libc
- Copyright (C) 2004 Free Software Foundation, Inc.
- Originally by Gary V. Vaughan <gary@gnu.org>
-
- NOTE: The canonical source of this file is maintained with the
- GNU Libtool package. Report bugs to bug-libtool@gnu.org.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-As a special exception to the GNU Lesser General Public License,
-if you distribute this file as part of a program or library that
-is built using GNU libtool, you may include it under the same
-distribution terms that you use for the rest of that program.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA
-
-*/
-
-#include "lt__pre89.h"
-
-int
-strcmp (const char *str1, const char *str2)
-{
- if (str1 == str2)
- return 0;
- if (str1 == 0)
- return -1;
- if (str2 == 0)
- return 1;
-
- for (;*str1 && *str2; ++str1, ++str2)
- {
- if (*str1 != *str2)
- break;
- }
-
- return (int)(*str1 - *str2);
-}
+++ /dev/null
-/* strrchr.c -- reverse scan for a char in a string for pre-c89 libc
- Copyright (C) 2004 Free Software Foundation, Inc.
- Originally by Gary V. Vaughan <gary@gnu.org>
-
- NOTE: The canonical source of this file is maintained with the
- GNU Libtool package. Report bugs to bug-libtool@gnu.org.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-As a special exception to the GNU Lesser General Public License,
-if you distribute this file as part of a program or library that
-is built using GNU libtool, you may include it under the same
-distribution terms that you use for the rest of that program.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA
-
-*/
-
-#include "lt__pre89.h"
-
-const char *
-strrchr (const char *str, int ch)
-{
- const char *p, *q = 0;
-
- for (p = str; *p != '\0'; ++p)
- {
- if (*p == (char) ch)
- {
- q = p;
- }
- }
-
- return q;
-}
[], [], [AC_INCLUDES_DEFAULT])
AC_CHECK_HEADERS([string.h strings.h], [break], [], [AC_INCLUDES_DEFAULT])
-AC_FOREACH([LTDL_Func], [strchr index strrchr rindex memcpy bcopy],
- [AH_TEMPLATE(AS_TR_CPP(HAVE_[]LTDL_Func),
- [Define to 1 if you have the `]LTDL_Func[' function.])])
-
-AC_CHECK_FUNC([strchr], [AC_DEFINE([HAVE_STRCHR])],
- [AC_CHECK_FUNC([index], [AC_DEFINE([HAVE_INDEX])],
- [AC_LIBOBJ([strchr])])])
-
-AC_CHECK_FUNC([strrchr], [AC_DEFINE([HAVE_STRRCHR])],
- [AC_CHECK_FUNC([rindex], [AC_DEFINE([HAVE_RINDEX])],
- [AC_LIBOBJ([strrchr])])])
-
-AC_CHECK_FUNC([memcpy], [AC_DEFINE([HAVE_MEMCPY])],
- [AC_CHECK_FUNC([bcopy], [AC_DEFINE([HAVE_BCOPY])],
- [AC_LIBOBJ([memcpy])])])
-
AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])])
AC_REPLACE_FUNCS([memmove strcmp])