summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2001-06-09 22:02:03 +0000
committerMarc Espie <espie@cvs.openbsd.org>2001-06-09 22:02:03 +0000
commit35ff643adcfa518df7d20f6af0ed0de270527aae (patch)
tree35f560cee8d30c07a9be26e5cd7fc6e8786c426b
parent7505d98a2942b2a8b18c6f32712802c839295c24 (diff)
Synch with binutils 2.10.1, add dyn-string to libiberty.
-rw-r--r--gnu/egcs/include/dyn-string.h92
-rw-r--r--gnu/egcs/libiberty/Makefile.bsd-wrapper4
-rw-r--r--gnu/egcs/libiberty/shlib_version2
3 files changed, 95 insertions, 3 deletions
diff --git a/gnu/egcs/include/dyn-string.h b/gnu/egcs/include/dyn-string.h
new file mode 100644
index 00000000000..67f7ab7d36e
--- /dev/null
+++ b/gnu/egcs/include/dyn-string.h
@@ -0,0 +1,92 @@
+/* An abstract string datatype.
+ Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+ Contributed by Mark Mitchell (mark@markmitchell.com).
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+
+typedef struct dyn_string
+{
+ int allocated; /* The amount of space allocated for the string. */
+ int length; /* The actual length of the string. */
+ char *s; /* The string itself, NUL-terminated. */
+}* dyn_string_t;
+
+/* The length STR, in bytes, not including the terminating NUL. */
+#define dyn_string_length(STR) \
+ ((STR)->length)
+
+/* The NTBS in which the contents of STR are stored. */
+#define dyn_string_buf(STR) \
+ ((STR)->s)
+
+/* Compare DS1 to DS2 with strcmp. */
+#define dyn_string_compare(DS1, DS2) \
+ (strcmp ((DS1)->s, (DS2)->s))
+
+
+/* dyn_string functions are used in the demangling implementation
+ included in the G++ runtime library. To prevent collisions with
+ names in user programs, the functions that are used in the
+ demangler are given implementation-reserved names. */
+
+#ifdef IN_LIBGCC2
+
+#define dyn_string_init __cxa_dyn_string_init
+#define dyn_string_new __cxa_dyn_string_new
+#define dyn_string_delete __cxa_dyn_string_delete
+#define dyn_string_release __cxa_dyn_string_release
+#define dyn_string_resize __cxa_dyn_string_resize
+#define dyn_string_clear __cxa_dyn_string_clear
+#define dyn_string_copy __cxa_dyn_string_copy
+#define dyn_string_copy_cstr __cxa_dyn_string_copy_cstr
+#define dyn_string_prepend __cxa_dyn_string_prepend
+#define dyn_string_prepend_cstr __cxa_dyn_string_prepend_cstr
+#define dyn_string_insert __cxa_dyn_string_insert
+#define dyn_string_insert_cstr __cxa_dyn_string_insert_cstr
+#define dyn_string_insert_char __cxa_dyn_string_insert_char
+#define dyn_string_append __cxa_dyn_string_append
+#define dyn_string_append_cstr __cxa_dyn_string_append_cstr
+#define dyn_string_append_char __cxa_dyn_string_append_char
+#define dyn_string_substring __cxa_dyn_string_substring
+#define dyn_string_eq __cxa_dyn_string_eq
+
+#endif /* IN_LIBGCC2 */
+
+
+extern int dyn_string_init PARAMS ((struct dyn_string *, int));
+extern dyn_string_t dyn_string_new PARAMS ((int));
+extern void dyn_string_delete PARAMS ((dyn_string_t));
+extern char *dyn_string_release PARAMS ((dyn_string_t));
+extern dyn_string_t dyn_string_resize PARAMS ((dyn_string_t, int));
+extern void dyn_string_clear PARAMS ((dyn_string_t));
+extern int dyn_string_copy PARAMS ((dyn_string_t, dyn_string_t));
+extern int dyn_string_copy_cstr PARAMS ((dyn_string_t, const char *));
+extern int dyn_string_prepend PARAMS ((dyn_string_t, dyn_string_t));
+extern int dyn_string_prepend_cstr PARAMS ((dyn_string_t, const char *));
+extern int dyn_string_insert PARAMS ((dyn_string_t, int,
+ dyn_string_t));
+extern int dyn_string_insert_cstr PARAMS ((dyn_string_t, int,
+ const char *));
+extern int dyn_string_insert_char PARAMS ((dyn_string_t, int, int));
+extern int dyn_string_append PARAMS ((dyn_string_t, dyn_string_t));
+extern int dyn_string_append_cstr PARAMS ((dyn_string_t, const char *));
+extern int dyn_string_append_char PARAMS ((dyn_string_t, int));
+extern int dyn_string_substring PARAMS ((dyn_string_t,
+ dyn_string_t, int, int));
+extern int dyn_string_eq PARAMS ((dyn_string_t, dyn_string_t));
diff --git a/gnu/egcs/libiberty/Makefile.bsd-wrapper b/gnu/egcs/libiberty/Makefile.bsd-wrapper
index 0bd0781bd74..9071d4fd4ca 100644
--- a/gnu/egcs/libiberty/Makefile.bsd-wrapper
+++ b/gnu/egcs/libiberty/Makefile.bsd-wrapper
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile.bsd-wrapper,v 1.8 2000/07/26 12:02:58 espie Exp $
+# $OpenBSD: Makefile.bsd-wrapper,v 1.9 2001/06/09 22:02:01 espie Exp $
LIB= iberty
CPPFLAGS+= -I$(.CURDIR) -I$(.CURDIR)/../include -I$(.OBJDIR)
@@ -16,7 +16,7 @@ PREREQ!= test ! -f $(.OBJDIR)/needed-list && \
HOST_FILES!= cat $(.OBJDIR)/needed-list
.endif
-SRCS= argv.c choose-temp.c concat.c cplus-dem.c \
+SRCS= argv.c choose-temp.c concat.c cplus-dem.c dyn-string.c \
fdmatch.c getopt.c getopt1.c getruntime.c hashtab.c hex.c \
floatformat.c objalloc.c obstack.c pexecute.c spaces.c \
splay-tree.c strerror.c strsignal.c xatexit.c xexit.c \
diff --git a/gnu/egcs/libiberty/shlib_version b/gnu/egcs/libiberty/shlib_version
index d9961ea9fef..890c57389b5 100644
--- a/gnu/egcs/libiberty/shlib_version
+++ b/gnu/egcs/libiberty/shlib_version
@@ -1,2 +1,2 @@
major=4
-minor=0
+minor=1