about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/alpha
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-05-12 12:22:17 +0000
committerUlrich Drepper <drepper@redhat.com>1998-05-12 12:22:17 +0000
commitee74a442e8b9403f02f7e933260625acf145ad08 (patch)
tree1500526c0bc3f8bee1bbd5a2914e37d58e5d8bdc /sysdeps/unix/sysv/linux/alpha
parentde7e6366d6de7b1c8f8409af669b2c1e83d7307b (diff)
downloadglibc-ee74a442e8b9403f02f7e933260625acf145ad08.tar.gz
glibc-ee74a442e8b9403f02f7e933260625acf145ad08.tar.xz
glibc-ee74a442e8b9403f02f7e933260625acf145ad08.zip
Update.
1998-05-12 12:15  Ulrich Drepper  <drepper@cygnus.com>

	* posix/glob.c: Move to ...
	* sysdeps/generic/glob.c: ...here.
	* posix/glob.h (glob_t): Use correct types for gl_pathc and gl_offs
	elements.
	* sysdeps/unix/sysv/linux/alpha/glob.c: New file.
	* sysdeps/unix/sysv/linux/alpha/oldglob.c: New file.
	* sysdeps/unix/sysv/linux/alpha/Dist: Add oldglob.c.
	* sysdeps/unix/sysv/linux/alpha/Makefile: Compile oldglob in posix
	subdir.
	* libc.map [GLIBC_2.1]: Add glob and globfree.

1998-05-12  Ulrich Drepper  <drepper@cygnus.com>

	* sunrpc/Makefile (generated): Restore old list.

1998-05-11  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* rt/Makefile (tests): Define only if we have a thread library.

	* nis/ypclnt.c: Add: #include <errno.h>.

1998-05-10 15:39  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* configure.in: Define and substitute RELEASE as well as
	VERSION.
	* config.make.in: Add RELEASE and VERSION to be substituted.
	* Makeconfig: Delete all references to version.mk.
	* Make-dist: Likewise.
	* MakeTAGS: Likewise.
	* elf/Makefile: Likewise.

1998-05-10  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* nis/ypclnt.c: Move "(none)" domainname check from __yp_check to
	yp_get_default_domain.

1998-05-12  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/posix/profil.c (__profil): Don't define act and timer
	variables as static.  Patch by Joe Keane <jgk@jgk.org>.

1998-05-12  Wolfram Gloger  <wmglo@dent.med.uni-muenchen.de>

	* malloc/malloc.c: Fix for NO_THREADS case.

	Remove statfs and fstatfs.
	and pwrite as EXTRA.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/glob.c30
-rw-r--r--sysdeps/unix/sysv/linux/alpha/oldglob.c94
4 files changed, 129 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/Dist b/sysdeps/unix/sysv/linux/alpha/Dist
index 6ced71e65d..d20860445c 100644
--- a/sysdeps/unix/sysv/linux/alpha/Dist
+++ b/sysdeps/unix/sysv/linux/alpha/Dist
@@ -10,6 +10,7 @@ kernel_sigaction.h
 kernel_stat.h
 kernel_termios.h
 net/route.h
+oldglob.c
 rt_sigaction.S
 sizes.h
 sys/acct.h
diff --git a/sysdeps/unix/sysv/linux/alpha/Makefile b/sysdeps/unix/sysv/linux/alpha/Makefile
index 15ba1c7316..fbbc56ecd3 100644
--- a/sysdeps/unix/sysv/linux/alpha/Makefile
+++ b/sysdeps/unix/sysv/linux/alpha/Makefile
@@ -1,3 +1,7 @@
+ifeq ($(subdir),posix)
+sysdep_routines += oldglob
+endif
+
 ifeq ($(subdir),misc)
 sysdep_headers += alpha/ptrace.h alpha/regdef.h
 
