about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/configure.in5
-rw-r--r--sysdeps/unix/sysv/linux/select.S31
-rw-r--r--sysdeps/unix/sysv/linux/termbits.h25
3 files changed, 34 insertions, 27 deletions
diff --git a/sysdeps/unix/configure.in b/sysdeps/unix/configure.in
index 74456fe18c..37b6dcad86 100644
--- a/sysdeps/unix/configure.in
+++ b/sysdeps/unix/configure.in
@@ -72,6 +72,7 @@ for unix_function in \
   getitimer setitimer \
   getdomainname/getdomain=bsd/bsd4.4 \
   setdomainname/setdomain=bsd/bsd4.4 \
+  fchdir=bsd/bsd4.4 \
   profil=bsd readv=bsd writev=bsd \
   getpriority setpriority \
   getrlimit setrlimit
@@ -83,8 +84,8 @@ do
   unix_srcname=
   unix_srcdir=common
   eval "unix_syscall=`echo $unix_function | \
-		       sed -e 's@=\(.*\)$@ unix_srcdir=\1@' \
-			   -e 's@/\(.*\)$@ unix_srcname=\1@'`"
+		      sed -e 's@=\(.*\)$@ unix_srcdir=\1@' \
+			  -e 's@/\([^=/]*\)$@ unix_srcname=\1@'`"
   test -z "$unix_srcname" && unix_srcname=$unix_syscall
 
   unix_implementor=none
diff --git a/sysdeps/unix/sysv/linux/select.S b/sysdeps/unix/sysv/linux/select.S
new file mode 100644
index 0000000000..0c8160bd7f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/select.S
@@ -0,0 +1,31 @@
+/* Copyright (C) 1991, 1992, 1995 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>
+
+/* Linux has two versions of the select system call.  The old one expected
+   one argument which must be a pointer to a struct which contains the
+   five values.  The new version expects the five arguments be given in the
+   registers.  Of course we use the new version but the syscall name
+   is `_newsyscall'.  So we do some name magic here.  */
+#define ___newselect __select
+
+SYSCALL__ (_newselect, 5)
+	ret
+
+weak_alias (__select, select)
diff --git a/sysdeps/unix/sysv/linux/termbits.h b/sysdeps/unix/sysv/linux/termbits.h
index 8a71334ba0..5af4c4aae8 100644
--- a/sysdeps/unix/sysv/linux/termbits.h
+++ b/sysdeps/unix/sysv/linux/termbits.h
@@ -107,31 +107,6 @@ struct termios
 #define CBAUDEX	0x00010000	/* Mask for extended speed from c_cflag.  */
 #endif
 
-  /* Input and output baud rates.  These are encoded in c_cflag.  */
-#define B0      0x000000000
-#define B50     0x000000001
-#define B75     0x000000002
-#define B110    0x000000003
-#define B134    0x000000004
-#define B150    0x000000005
-#define B200    0x000000006
-#define B300    0x000000007
-#define B600    0x000000008
-#define B1200   0x000000009
-#define B1800   0x00000000a
-#define B2400   0x00000000b
-#define B4800   0x00000000c
-#define B9600   0x00000000d
-#define B19200  0x00000000e
-#define B38400  0x00000000f
-#ifdef __USE_BSD
-#define EXTA    0x00000000e
-#define EXTB    0x00000000f
-#endif
-#define B57600	0x000010001
-#define B115200	0x000010002
-#define B230400	0x000010003
-
   /* Local modes.  */
   tcflag_t c_lflag;
 #ifdef	__USE_BSD