* posix/tstgetopt.c, posix/tstgetopt.args: Test long options too.
* sysdeps/unix/sysv/linux/i386/init-first.c (init): Save, set, and
restore %ebx by hand for personality syscall.
GCC cannot deal with spilling the dedicated GOT register.
* misc/Makefile (routines): Add mntent, which was somehow omitted.
Fri Sep 29 15:07:10 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* sysdeps/unix/sysv/linux/adjtime.c (__adjtime):
Change name of field `mode' in `struct timex' to `modes'.
Linux-1.3.28 updates this name according to RFC 1489.
+Sat Sep 30 11:47:05 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * posix/tstgetopt.c, posix/tstgetopt.args: Test long options too.
+
+ * sysdeps/unix/sysv/linux/i386/init-first.c (init): Save, set, and
+ restore %ebx by hand for personality syscall.
+ GCC cannot deal with spilling the dedicated GOT register.
+
+ * misc/Makefile (routines): Add mntent, which was somehow omitted.
+
+Fri Sep 29 15:07:10 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
+
+ * sysdeps/unix/sysv/linux/adjtime.c (__adjtime):
+ Change name of field `mode' in `struct timex' to `modes'.
+ Linux-1.3.28 updates this name according to RFC 1489.
+
Thu Sep 28 13:05:54 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
Merge new message handling code from GNU gettext, by Drepper.
+# Makefile for intl subdirectory: message handling code from GNU gettext.
+
+# Copyright (C) 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., 675 Mass Ave,
+# Cambridge, MA 02139, USA.
+
subdir = intl
routines = bindtextdom dcgettext dgettext gettext \
finddomain loadmsgcat localealias textdomain
-distribute = gettext.h gettextP.h hash-string.h libgettext.h
+distribute = gettext.h gettextP.h hash-string.h
include ../Rules
headers := sys/uio.h sys/ioctl.h sys/ptrace.h ioctls.h sys/file.h \
a.out.h nlist.h stab.h stab.def sgtty.h sys/dir.h sys/cdefs.h \
ttyent.h syscall.h syslog.h sys/syslog.h paths.h sys/reboot.h \
- sys/mman.h sys/param.h fstab.h search.h utmp.h
+ sys/mman.h sys/param.h fstab.h mntent.h search.h utmp.h
routines := brk sbrk sstk ioctl \
readv writev \
swapon mktemp mkstemp \
ualarm usleep \
gtty stty \
- ptrace \
- nlist fstab \
+ ptrace nlist \
+ fstab mntent \
utimes \
truncate ftruncate \
chflags fchflags \
--a -b -cfoobar
+-a -b -cfoobar --required foobar --optional=bazbug --none random
+
-#include <ansidecl.h>
#include <unistd.h>
#include <stdio.h>
+#include <getopt.h>
-int main (int argc, char **argv)
+int
+main (int argc, char **argv)
{
+ static const struct option options[] =
+ {
+ {"required", required_argument, NULL, 'r'},
+ {"optional", optional_argument, NULL, 'o'},
+ {"none", no_argument, NULL, 'n'}
+ };
+
int aflag = 0;
int bflag = 0;
char *cvalue = NULL;
int index;
int c;
- while ((c = getopt (argc, argv, "abc:")) >= 0)
- switch (c) {
- case 'a':
- aflag = 1;
- break;
- case 'b':
- bflag = 1;
- break;
- case 'c':
- cvalue = optarg;
- break;
- case '?':
-#if 0
- fprintf (stderr, "Unknown option %c.\n", optopt);
-#else
- fputs ("Unknown option.\n", stderr);
-#endif
- return -1;
- default:
- fprintf (stderr, "This should never happen!\n");
- return -1;
- }
+ while ((c = getopt_long (argc, argv, "abc:", options, NULL)) >= 0)
+ switch (c)
+ {
+ case 'a':
+ aflag = 1;
+ break;
+ case 'b':
+ bflag = 1;
+ break;
+ case 'c':
+ cvalue = optarg;
+ break;
+ case '?':
+ fputs ("Unknown option.\n", stderr);
+ return 1;
+ default:
+ fprintf (stderr, "This should never happen!\n");
+ return 1;
+
+ case 'r':
+ printf ("--required %s\n", optarg);
+ break;
+ case 'o':
+ printf ("--optional %s\n", optarg);
+ break;
+ case 'n':
+ puts ("--none");
+ break;
+ }
printf ("aflag = %d, bflag = %d, cvalue = %s\n", aflag, bflag, cvalue);
for (index = optind; index < argc; index++)
printf ("Non-option argument %s\n", argv[index]);
+
return 0;
}
--- /dev/null
+#include <sysvipc/sys/ipc.h>
--- /dev/null
+#include <sysvipc/sys/msg.h>
--- /dev/null
+#include <sysvipc/sys/sem.h>
--- /dev/null
+#include <sysvipc/sys/shm.h>
# Linux shares most of the syscalls which are also common to BSD and SVR4.
unix/common
-# Linux has not yet (as of 1.3.18) the canonical set of <sys/mman.h>
-# system calls. msync() and madvice() are missing, so their stubs
-# are found here. I think later version will have them ones.
+# Linux as of version 1.3.29 has all functions of the mmap family
+# which are described in POSIX.4. Missing is only madvise() so
+# we define a stub here.
unix/mman
# Linux has network support in the kernel.
return -1;
}
tntx.offset = tmp.tv_usec + tmp.tv_sec * 1000000L;
- tntx.mode = ADJ_OFFSET_SINGLESHOT;
+ tntx.modes = ADJ_OFFSET_SINGLESHOT;
}
else
- tntx.mode = 0;
+ tntx.modes = 0;
if (__adjtimex (&tntx) < 0) return -1;
Cambridge, MA 02139, USA. */
#include <unistd.h>
+#include <sysdep.h>
#include "fpu_control.h"
extern void __libc_init (int, char **, char **);
char **argv = (void *) (data + 1);
char **envp = &argv[argc + 1];
- /* Make sure we are not using iBSC2 personality. */
- asm ("int $0x80 # syscall no %0, arg %1"
- : : "a" (SYS_ify (personality)), "b" (0));
+ /* Make sure we are not using the iBSC2 personality. The `personality'
+ syscall takes one argument; zero means the Linux personality. The
+ argument arrives in %ebx; we have to save and restore %ebx by hand
+ here, because GCC (as of 2.7.0) cannot handle saving and restoring it
+ for us when it is the dedicated GOT register for PIC. */
+ asm ("pushl %%ebx\n"
+ "xorl %%ebx, %%ebx\n"
+ "int $0x80 # syscall no %0\n"
+ "popl %%ebx"
+ : : "a" (SYS_ify (personality)));
/* Set the FPU control word to the proper default value. */
__setfpucw (___fpu_control);