diff --git a/sysdeps/unix/sysv/linux/alpha/glob.c b/sysdeps/unix/sysv/linux/alpha/glob.c
new file mode 100644
index 0000000000..7bd516191d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/glob.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with this library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* For Linux/Alpha we have to make the glob symbols versioned.  */
+#define glob(pattern, flags, errfunc, pglob) \
+  __new_glob (pattern, flags, errfunc, pglob) \
+#define globfree(pglob) \
+  __new_globfree (pglob)
+
+#include_next <glob.c>
+
+#undef glob
+#undef globfree
+
+default_symbol_version(__new_glob, glob, GLIBC_2.1)
+default_symbol_version(__new_globfree, globfree, GLIBC_2.1)
diff --git a/sysdeps/unix/sysv/linux/alpha/oldglob.c b/sysdeps/unix/sysv/linux/alpha/oldglob.c
new file mode 100644
index 0000000000..97284ab3e9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/oldglob.c
@@ -0,0 +1,94 @@
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with this library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* This file contains only wrappers around the real glob functions.  It
+   became necessary since the glob_t structure changed.  */
+#include <glob.h>
+
+#if defined PIC && DO_VERSIONING
+
+/* This is the old structure.  The difference is that the gl_pathc and
+   gl_offs elements have type `int'.  */
+typedef struct
+  {
+    int gl_pathc;		/* Count of paths matched by the pattern.  */
+    char **gl_pathv;		/* List of matched pathnames.  */
+    int gl_offs;		/* Slots to reserve in `gl_pathv'.  */
+    int gl_flags;		/* Set to FLAGS, maybe | GLOB_MAGCHAR.  */
+
+    /* If the GLOB_ALTDIRFUNC flag is set, the following functions
+       are used instead of the normal file access functions.  */
+    void (*gl_closedir) __P ((void *));
+    struct dirent *(*gl_readdir) __P ((void *));
+    __ptr_t (*gl_opendir) __P ((__const char *));
+    int (*gl_lstat) __P ((__const char *, struct stat *));
+    int (*gl_stat) __P ((__const char *, struct stat *));
+  } old_glob_t;
+
+
+int
+__old_glob (const char *pattern, int flags,
+	    int (*errfunc) __P ((const char *, int)),
+	    old_glob_t *pglob)
+{
+  glob_t correct;
+  int result;
+
+  /* Construct an object of correct type.  */
+  correct.gl_pathc = pglob->gl_pathc;
+  correct.gl_pathv = pglob->gl_pathv;
+  correct.gl_offs = pglob->gl_offs;
+  correct.gl_flags = pglob->gl_flags;
+  correct.gl_closedir = pglob->gl_closedir;
+  correct.gl_readdir = pglob->gl_readdir;
+  correct.gl_opendir = pglob->gl_opendir;
+  correct.gl_lstat = pglob->gl_lstat;
+  correct.gl_stat = pglob->gl_stat;
+
+  result = glob (pattern, flags, errfunc, &correct);
+
+  /* And convert it back.  */
+  pglob->gl_pathc = correct.gl_pathc;
+  pglob->gl_pathv = correct.gl_pathv;
+  pglob->gl_offs = correct.gl_offs;
+  pglob->gl_flags = correct.gl_flags;
+  pglob->gl_closedir = correct.gl_closedir;
+  pglob->gl_readdir = correct.gl_readdir;
+  pglob->gl_opendir = correct.gl_opendir;
+  pglob->gl_lstat = correct.gl_lstat;
+  pglob->gl_stat = correct.gl_stat;
+
+  return result;
+}
+symbol_version(__old_glob, glob, GLIBC_2.0)
+
+
+/* Free storage allocated in PGLOB by a previous `glob' call.  */
+void
+__old_globfree (old_glob_t *pglob)
+{
+  glob_t correct;
+
+  /* We only need these two symbols.  */
+  correct.gl_pathc = pglob->gl_pathc;
+  correct.gl_pathv = pglob->gl_pathv;
+
+  globfree (&correct);
+}
+symbol_version(__old_globfree, globfree, GLIBC_2.0)
+
+#endif