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.
This commit is contained in:
Roland McGrath 1995-09-30 17:10:48 +00:00
parent 24906b43b9
commit 41cfadd63c
12 changed files with 102 additions and 37 deletions

View File

@ -1,3 +1,19 @@
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> 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. Merge new message handling code from GNU gettext, by Drepper.

View File

@ -1,7 +1,27 @@
# 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 subdir = intl
routines = bindtextdom dcgettext dgettext gettext \ routines = bindtextdom dcgettext dgettext gettext \
finddomain loadmsgcat localealias textdomain finddomain loadmsgcat localealias textdomain
distribute = gettext.h gettextP.h hash-string.h libgettext.h distribute = gettext.h gettextP.h hash-string.h
include ../Rules include ../Rules

View File

@ -25,7 +25,7 @@ subdir := misc
headers := sys/uio.h sys/ioctl.h sys/ptrace.h ioctls.h sys/file.h \ 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 \ 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 \ 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 \ routines := brk sbrk sstk ioctl \
readv writev \ readv writev \
@ -41,8 +41,8 @@ routines := brk sbrk sstk ioctl \
swapon mktemp mkstemp \ swapon mktemp mkstemp \
ualarm usleep \ ualarm usleep \
gtty stty \ gtty stty \
ptrace \ ptrace nlist \
nlist fstab \ fstab mntent \
utimes \ utimes \
truncate ftruncate \ truncate ftruncate \
chflags fchflags \ chflags fchflags \

View File

@ -1 +1,2 @@
-a -b -cfoobar -a -b -cfoobar --required foobar --optional=bazbug --none random

View File

@ -1,41 +1,57 @@
#include <ansidecl.h>
#include <unistd.h> #include <unistd.h>
#include <stdio.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 aflag = 0;
int bflag = 0; int bflag = 0;
char *cvalue = NULL; char *cvalue = NULL;
int index; int index;
int c; int c;
while ((c = getopt (argc, argv, "abc:")) >= 0) while ((c = getopt_long (argc, argv, "abc:", options, NULL)) >= 0)
switch (c) { switch (c)
case 'a': {
aflag = 1; case 'a':
break; aflag = 1;
case 'b': break;
bflag = 1; case 'b':
break; bflag = 1;
case 'c': break;
cvalue = optarg; case 'c':
break; cvalue = optarg;
case '?': break;
#if 0 case '?':
fprintf (stderr, "Unknown option %c.\n", optopt); fputs ("Unknown option.\n", stderr);
#else return 1;
fputs ("Unknown option.\n", stderr); default:
#endif fprintf (stderr, "This should never happen!\n");
return -1; return 1;
default:
fprintf (stderr, "This should never happen!\n"); case 'r':
return -1; 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); printf ("aflag = %d, bflag = %d, cvalue = %s\n", aflag, bflag, cvalue);
for (index = optind; index < argc; index++) for (index = optind; index < argc; index++)
printf ("Non-option argument %s\n", argv[index]); printf ("Non-option argument %s\n", argv[index]);
return 0; return 0;
} }

1
sys/ipc.h Normal file
View File

@ -0,0 +1 @@
#include <sysvipc/sys/ipc.h>

1
sys/msg.h Normal file
View File

@ -0,0 +1 @@
#include <sysvipc/sys/msg.h>

1
sys/sem.h Normal file
View File

@ -0,0 +1 @@
#include <sysvipc/sys/sem.h>

1
sys/shm.h Normal file
View File

@ -0,0 +1 @@
#include <sysvipc/sys/shm.h>

View File

@ -1,9 +1,9 @@
# Linux shares most of the syscalls which are also common to BSD and SVR4. # Linux shares most of the syscalls which are also common to BSD and SVR4.
unix/common unix/common
# Linux has not yet (as of 1.3.18) the canonical set of <sys/mman.h> # Linux as of version 1.3.29 has all functions of the mmap family
# system calls. msync() and madvice() are missing, so their stubs # which are described in POSIX.4. Missing is only madvise() so
# are found here. I think later version will have them ones. # we define a stub here.
unix/mman unix/mman
# Linux has network support in the kernel. # Linux has network support in the kernel.

View File

@ -43,10 +43,10 @@ __adjtime (itv, otv)
return -1; return -1;
} }
tntx.offset = tmp.tv_usec + tmp.tv_sec * 1000000L; tntx.offset = tmp.tv_usec + tmp.tv_sec * 1000000L;
tntx.mode = ADJ_OFFSET_SINGLESHOT; tntx.modes = ADJ_OFFSET_SINGLESHOT;
} }
else else
tntx.mode = 0; tntx.modes = 0;
if (__adjtimex (&tntx) < 0) return -1; if (__adjtimex (&tntx) < 0) return -1;

View File

@ -18,6 +18,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */ Cambridge, MA 02139, USA. */
#include <unistd.h> #include <unistd.h>
#include <sysdep.h>
#include "fpu_control.h" #include "fpu_control.h"
extern void __libc_init (int, char **, char **); extern void __libc_init (int, char **, char **);
@ -31,9 +32,16 @@ init (int *data)
char **argv = (void *) (data + 1); char **argv = (void *) (data + 1);
char **envp = &argv[argc + 1]; char **envp = &argv[argc + 1];
/* Make sure we are not using iBSC2 personality. */ /* Make sure we are not using the iBSC2 personality. The `personality'
asm ("int $0x80 # syscall no %0, arg %1" syscall takes one argument; zero means the Linux personality. The
: : "a" (SYS_ify (personality)), "b" (0)); 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. */ /* Set the FPU control word to the proper default value. */
__setfpucw (___fpu_control); __setfpucw (___fpu_control);