aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog19
-rw-r--r--include/libc-symbols.h4
-rw-r--r--sysdeps/unix/opendir.c12
-rw-r--r--sysdeps/unix/sysv/aix/Makefile2
-rw-r--r--sysdeps/unix/sysv/aix/restf.S58
-rw-r--r--sysdeps/unix/sysv/aix/savef.S58
6 files changed, 148 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 0d73c771f2..9153b726b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2000-12-05 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/aix/Makefile [$(subdir)==misc]
+ (sysdep_routines): Add restf and savef.
+ * sysdeps/unix/sysv/aix/restf.c: New file.
+ * sysdeps/unix/sysv/aix/savef.c: New file.
+ Patches by Michael Keezer <mkeezer@redhat.com>.
+
+ * sysdeps/unix/opendir.c (__opendir): Don't use o_directory_works
+ if O_DIRECTORY is not defined.
+ Patch by Michael Keezer <mkeezer@redhat.com>.
+
+ * include/libc-symbols.h (C_SYMBOL_DOT_NAME): Define.
+ Patch by Michael Keezer <mkeezer@redhat.com>.
+
+ * locale/programs/linereader.c (get_toplvl_escape): Recognize more
+ than 4 bytes in escape sequence.
+ Patch by Shinya Hanataka <hanataka@abyss.rim.or.jp>.
+
2000-12-05 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set): Don't
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 06d5602f7d..6cac04b91a 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -80,6 +80,10 @@
# define ASM_LINE_SEP ;
#endif
+#ifndef C_SYMBOL_DOT_NAME
+# define C_SYMBOL_DOT_NAME(name) .##name
+#endif
+
#ifndef __ASSEMBLER__
/* GCC understands weak symbols and aliases; use its interface where
possible, instead of embedded assembly language. */
diff --git a/sysdeps/unix/opendir.c b/sysdeps/unix/opendir.c
index 461f82bc97..927caab70f 100644
--- a/sysdeps/unix/opendir.c
+++ b/sysdeps/unix/opendir.c
@@ -120,11 +120,15 @@ __opendir (const char *name)
O_DIRECTORY flag is honored by the kernel. */
if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &statbuf), 0) < 0)
goto lose;
- if (o_directory_works <= 0
- && __builtin_expect (! S_ISDIR (statbuf.st_mode), 0))
+#ifdef O_DIRECTORY
+ if (o_directory_works <= 0)
+#endif
{
- save_errno = ENOTDIR;
- goto lose;
+ if (__builtin_expect (! S_ISDIR (statbuf.st_mode), 0))
+ {
+ save_errno = ENOTDIR;
+ goto lose;
+ }
}
if (__builtin_expect (__fcntl (fd, F_SETFD, FD_CLOEXEC), 0) < 0)
diff --git a/sysdeps/unix/sysv/aix/Makefile b/sysdeps/unix/sysv/aix/Makefile
index b49b56267e..cb8683bee5 100644
--- a/sysdeps/unix/sysv/aix/Makefile
+++ b/sysdeps/unix/sysv/aix/Makefile
@@ -6,7 +6,7 @@
static-start-installed-name = /usr/lib/crt0.o
ifeq ($(subdir),misc)
-sysdep_routines += dl-open dl-sym dl-close
+sysdep_routines += dl-open dl-sym dl-close restf savef
endif
ifeq ($(subdir),login)
diff --git a/sysdeps/unix/sysv/aix/restf.S b/sysdeps/unix/sysv/aix/restf.S
new file mode 100644
index 0000000000..049627e5c4
--- /dev/null
+++ b/sysdeps/unix/sysv/aix/restf.S
@@ -0,0 +1,58 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C 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.
+
+ The GNU C 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 the GNU C 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. */
+
+#include <sysdep.h>
+
+ENTRY(_restf_all)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
+C_TEXT(_restf14): lfd fp14,-144(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
+C_TEXT(_restf15): lfd fp15,-136(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
+C_TEXT(_restf16): lfd fp16,-128(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
+C_TEXT(_restf17): lfd fp17,-120(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
+C_TEXT(_restf18): lfd fp18,-112(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
+C_TEXT(_restf19): lfd fp19,-104(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
+C_TEXT(_restf20): lfd fp20,-96(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
+C_TEXT(_restf21): lfd fp21,-88(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
+C_TEXT(_restf22): lfd fp22,-80(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
+C_TEXT(_restf23): lfd fp23,-72(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
+C_TEXT(_restf24): lfd fp24,-64(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
+C_TEXT(_restf25): lfd fp25,-56(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
+C_TEXT(_restf26): lfd fp26,-48(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
+C_TEXT(_restf27): lfd fp27,-40(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
+C_TEXT(_restf28): lfd fp28,-32(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
+C_TEXT(_restf29): lfd fp29,-24(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf30)
+C_TEXT(_restf30): lfd fp30,-16(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf31)
+C_TEXT(_restf31): lfd fp31,-8(r11)
+ blr
diff --git a/sysdeps/unix/sysv/aix/savef.S b/sysdeps/unix/sysv/aix/savef.S
new file mode 100644
index 0000000000..4c10d6ec85
--- /dev/null
+++ b/sysdeps/unix/sysv/aix/savef.S
@@ -0,0 +1,58 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C 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.
+
+ The GNU C 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 the GNU C 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. */
+
+#include <sysdep.h>
+
+ENTRY(_savef_all)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
+C_TEXT(_savef14): stfd fp14,-144(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
+C_TEXT(_savef15): stfd fp15,-136(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
+C_TEXT(_savef16): stfd fp16,-128(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
+C_TEXT(_savef17): stfd fp17,-120(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
+C_TEXT(_savef18): stfd fp18,-112(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
+C_TEXT(_savef19): stfd fp19,-104(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
+C_TEXT(_savef20): stfd fp20,-96(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
+C_TEXT(_savef21): stfd fp21,-88(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
+C_TEXT(_savef22): stfd fp22,-80(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
+C_TEXT(_savef23): stfd fp23,-72(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
+C_TEXT(_savef24): stfd fp24,-64(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
+C_TEXT(_savef25): stfd fp25,-56(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
+C_TEXT(_savef26): stfd fp26,-48(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
+C_TEXT(_savef27): stfd fp27,-40(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
+C_TEXT(_savef28): stfd fp28,-32(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
+C_TEXT(_savef29): stfd fp29,-24(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef30)
+C_TEXT(_savef30): stfd fp30,-16(r11)
+ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef31)
+C_TEXT(_savef31): stfd fp31,-8(r11)
+ blr