Compare commits

...
Author SHA1 Message Date
Roland McGrath f2e235b9b8 Mon Feb 19 18:31:59 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* time/zic.c, time/scheck.c, time/private.h, time/tzfile.h:
	Updated from ADO 96d.
1996-02-19 23:34:46 +00:00
Roland McGrath 0ddc0d1604 Sun Feb 18 14:08:04 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* csu/initfini.c (_init): Remove bogus volatile declarations and
	extra variable, take the address of __gmon_start__ only implicitly
	to avoid the test being optimized out.
1996-02-19 23:25:15 +00:00
Roland McGrath bfc04a9ff1 Sun Feb 18 15:08:10 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/posix/utimes.c (__utimes): There are 1000000 usecs in a
	sec.

Sun Feb 18 13:56:00 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/Makefile, time/Makefile: Make `all' the default target.

Mon Feb 19 18:09:04 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* misc/sys/ptrace.h: Moved to ...
	* sysdeps/generic/sys/ptrace.h: ... here.
	* sys/ptrace.h: File removed.

Sun Feb 18 12:13:07 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/Makefile (headers): Add fpu_control.h.

	* sysdeps/unix/sysv/linux/i386/sysdep.S (errno): Put it into .bss
 	so that the symbol alias works.

	* sysdeps/unix/sysv/linux/m68k/fpu_control.h (_FPU_SETCW): Corrected.

	* sysdeps/unix/sysv/linux/resourcebits.h: New file.

	* sysdeps/unix/sysv/linux/sys/ptrace.h: New file.

	* sysdeps/unix/sysv/linux/syscalls.list: Add getegid, geteuid,
	getppid and reboot.

	* sysdeps/unix/sysv/linux/sysconf.c: Special version that does not
	use getdtablesize.

Sat Feb 17 10:30:21 1996  David Mosberger-Tang  <davidm@AZStarNet.com>

	* stdio-common/printf_fp.c, stdlib/strtod.c, sysdeps/ieee754/dbl2mpn.c,
	sysdeps/ieee754/ldbl2mpn.c, sysdeps/ieee754/mpn2dbl.c,
	sysdeps/ieee754/mpn2ldbl.c: Cast left operands of shift instructions
	to `long' where necessary.

Thu Feb 15 20:04:50 1996  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* stdlib/fpioconst.h: Introduce new constant _FPIO_CONST_OFFSET.
	* stdio-common/printf_fp.c, stdlib/strtod.c: Use _FPIO_CONST_OFFSET
	to correctly access MPN array depending on architecture.
1996-02-19 23:14:44 +00:00
Roland McGrath be10a86854 *** empty log message ***
Mon Feb 19 15:30:26 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* stdio-common/tstscanf.c (main): Add check for "0" as %d.

	* sysdeps/stub/msync.c: Undo change of Jan 29; just two args.
	Only some systems have three args; let them define their own stub.

	* sysdeps/generic/dl-sysdep.c: Declare _dl_secure.

	* sysdeps/generic/machine-gmon.h: New file.
	* gmon/Makefile (distribute): Add machine-gmon.h.
	* gmon/mcount.c: Undo changes of Feb 13.
	Include "machine-gmon.h".

Sun Feb 18 13:24:06 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/direct.h: File removed, since it is
	identical to unix/common/direct.h.

	* sysdeps/unix/Makefile [no_deps]: Don't include s-proto.d.

	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Don't add ipc.

	* stdio-common/Makefile (tests): Remove scanf6.

	* sysdeps/unix/sysv/linux/Makefile (non-lib.a): Append libieee.a.

	* time/mktime.c (mktime): Move static variable localtime_offset to
	file scope.

	* stdio-common/vfscanf.c: Put '0' in buffer before scanning for %i
	base indicator.

Thu Feb 15 16:56:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/dl-machine.h (elf_machine_load_address): Corrected.
	(ELF_MACHINE_BEFORE_RTLD_RELOC): Define.
	(_dl_runtime_resolve): Save %a1 as well.
	(ELF_MACHINE_RUNTIME_FIXUP_ARGS): Add second dummy arg.
	(elf_machine_relplt): Define.

	* elf/dl-runtime.c: Include possible extra args in declaration of
 	fixup.
1996-02-19 20:54:38 +00:00
Roland McGrath 1cbca0d93c Fri Feb 16 11:01:59 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* time/tzset.c: Limit hours to 23, not 12.  From jaffer.
1996-02-16 16:15:45 +00:00
Roland McGrath 7c97bb094e Fri Feb 16 10:14:05 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* Makeconfig (CFLAGS-.po): Use -pg instead of -p.
1996-02-16 15:14:24 +00:00
Roland McGrath 9b19f55dc8 Thu Feb 15 11:49:45 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/unix/sysv/sysv4/Makefile [$(subdir)-signal]
	(sysdep_routines): Don't add sys-sig.

	* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list: New file.
1996-02-16 14:47:21 +00:00
Roland McGrath 9e3db9cd59 Thu Feb 15 13:57:08 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* mach/Machrules: Use -include for $(*.ir).

	* hurd/hurd/ioctl.h (_HURD_HANDLE_IOCTLS): Mask off type bits in
	request values.
	* sysdeps/mach/hurd/ioctls.h (_IOC_NOTYPE): New macro.
	(_IOT_COUNT2): Field is 3 bits, not 2.
	* sysdeps/mach/hurd/ioctl.c: Ignore handler if it fails with ENOTTY.
	* hurd/hurdioctl.c (_hurd_lookup_ioctl_handler): Mask off type
	bits before looking up handler.
	(fioctl): Use __hurd_dfail.
	(fioctl, fioclex): Use ENOTTY for bogus request instead of EGRATUITOUS.

Wed Feb 14 00:21:17 1996 David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/alpha/memchr.c (memchr): loop searching for matching
	character bailed out one too early; changed constant 6 to
	7 to fix this.
1996-02-16 02:19:52 +00:00
Roland McGrath a1c46301bb * posix/execvp.c: When executing shell on script, first arg is
full file name, not argv[0].

	* mach/Makefile [no_deps]: Inhibit inclusion of mach-syscalls.mk.
	* mach/Machrules [no_deps]: Inhibit interface rules.
1996-02-14 06:39:32 +00:00
Roland McGrath de1b40af73 Wed Feb 14 01:08:58 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* malloc/Makefile (distribute): Removed TODO.

	* sysdeps/unix/sysv/linux/syscalls.list (ipc): Specify msgget in
	caller column.
1996-02-14 06:09:19 +00:00
Miles Bader e335fa388a Updated from ../gpl2lgpl.sed /home/gd/gnu/lib/getopt.c 1996-02-13 18:28:59 +00:00
Roland McGrath c6de696871 (ipc): Specify msgget in caller column. 1996-02-13 16:09:47 +00:00
Roland McGrath ae4c4dae36 * sysdeps/unix/common/syscalls.list: Add sigaction syscall. 1996-02-13 11:53:03 +00:00
Roland McGrath d2c2312316 * elf/dl-runtime.c (fixup) [ELF_MACHINE_RUNTIME_FIXUP_ARGS]: Let
this macro declare extra leading args.

	* Makerules [$(elf)=yes] (ar-symtab-name): Define to empty.
1996-02-13 11:49:42 +00:00
Roland McGrath 13987e686c New file from Schwab
* sysdeps/unix/sysv/linux/m68k/fpu_control.h: New file.
1996-02-13 11:40:36 +00:00
Roland McGrath 46d7de1907 Sat Feb 10 13:09:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/m68k/brk.c,
	sysdeps/unix/sysv/linux/m68k/mmap.S,
	sysdeps/unix/sysv/linux/m68k/select.S,
	sysdeps/unix/sysv/linux/m68k/sigcontext.h,
	sysdeps/unix/sysv/linux/m68k/sigreturn.S,
	sysdeps/unix/sysv/linux/m68k/socket.S,
	sysdeps/unix/sysv/linux/m68k/syscall.S,
	sysdeps/unix/sysv/linux/m68k/sysdep.S,
	sysdeps/unix/sysv/linux/m68k/sysdep.h: New files.
	* sysdeps/unix/sysv/linux/m68k/brk.c,
	sysdeps/unix/sysv/linux/m68k/mmap.S,
	sysdeps/unix/sysv/linux/m68k/select.S,
	sysdeps/unix/sysv/linux/m68k/sigcontext.h,
	sysdeps/unix/sysv/linux/m68k/sigreturn.S,
	sysdeps/unix/sysv/linux/m68k/socket.S,
	sysdeps/unix/sysv/linux/m68k/syscall.S,
	sysdeps/unix/sysv/linux/m68k/sysdep.S,
	sysdeps/unix/sysv/linux/m68k/sysdep.h: New files.
1996-02-13 11:38:58 +00:00
Roland McGrath 4eea716e2d i386/gnu/types.h moved to top-level linux dir.
* sysdeps/unix/sysv/linux/gnu/types.h: Moved from linux/i386.
1996-02-13 11:35:47 +00:00
Roland McGrath 2a072de4a1 Tue Feb 13 05:12:02 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=math]
	(sysdep_routines): Append setfpucw.
	(extra-objs): Append ieee-fpucw.o.
	(install-lib): Append libieee.a.
	(libieee.a): New target.
	* sysdeps/unix/sysv/linux/ieee-fpucw.c: New file.
	* sysdeps/unix/sysv/linux/i386/fpu_control.h
	(_FPU_GETCW, _FPU_SETCW): New macros.
	(fpu_control_t): New typedef.
	(__setfpucw): Use fpu_control_t for argument type.
	* sysdeps/unix/sysv/linux/fpu_control.c: Moved from linux/i386.

	* sysdeps/unix/sysv/linux/init-first.c: Moved from linux/i386.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=math]
	(sysdep_routines): Append setfpucw.
	(extra-objs): Append ieee-fpucw.o.
	(install-lib): Append libieee.a.
	(libieee.a): New target.
	* sysdeps/unix/sysv/linux/ieee-fpucw.c: New file.
	* sysdeps/unix/sysv/linux/i386/fpu_control.h
	(_FPU_GETCW, _FPU_SETCW): New macros.
	(fpu_control_t): New typedef.
	(__setfpucw): Use fpu_control_t for argument type.
	* sysdeps/unix/sysv/linux/fpu_control.c: Moved from linux/i386.

	* sysdeps/unix/sysv/linux/init-first.c: Moved from linux/i386.
1996-02-13 11:07:05 +00:00
Roland McGrath 363113d02a Tue Feb 13 05:12:02 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/syscalls.list: Add ipc syscall.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: File removed.
Tue Feb 13 05:12:02 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/syscalls.list: Add ipc syscall.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: File removed.
1996-02-13 10:16:25 +00:00
Roland McGrath 3585d6bf30 Sat Feb 10 13:09:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/isinfl.c, sysdeps/m68k/fpu/isnanl.c,
	sysdeps/m68k/isinfl.c, sysdeps/m68k/isnanl.c: New files.
	* sysdeps/m68k/fpu/isinfl.c, sysdeps/m68k/fpu/isnanl.c,
	sysdeps/m68k/isinfl.c, sysdeps/m68k/isnanl.c: New files.
1996-02-13 09:51:13 +00:00
Roland McGrath 01f3e03bcd Sat Feb 10 13:09:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/sys/mman.h: Define MAP_ANON and
	MAP_FILE if not already defined.

	* elf/elf.h: Add m68k reloc definitions.
	* sysdeps/m68k/dl-machine.h, sysdeps/m68k/elf/start.S: New files.
Sat Feb 10 13:09:03 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/sys/mman.h: Define MAP_ANON and
	MAP_FILE if not already defined.

	* elf/elf.h: Add m68k reloc definitions.
	* sysdeps/m68k/dl-machine.h, sysdeps/m68k/elf/start.S: New files.
1996-02-13 09:26:53 +00:00
Roland McGrath 38334018ff Tue Feb 13 00:12:12 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/i386/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE,
	elf_machine_relplt): New macros.
	* elf/dl-runtime.c: New file.
	* sysdeps/i386/dl-runtime.c, sysdeps/stub/dl-runtime.c: Files removed.
	* sysdeps/i386/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE,
	elf_machine_relplt): New macros.
	* elf/dl-runtime.c: New file.
	* sysdeps/i386/dl-runtime.c, sysdeps/stub/dl-runtime.c: Files removed.
1996-02-13 07:05:16 +00:00
Roland McGrath dbdb6189d5 Tue Feb 13 00:12:12 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* gmon/Makefile (headers): Remove machine-gmon.h.
	* sysdeps/stub/machine-gmon.h, sysdeps/i386/machine-gmon.h: Removed.
	* gmon/mcount.c [! NO_UNDERSCORES] (_mcount): Specify "mcount" as
	the asm name.
	(_mcount): Define normally, taking no args.
	Use __builtin_return_address to fetch PC values of caller and caller's
	caller.
Tue Feb 13 00:12:12 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* gmon/Makefile (headers): Remove machine-gmon.h.
	* sysdeps/stub/machine-gmon.h, sysdeps/i386/machine-gmon.h: Removed.
	* gmon/mcount.c [! NO_UNDERSCORES] (_mcount): Specify "mcount" as
	the asm name.
	(_mcount): Define normally, taking no args.
	Use __builtin_return_address to fetch PC values of caller and caller's
	caller.

	* Makerules: Rewrote rules to update libc archives of all flavors.
	Define separate specific rules for each flavor using o-iterator.

	* sysdeps/unix/Makefile: Include s-proto.d only ifdef subdir.

Sat Feb 10 11:35:16 1996 Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makerules (ar-symtab-name): New macro.  Replace all occurences
	of __.SYMDEF by $(ar-symtab-name).
	* sysdeps/unix/sysv/Makefile (ar-symtab-name): Define as empty.

	* Makefile (configure, %/configure): Depend on aclocal.m4.
	* Make-dist (configure, %/configure): Likewise.

	* sysdeps/unix/Makefile: Include s-proto.d for its deps.

	* gmon/sys/gmon.h: Don't include machine-gmon.h; those defns are
	only needed in the implementation, not for any users.

	* time/northamerica: Updated from ADO 96c, new rules for Mexico in
	1996.
1996-02-13 05:46:59 +00:00
Roland McGrath afced61c8f Updated from ADO 96c, new rules for Mexico in 1996. 1996-02-13 03:56:17 +00:00
Doug Evans d592cd699d Recognize sparclet cpu. 1996-02-12 23:15:30 +00:00
Per Bothner a7cb7644cf * config.guess (UNAME_VERSION): Recognize X4.x as an OSF version. * config.guess (*:CYGWIN*): New 1996-02-12 20:55:56 +00:00
Per Bothner 889a9677fd * config.guess: Support m68k-cbm-sysv4. * config.guess (*:Linux:*:*): Guess m68k-unknown-linux 1996-02-12 20:44:56 +00:00
Roland McGrath 25f9784eb8 * sunrpc/pm_getport.c: #if 0 out gratuitous inclusion of <net/if.h>.
* sunrpc/pm_getmaps.c: Likewise.
1996-02-12 10:36:01 +00:00
Roland McGrath 1fe58993bc * sysdeps/unix/sysv/syscalls.list: Add setrlimit and settimeofday,
so real syscalls override unix/sysv/*.c on sysv-derived systems
 	that have them.
	* sysdeps/unix/common/syscalls.list: Add settimeofday here, to
	override unix/sysv/settimeofday.c since that overrides
	unix/syscalls.list.

	* Makeconfig (+link): Put $(link-libc) after deps from $^,
	regardless of where libc.a appears in the deps.
1996-02-12 10:23:47 +00:00
Roland McGrath 63f8940402 * hurd/hurdfault.c (_hurdsig_fault_init): Set qlimit on
FORWARD_SIGEXC to one.  Uncomment setting of thread exc port, and
 	move it to last thing.
1996-02-12 10:00:30 +00:00
Roland McGrath 808c413c90 Mon Feb 12 03:10:41 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/unix/sysv/sysv4/syscalls.list: Remove redundancies.
	Add __waitid.
	* sysdeps/unix/sysv/linux/syscalls.list: Remove redundancies.
	Define __ name for sigprocmask.
	* sysdeps/unix/bsd/ultrix4/syscalls.list: Remove redundancies.
	Add getsysinfo.
	* sysdeps/unix/bsd/sun/sunos4/syscalls.list: Remove redundancies.
	* sysdeps/unix/bsd/sun/syscalls.list: Remove redundancies.
	* sysdeps/unix/bsd/bsd4.4/syscalls.list: Remove redundancies.
	* sysdeps/unix/bsd/syscalls.list: Remove settimeofday, utimes.
	Add getdents, wait3, waitpid.
	* sysdeps/unix/syscalls.list: Add seteuid, setegid, setsid,
	settimeofday, sigsuspend, sstk, utimes.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.S: File removed.
	* sysdeps/unix/bsd/ultrix4/mips/syscalls.list: New file.
	* sysdeps/unix/bsd/ultrix4/mips/Makefile (sysdep_routines):
	Removed sigtramp.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.c: Renamed from sigtramp.c.
	* sysdeps/unix/bsd/bsd4.4/sstk.S: File removed.
	* sysdeps/unix/bsd/hp/m68k/syscalls.list: File removed.
	* sysdeps/unix/bsd/osf/alpha/getdents.S: File removed.
	* sysdeps/unix/bsd/ultrix4/getsysinfo.S: File removed.
	* sysdeps/unix/bsd/ultrix4/waitpid.S: File removed.
	* sysdeps/unix/bsd/ultrix4/mips/sigtramp.c: File removed.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.S: File removed.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.c: New file.
	* sysdeps/unix/bsd/ultrix4/mips/syscalls.list: New file.
	* sysdeps/unix/sysv/irix4/wait3.S: File removed.
	* sysdeps/unix/sysv/sysv4/__waitid.S: File removed.
	* sysdeps/unix/sysv/sysv4/fchdir.S: File removed.
	* sysdeps/unix/sysv/sysv4/setegid.S: File removed.
	* sysdeps/unix/sysv/sysv4/seteuid.S: File removed.
	* sysdeps/unix/sysv/sysv4/sigaltstack.S: File removed.
	* sysdeps/unix/sysv/sysv4/solaris2/utimes.S: File removed.
1996-02-12 08:37:31 +00:00
Roland McGrath 47665862cd (sysdep_routines): Removed sigtramp. 1996-02-12 08:11:19 +00:00
Richard M. Stallman bdf2af37da Fix typo in previous change. 1996-02-11 23:40:37 +00:00
Roland McGrath 186588d6bf Sat Feb 10 05:57:08 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/generic/make_siglist.c: #undef _SIGNAL_H before defining it.

	* sysdeps/unix/sysv/linux/syscalls.list: Add sigprocmask, sigsuspend.
1996-02-11 10:00:24 +00:00
Richard Kenner 3038e60115 (-psos*): New case. 1996-02-10 13:26:26 +00:00
Roland McGrath 932be5efa3 #undef _SIGNAL_H before defining it. 1996-02-10 11:19:12 +00:00
Roland McGrath 6a032d8158 Sat Feb 10 04:18:48 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* posix/execvp.c: If execv fails with ENOEXEC, run the shell on
	the file.

Fri Feb  9 11:46:45 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* time/Makefile (CFLAGS-zdump.c, CFLAGS-zic.c, CFLAGS-ialloc.c,
	CFLAGS-scheck.c): Use -DNOID instead of -Wno-unused.

	* hurd/Makefile (user-interfaces): Added hurd/tioctl.
1996-02-10 10:00:27 +00:00
Roland McGrath 56f778c958 Thu Feb 8 18:55:27 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* hurd/hurdioctl.c (tiocsctty): Set the terminal's pgrp to our own.
1996-02-09 10:00:23 +00:00
Roland McGrath a482b5a595 * Makefile (subdirs): Added wcsmbs.
* wcsmbs: New directory of wide char/multibyte char functions from
	drepper.
1996-02-08 10:00:34 +00:00
Roland McGrath 4ca84cff3b Wed Feb 7 18:48:30 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* hurd/hurdmsg.c (_S_msg_report_wait): Function removed.
	* hurd/report-wait.c: New file.
	* hurd/Makefile (routines): Added report-wait.

	* sysdeps/mach/hurd/Makefile (inhibit-unix-syscalls): New variable.

	* sysdeps/mach/hurd/i386/intr-msg.h (struct mach_msg_trap_args):
	New type.
	(SYSCALL_EXAMINE, MSG_EXAMINE): New inline functions.
	* sysdeps/mach/hurd/i386/trampoline.c (struct mach_msg_trap_args):
	Structure moved to intr-msg.h; include that.

	* time/Makefile (CFLAGS-ialloc.c): Add -Wno-unused.
	(CFLAGS-scheck.c): New variable.

	* sysdeps/mach/hurd/dl-sysdep.c (__hurd_sigthread_stack_base,
	__hurd_sigthread_stack_end, __hurd_sigthread_variables,
	__hurd_threadvar_stack_mask): New variables.

	* sysdeps/mach/hurd/fork.c: Set the new task's exception port to
	its new message port.

	* misc/init-misc.c: Put __init_misc in the __libc_subinit set.

	* configure.in (uname): Add quoting.

	* sysdeps/mach/hurd/fchdir.c: Don't consult errno unless lookup fails.
	* hurd/fchroot.c: Likewise.

	* posix/sys/types.h [GCC >= 2.7]: Define intN_t/u_intN_t using
	__attribute__ ((__mode__ (__XX__))).

Wed Feb 7 03:24:05 1996 Torbjorn Granlund  <tege@tmg.se>

	* sysdeps/i386/i586/memcopy.h (WORD_COPY_FWD): Manually allocate
	destination cache lines.
	(WORD_COPY_BWD): Likewise.

Wed Feb  7 14:16:36 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/generic/Makefile (make_siglist): Get signum.h absolute
	file name first thing, before $(native-compile) changes directories.

	From Gord Matzigkeit <gord@enci.ucalgary.ca>:
	* sysdeps/unix/make_errlist.c: Use strerror if available.
	* sysdeps/unix/configure.in: New file

	* sysdeps/unix/bsd/sun/syscalls.list: Added sigvec.
	* sysdeps/unix/bsd/sun/sigvec.S: File removed.

	* sysdeps/stub/sendto.c: Make sockaddr arg pointer to const.
	* sysdeps/stub/connect.c: Likewise.
	* sysdeps/stub/bind.c: Likewise.

	* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): RETRYNAME of
	"" is only special for FS_RETRY_NORMAL; for FS_RETRY_REAUTH, do
	another dir_lookup of "".
1996-02-08 02:10:15 +00:00
Roland McGrath 1ac3b08e93 Fri Feb 2 13:09:18 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/mach/hurd/fork.c: Clear trace flag in child.
1996-02-03 10:00:25 +00:00
Michael Meissner c09ebb85ba Add cygwin32; Put eabi .sdata2/.sbss2 into read-only memory 1996-02-03 01:03:27 +00:00
Roland McGrath b07c5668f6 Updated from ../gpl2lgpl.sed /home/gd/gnu/lib/getopt.c 1996-02-02 18:41:42 +00:00
169 changed files with 4489 additions and 743 deletions
+382
View File
@@ -1,3 +1,385 @@
Mon Feb 19 18:31:59 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* time/zic.c, time/scheck.c, time/private.h, time/tzfile.h:
Updated from ADO 96d.
Sun Feb 18 14:08:04 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* csu/initfini.c (_init): Remove bogus volatile declarations and
extra variable, take the address of __gmon_start__ only implicitly
to avoid the test being optimized out.
Sun Feb 18 15:08:10 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/posix/utimes.c (__utimes): There are 1000000 usecs in a
sec.
Sun Feb 18 13:56:00 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/Makefile, time/Makefile: Make `all' the default target.
Mon Feb 19 18:09:04 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* misc/sys/ptrace.h: Moved to ...
* sysdeps/generic/sys/ptrace.h: ... here.
* sys/ptrace.h: File removed.
Sun Feb 18 12:13:07 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (headers): Add fpu_control.h.
* sysdeps/unix/sysv/linux/i386/sysdep.S (errno): Put it into .bss
so that the symbol alias works.
* sysdeps/unix/sysv/linux/m68k/fpu_control.h (_FPU_SETCW): Corrected.
* sysdeps/unix/sysv/linux/resourcebits.h: New file.
* sysdeps/unix/sysv/linux/sys/ptrace.h: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add getegid, geteuid,
getppid and reboot.
* sysdeps/unix/sysv/linux/sysconf.c: Special version that does not
use getdtablesize.
Sat Feb 17 10:30:21 1996 David Mosberger-Tang <davidm@AZStarNet.com>
* stdio-common/printf_fp.c, stdlib/strtod.c, sysdeps/ieee754/dbl2mpn.c,
sysdeps/ieee754/ldbl2mpn.c, sysdeps/ieee754/mpn2dbl.c,
sysdeps/ieee754/mpn2ldbl.c: Cast left operands of shift instructions
to `long' where necessary.
Thu Feb 15 20:04:50 1996 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* stdlib/fpioconst.h: Introduce new constant _FPIO_CONST_OFFSET.
* stdio-common/printf_fp.c, stdlib/strtod.c: Use _FPIO_CONST_OFFSET
to correctly access MPN array depending on architecture.
Mon Feb 19 15:30:26 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* stdio-common/tstscanf.c (main): Add check for "0" as %d.
* sysdeps/stub/msync.c: Undo change of Jan 29; just two args.
Only some systems have three args; let them define their own stub.
* sysdeps/generic/dl-sysdep.c: Declare _dl_secure.
* sysdeps/generic/machine-gmon.h: New file.
* gmon/Makefile (distribute): Add machine-gmon.h.
* gmon/mcount.c: Undo changes of Feb 13.
Include "machine-gmon.h".
Sun Feb 18 13:24:06 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/direct.h: File removed, since it is
identical to unix/common/direct.h.
* sysdeps/unix/Makefile [no_deps]: Don't include s-proto.d.
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Don't add ipc.
* stdio-common/Makefile (tests): Remove scanf6.
* sysdeps/unix/sysv/linux/Makefile (non-lib.a): Append libieee.a.
* time/mktime.c (mktime): Move static variable localtime_offset to
file scope.
* stdio-common/vfscanf.c: Put '0' in buffer before scanning for %i
base indicator.
Thu Feb 15 16:56:17 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/dl-machine.h (elf_machine_load_address): Corrected.
(ELF_MACHINE_BEFORE_RTLD_RELOC): Define.
(_dl_runtime_resolve): Save %a1 as well.
(ELF_MACHINE_RUNTIME_FIXUP_ARGS): Add second dummy arg.
(elf_machine_relplt): Define.
* elf/dl-runtime.c: Include possible extra args in declaration of
fixup.
Fri Feb 16 11:01:59 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* time/tzset.c: Limit hours to 23, not 12. From jaffer.
Fri Feb 16 10:14:05 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* Makeconfig (CFLAGS-.po): Use -pg instead of -p.
Thu Feb 15 13:57:08 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* mach/Machrules: Use -include for $(*.ir).
* hurd/hurd/ioctl.h (_HURD_HANDLE_IOCTLS): Mask off type bits in
request values.
* sysdeps/mach/hurd/ioctls.h (_IOC_NOTYPE): New macro.
(_IOT_COUNT2): Field is 3 bits, not 2.
* sysdeps/mach/hurd/ioctl.c: Ignore handler if it fails with ENOTTY.
* hurd/hurdioctl.c (_hurd_lookup_ioctl_handler): Mask off type
bits before looking up handler.
(fioctl): Use __hurd_dfail.
(fioctl, fioclex): Use ENOTTY for bogus request instead of EGRATUITOUS.
Thu Feb 15 11:49:45 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/unix/sysv/sysv4/Makefile [$(subdir)-signal]
(sysdep_routines): Don't add sys-sig.
* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list: New file.
Wed Feb 14 00:21:17 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/alpha/memchr.c (memchr): loop searching for matching
character bailed out one too early; changed constant 6 to
7 to fix this.
Wed Feb 14 01:08:58 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* posix/execvp.c: When executing shell on script, first arg is
full file name, not argv[0].
* mach/Makefile [no_deps]: Inhibit inclusion of mach-syscalls.mk.
* mach/Machrules [no_deps]: Inhibit interface rules.
* malloc/Makefile (distribute): Removed TODO.
Tue Feb 13 05:12:02 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/syscalls.list (ipc): Specify msgget in
caller column.
* sysdeps/unix/common/syscalls.list: Add sigaction syscall.
* sysdeps/unix/sysv/linux/gnu/types.h: Moved from linux/i386.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=math]
(sysdep_routines): Append setfpucw.
(extra-objs): Append ieee-fpucw.o.
(install-lib): Append libieee.a.
(libieee.a): New target.
* sysdeps/unix/sysv/linux/ieee-fpucw.c: New file.
* sysdeps/unix/sysv/linux/i386/fpu_control.h
(_FPU_GETCW, _FPU_SETCW): New macros.
(fpu_control_t): New typedef.
(__setfpucw): Use fpu_control_t for argument type.
* sysdeps/unix/sysv/linux/fpu_control.c: Moved from linux/i386.
* sysdeps/unix/sysv/linux/init-first.c: Moved from linux/i386.
* sysdeps/unix/sysv/linux/syscalls.list: Add ipc syscall.
* sysdeps/unix/sysv/linux/i386/syscalls.list: File removed.
Sat Feb 10 13:09:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/m68k/brk.c,
sysdeps/unix/sysv/linux/m68k/mmap.S,
sysdeps/unix/sysv/linux/m68k/select.S,
sysdeps/unix/sysv/linux/m68k/sigcontext.h,
sysdeps/unix/sysv/linux/m68k/sigreturn.S,
sysdeps/unix/sysv/linux/m68k/socket.S,
sysdeps/unix/sysv/linux/m68k/syscall.S,
sysdeps/unix/sysv/linux/m68k/sysdep.S,
sysdeps/unix/sysv/linux/m68k/sysdep.h: New files.
* sysdeps/unix/sysv/linux/m68k/fpu_control.h: New file.
* sysdeps/m68k/fpu/isinfl.c, sysdeps/m68k/fpu/isnanl.c,
sysdeps/m68k/isinfl.c, sysdeps/m68k/isnanl.c: New files.
* sysdeps/unix/sysv/linux/sys/mman.h: Define MAP_ANON and
MAP_FILE if not already defined.
* elf/elf.h: Add m68k reloc definitions.
* sysdeps/m68k/dl-machine.h, sysdeps/m68k/elf/start.S: New files.
Tue Feb 13 00:12:12 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* elf/dl-runtime.c (fixup) [ELF_MACHINE_RUNTIME_FIXUP_ARGS]: Let
this macro declare extra leading args.
* Makerules [$(elf)=yes] (ar-symtab-name): Define to empty.
* sysdeps/i386/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE,
elf_machine_relplt): New macros.
* elf/dl-runtime.c: New file.
* sysdeps/i386/dl-runtime.c, sysdeps/stub/dl-runtime.c: Files removed.
* gmon/Makefile (headers): Remove machine-gmon.h.
* sysdeps/stub/machine-gmon.h, sysdeps/i386/machine-gmon.h: Removed.
* gmon/mcount.c [! NO_UNDERSCORES] (_mcount): Specify "mcount" as
the asm name.
(_mcount): Define normally, taking no args.
Use __builtin_return_address to fetch PC values of caller and caller's
caller.
* Makerules: Rewrote rules to update libc archives of all flavors.
Define separate specific rules for each flavor using o-iterator.
* sysdeps/unix/Makefile: Include s-proto.d only ifdef subdir.
Sat Feb 10 11:35:16 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makerules (ar-symtab-name): New macro. Replace all occurences
of __.SYMDEF by $(ar-symtab-name).
* sysdeps/unix/sysv/Makefile (ar-symtab-name): Define as empty.
Mon Feb 12 03:10:41 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* Makefile (configure, %/configure): Depend on aclocal.m4.
* Make-dist (configure, %/configure): Likewise.
* sysdeps/unix/Makefile: Include s-proto.d for its deps.
* gmon/sys/gmon.h: Don't include machine-gmon.h; those defns are
only needed in the implementation, not for any users.
* time/northamerica: Updated from ADO 96c, new rules for Mexico in
1996.
* sunrpc/pm_getport.c: #if 0 out gratuitous inclusion of <net/if.h>.
* sunrpc/pm_getmaps.c: Likewise.
* sysdeps/unix/sysv/syscalls.list: Add setrlimit and settimeofday,
so real syscalls override unix/sysv/*.c on sysv-derived systems
that have them.
* sysdeps/unix/common/syscalls.list: Add settimeofday here, to
override unix/sysv/settimeofday.c since that overrides
unix/syscalls.list.
* Makeconfig (+link): Put $(link-libc) after deps from $^,
regardless of where libc.a appears in the deps.
* sysdeps/unix/sysv/sysv4/syscalls.list: Remove redundancies.
Add __waitid.
* sysdeps/unix/sysv/linux/syscalls.list: Remove redundancies.
Define __ name for sigprocmask.
* sysdeps/unix/bsd/ultrix4/syscalls.list: Remove redundancies.
Add getsysinfo.
* sysdeps/unix/bsd/sun/sunos4/syscalls.list: Remove redundancies.
* sysdeps/unix/bsd/sun/syscalls.list: Remove redundancies.
* sysdeps/unix/bsd/bsd4.4/syscalls.list: Remove redundancies.
* sysdeps/unix/bsd/syscalls.list: Remove settimeofday, utimes.
Add getdents, wait3, waitpid.
* sysdeps/unix/syscalls.list: Add seteuid, setegid, setsid,
settimeofday, sigsuspend, sstk, utimes.
* sysdeps/unix/bsd/ultrix4/mips/sigvec.S: File removed.
* sysdeps/unix/bsd/ultrix4/mips/syscalls.list: New file.
* sysdeps/unix/bsd/ultrix4/mips/Makefile (sysdep_routines):
Removed sigtramp.
* sysdeps/unix/bsd/ultrix4/mips/sigvec.c: Renamed from sigtramp.c.
* sysdeps/unix/bsd/bsd4.4/sstk.S: File removed.
* sysdeps/unix/bsd/hp/m68k/syscalls.list: File removed.
* sysdeps/unix/bsd/osf/alpha/getdents.S: File removed.
* sysdeps/unix/bsd/ultrix4/getsysinfo.S: File removed.
* sysdeps/unix/bsd/ultrix4/waitpid.S: File removed.
* sysdeps/unix/bsd/ultrix4/mips/sigtramp.c: File removed.
* sysdeps/unix/bsd/ultrix4/mips/sigvec.S: File removed.
* sysdeps/unix/bsd/ultrix4/mips/sigvec.c: New file.
* sysdeps/unix/bsd/ultrix4/mips/syscalls.list: New file.
* sysdeps/unix/sysv/irix4/wait3.S: File removed.
* sysdeps/unix/sysv/sysv4/__waitid.S: File removed.
* sysdeps/unix/sysv/sysv4/fchdir.S: File removed.
* sysdeps/unix/sysv/sysv4/setegid.S: File removed.
* sysdeps/unix/sysv/sysv4/seteuid.S: File removed.
* sysdeps/unix/sysv/sysv4/sigaltstack.S: File removed.
* sysdeps/unix/sysv/sysv4/solaris2/utimes.S: File removed.
* hurd/hurdfault.c (_hurdsig_fault_init): Set qlimit on
FORWARD_SIGEXC to one. Uncomment setting of thread exc port, and
move it to last thing.
Sat Feb 10 05:57:08 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/generic/make_siglist.c: #undef _SIGNAL_H before defining it.
* sysdeps/unix/sysv/linux/syscalls.list: Add sigprocmask, sigsuspend.
Sat Feb 10 04:18:48 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* posix/execvp.c: If execv fails with ENOEXEC, run the shell on
the file.
Fri Feb 9 11:46:45 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* time/Makefile (CFLAGS-zdump.c, CFLAGS-zic.c, CFLAGS-ialloc.c,
CFLAGS-scheck.c): Use -DNOID instead of -Wno-unused.
* hurd/Makefile (user-interfaces): Added hurd/tioctl.
Thu Feb 8 18:55:27 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* hurd/hurdioctl.c (tiocsctty): Set the terminal's pgrp to our own.
Wed Feb 7 18:48:30 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* Makefile (subdirs): Added wcsmbs.
* wcsmbs: New directory of wide char/multibyte char functions from
drepper.
* hurd/hurdmsg.c (_S_msg_report_wait): Function removed.
* hurd/report-wait.c: New file.
* hurd/Makefile (routines): Added report-wait.
* sysdeps/mach/hurd/Makefile (inhibit-unix-syscalls): New variable.
* sysdeps/mach/hurd/i386/intr-msg.h (struct mach_msg_trap_args):
New type.
(SYSCALL_EXAMINE, MSG_EXAMINE): New inline functions.
* sysdeps/mach/hurd/i386/trampoline.c (struct mach_msg_trap_args):
Structure moved to intr-msg.h; include that.
* time/Makefile (CFLAGS-ialloc.c): Add -Wno-unused.
(CFLAGS-scheck.c): New variable.
* sysdeps/mach/hurd/dl-sysdep.c (__hurd_sigthread_stack_base,
__hurd_sigthread_stack_end, __hurd_sigthread_variables,
__hurd_threadvar_stack_mask): New variables.
* sysdeps/mach/hurd/fork.c: Set the new task's exception port to
its new message port.
* misc/init-misc.c: Put __init_misc in the __libc_subinit set.
* configure.in (uname): Add quoting.
* sysdeps/mach/hurd/fchdir.c: Don't consult errno unless lookup fails.
* hurd/fchroot.c: Likewise.
* posix/sys/types.h [GCC >= 2.7]: Define intN_t/u_intN_t using
__attribute__ ((__mode__ (__XX__))).
Wed Feb 7 03:24:05 1996 Torbjorn Granlund <tege@tmg.se>
* sysdeps/i386/i586/memcopy.h (WORD_COPY_FWD): Manually allocate
destination cache lines.
(WORD_COPY_BWD): Likewise.
Wed Feb 7 14:16:36 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/generic/Makefile (make_siglist): Get signum.h absolute
file name first thing, before $(native-compile) changes directories.
From Gord Matzigkeit <gord@enci.ucalgary.ca>:
* sysdeps/unix/make_errlist.c: Use strerror if available.
* sysdeps/unix/configure.in: New file
* sysdeps/unix/bsd/sun/syscalls.list: Added sigvec.
* sysdeps/unix/bsd/sun/sigvec.S: File removed.
* sysdeps/stub/sendto.c: Make sockaddr arg pointer to const.
* sysdeps/stub/connect.c: Likewise.
* sysdeps/stub/bind.c: Likewise.
* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): RETRYNAME of
"" is only special for FS_RETRY_NORMAL; for FS_RETRY_REAUTH, do
another dir_lookup of "".
Fri Feb 2 13:09:18 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/mach/hurd/fork.c: Clear trace flag in child.
Wed Jan 31 20:08:26 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Clear SS->intr_port
+3 -3
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96 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
@@ -170,8 +170,8 @@ mv -f $@.new $@
test ! -d CVS || cvs commit -m'Regenerated: autoconf $(ACFLAGS) $<' $@
endef
configure: configure.in; $(autoconf-it)
%/configure: %/configure.in; $(autoconf-it)
configure: configure.in aclocal.m4; $(autoconf-it)
%/configure: %/configure.in aclocal.m4; $(autoconf-it)
.PHONY: dist
dist: $(tardir).tar.gz $(tardir)-crypt.tar.gz
+2 -2
View File
@@ -281,7 +281,7 @@ ifndef +link
+link = $(CC) -nostdlib -nostartfiles -o $@ \
$(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) \
$(addprefix $(csu-objpfx),start.o $(+preinit)) \
$(^:$(common-objpfx)libc%=$(link-libc)) \
$(filter-out $(common-objpfx)libc%,$^) $(link-libc) \
$(addprefix $(csu-objpfx),$(+postinit))
endif
ifndef config-LDFLAGS
@@ -450,7 +450,7 @@ ifeq (yes,$(build-profile))
# Under --enable-profile, we will build a static library of profiled objects.
# The profiled object files are named foo.po.
object-suffixes += .po
CFLAGS-.po = -p
CFLAGS-.po = -pg
libtype.po = lib%_p.a
endif
ifeq (yes,$(build-omitfp))
+3 -3
View File
@@ -36,8 +36,8 @@ mv -f $@.new $@
test ! -d CVS || cvs commit -m'Regenerated: autoconf $(ACFLAGS) $<' $@
endef
configure: configure.in; $(autoconf-it)
%/configure: %/configure.in; $(autoconf-it)
configure: configure.in aclocal.m4; $(autoconf-it)
%/configure: %/configure.in aclocal.m4; $(autoconf-it)
include Makeconfig
@@ -52,7 +52,7 @@ endif
# These are the subdirectories containing the library source.
subdirs = csu assert ctype db locale intl math setjmp signal stdlib \
stdio-common $(stdio) malloc string time dirent grp pwd \
stdio-common $(stdio) malloc string wcsmbs time dirent grp pwd\
posix io termios resource misc socket sysvipc gmon gnulib \
$(wildcard crypt) manual $(sysdep-subdirs) elf
export subdirs := $(subdirs) # Benign, useless in GNU make before 3.63.
+23 -17
View File
@@ -65,6 +65,15 @@ endif
# Add -I switches to get the right sysdep directories.
# `+includes' in Makeconfig references $(+sysdep-includes).
+sysdep-includes := $(addprefix -I,$(+sysdep_dirs))
# The name of the symbol table archive member. The default is suitable for
# BSD style archives. It can be overridden in sysdep Makefiles when SYSV
# style archive are used.
ifeq (no,$(elf))
ar-symtab-name = __.SYMDEF
else
ar-symtab-name = # The null name is used in ELF archives.
endif
# Include any system-specific makefiles.
@@ -349,7 +358,7 @@ ARFLAGS := r$(verbose)
lib: lib-noranlib $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
# Pattern rule for libraries: depend on the __.SYMDEF member updated by ranlib.
lib%.a: lib%.a(__.SYMDEF) ;
lib%.a: lib%.a($(ar-symtab-name)) ;
libobjs: $(foreach o,$(object-suffixes),\
$(common-objpfx)$(patsubst %,$(libtype$o),c)(\
@@ -392,21 +401,18 @@ endif
endif
# Rules to update the __.SYMDEF member with ranlib.
# To consolidate, each flavor library's __.SYMDEF member
# depends on the imaginary intermediate file `symdef.SUFFIX',
# where SUFFIX is that flavor's object suffix; then a pattern rule
# "remakes" symdef.% depending on all the libc.a(foo.%) files in $(objects).
$(common-objpfx)$(patsubst %,$(libtype.o),c)(__.SYMDEF): symdef.o
$(common-objpfx)$(patsubst %,$(libtype.so),c)(__.SYMDEF): symdef.so
$(common-objpfx)$(patsubst %,$(libtype.po),c)(__.SYMDEF): symdef.po
$(common-objpfx)$(patsubst %,$(libtype.go),c)(__.SYMDEF): symdef.go
symdef.%: $(foreach o,$(object-suffixes),\
$(common-objpfx)$(patsubst %,$(libtype$o),c)(\
$(patsubst $(objpfx)%.o,%.%,$(objects)))) \
$(filter subdir_lib,$(firstword $(subdir) subdir_lib))
# The last line above makes it also depend on subdir_lib for the parent.
$(RANLIB) $(common-objpfx)$(patsubst %,$(libtype.$*),c)
# Rules to update the $(ar-symtab-name) member with ranlib,
# one for each object flavor.
define o-iterator-doit
$(common-objpfx)$(patsubst %,$(libtype$o),c)($(ar-symtab-name)): \
$(common-objpfx)$(patsubst %,$(libtype$o),c)(\
$(patsubst $(objpfx)%.o,%$o,$(objects))) \
$(filter subdir_lib,$(firstword $(subdir) subdir_lib)); \
$$(RANLIB) $$(common-objpfx)$$(patsubst %,$$(libtype$o),c)
endef
object-suffixes-left = $(object-suffixes)
include $(o-iterator)
# This makes all the object files.
.PHONY: objects objs
@@ -613,7 +619,7 @@ check: tests
.PHONY: TAGS
TAGS: distinfo $(..)MakeTAGS
$(MAKE) $(addprefix -f ,$^)
$(MAKE) $(addprefix -f ,$^) $@
.PHONY: echo-headers
echo-headers:
+19 -5
View File
@@ -51,9 +51,10 @@ trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
alpha:OSF1:V*:*)
alpha:OSF1:[VX]*:*)
# After 1.2, OSF1 uses "V1.3" for uname -r.
echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'`
# After 4.x, OSF1 uses "X4.x" for uname -r.
echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VX]//'`
exit 0 ;;
alpha:OSF1:*:*)
# 1.2 uses "1.2" for uname -r.
@@ -62,6 +63,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
exit 0 ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-cbm-sysv4
exit 0;;
amiga:NetBSD:*:*)
echo m68k-cbm-netbsd${UNAME_RELEASE}
exit 0 ;;
@@ -320,6 +324,12 @@ EOF
*:NetBSD:*:*)
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
i*:CYGWIN*:*)
echo i386-unknown-cygwin32
exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin32
exit 0 ;;
*:GNU:*:*)
echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;;
@@ -327,12 +337,16 @@ EOF
# The BFD linker knows what the default object file format is, so
# first see if it will tell us.
ld_help_string=`ld --help 2>&1`
if echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then
if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then
echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then
echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then
echo "${UNAME_MACHINE}-unknown-linuxcoff" ; exit 0
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then
echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then
echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
elif test "${UNAME_MACHINE}" = "alpha" ; then
echo alpha-unknown-linux ; exit 0
else
Vendored
+8 -4
View File
@@ -127,6 +127,9 @@ case $os in
-windowsnt*)
os=`echo $os | sed -e 's/windowsnt/winnt/'`
;;
-psos*)
os=-psos
;;
esac
# Decode aliases for certain CPU-COMPANY combinations.
@@ -136,10 +139,10 @@ case $basic_machine in
tahoe | i[3456]86 | i860 | m68k | m68000 | m88k | ns32k | arm \
| arme[lb] | pyramid \
| tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
| alpha | we32k | ns16k | clipper | sparclite | i370 | sh \
| powerpc | powerpcle | sparc64 | 1750a | dsp16xx | mips64 | mipsel \
| alpha | we32k | ns16k | clipper | i370 | sh \
| powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
| pdp11 | mips64el | mips64orion | mips64orionel \
| sparc)
| sparc | sparclet | sparclite | sparc64)
basic_machine=$basic_machine-unknown
;;
# Object if more than one company name word.
@@ -653,7 +656,8 @@ case $os in
| -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux*)
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin32* | -pe* | -psos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-sunos5*)
Vendored
+20 -16
View File
@@ -520,12 +520,9 @@ fi
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='echo $CPP $CPPFLAGS 1>&5;
$CPP $CPPFLAGS'
ac_compile='echo ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5;
${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5'
ac_link='echo ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5;
${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5'
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
@@ -1150,12 +1147,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
#line 1154 "configure"
#line 1151 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1157: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1164,12 +1162,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
#line 1168 "configure"
#line 1166 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1218,7 +1217,7 @@ if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&4
else
cat > conftest.$ac_ext <<EOF
#line 1222 "configure"
#line 1221 "configure"
#include "confdefs.h"
#define __need_size_t
#define __need_wchar_t
@@ -1234,7 +1233,7 @@ size_t size; wchar_t wchar;
if (&size == NULL || &wchar == NULL) abort ();
; return 0; }
EOF
if eval $ac_compile; then
if { (eval echo configure:1237: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_friendly_stddef=yes
else
@@ -1341,7 +1340,7 @@ if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&4
else
cat > conftest.$ac_ext <<EOF
#line 1345 "configure"
#line 1344 "configure"
#include "confdefs.h"
int main() { return 0; }
@@ -1350,7 +1349,7 @@ asm (".section .init");
asm (".section .fini");
; return 0; }
EOF
if eval $ac_compile; then
if { (eval echo configure:1353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_have_initfini=yes
else
@@ -1382,9 +1381,14 @@ for dir in $sysnames; do
echo "$ac_t""running configure fragment for $dir" 1>&4
. $sysdep_dir/$dir/configure
fi
if test -z "$uname"; then
{ test -r $sysdep_dir/$dir/uname.c || test -r $sysdep_dir/$dir/uname.S; } \
&& uname=$dir
if test -r $sysdep_dir/$dir/uname.c ||
test -r $sysdep_dir/$dir/uname.S ||
{ test -r $sysdep_dir/$dir/syscalls.list &&
grep '^uname[ ]' $sysdep_dir/$dir/syscalls.list >/dev/null; }; then
uname=$dir
fi
fi
done
+3
View File
@@ -418,13 +418,16 @@ for dir in $sysnames; do
AC_MSG_RESULT(running configure fragment for $dir)
. $sysdep_dir/$dir/configure
fi
[
if test -z "$uname"; then
if test -r $sysdep_dir/$dir/uname.c ||
test -r $sysdep_dir/$dir/uname.S ||
{ test -r $sysdep_dir/$dir/syscalls.list &&
grep '^uname[ ]' $sysdep_dir/$dir/syscalls.list >/dev/null; }; then
uname=$dir
fi
fi
]dnl
done
AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
+3 -6
View File
@@ -70,13 +70,10 @@ _init (void)
gcrt1.o to reference a symbol which would be defined by some library
module which has a constructor; but then user code's constructors
would come first, and not be profiled. */
extern volatile void __gmon_start__ (void) __attribute__ ((weak));
/* This volatile variable is necessary to avoid GCC optimizing
out the test. */
register volatile void (*g) (void) = &__gmon_start__;
extern void __gmon_start__ (void) __attribute__ ((weak));
weak_symbol (__gmon_start__)
if (g)
(*g) ();
if (__gmon_start__)
__gmon_start__ ();
/* End the here document containing the .init prologue code.
Then fetch the .section directive just written and append that
+5
View File
@@ -0,0 +1,5 @@
*.gz *.Z *.tar *.tgz
=*
TODO COPYING* AUTHORS copyr-* copying.*
glibc-*
distinfo
+2
View File
@@ -33,6 +33,8 @@ rtld-routines := rtld $(addprefix dl-,minimal load lookup object reloc \
distribute = $(rtld-routines:=.c) dynamic-link.h do-rel.h \
soinit.c sofini.c ldd.sh.in linux-compat.c
all: # Make this the default target; it will be defined in Rules.
include ../Makeconfig
ifeq (yes,$(build-shared))
+108
View File
@@ -0,0 +1,108 @@
/* On-demand PLT fixup for shared objects.
Copyright (C) 1995, 1996 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. */
#include <link.h>
#include "dynamic-link.h"
/* Figure out the right type, Rel or Rela. */
#define elf_machine_rel 1
#define elf_machine_rela 2
#if elf_machine_relplt == elf_machine_rel
#define PLTREL Elf32_Rel
#elif elf_machine_relplt == elf_machine_rela
#define PLTREL Elf32_Rela
#else
#error "dl-machine.h bug: elf_machine_relplt not rel or rela"
#endif
#undef elf_machine_rel
#undef elf_machine_rela
/* We need to define the function as a local symbol so that the reference
in the trampoline code will be a local PC-relative call. Tell the
compiler not to worry that the function appears not to be called. */
static Elf32_Addr fixup (
#ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
ELF_MACHINE_RUNTIME_FIXUP_ARGS,
#endif
struct link_map *l, Elf32_Word reloc_offset)
__attribute__ ((unused));
/* This function is called through a special trampoline from the PLT the
first time each PLT entry is called. We must perform the relocation
specified in the PLT of the given shared object, and return the resolved
function address to the trampoline, which will restart the original call
to that address. Future calls will bounce directly from the PLT to the
function. */
static Elf32_Addr
fixup (
#ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
ELF_MACHINE_RUNTIME_FIXUP_ARGS,
#endif
struct link_map *l, Elf32_Word reloc_offset)
{
const Elf32_Sym *const symtab
= (const Elf32_Sym *) (l->l_addr + l->l_info[DT_SYMTAB]->d_un.d_ptr);
const char *strtab =
(const char *) (l->l_addr + l->l_info[DT_STRTAB]->d_un.d_ptr);
const PLTREL *const reloc
= (const void *) (l->l_addr + l->l_info[DT_JMPREL]->d_un.d_ptr +
reloc_offset);
const Elf32_Sym *definer;
Elf32_Addr loadbase;
struct link_map *scope, *real_next;
/* Look up the symbol's run-time value. */
real_next = l->l_next;
if (l->l_info[DT_SYMBOLIC])
{
l->l_next = _dl_loaded;
if (l->l_prev)
l->l_prev->l_next = real_next;
scope = l;
}
else
scope = _dl_loaded;
definer = &symtab[ELF32_R_SYM (reloc->r_info)];
loadbase = _dl_lookup_symbol (strtab + definer->st_name, &definer,
scope, l->l_name, 0);
/* Restore list frobnication done above for DT_SYMBOLIC. */
l->l_next = real_next;
if (l->l_prev)
l->l_prev->l_next = l;
/* Apply the relocation with that value. */
elf_machine_relplt (l, reloc, loadbase, definer);
return *(Elf32_Addr *) (l->l_addr + reloc->r_offset);
}
/* This macro is defined in dl-machine.h to define the entry point called
by the PLT. The `fixup' function above does the real work, but a little
more twiddling is needed to get the stack right and jump to the address
finally resolved. */
ELF_MACHINE_RUNTIME_TRAMPOLINE
+2 -2
View File
@@ -1,5 +1,5 @@
/* Inline functions for dynamic linking.
Copyright (C) 1995 Free Software Foundation, Inc.
Copyright (C) 1995, 1996 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
@@ -43,7 +43,7 @@ elf_get_dynamic_info (Elf32_Dyn *dyn, Elf32_Dyn *info[DT_NUM + DT_PROCNUM])
dyn->d_tag < DT_LOPROC + DT_PROCNUM)
info[dyn->d_tag - DT_LOPROC + DT_NUM] = dyn;
else
assert (! "bad dynamic tag");
assert (! "bad dynamic tag");
dyn++;
}
+28
View File
@@ -439,6 +439,34 @@ typedef struct
#define AT_GID 13 /* Real gid */
#define AT_EGID 14 /* Effective gid */
/* Motorola 68k specific definitions. */
/* m68k relocs. */
#define R_68K_NONE 0 /* No reloc */
#define R_68K_32 1 /* Direct 32 bit */
#define R_68K_16 2 /* Direct 16 bit */
#define R_68K_8 3 /* Direct 8 bit */
#define R_68K_PC32 4 /* PC relative 32 bit */
#define R_68K_PC16 5 /* PC relative 16 bit */
#define R_68K_PC8 6 /* PC relative 8 bit */
#define R_68K_GOT32 7 /* 32 bit PC relative GOT entry */
#define R_68K_GOT16 8 /* 16 bit PC relative GOT entry */
#define R_68K_GOT8 9 /* 8 bit PC relative GOT entry */
#define R_68K_GOT32O 10 /* 32 bit GOT offset */
#define R_68K_GOT16O 11 /* 16 bit GOT offset */
#define R_68K_GOT8O 12 /* 8 bit GOT offset */
#define R_68K_PLT32 13 /* 32 bit PC relative PLT address */
#define R_68K_PLT16 14 /* 16 bit PC relative PLT address */
#define R_68K_PLT8 15 /* 8 bit PC relative PLT address */
#define R_68K_PLT32O 16 /* 32 bit PLT offset */
#define R_68K_PLT16O 17 /* 16 bit PLT offset */
#define R_68K_PLT8O 18 /* 8 bit PLT offset */
#define R_68K_COPY 19 /* Copy symbol at runtime */
#define R_68K_GLOB_DAT 20 /* Create GOT entry */
#define R_68K_JMP_SLOT 21 /* Create PLT entry */
#define R_68K_RELATIVE 22 /* Adjust by program base */
/* Intel 80386 specific definitions. */
/* i386 relocs. */
+2 -2
View File
@@ -21,8 +21,8 @@
#
subdir := gmon
headers := sys/gmon.h machine-gmon.h
headers := sys/gmon.h
distribute := machine-gmon.h
routines := gmon mcount profil
include ../Rules
+6 -2
View File
@@ -38,6 +38,10 @@ static char sccsid[] = "@(#)mcount.c 8.1 (Berkeley) 6/4/93";
#include <sys/param.h>
#include <sys/gmon.h>
/* This file provides the machine-dependent definitions of the _MCOUNT_DECL
and MCOUNT macros. */
#include "machine-gmon.h"
/*
* mcount is called on entry to each function compiled with the profiling
* switch set. _mcount(), which is declared in a machine-dependent way
@@ -48,7 +52,7 @@ static char sccsid[] = "@(#)mcount.c 8.1 (Berkeley) 6/4/93";
* _mcount updates data structures that represent traversals of the
* program's call graph edges. frompc and selfpc are the return
* address and function address that represents the given call graph edge.
*
*
* Note: the original BSD code used the same variable (frompcindex) for
* both frompcindex and frompc. Any reasonable, modern compiler will
* perform this optimization.
@@ -154,7 +158,7 @@ _MCOUNT_DECL(frompc, selfpc) /* _mcount; may be static, inline, etc */
*frompcindex = toindex;
goto done;
}
}
done:
#ifdef KERNEL
-1
View File
@@ -37,7 +37,6 @@
#define _SYS_GMON_H_
#include <sys/cdefs.h>
#include <machine-gmon.h>
/*
* Structure prepended to gmon.out profiling data file.
+2 -2
View File
@@ -37,7 +37,7 @@ user-interfaces := $(addprefix hurd/,\
process process_request \
msg msg_reply msg_request \
exec exec_startup crash interrupt \
fs fsys io term socket ifsock)
fs fsys io term tioctl socket ifsock)
server-interfaces := hurd/msg
routines = hurdstartup hurdinit \
@@ -51,7 +51,7 @@ routines = hurdstartup hurdinit \
fopenport \
vpprintf \
ports-get ports-set hurdports hurdmsg \
$(sig) $(dtable) hurdinline port-cleanup # report-wait
$(sig) $(dtable) hurdinline port-cleanup report-wait
sig = hurdsig hurdfault faultexc siginfo hurd-raise preempt-sig \
trampoline longjmp-ts catch-exc exc2signal hurdkill sigunwind \
thread-self thread-cancel intr-msg catch-signal
+6 -4
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 93, 94, 95, 96 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
@@ -29,9 +29,11 @@ DEFUN(fchroot, (fd), int fd)
error_t err;
file_t dir;
err = HURD_DPORT_USE (fd, (dir = __file_name_lookup_under (port, "",
O_EXEC, 0),
errno));
err = HURD_DPORT_USE (fd,
({
dir = __file_name_lookup_under (port, "", O_EXEC, 0);
dir == MACH_PORT_NULL ? errno : 0;
}));
if (! err)
_hurd_port_set (&_hurd_ports[INIT_PORT_CRDIR], dir);
+6 -3
View File
@@ -1,5 +1,5 @@
/* User-registered handlers for specific `ioctl' requests.
Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
Copyright (C) 1993, 1994, 1995, 1996 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
@@ -22,6 +22,7 @@ Cambridge, MA 02139, USA. */
#define __need___va_list
#include <stdarg.h>
#include <ioctls.h>
/* Type of handler function, called like ioctl to do its entire job. */
@@ -30,7 +31,8 @@ typedef int (*ioctl_handler_t) (int fd, int request, void *arg);
/* Structure that records an ioctl handler. */
struct ioctl_handler
{
int first_request, last_request; /* Range of handled request values. */
/* Range of handled _IOC_NOTYPE (REQUEST) values. */
int first_request, last_request;
/* Handler function, called like ioctl to do its entire job. */
ioctl_handler_t handler;
@@ -54,7 +56,8 @@ extern int hurd_register_ioctl_handler (int first_request, int last_request,
#define _HURD_HANDLE_IOCTLS(handler, first, last) \
static const struct ioctl_handler handler##_ioctl_handler \
__attribute__ ((__unused__)) = \
{ (first), (last), (int (*) (int, int, void *)) (handler), NULL }; \
{ _IOC_NOTYPE (first), _IOC_NOTYPE (last), \
(int (*) (int, int, void *)) (handler), NULL }; \
text_set_element (_hurd_ioctl_handler_lists, ##handler##_ioctl_handler)
/* Define a library-internal handler for a single ioctl command. */
+17 -5
View File
@@ -113,6 +113,8 @@ _hurdsig_fault_init (void)
struct machine_thread_state state;
mach_port_t sigexc;
/* Allocate a port to receive signal thread exceptions.
We will move this receive right to the proc server. */
err = __mach_port_allocate (__mach_task_self (),
MACH_PORT_RIGHT_RECEIVE, &sigexc);
assert_perror (err);
@@ -120,16 +122,20 @@ _hurdsig_fault_init (void)
MACH_PORT_RIGHT_RECEIVE, &forward_sigexc);
assert_perror (err);
/* Allocate a port to receive the exception msgs forwarded
from the proc server. */
err = __mach_port_insert_right (__mach_task_self (), sigexc,
sigexc, MACH_MSG_TYPE_MAKE_SEND);
assert_perror (err);
#if 0 /* XXX gdb bites */
err = __thread_set_special_port (_hurd_msgport_thread,
THREAD_EXCEPTION_PORT, sigexc);
#endif
__mach_port_deallocate (__mach_task_self (), sigexc);
/* Set the queue limit for this port to just one. The proc server will
notice if we ever get a second exception while one remains queued and
unreceived, and decide we are hopelessly buggy. */
err = __mach_port_set_qlimit (__mach_task_self (), forward_sigexc, 1);
assert_perror (err);
/* This state will be restored when we fault.
It runs the function above. */
memset (&state, 0, sizeof state);
MACHINE_THREAD_STATE_SET_PC (&state, faulted);
MACHINE_THREAD_STATE_SET_SP (&state, faultstack, sizeof faultstack);
@@ -143,5 +149,11 @@ _hurdsig_fault_init (void)
(natural_t *) &state,
MACHINE_THREAD_STATE_COUNT));
assert_perror (err);
/* Direct signal thread exceptions to the proc server. */
err = __thread_set_special_port (_hurd_msgport_thread,
THREAD_EXCEPTION_PORT, sigexc);
__mach_port_deallocate (__mach_task_self (), sigexc);
assert_perror (err);
}
+16 -6
View File
@@ -1,5 +1,5 @@
/* ioctl commands which must be done in the C library.
Copyright (C) 1994, 1995 Free Software Foundation, Inc.
Copyright (C) 1994, 1995, 1996 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
@@ -36,6 +36,10 @@ _hurd_lookup_ioctl_handler (int request)
void *const *ptr;
const struct ioctl_handler *h;
/* Mask off the type bits, so that we see requests in a single group as a
contiguous block of values. */
request = _IOC_NOTYPE (request);
for (ptr = symbol_set_first_element (_hurd_ioctl_handler_lists);
!symbol_set_end_p (_hurd_ioctl_handler_lists, ptr);
++ptr)
@@ -62,7 +66,7 @@ fioctl (int fd,
switch (request)
{
default:
err = EGRATUITOUS;
err = ENOTTY;
break;
case FIONREAD:
@@ -97,7 +101,7 @@ fioctl (int fd,
break;
}
return err ? __hurd_fail (err) : 0;
return err ? __hurd_dfail (fd, err) : 0;
}
_HURD_HANDLE_IOCTLS (fioctl, FIOGETOWN, FIONREAD);
@@ -112,7 +116,7 @@ fioclex (int fd,
switch (request)
{
default:
return __hurd_fail (EGRATUITOUS);
return __hurd_fail (ENOTTY);
case FIOCLEX:
flag = FD_CLOEXEC;
break;
@@ -126,12 +130,13 @@ fioclex (int fd,
_HURD_HANDLE_IOCTLS (fioclex, FIOCLEX, FIONCLEX);
#include <hurd/term.h>
#include <hurd/tioctl.h>
static void
rectty_dtable (mach_port_t cttyid)
{
int i;
HURD_CRITICAL_BEGIN;
__mutex_lock (&_hurd_dtable_lock);
@@ -222,6 +227,11 @@ tiocsctty (int fd,
else if (err)
return __hurd_fail (err);
/* Change the terminal's pgrp to ours. */
err = HURD_DPORT_USE (fd, __tioctl_tiocspgrp (port, _hurd_pgrp));
if (err)
return __hurd_fail (err);
/* Make it our own. */
_hurd_port_set (&_hurd_ports[INIT_PORT_CTTYID], cttyid);
@@ -256,7 +266,7 @@ tiocnotty (int fd,
_hurd_port_set (&_hurd_ports[INIT_PORT_CTTYID], MACH_PORT_NULL);
/* Reset all the ctty ports in all the descriptors. */
__USEPORT (CTTYID, (rectty_dtable (MACH_PORT_NULL), 0));
return 0;
+4 -1
View File
@@ -133,7 +133,10 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
#endif
/* An empty RETRYNAME indicates we have the final port. */
if (retryname[0] == '\0')
if (retryname[0] == '\0' &&
/* If reauth'd, we must do one more retry on "" to give the new
translator a chance to make a new port for us. */
doretry == FS_RETRY_NORMAL)
{
/* We got a successful translation. Now apply any open-time
action flags we were passed. */
-7
View File
@@ -449,10 +449,3 @@ _S_msg_set_dtable (mach_port_t process,
kern_return_t
_S_msg_startup_dosync (mach_port_t process)
{ return EOPNOTSUPP; }
kern_return_t
_S_msg_report_wait (mach_port_t process,
mach_port_t thread,
string_t wait_desc,
int *wait_rpc)
{ return EOPNOTSUPP; }
+146
View File
@@ -0,0 +1,146 @@
/* Report on what a thread in our task is waiting for.
Copyright (C) 1996 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. */
#include <hurd.h>
#include <hurd/signal.h>
#include <hurd/fd.h>
#include <string.h>
#include <assert.h>
#include <hurd/msg_server.h>
#include "thread_state.h"
#include "intr-msg.h"
static void
describe_number (string_t description, const char *flavor, int i)
{
char *p = __stpcpy (description, flavor);
p += i / 10 + 1;
*p = '\0';
do
{
*--p = '0' + i % 10;
i /= 10;
} while (i != 0);
assert (p[-1] == '#');
}
static void
describe_port (string_t description, mach_port_t port)
{
int i;
if (port == __mach_task_self ())
{
strcpy (description, "task-self");
return;
}
for (i = 0; i < _hurd_nports; ++i)
if (port == _hurd_ports[i].port)
{
describe_number (description, "init#", i);
return;
}
if (_hurd_init_dtable)
{
for (i = 0; i < _hurd_init_dtablesize; ++i)
if (port == _hurd_init_dtable[i])
{
describe_number (description, "fd#", i);
return;
}
}
else if (_hurd_dtable)
{
for (i = 0; i < _hurd_dtablesize; ++i)
if (_hurd_dtable[i] == NULL)
continue;
else if (port == _hurd_dtable[i]->port.port)
{
describe_number (description, "fd#", i);
return;
}
else if (port == _hurd_dtable[i]->ctty.port)
{
describe_number (description, "bgfd#", i);
return;
}
}
describe_number (description, "port#", port);
}
kern_return_t
_S_msg_report_wait (mach_port_t msgport, thread_t thread,
string_t description, int *msgid)
{
*msgid = 0;
if (thread == _hurd_msgport_thread)
/* Cute. */
strcpy (description, "msgport");
else
{
/* Make sure this is really one of our threads. */
struct hurd_sigstate *ss;
__mutex_lock (&_hurd_siglock);
for (ss = _hurd_sigstates; ss != NULL; ss = ss->next)
if (ss->thread == thread)
break;
__mutex_unlock (&_hurd_siglock);
if (ss == NULL)
/* To hell with you. */
return EINVAL;
if (ss->suspended != MACH_PORT_NULL)
strcpy (description, "sigsuspend");
else
{
/* Examine the thread's state to see if it is blocked in an RPC. */
struct machine_thread_state state;
mach_msg_type_number_t count = MACHINE_THREAD_STATE_COUNT;
error_t err;
err = __thread_get_state (thread, MACHINE_THREAD_STATE_FLAVOR,
(integer_t *) &state, &count);
if (err)
return err;
assert (count == MACHINE_THREAD_STATE_COUNT);
if (SYSCALL_EXAMINE (&state, msgid))
{
/* Blocked in a system call. */
if (*msgid == -25)
/* mach_msg system call. Examine its parameters. */
describe_port (description, MSG_EXAMINE (&state, msgid));
else
strcpy (description, "kernel");
}
else
description[0] = '\0';
}
}
__mach_port_deallocate (__mach_task_self (), thread);
return 0;
}
+3 -3
View File
@@ -31,9 +31,9 @@ CPPFLAGS += -D'GNULOCALEDIR="$(localedir)"' \
ifdef gettext-srcdir
%:: $(gettext-srcdir)/intl/%.glibc; $(copysrc)
%:: $(gettext-srcdir)/intl/%.c; $(copysrc)
%:: $(gettext-srcdir)/intl/%.h; $(copysrc)
%.h:: $(gettext-srcdir)/intl/%.glibc; $(copysrc)
%.c:: $(gettext-srcdir)/intl/%.c; $(copysrc)
%.h:: $(gettext-srcdir)/intl/%.h; $(copysrc)
define copysrc
cp -f $< $@.new
+26 -15
View File
@@ -1,5 +1,5 @@
/* dcgettext.c -- implemenatation of the dcgettext(3) function
Copyright (C) 1995 Software Foundation, Inc.
/* dcgettext.c -- implementation of the dcgettext(3) function
Copyright (C) 1995 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef __GNUC__
# define alloca __builtin_alloca
#else
# ifdef HAVE_ALLOCA_H || defined _LIBC
# if defined HAVE_ALLOCA_H || defined _LIBC
# include <alloca.h>
# else
# ifdef _AIX
@@ -151,10 +151,11 @@ const char _nl_default_dirname[] = GNULOCALEDIR;
struct binding *_nl_domain_bindings;
/* Prototypes for local functions. */
static char *find_msg __P ((struct loaded_domain *domain, const char *msgid));
static const char *category_to_name __P((int category));
static const char *guess_category_value __P((int category,
const char *categoryname));
static char *find_msg PARAMS ((struct loaded_domain *domain,
const char *msgid));
static const char *category_to_name PARAMS ((int category));
static const char *guess_category_value PARAMS ((int category,
const char *categoryname));
/* Names for the libintl functions are a problem. They must not clash
@@ -182,6 +183,7 @@ DCGETTEXT (domainname, msgid, category)
char *dirname, *xdomainname;
char *single_locale;
char *retval;
int saved_errno = errno;
/* If no real MSGID is given return NULL. */
if (msgid == NULL)
@@ -233,9 +235,12 @@ DCGETTEXT (domainname, msgid, category)
}
if (ret == NULL)
/* We cannot get the current working directory. Don't signal an
error but simply return the default string. */
return (char *) msgid;
{
/* We cannot get the current working directory. Don't signal an
error but simply return the default string. */
errno = saved_errno;
return (char *) msgid;
}
/* We don't want libintl.a to depend on any other library. So
we avoid the non-standard function stpcpy. In GNU C Library
@@ -302,7 +307,10 @@ DCGETTEXT (domainname, msgid, category)
domain. Return the MSGID. */
if (strcmp (single_locale, "C") == 0
|| strcmp (single_locale, "POSIX") == 0)
return (char *) msgid;
{
errno = saved_errno;
return (char *) msgid;
}
/* Find structure describing the message catalog matching the
@@ -317,7 +325,7 @@ DCGETTEXT (domainname, msgid, category)
{
int cnt;
for (cnt = 0; domain->successor[cnt] != NULL; --cnt)
for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
{
retval = find_msg (domain->successor[cnt], msgid);
@@ -327,7 +335,10 @@ DCGETTEXT (domainname, msgid, category)
}
if (retval != NULL)
return retval;
{
errno = saved_errno;
return retval;
}
}
}
/* NOTREACHED */
@@ -375,8 +386,8 @@ find_msg (domain, msgid)
while (1)
{
if (idx >= W (domain->must_swap, domain->hash_size) - incr)
idx -= W (domain->must_swap, domain->hash_size) - incr;
if (idx >= domain->hash_size - incr)
idx -= domain->hash_size - incr;
else
idx += incr;
+13 -13
View File
@@ -1,5 +1,5 @@
/* finddomain.c -- handle list of needed message catalogs
Copyright (C) 1995 Software Foundation, Inc.
Copyright (C) 1995 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This program is free software; you can redistribute it and/or modify
@@ -83,21 +83,21 @@ void free ();
static struct loaded_domain *_nl_loaded_domains;
/* Prototypes for local functions. */
static struct loaded_domain *make_entry_rec __P ((const char *dirname,
int mask,
const char *language,
const char *territory,
const char *codeset,
const char *modifier,
const char *special,
const char *sponsor,
const char *revision,
const char *domainname,
int do_allocate));
static struct loaded_domain *make_entry_rec PARAMS ((const char *dirname,
int mask,
const char *language,
const char *territory,
const char *codeset,
const char *modifier,
const char *special,
const char *sponsor,
const char *revision,
const char *domainname,
int do_allocate));
/* Substitution for systems lacking this function in their C library. */
#if !_LIBC && !HAVE_STPCPY
static char *stpcpy __P ((char *dest, const char *src));
static char *stpcpy PARAMS ((char *dest, const char *src));
#endif
+12 -9
View File
@@ -1,5 +1,5 @@
/* gettextP.h -- header describing internals of gettext library
Copyright (C) 1995 Software Foundation, Inc.
Copyright (C) 1995 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,11 +20,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* @@ end of prolog @@ */
#ifndef __P
#ifndef PARAMS
# if __STDC__
# define __P(args) args
# define PARAMS(args) args
# else
# define __P(args) ()
# define PARAMS(args) ()
# endif
#endif
@@ -32,6 +32,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
# define W(flag, data) ((flag) ? SWAP (data) : (data))
#endif
static nls_uint32 SWAP PARAMS ((nls_uint32 i));
static inline nls_uint32
SWAP (i)
nls_uint32 i;
@@ -64,12 +67,12 @@ struct binding
char *dirname;
};
struct loaded_domain *_nl_find_domain __P ((const char *__dirname,
char *__locale,
const char *__domainname));
void _nl_load_domain __P ((struct loaded_domain *__domain));
struct loaded_domain *_nl_find_domain PARAMS ((const char *__dirname,
char *__locale,
const char *__domainname));
void _nl_load_domain PARAMS ((struct loaded_domain *__domain));
const char *_nl_expand_alias __P ((const char *__name));
const char *_nl_expand_alias PARAMS ((const char *__name));
/* @@ begin of epilog @@ */
+16 -10
View File
@@ -1,5 +1,5 @@
/* hash-string - Implements a string hashing function.
Copyright (C) 1995 Software Foundation, Inc.
Copyright (C) 1995 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,22 +21,28 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* @@ end of prolog @@ */
#ifndef BITSPERBYTE
# define BITSPERBYTE 8
#ifndef PARAMS
# if __STDC__
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
#ifndef LONGBITS
# define LONGBITS (sizeof (long) * BITSPERBYTE)
#endif /* LONGBITS */
/* We assume to have `unsigned long int' value with at least 32 bits. */
#define HASHWORDBITS 32
/* Defines the so called `hashpjw' function by P.J. Weinberger
[see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
1986, 1987 Bell Telephone Laboratories, Inc.] */
1986, 1987 Bell Telephone Laboratories, Inc.] */
static unsigned long hash_string PARAMS ((const char *__str_param));
static inline unsigned long
hash_string (str_param)
const char *str_param;
{
unsigned long hval, g;
unsigned long int hval, g;
const char *str = str_param;
/* Compute the hash value for the given string. */
@@ -45,10 +51,10 @@ hash_string (str_param)
{
hval <<= 4;
hval += (unsigned long) *str++;
g = hval & ((unsigned long) 0xf << (LONGBITS - 4));
g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4));
if (g != 0)
{
hval ^= g >> (LONGBITS - 8);
hval ^= g >> (HASHWORDBITS - 8);
hval ^= g;
}
}
+18 -16
View File
@@ -37,34 +37,36 @@ __BEGIN_DECLS
/* Look up MSGID in the current default message catalog for the current
LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */
extern char *gettext __P ((const char *__msgid));
extern char *__gettext __P ((const char *__msgid));
extern char *gettext __P ((__const char *__msgid));
extern char *__gettext __P ((__const char *__msgid));
/* Look up MSGID in the DOMAINNAME message catalog for the current
LC_MESSAGES locale. */
extern char *dgettext __P ((const char *__domainname, const char *__msgid));
extern char *__dgettext __P ((const char *__domainname, const char *__msgid));
extern char *dgettext __P ((__const char *__domainname,
__const char *__msgid));
extern char *__dgettext __P ((__const char *__domainname,
__const char *__msgid));
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
locale. */
extern char *dcgettext __P ((const char *__domainname, const char *__msgid,
int __category));
extern char *__dcgettext __P ((const char *__domainname, const char *__msgid,
int __category));
extern char *dcgettext __P ((__const char *__domainname,
__const char *__msgid, int __category));
extern char *__dcgettext __P ((__const char *__domainname,
__const char *__msgid, int __category));
/* Set the current default message catalog to DOMAINNAME.
If DOMAINNAME is null, return the current default.
If DOMAINNAME is "", reset to the default of "messages". */
extern char *textdomain __P ((const char *__domainname));
extern char *__textdomain __P ((const char *__domainname));
extern char *textdomain __P ((__const char *__domainname));
extern char *__textdomain __P ((__const char *__domainname));
/* Specify that the DOMAINNAME message catalog will be found
in DIRNAME rather than in the system locale data base. */
extern char *bindtextdomain __P ((const char *__domainname,
const char *__dirname));
extern char *__bindtextdomain __P ((const char *__domainname,
const char *__dirname));
extern char *bindtextdomain __P ((__const char *__domainname,
__const char *__dirname));
extern char *__bindtextdomain __P ((__const char *__domainname,
__const char *__dirname));
/* Optimized version of the function above. */
@@ -73,9 +75,9 @@ extern char *__bindtextdomain __P ((const char *__domainname,
`__builtin_constant_p' predicate in dcgettext would always return
false. */
# define gettext (msgid) dgettext (NULL, msgid)
# define gettext(msgid) dgettext (NULL, msgid)
# define dgettext (domainname, msgid) \
# define dgettext(domainname, msgid) \
dcgettext (domainname, msgid, LC_MESSAGES)
# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+11 -9
View File
@@ -1,5 +1,5 @@
/* localealias.c -- handle aliases for locale names
Copyright (C) 1995 Free Software Foundation, Inc.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -86,10 +86,10 @@ static size_t maxmap = 0;
/* Prototypes for local functions. */
static size_t read_alias_file __P ((const char *fname, int fname_len));
static void extend_alias_table __P ((void));
static int alias_compare __P ((const struct alias_map *map1,
const struct alias_map *map2));
static size_t read_alias_file PARAMS ((const char *fname, int fname_len));
static void extend_alias_table PARAMS ((void));
static int alias_compare PARAMS ((const struct alias_map *map1,
const struct alias_map *map2));
const char *
@@ -109,9 +109,9 @@ _nl_expand_alias (name)
if (nmap > 0)
retval = (struct alias_map *) bsearch (&item, map, nmap,
sizeof (struct alias_map),
(int (*) (const void *,
const void *))
alias_compare);
(int (*) PARAMS ((const void *,
const void *))
) alias_compare);
else
retval = NULL;
@@ -257,7 +257,7 @@ read_alias_file (fname, fname_len)
if (added > 0)
qsort (map, nmap, sizeof (struct alias_map),
(int (*) (const void *, const void *)) alias_compare);
(int (*) PARAMS ((const void *, const void *))) alias_compare);
return added;
}
@@ -309,6 +309,8 @@ alias_compare (map1, map2)
c2 = isupper (*p2) ? tolower (*p2) : *p2;
if (c1 == '\0')
break;
++p1;
++p2;
}
while (c1 == c2);
+4 -2
View File
@@ -1,6 +1,6 @@
# Rules for MiG interfaces that want to go into the C library.
# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96 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
@@ -58,8 +58,10 @@ define nl # This is needed by *.ir.
endef
ifdef user-interfaces
*.ir := $(addprefix $(objpfx),$(foreach if,$(user-interfaces),$(if).ir))
ifndef no_deps
ifndef inhibit_interface_rules
include $(*.ir)
-include $(*.ir)
endif
endif
ifneq "$(*.ir)" "$(wildcard $(*.ir))"
# If any .ir file is missing, we will be unable to make all the deps.
+4 -2
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96 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
@@ -45,7 +45,7 @@ user-interfaces := $(addprefix mach/,mach_interface mach_port mach_host \
default_pager default_pager_helper \
)\
$(addprefix device/,device device_request)
server-interfaces := mach/exc
server-interfaces := mach/exc
tests := hello
# It is important that we do not use the wildcard function to expand
# `err_*.sub'. Leaving the wildcard allows Make-dist to find all matching
@@ -98,9 +98,11 @@ install-others += $(includedir)/mach/version.h
$(includedir)/mach/version.h: $(mach-srcdir)/sys/version.h; $(do-install)
# Define mach-syscalls and sysno-*.
ifndef no_deps
ifndef inhibit_mach_syscalls
include $(objpfx)mach-syscalls.mk
endif
endif
$(objpfx)mach-syscalls.mk: mach/syscall_sw.h syscalls.awk
# Go kludges!!!
sed -n -e '/Unix server implement them/,$$d' \
+4 -4
View File
@@ -1,6 +1,6 @@
# Makefile for the GNU C Library manual.
# Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
# Copyright (C) 1992, 1993, 1994, 1995, 1996 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
@@ -148,7 +148,7 @@ ETAGS = etags -T
endif
TAGS: $(minimal-dist)
$(ETAGS) -o $@ $^
# These are targets that each glibc subdirectory is expected to understand.
# ../Rules defines them for code subdirectories; for us, they are no-ops.
glibc-targets := subdir_lib objects objs others tests subdir_lint.out \
@@ -157,13 +157,13 @@ glibc-targets := subdir_lib objects objs others tests subdir_lint.out \
$(glibc-targets):
stubs: $(common-objpfx)stub-manual
$(common-objpfx)stub-manual:
$(common-objpfx)stub-manual ../po/manual.pot:
cp /dev/null $@
# The top-level glibc Makefile expects subdir_install to update the stubs file.
subdir_install: stubs
# Get rid of these variables if they came from the parent.
routines =
aux =
+4
View File
@@ -38,3 +38,7 @@ __init_misc (int argc, char **argv, char **envp)
__progname_full = argv[0];
}
}
#ifdef HAVE_GNU_LD
text_set_element (__libc_subinit, __init_misc);
#endif
+64 -12
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992, 1995, 1996 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
@@ -21,6 +21,7 @@ Cambridge, MA 02139, USA. */
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <paths.h>
/* Execute FILE, searching in the `PATH' environment variable if it contains
no slashes, with arguments ARGV and environment from `environ'. */
@@ -29,9 +30,42 @@ execvp (file, argv)
const char *file;
char *const argv[];
{
int got_eacces = 0;
void execute (const char *file, char *const argv[])
{
execv (file, argv);
if (errno == ENOEXEC)
{
/* The file is accessible but it is not an executable file.
Invoke the shell to interpret it as a script. */
/* Count the arguments. */
int argc = 0;
while (argv[argc++])
;
/* Construct an argument list for the shell. */
{
char *new_argv[argc + 1];
new_argv[0] = (char *) _PATH_BSHELL;
new_argv[1] = (char *) file;
while (argc > 1)
{
new_argv[argc] = argv[argc - 1];
--argc;
}
/* Execute the shell. */
execv (new_argv[0], new_argv);
}
}
}
if (strchr (file, '/') != NULL)
/* Don't search when it contains a slash. */
return execv (file, argv);
execute (file, argv);
else
{
char *path, *p, *name;
@@ -72,19 +106,37 @@ execvp (file, argv)
}
/* Try to execute this name. If it works, execv will not return. */
execv (name, argv);
if (errno != ENOENT && errno != EACCES)
/* Those errors indicate the file is missing or not executable
by us, in which case we want to just try the next path
directory. Some other error means we found an executable
file, but something went wrong executing it; return the
error to our caller. */
return -1;
execute (name, argv);
switch (errno)
{
case EACCES:
/* Record the we got a `Permission denied' error. If we end
up finding no executable we can use, we want to diagnose
that we did find one but were denied access. */
got_eacces = 1;
case ENOENT:
/* Those errors indicate the file is missing or not executable
by us, in which case we want to just try the next path
directory. */
break;
default:
/* Some other error means we found an executable file, but
something went wrong executing it; return the error to our
caller. */
return -1;
}
}
while (*p++ != '\0');
}
/* We tried every element and none of them worked.
Return the error from the last attempt (probably ENOENT). */
/* We tried every element and none of them worked. */
if (got_eacces)
/* At least one failure was due to permissions, so report that error. */
errno = EACCES;
/* Return the error from the last attempt (probably ENOENT). */
return -1;
}
+39 -4
View File
@@ -3,7 +3,7 @@
"Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
before changing it!
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 1996
Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
@@ -61,6 +61,7 @@ Cambridge, MA 02139, USA. */
/* Don't include stdlib.h for non-GNU C libraries because some of them
contain conflicting prototypes for getopt. */
#include <stdlib.h>
#include <unistd.h>
#endif /* GNU C library. */
#ifndef _
@@ -221,6 +222,12 @@ extern int strlen (const char *);
static int first_nonopt;
static int last_nonopt;
/* Bash 2.0 gives us an environment variable containing flags
indicating ARGV elements that should not be considered arguments. */
static const char *nonoption_flags;
static int nonoption_flags_len;
/* Exchange two adjacent subsequences of ARGV.
One subsequence is elements [first_nonopt,last_nonopt)
which contains all the non-options that have been skipped so far.
@@ -326,6 +333,21 @@ _getopt_initialize (optstring)
else
ordering = PERMUTE;
if (posixly_correct == NULL)
{
/* Bash 2.0 puts a special variable in the environment for each
command it runs, specifying which ARGV elements are the results of
file name wildcard expansion and therefore should not be
considered as options. */
char var[100];
sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ());
nonoption_flags = getenv (var);
if (nonoption_flags == NULL)
nonoption_flags_len = 0;
else
nonoption_flags_len = strlen (nonoption_flags);
}
return optstring;
}
@@ -402,10 +424,24 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
optind = 1; /* Don't scan ARGV[0], the program name. */
}
/* Test whether ARGV[optind] points to a non-option argument.
Either it does not have option syntax, or there is an environment flag
from the shell indicating it is not an option. */
#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
|| (optind < nonoption_flags_len \
&& nonoption_flags[optind] == '1'))
if (nextchar == NULL || *nextchar == '\0')
{
/* Advance to the next ARGV-element. */
/* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
moved back by the user (who may also have changed the arguments). */
if (last_nonopt > optind)
last_nonopt = optind;
if (first_nonopt > optind)
first_nonopt = optind;
if (ordering == PERMUTE)
{
/* If we have just processed some options following some non-options,
@@ -419,8 +455,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
/* Skip any additional non-options
and extend the range of non-options previously skipped. */
while (optind < argc
&& (argv[optind][0] != '-' || argv[optind][1] == '\0'))
while (optind < argc && NONOPTION_P)
optind++;
last_nonopt = optind;
}
@@ -458,7 +493,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
/* If we have come to a non-option and did not permute it,
either stop the scan or describe it to the caller and pass it by. */
if ((argv[optind][0] != '-' || argv[optind][1] == '\0'))
if (NONOPTION_P)
{
if (ordering == REQUIRE_ORDER)
return EOF;
+23
View File
@@ -71,6 +71,8 @@ typedef unsigned int uint;
#ifdef __USE_BSD
/* These size-specific names are used by some of the inet code. */
#if !defined (__GNUC__) || __GNUC__ < 2 || __GNUC_MINOR__ < 7
typedef char int8_t;
typedef unsigned char u_int8_t;
typedef short int int16_t;
@@ -83,6 +85,27 @@ typedef unsigned long long int u_int64_t;
typedef int register_t __attribute__ ((__mode__ (word)));
#endif
#else
/* For GCC 2.7 and later, we can use specific type-size attributes. */
#define __intN_t(N, MODE) \
typedef int int##N##_t __attribute__ ((__mode__ (MODE)))
#define __u_intN_t(N, MODE) \
typedef unsigned int u_int##N##_t __attribute__ ((__mode__ (MODE)))
__intN_t (8, __QI__);
__u_intN_t (8, __QI__);
__intN_t (16, __HI__);
__u_intN_t (16, __HI__);
__intN_t (32, __SI__);
__u_intN_t (32, __SI__);
__intN_t (64, __DI__);
__u_intN_t (64, __DI__);
typedef int register_t __attribute__ ((__mode__ (__word__)));
#endif
/* Some code from BIND tests this macro to see if the types above are
defined. */
#define __BIT_TYPES_DEFINED__ 1
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96 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
@@ -41,7 +41,7 @@ tests := tst-printf tstscanf test_rdwr test-popen tstgetln test-fseek \
xbug errnobug \
bug1 bug2 bug3 bug4 bug5 bug6 bug7 bug8 bug9 bug10 bug11 \
tfformat tiformat tstdiomisc \
scanf1 scanf2 scanf3 scanf4 scanf5 scanf6 scanf7 scanf8 scanf9
scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9
include ../Rules
+12 -8
View File
@@ -382,8 +382,9 @@ __printf_fp (FILE *fp,
else
{
cy = __mpn_mul (tmp, scale, scalesize,
tens->array + 2, tens->arraysize - 2);
tmpsize = scalesize + tens->arraysize - 2;
&tens->array[_FPIO_CONST_OFFSET],
tens->arraysize - _FPIO_CONST_OFFSET);
tmpsize = scalesize + tens->arraysize - _FPIO_CONST_OFFSET;
if (cy == 0)
--tmpsize;
}
@@ -513,13 +514,15 @@ __printf_fp (FILE *fp,
/* The __mpn_mul function expects the first argument to be
bigger than the second. */
if (fracsize < tens->arraysize - 2)
cy = __mpn_mul (tmp, &tens->array[2], tens->arraysize - 2,
if (fracsize < tens->arraysize - _FPIO_CONST_OFFSET)
cy = __mpn_mul (tmp, &tens->array[_FPIO_CONST_OFFSET],
tens->arraysize - _FPIO_CONST_OFFSET,
frac, fracsize);
else
cy = __mpn_mul (tmp, frac, fracsize,
&tens->array[2], tens->arraysize - 2);
tmpsize = fracsize + tens->arraysize - 2;
&tens->array[_FPIO_CONST_OFFSET],
tens->arraysize - _FPIO_CONST_OFFSET);
tmpsize = fracsize + tens->arraysize - _FPIO_CONST_OFFSET;
if (cy == 0)
--tmpsize;
@@ -536,11 +539,12 @@ __printf_fp (FILE *fp,
if (cnt_h <= BITS_PER_MP_LIMB - 4)
{
topval[0] = 0;
topval[1] = 10 << (BITS_PER_MP_LIMB - 4 - cnt_h);
topval[1]
= ((mp_limb) 10) << (BITS_PER_MP_LIMB - 4 - cnt_h);
}
else
{
topval[0] = 10 << (BITS_PER_MP_LIMB - 4);
topval[0] = ((mp_limb) 10) << (BITS_PER_MP_LIMB - 4);
topval[1] = 0;
(void) __mpn_lshift (topval, topval, 2,
BITS_PER_MP_LIMB - cnt_h);
+4
View File
@@ -31,6 +31,10 @@ DEFUN(main, (argc, argv), int argc AND char **argv)
{
char buf[BUFSIZ];
FILE *in = stdin, *out = stdout;
int x;
if (sscanf ("0", "%d", &x) != 1)
exit (EXIT_FAILURE);
if (argc == 2 && !strcmp (argv[1], "-opipe"))
{
+1
View File
@@ -528,6 +528,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
if (width > 0)
--width;
ADDW (c);
(void) inchar ();
if (width != 0 && tolower (c) == 'x')
+8 -1
View File
@@ -1,5 +1,5 @@
/* Header file for constants used in floating point <-> decimal conversions.
Copyright (C) 1995 Free Software Foundation, Inc.
Copyright (C) 1995, 1996 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
@@ -48,5 +48,12 @@ struct mp_power
};
extern const struct mp_power _fpioconst_pow10[LDBL_MAX_10_EXP_LOG + 1];
/* The constants in the array `_fpioconst_pow10' have an offset. */
#if BITS_PER_MP_LIMB == 32
# define _FPIO_CONST_OFFSET 2
#else
# define _FPIO_CONST_OFFSET 1
#endif
#endif /* fpioconst.h */
+25 -19
View File
@@ -65,10 +65,10 @@ extern FLOAT MPN2FLOAT (mp_srcptr mpn, int exponent, int negative);
/* Definitions according to limb size used. */
#if BITS_PER_MP_LIMB == 32
# define MAX_DIG_PER_LIMB 9
# define MAX_FAC_PER_LIMB 1000000000L
# define MAX_FAC_PER_LIMB 1000000000UL
#elif BITS_PER_MP_LIMB == 64
# define MAX_DIG_PER_LIMB 19
# define MAX_FAC_PER_LIMB 10000000000000000000L
# define MAX_FAC_PER_LIMB 10000000000000000000UL
#else
# error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
#endif
@@ -84,7 +84,7 @@ static const mp_limb _tens_in_limb[MAX_DIG_PER_LIMB + 1] =
, 10000000000, 100000000000,
1000000000000, 10000000000000, 100000000000000,
1000000000000000, 10000000000000000, 100000000000000000,
1000000000000000000, 10000000000000000000
1000000000000000000, 10000000000000000000U
#endif
#if BITS_PER_MP_LIMB > 64
#error "Need to expand tens_in_limb table to" MAX_DIG_PER_LIMB
@@ -128,7 +128,7 @@ round_and_return (mp_limb *retval, int exponent, int negative,
return 0.0;
}
more_bits |= (round_limb & ((1 << round_bit) - 1)) != 0;
more_bits |= (round_limb & ((((mp_limb) 1) << round_bit) - 1)) != 0;
if (shift == MANT_DIG)
/* This is a special case to handle the very seldom case where
the mantissa will be empty after the shift. */
@@ -166,25 +166,26 @@ round_and_return (mp_limb *retval, int exponent, int negative,
exponent = MIN_EXP - 2;
}
if ((round_limb & (1 << round_bit)) != 0
if ((round_limb & (((mp_limb) 1) << round_bit)) != 0
&& (more_bits || (retval[0] & 1) != 0
|| (round_limb & ((1 << round_bit) - 1)) != 0))
|| (round_limb & ((((mp_limb) 1) << round_bit) - 1)) != 0))
{
mp_limb cy = __mpn_add_1 (retval, retval, RETURN_LIMB_SIZE, 1);
if (((MANT_DIG % BITS_PER_MP_LIMB) == 0 && cy) ||
((MANT_DIG % BITS_PER_MP_LIMB) != 0 &&
(retval[RETURN_LIMB_SIZE - 1]
& (1 << (MANT_DIG % BITS_PER_MP_LIMB))) != 0))
& (((mp_limb) 1) << (MANT_DIG % BITS_PER_MP_LIMB))) != 0))
{
++exponent;
(void) __mpn_rshift (retval, retval, RETURN_LIMB_SIZE, 1);
retval[RETURN_LIMB_SIZE - 1] |= 1 << ((MANT_DIG - 1)
% BITS_PER_MP_LIMB);
retval[RETURN_LIMB_SIZE - 1]
|= ((mp_limb) 1) << ((MANT_DIG - 1) % BITS_PER_MP_LIMB);
}
else if (exponent == MIN_EXP - 2
&& (retval[RETURN_LIMB_SIZE - 1]
& (1 << ((MANT_DIG - 1) % BITS_PER_MP_LIMB))) != 0)
& (((mp_limb) 1) << ((MANT_DIG - 1) % BITS_PER_MP_LIMB)))
!= 0)
/* The number was denormalized but now normalized. */
exponent = MIN_EXP - 1;
}
@@ -628,14 +629,15 @@ INTERNAL (STRTOF) (nptr, endptr, group)
/* FIXME: not the whole multiplication has to be done.
If we have the needed number of bits we only need the
information whether more non-zero bits follow. */
if (numsize >= ttab->arraysize - 2)
if (numsize >= ttab->arraysize - _FPIO_CONST_OFFSET)
cy = __mpn_mul (pdest, psrc, numsize,
&ttab->array[2], ttab->arraysize - 2);
&ttab->array[_FPIO_CONST_OFFSET],
ttab->arraysize - _FPIO_CONST_OFFSET);
else
cy = __mpn_mul (pdest, &ttab->array[2],
ttab->arraysize - 2,
cy = __mpn_mul (pdest, &ttab->array[_FPIO_CONST_OFFSET],
ttab->arraysize - _FPIO_CONST_OFFSET,
psrc, numsize);
numsize += ttab->arraysize - 2;
numsize += ttab->arraysize - _FPIO_CONST_OFFSET;
if (cy == 0)
--numsize;
SWAP (psrc, pdest);
@@ -788,13 +790,17 @@ INTERNAL (STRTOF) (nptr, endptr, group)
neg_exp ^= expbit;
if (densize == 0)
memcpy (psrc, &ttab->array[2],
(densize = ttab->arraysize - 2) * sizeof (mp_limb));
{
densize = ttab->arraysize - _FPIO_CONST_OFFSET;
memcpy (psrc, &ttab->array[_FPIO_CONST_OFFSET],
densize * sizeof (mp_limb));
}
else
{
cy = __mpn_mul (pdest, &ttab->array[2], ttab->arraysize - 2,
cy = __mpn_mul (pdest, &ttab->array[_FPIO_CONST_OFFSET],
ttab->arraysize - _FPIO_CONST_OFFSET,
psrc, densize);
densize += ttab->arraysize - 2;
densize += ttab->arraysize - _FPIO_CONST_OFFSET;
if (cy == 0)
--densize;
SWAP (psrc, pdest);
+8 -7
View File
@@ -6,23 +6,23 @@
* may copy or modify Sun RPC without charge, but are not authorized
* to license or distribute it to anyone else except as part of a product or
* program developed by the user.
*
*
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
*
*
* Sun RPC is provided with no support and without any obligation on the
* part of Sun Microsystems, Inc. to assist in its use, correction,
* modification or enhancement.
*
*
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
* OR ANY PART THEREOF.
*
*
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
* or profits or other special, indirect and consequential damages, even if
* Sun has been advised of the possibility of such damages.
*
*
* Sun Microsystems, Inc.
* 2550 Garcia Avenue
* Mountain View, California 94043
@@ -46,12 +46,13 @@ static char sccsid[] = "@(#)pmap_getmaps.c 1.10 87/08/11 Copyr 1984 Sun Micro";
#include <netdb.h>
#include <stdio.h>
#include <errno.h>
#undef _POSIX_SOURCE /* Ultrix <sys/param.h> needs --roland@gnu */
#include <sys/param.h> /* Ultrix needs before net/if --roland@gnu */
#if 0 /* these seem to be gratuitous --roland@gnu */
#include <net/if.h>
#include <sys/ioctl.h>
#define NAMELEN 255
#define MAX_BROADCAST_SIZE 1400
#endif
extern int errno;
+8 -7
View File
@@ -6,23 +6,23 @@
* may copy or modify Sun RPC without charge, but are not authorized
* to license or distribute it to anyone else except as part of a product or
* program developed by the user.
*
*
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
*
*
* Sun RPC is provided with no support and without any obligation on the
* part of Sun Microsystems, Inc. to assist in its use, correction,
* modification or enhancement.
*
*
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
* OR ANY PART THEREOF.
*
*
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
* or profits or other special, indirect and consequential damages, even if
* Sun has been advised of the possibility of such damages.
*
*
* Sun Microsystems, Inc.
* 2550 Garcia Avenue
* Mountain View, California 94043
@@ -42,9 +42,10 @@ static char sccsid[] = "@(#)pmap_getport.c 1.9 87/08/11 Copyr 1984 Sun Micro";
#include <rpc/pmap_prot.h>
#include <rpc/pmap_clnt.h>
#include <sys/socket.h>
#undef _POSIX_SOURCE /* Ultrix <sys/param.h> needs --roland@gnu */
#include <sys/param.h> /* Ultrix needs before net/if --roland@gnu */
#if 0 /* these seem to be gratuitous --roland@gnu */
#include <net/if.h>
#endif
static struct timeval timeout = { 5, 0 };
static struct timeval tottimeout = { 60, 0 };
-1
View File
@@ -1 +0,0 @@
#include <misc/sys/ptrace.h>
+1 -1
View File
@@ -72,7 +72,7 @@ memchr (const void *s, int c, size_t n)
unsigned char *cp = (unsigned char *) (longword_ptr - 1);
int i;
for (i = 0; i < 6; i++)
for (i = 0; i < 7; i++)
if (cp[i] == c)
return &cp[i];
return &cp[7];
+3 -2
View File
@@ -53,9 +53,10 @@ $(objpfx)siglist.c: $(objpfx)make_siglist
mv $@-tmp $@
$(objpfx)make_siglist: $(sysdep_dir)/generic/make_siglist.c
signum_h=`cd $(dir $(firstword $(wildcard \
$(+sysdep_dirs:%=%/signum.h)))); pwd`/signum.h; \
$(native-compile) \
-DSIGNUM_H=\"`cd $(dir $(firstword $(wildcard \
$(+sysdep_dirs:%=%/signum.h)))); pwd`/signum.h\"
-DSIGNUM_H=\"$${signum_h}\"
generated := $(generated) make_siglist siglist.c
endif
+2 -1
View File
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. Generic Unix version.
Copyright (C) 1995 Free Software Foundation, Inc.
Copyright (C) 1995, 96 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
@@ -27,6 +27,7 @@ extern int _dl_argc;
extern char **_dl_argv;
extern char **_environ;
extern void _start (void);
extern int _dl_secure;
Elf32_Addr
_dl_sysdep_start (void **start_argptr,
+44
View File
@@ -0,0 +1,44 @@
/* Machine-dependent definitions for profiling support. Generic GCC 2 version.
Copyright (C) 1996 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. */
/* GCC version 2 gives us a perfect magical function to get
just the information we need:
void *__builtin_return_address (unsigned int N)
returns the return address of the frame N frames up. */
#if __GNUC__ < 2
#error "This file uses __builtin_return_address, a GCC 2 extension."
#endif
#include <sysdep.h>
#ifndef NO_UNDERSCORES
/* The asm symbols for C functions are `_function'.
The canonical name for the counter function is `mcount', no _. */
void _mcount (void) asm ("mcount");
#endif
#define _MCOUNT_DECL(frompc, selfpc) \
static inline void mcount_internal (frompc, selfpc)
#define MCOUNT \
void _mcount (void) \
{ \
mcount_internal ((u_long) __builtin_return_address (0), \
(u_long) __builtin_return_address (1)); \
}
+1
View File
@@ -19,6 +19,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <signal.h>
/* Get this configuration's defns of the signal numbers. */
#undef _SIGNAL_H
#define _SIGNAL_H 1
#include SIGNUM_H
@@ -1,4 +1,5 @@
/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
/* `ptrace' debugger support interface. Generic version; constants are common.
Copyright (C) 1991, 1992 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
+13 -1
View File
@@ -157,8 +157,20 @@ elf_machine_runtime_setup (struct link_map *l, int lazy)
the offset on the stack, and then jump to the resolved address. */
got[2] = (Elf32_Addr) &_dl_runtime_resolve;
}
}
/* This code is used in dl-runtime.c to call the `fixup' function
and then redirect to the address it returns. */
#define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
.globl _dl_runtime_resolve
.type _dl_runtime_resolve, @function
_dl_runtime_resolve:
call fixup # Args pushed by PLT.
addl $8, %esp # Pop args.
jmp *%eax # Jump to function address.
");
/* The PLT uses Elf32_Rel relocs. */
#define elf_machine_relplt elf_machine_rel
}
/* Mask identifying addresses reserved for the user program,
where the dynamic linker should not map anything. */
-94
View File
@@ -1,94 +0,0 @@
/* On-demand PLT fixup for shared objects. i386 version.
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. */
#include <link.h>
#include "dynamic-link.h"
/* This function is not called in the normal way. The PLT jumps here, not
using a call. The stack looks like this:
-->8(%esp) address to return to the caller of the function in the PLT
4(%esp) relocation offset for this PLT entry
0(%esp) identifier for this shared object (struct link_map *)
The user expects the real function the PLT refers to to be entered
with 8(%esp) as the top of stack. */
void
_dl_runtime_resolve (Elf32_Word reloc_offset)
{
__label__ return_insn;
struct link_map *l = (void *) (&reloc_offset)[-1];
const Elf32_Sym *const symtab
= (const Elf32_Sym *) (l->l_addr + l->l_info[DT_SYMTAB]->d_un.d_ptr);
const char *strtab =
(const char *) (l->l_addr + l->l_info[DT_STRTAB]->d_un.d_ptr);
const Elf32_Rel *const reloc
= (const void *) (l->l_addr + l->l_info[DT_JMPREL]->d_un.d_ptr +
reloc_offset);
const Elf32_Sym *definer;
Elf32_Addr loadbase;
struct link_map *scope, *real_next;
/* Look up the symbol's run-time value. */
real_next = l->l_next;
if (l->l_info[DT_SYMBOLIC])
{
l->l_next = _dl_loaded;
if (l->l_prev)
l->l_prev->l_next = real_next;
scope = l;
}
else
scope = _dl_loaded;
definer = &symtab[ELF32_R_SYM (reloc->r_info)];
loadbase = _dl_lookup_symbol (strtab + definer->st_name, &definer,
scope, l->l_name, 0);
/* Restore list frobnication done above for DT_SYMBOLIC. */
l->l_next = real_next;
if (l->l_prev)
l->l_prev->l_next = l;
/* Apply the relocation with that value. */
elf_machine_rel (l, reloc, loadbase, definer);
/* The top of the stack is the word we set L from; but this location
holds the address we will return to. Store there the address of a
"ret" instruction, which will pop the stack and run the code at the
address in the next stack word. */
(&reloc_offset)[-1] = (Elf32_Word) &&return_insn;
/* The next stack word is our argument RELOC_OFFSET; but that "ret" will
pop and jump to this location, and the next stack word is the user's
return address. So store here the resolved address of the function
referred to by this PLT entry; once "ret" pops this address, the
function in the shared object will run with the stack arranged just as
when the user entered the PLT. */
(&reloc_offset)[0] = *(Elf32_Word *) (l->l_addr + reloc->r_offset);
return;
return_insn: asm volatile ("ret");
}
+15 -11
View File
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. Pentium version.
Copyright (C) 1994, 1995 Free Software Foundation, Inc.
Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
Contributed by Torbjorn Granlund (tege@sics.se).
This file is part of the GNU C Library.
@@ -33,11 +33,14 @@ Cambridge, MA 02139, USA. */
{ \
asm volatile ("subl $32,%2\n" \
"js 2f\n" \
"movl 0(%0),%%edx\n" /* alloc dest line */ \
"1:\n" \
"movl 0(%1),%%eax\n" \
"movl 4(%1),%%edx\n" \
"movl %%eax,0(%0)\n" \
"movl %%edx,4(%0)\n" \
"movl 28(%0),%%eax\n" /* alloc dest line */ \
"subl $32,%2\n" /* decr loop count */ \
"movl 0(%1),%%eax\n" /* U pipe */ \
"movl 4(%1),%%edx\n" /* V pipe */ \
"movl %%eax,0(%0)\n" /* U pipe */ \
"movl %%edx,4(%0)\n" /* V pipe */ \
"movl 8(%1),%%eax\n" \
"movl 12(%1),%%edx\n" \
"movl %%eax,8(%0)\n" \
@@ -50,9 +53,8 @@ Cambridge, MA 02139, USA. */
"movl 28(%1),%%edx\n" \
"movl %%eax,24(%0)\n" \
"movl %%edx,28(%0)\n" \
"addl $32,%1\n" \
"addl $32,%0\n" \
"subl $32,%2\n" \
"leal 32(%1),%1\n" /* update src ptr */ \
"leal 32(%0),%0\n" /* update dst ptr */ \
"jns 1b\n" \
"2: addl $32,%2" : \
"=r" (dst_bp), "=r" (src_bp), "=r" (nbytes_left) : \
@@ -66,7 +68,10 @@ Cambridge, MA 02139, USA. */
{ \
asm volatile ("subl $32,%2\n" \
"js 2f\n" \
"movl -4(%0),%%edx\n" \
"1:\n" \
"movl -32(%0),%%eax\n" \
"subl $32,%2\n" \
"movl -4(%1),%%eax\n" \
"movl -8(%1),%%edx\n" \
"movl %%eax,-4(%0)\n" \
@@ -83,9 +88,8 @@ Cambridge, MA 02139, USA. */
"movl -32(%1),%%edx\n" \
"movl %%eax,-28(%0)\n" \
"movl %%edx,-32(%0)\n" \
"subl $32,%1\n" \
"subl $32,%0\n" \
"subl $32,%2\n" \
"leal -32(%1),%1\n" \
"leal -32(%0),%0\n" \
"jns 1b\n" \
"2: addl $32,%2" : \
"=r" (dst_ep), "=r" (src_ep), "=r" (nbytes_left) : \
+4 -4
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1995 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1996 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
@@ -23,20 +23,20 @@ Cambridge, MA 02139, USA. */
/* Convert a multi-precision integer of the needed number of bits (64 for
long double) and an integral power of two to a `long double' in IEEE854
extended-precision format. */
extended-precision format. */
long double
__mpn_construct_long_double (mp_srcptr frac_ptr, int expt, int sign)
{
union ieee854_long_double u;
u.ieee.negative = sign;
u.ieee.exponent = expt + IEEE854_LONG_DOUBLE_BIAS;
#if BITS_PER_MP_LIMB == 32
u.ieee.mantissa1 = frac_ptr[0];
u.ieee.mantissa0 = frac_ptr[1];
#elif BITS_PER_MP_LIMB == 64
u.ieee.mantissa1 = frac_ptr[0] & ((1 << 32) - 1);
u.ieee.mantissa1 = frac_ptr[0] & ((1L << 32) - 1);
u.ieee.mantissa0 = frac_ptr[0] >> 32;
#else
#error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
+247
View File
@@ -0,0 +1,247 @@
/* Machine-dependent ELF dynamic relocation inline functions. m68k version.
Copyright (C) 1996 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. */
#define ELF_MACHINE_NAME "m68k"
#include <assert.h>
#include <string.h>
#include <link.h>
/* Return nonzero iff E_MACHINE is compatible with the running host. */
static inline int
elf_machine_matches_host (Elf32_Half e_machine)
{
switch (e_machine)
{
case EM_68K:
return 1;
default:
return 0;
}
}
/* Return the run-time address of the _GLOBAL_OFFSET_TABLE_.
Must be inlined in a function which uses global data. */
static inline Elf32_Addr *
elf_machine_got (void)
{
register Elf32_Addr *got asm ("%a5");
return got;
}
/* Return the run-time load address of the shared object. */
static inline Elf32_Addr
elf_machine_load_address (void)
{
Elf32_Addr addr;
asm ("here: lea here(%%pc), %0\n"
" sub.l %#here, %0"
: "=a" (addr));
return addr;
}
/* The `subl' insn above will contain an R_68K_RELATIVE relocation
entry intended to insert the run-time address of the label `here'.
This will be the first relocation in the text of the dynamic
linker; we skip it to avoid trying to modify read-only text in this
early stage. */
#define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info) \
((dynamic_info)[DT_RELA]->d_un.d_ptr += sizeof (Elf32_Rela), \
(dynamic_info)[DT_RELASZ]->d_un.d_val -= sizeof (Elf32_Rela))
/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
MAP is the object containing the reloc. */
static inline void
elf_machine_rela (struct link_map *map,
const Elf32_Rela *reloc,
Elf32_Addr sym_loadaddr, const Elf32_Sym *sym)
{
Elf32_Addr *const reloc_addr = (void *) (map->l_addr + reloc->r_offset);
const Elf32_Addr sym_value = sym ? sym_loadaddr + sym->st_value : 0;
switch (ELF32_R_TYPE (reloc->r_info))
{
case R_68K_COPY:
memcpy (reloc_addr, (void *) sym_value, sym->st_size);
break;
case R_68K_GLOB_DAT:
case R_68K_JMP_SLOT:
*reloc_addr = sym_value;
break;
case R_68K_8:
*(char *) reloc_addr = sym_value + reloc->r_addend;
break;
case R_68K_16:
*(short *) reloc_addr = sym_value + reloc->r_addend;
break;
case R_68K_32:
*reloc_addr = sym_value + reloc->r_addend;
break;
case R_68K_RELATIVE:
*reloc_addr = map->l_addr + reloc->r_addend;
break;
case R_68K_PC8:
*(char *) reloc_addr = (sym_value + reloc->r_addend
- (Elf32_Addr) reloc_addr);
break;
case R_68K_PC16:
*(short *) reloc_addr = (sym_value + reloc->r_addend
- (Elf32_Addr) reloc_addr);
break;
case R_68K_PC32:
*reloc_addr = sym_value + reloc->r_addend - (Elf32_Addr) reloc_addr;
break;
case R_68K_NONE: /* Alright, Wilbur. */
break;
default:
assert (! "unexpected dynamic reloc type");
break;
}
}
static inline void
elf_machine_lazy_rel (struct link_map *map, const Elf32_Rela *reloc)
{
Elf32_Addr *const reloc_addr = (void *) (map->l_addr + reloc->r_offset);
switch (ELF32_R_TYPE (reloc->r_info))
{
case R_68K_NONE:
break;
case R_68K_JMP_SLOT:
*reloc_addr += map->l_addr;
break;
default:
assert (! "unexpected PLT reloc type");
break;
}
}
/* The m68k never uses Elf32_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
/* Set up the loaded object described by L so its unrelocated PLT
entries will jump to the on-demand fixup code in dl-runtime.c. */
static inline void
elf_machine_runtime_setup (struct link_map *l, int lazy)
{
Elf32_Addr *got;
extern void _dl_runtime_resolve (Elf32_Word);
if (l->l_info[DT_JMPREL] && lazy)
{
/* The GOT entries for functions in the PLT have not yet been
filled in. Their initial contents will arrange when called
to push an offset into the .rela.plt section, push
_GLOBAL_OFFSET_TABLE_[1], and then jump to
_GLOBAL_OFFSET_TABLE_[2]. */
got = (Elf32_Addr *) (l->l_addr + l->l_info[DT_PLTGOT]->d_un.d_ptr);
got[1] = (Elf32_Addr) l; /* Identify this shared object. */
/* This function will get called to fix up the GOT entry
indicated by the offset on the stack, and then jump to the
resolved address. */
got[2] = (Elf32_Addr) &_dl_runtime_resolve;
}
/* This code is used in dl-runtime.c to call the `fixup' function
and then redirect to the address it returns. */
#define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
| Trampoline for _dl_runtime_resolver
.globl _dl_runtime_resolve
.type _dl_runtime_resolve, @function
_dl_runtime_resolve:
| Save %a0 (struct return address) and %a1.
move.l %a0, -(%sp)
move.l %a1, -(%sp)
| Call the real address resolver.
jbsr fixup
| Restore register %a0 and %a1.
move.l (%sp)+, %a1
move.l (%sp)+, %a0
| Pop parameters
addq.l #8, %sp
| Call real function.
jmp (%d0)
.size _dl_runtime_resolve, . - _dl_runtime_resolve
");
#define ELF_MACHINE_RUNTIME_FIXUP_ARGS long int save_a0, long int save_a1
/* The PLT uses Elf32_Rela relocs. */
#define elf_machine_relplt elf_machine_rela
}
/* Mask identifying addresses reserved for the user program,
where the dynamic linker should not map anything. */
#define ELF_MACHINE_USER_ADDRESS_MASK 0x80000000UL
/* Initial entry point code for the dynamic linker.
The C function `_dl_start' is the real entry point;
its return value is the user program's entry point. */
#define RTLD_START asm ("\
.text
.globl _start
.globl _dl_start_user
_start:
jbsr _dl_start
_dl_start_user:
| Save the user entry point address in %a4.
move.l %d0, %a4
| Point %a5 at the GOT.
lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5
| See if we were run as a command with the executable file
| name as an extra leading argument.
move.l ([_dl_skip_args@GOT, %a5]), %d0
jeq 0f
| Pop the original argument count
move.l (%sp)+, %d1
| Subtract _dl_skip_args from it.
sub.l %d0, %d1
| Adjust the stack pointer to skip _dl_skip_args words.
lea (%sp, %d0*4), %sp
| Push back the modified argument count.
move.l %d1, -(%sp)
| Call _dl_init_next to return the address of an initializer
| function to run.
0: bsr.l _dl_init_next@PLTPC
| Check for zero return, when out of initializers.
tst.l %d0
jeq 1f
| Call the shared object initializer function.
| NOTE: We depend only on the registers (%a4 and %a5)
| and the return address pushed by this call;
| the initializer is called with the stack just
| as it appears on entry, and it is free to move
| the stack around, as long as it winds up jumping to
| the return address on the top of the stack.
move.l %d0, %a0
jsr (%a0)
| Loop to call _dl_init_next for the next initializer.
jra 0b
1: | Pass our finalizer function to the user in %a1.
move.l _dl_fini@GOT(%a5), %a1
| Initialize %fp with the stack pointer.
move.l %sp, %fp
| Jump to the user's entry point.
jmp (%a4)");
+90
View File
@@ -0,0 +1,90 @@
/* Startup code compliant to the ELF m68k ABI.
Copyright (C) 1996 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. */
/* This is the canonical entry point, usually the first thing in the text
segment. The SVR4/m68k ABI says that when the entry point runs,
most registers' values are unspecified, except for:
%a1 Contains a function pointer to be registered with `atexit'.
This is how the dynamic linker arranges to have DT_FINI
functions called for shared libraries that have been loaded
before this code runs.
%sp The stack contains the arguments and environment:
0(%sp) argc
4(%sp) argv[0]
...
(4*argc)(%sp) NULL
(4*(argc+1))(%sp) envp[0]
...
NULL
*/
.text
.globl _start
_start:
/* Clear the frame pointer. The ABI suggests this be done, to mark
the outermost frame obviously. */
sub.l %fp, %fp
/* %a1 contains the address of the shared library termination
function, which we will register with `atexit' to be called by
`exit'. */
tstl %a1
jbeq 1f
move.l %a1, -(%sp)
jbsr atexit
addql #4, %sp
1:
/* Do essential libc initialization. In statically linked
programs under the GNU Hurd, this is what sets up the
arguments on the stack for the code below. */
jbsr __libc_init_first
/* Extract the arguments and environment as encoded on the stack
and set up the arguments for `main': argc, argv, envp. */
move.l (%sp)+, %d0 /* Pop the argument count. */
lea (4,%sp,%d0*4), %a0 /* envp = &argv[argc + 1] */
move.l %a0, _environ /* Store it in the global variable. */
pea (%a0) /* Push third argument: envp. */
pea 4(%sp) /* Push second argument: argv. */
move.l %d0, -(%sp) /* Push first argument: argc. */
/* Call `_init', which is the entry point to our own `.init'
section; and register with `atexit' to have `exit' call
`_fini', which is the entry point to our own `.fini' section. */
jbsr _init
move.l #_fini, -(%sp)
jbsr atexit
addq.l #4, %sp
/* Call the user's main function, and exit with its value. */
jbsr main
move.l %d0, (%sp)
1: jbsr exit /* This should never return. */
jbra 1b /* Try again if somehow it does return. */
/* Define a symbol for the first piece of initialized data. */
.data
.globl __data_start
__data_start:
.long 0
.weak data_start
data_start = __data_start
+4
View File
@@ -0,0 +1,4 @@
#define FUNC __isinfl
#include <isinf.c>
weak_alias (__isinfl, isinfl)
+4
View File
@@ -0,0 +1,4 @@
#define FUNC __isnanl
#include <isinf.c>
weak_alias (__isnanl, isnanl)
+45
View File
@@ -0,0 +1,45 @@
/* 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., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <math.h>
#include "ieee754.h"
#undef __isinfl
#undef isinfl
/* Return 0 if VALUE is finite or NaN, +1 if it
is +Infinity, -1 if it is -Infinity. */
int
__isinfl (long double value)
{
union ieee854_long_double u;
u.d = value;
/* An IEEE 854 infinity has an exponent with the
maximum possible value and a zero mantissa.
In Motorola's interpretation the integer bit is ignored. */
if ((u.ieee.exponent & 0x7fff) == 0x7fff &&
(u.ieee.mantissa0 & 0x7fffffff) == 0 && u.ieee.mantissa1 == 0)
return u.ieee.negative ? -1 : 1;
return 0;
}
weak_alias (__isinfl, isinfl);
+41
View File
@@ -0,0 +1,41 @@
/* 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., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <math.h>
#include "ieee754.h"
#undef __isnanl
#undef isnanl
/* Return nonzero if VALUE is not a number. */
int
__isnanl (long double value)
{
union ieee854_long_double u;
u.d = value;
/* IEEE 854 NaN's have the maximum possible
exponent and a nonzero mantissa. In Motorola's
interpretation the integer bit is ignored. */
return ((u.ieee.exponent & 0x7fff) == 0x7fff &&
((u.ieee.mantissa0 & 0x7fffffff) != 0 || u.ieee.mantissa1 != 0));
}
weak_alias (__isnanl, isnanl);
+2 -1
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
# Copyright (C) 1993, 1994, 1995, 1996 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
@@ -65,6 +65,7 @@ vpath hurd/%.h $(hurd-srcdir)
# This bypasses all the system call stubs and uses any existing posix or
# generic C files instead.
inhibit-sysdep-asm += unix*
inhibit-unix-syscalls = yes
# Don't try to generate anything from the installed Unix system and its
# libraries. That is only of use when building for a Unix system, so as to
+6 -2
View File
@@ -48,14 +48,18 @@ unsigned int __hurd_threadvar_max = _HURD_THREADVAR_MAX;
static unsigned long int threadvars[_HURD_THREADVAR_MAX];
unsigned long int __hurd_threadvar_stack_offset
= (unsigned long int) &threadvars;
unsigned long int __hurd_sigthread_stack_base;
unsigned long int __hurd_sigthread_stack_end;
unsigned long int *__hurd_sigthread_variables;
unsigned long int __hurd_threadvar_stack_mask;
/* XXX loser kludge for vm_map kernel bug */
static vm_address_t fmha;
static vm_size_t fmhs;
static void unfmh(){
static void unfmh(void){
__vm_deallocate(__mach_task_self(),fmha,fmhs);}
static void fmh() {
static void fmh(void) {
error_t err;int x;mach_port_t p;
vm_address_t a=0x08000000U,max=VM_MAX_ADDRESS;
while (!(err=__vm_region(__mach_task_self(),&a,&fmhs,&x,&x,&x,&x,&p,&x))){
+1 -1
View File
@@ -1,4 +1,4 @@
/* This file generated by gawk ../manual/errno.texi ../../mach/mach/message.h ../../mach/mach/kern_return.h ../../mach/mach/mig_errors.h ../../mach/device/device_types.h. */
/* This file generated by gawk ../manual/errno.texi /gd4/gnu/mach/mach/message.h /gd4/gnu/mach/mach/kern_return.h /gd4/gnu/mach/mach/mig_errors.h /gd4/gnu/mach/device/device_types.h. */
/* The Hurd uses Mach error system 0x10, currently only subsystem 0. */
#ifndef _HURD_ERRNO
+6 -4
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 93, 94, 95, 96 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
@@ -31,9 +31,11 @@ DEFUN(fchdir, (fd), int fd)
error_t err;
file_t dir;
err = HURD_DPORT_USE (fd, (dir = __file_name_lookup_under (port, "",
O_EXEC, 0),
errno));
err = HURD_DPORT_USE (fd,
({
dir = __file_name_lookup_under (port, "", O_EXEC, 0);
dir == MACH_PORT_NULL ? errno : 0;
}));
if (! err)
_hurd_port_set (&_hurd_ports[INIT_PORT_CWDIR], dir);
+9
View File
@@ -252,6 +252,12 @@ __fork (void)
if (old != MACH_PORT_NULL)
/* XXX what to do here? */
__mach_port_deallocate (__mach_task_self (), old);
/* The new task will receive its own exceptions
on its message port. */
if (err = __task_set_special_port (newtask,
TASK_EXCEPTION_PORT,
port))
LOSE;
}
if (err = __mach_port_insert_right (newtask,
portnames[i],
@@ -596,6 +602,9 @@ __fork (void)
err = __USEPORT (PROC, __proc_getpids (port, &_hurd_pid, &_hurd_ppid,
&_hurd_orphaned));
/* Forking clears the trace flag. */
_hurd_exec_flags &= ~EXEC_TRACED;
/* Run things that want to run in the child task to set up. */
RUN_HOOK (_hurd_fork_child_hook, ());
+54 -1
View File
@@ -1,5 +1,5 @@
/* Machine-dependent details of interruptible RPC messaging. i386 version.
Copyright (C) 1995 Free Software Foundation, Inc.
Copyright (C) 1995, 1996 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
@@ -45,3 +45,56 @@ INTR_MSG_BACK_OUT (struct i386_thread_state *state)
else
state->ecx = state->uesp;
}
#include "hurdfault.h"
static inline int
SYSCALL_EXAMINE (struct i386_thread_state *state, int *callno)
{
struct { unsigned int c[2]; } *p = (void *) (state->eip - 7);
int result;
if (_hurdsig_catch_memory_fault (p))
return 0;
if (result = p->c[0] == 0x0000009a && (p->c[1] & 0x00ffffff) == 0x00000700)
/* The PC is just after an `lcall $7,$0' instruction.
This is a system call in progress; %eax holds the call number. */
*callno = state->eax;
_hurdsig_end_catch_fault ();
return result;
}
struct mach_msg_trap_args
{
void *retaddr; /* Address mach_msg_trap will return to. */
/* This is the order of arguments to mach_msg_trap. */
mach_msg_header_t *msg;
mach_msg_option_t option;
mach_msg_size_t send_size;
mach_msg_size_t rcv_size;
mach_port_t rcv_name;
mach_msg_timeout_t timeout;
mach_port_t notify;
};
static inline mach_port_t
MSG_EXAMINE (struct i386_thread_state *state, int *msgid)
{
const struct mach_msg_trap_args *args = (const void *) state->uesp;
mach_msg_header_t *msg;
mach_port_t send_port;
if (_hurdsig_catch_memory_fault (args))
return MACH_PORT_NULL;
msg = args->msg;
_hurdsig_end_catch_fault ();
if (_hurdsig_catch_memory_fault (msg))
return MACH_PORT_NULL;
send_port = msg->msgh_remote_port;
*msgid = msg->msgh_id;
_hurdsig_end_catch_fault ();
return send_port;
}
+2 -14
View File
@@ -23,21 +23,9 @@ Cambridge, MA 02139, USA. */
#include <assert.h>
#include <errno.h>
#include "hurdfault.h"
#include "intr-msg.h"
struct mach_msg_trap_args
{
void *retaddr; /* Address mach_msg_trap will return to. */
/* This is the order of arguments to mach_msg_trap. */
mach_msg_header_t *msg;
mach_msg_option_t option;
mach_msg_size_t send_size;
mach_msg_size_t rcv_size;
mach_port_t rcv_name;
mach_msg_timeout_t timeout;
mach_port_t notify;
};
struct sigcontext *
_hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler,
int signo, long int sigcode,
@@ -94,7 +82,7 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler,
per-thread variables, cthreads. */
}
/* This code has intimate knowledge of the special mach_msg system call
done in intr-msg.c; that code does:
done in intr-msg.c; that code does (see intr-msg.h):
movl %esp, %ecx
leal ARGS, %esp
_hurd_intr_rpc_msg_cx_sp: movl $-25, %eax
+12 -3
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1992, 1993, 1994, 1995, 1996 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
@@ -129,8 +129,17 @@ DEFUN(__ioctl, (fd, request),
/* Check for a registered handler for REQUEST. */
ioctl_handler_t handler = _hurd_lookup_ioctl_handler (request);
if (handler)
/* This handler groks REQUEST. Se lo puntamonos. */
return (*handler) (fd, request, arg);
{
/* This handler groks REQUEST. Se lo puntamonos. */
int save = errno;
int result = (*handler) (fd, request, arg);
if (result != -1 || errno != ENOTTY)
return result;
/* The handler doesn't really grok this one.
Try the normal RPC translation. */
errno = save;
}
}
/* Compute the Mach message ID for the RPC from the group and command
+18 -13
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1992, 1993 Free Software Foundation, Inc.
/* Copyright (C) 1992, 1993, 1996 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
@@ -21,16 +21,20 @@ Cambridge, MA 02139, USA. */
#define _IOCTLS_H 1
/* Hurd ioctl request are made up of several fields:
bits 31-30: inout direction (enum __ioctl_dir)
bits 29-12: type encoding as follows; zero count indicates omitted datum
29-28: datum #0 type (enum __ioctl_datum)
27-26: datum #1 type (enum __ioctl_datum)
25-24: datum #2 type (enum __ioctl_datum)
23-19: datum #0 count [0..31]
18-14: datum #1 count [0..31]
13-12: datum #2 count [0..3]
bits 11- 8: group (letter - 'f': ['f'..'v'])
bits 7- 0: command [0..127]
10987654321098765432109876543210
IOt0t1t2cc0c0cc1c1cc2ggggccccccc
bits [31,30]: inout direction (enum __ioctl_dir)
bits [29,11]: type encoding as follows; zero count indicates omitted datum
[29,28]: datum #0 type (enum __ioctl_datum)
[27,26]: datum #1 type (enum __ioctl_datum)
[24,25]: datum #2 type (enum __ioctl_datum)
[23,19]: datum #0 count [0,31]
[18,14]: datum #1 count [0,31]
[13,11]: datum #2 count [0,3]
bits [07,10]: group (letter - 'f': ['f','v'])
bits [00,06]: command [0,127]
The following macros construct and dissect these fields. */
@@ -50,9 +54,10 @@ enum __ioctl_datum { IOC_8, IOC_16, IOC_32 };
/* Dissect an ioctl into its component fields. */
#define _IOC_INOUT(request) (((unsigned int) (request) >> 30) & IOC_INOUT)
#define _IOC_GROUP(request) ('f' + (((unsigned int) (request) >> 7) & 15))
#define _IOC_GROUP(request) ('f' + (((unsigned int) (request) >> 7) & 0xf))
#define _IOC_COMMAND(request) ((unsigned int) (request) & 0x7f)
#define _IOC_TYPE(request) (((unsigned int) (request) >> 11) & 0x7ffff)
#define _IOC_NOTYPE(request) ((unsigned int) (request) & 0x3ff)
/* Construct a type information field from
the broken-out type and count fields. */
@@ -65,7 +70,7 @@ enum __ioctl_datum { IOC_8, IOC_16, IOC_32 };
#define _IOT_TYPE2(type) (((unsigned int) (type) >> 13) & 3)
#define _IOT_COUNT0(type) (((unsigned int) (type) >> 8) & 0x1f)
#define _IOT_COUNT1(type) (((unsigned int) (type) >> 3) & 0x1f)
#define _IOT_COUNT2(type) (((unsigned int) (type) >> 0) & 3)
#define _IOT_COUNT2(type) (((unsigned int) (type) >> 0) & 7)
/* Construct an ioctl from all the broken-out fields. */
#define _IOCT(inout, group, num, t0, c0, t1, c1, t2, c2) \
+2 -2
View File
@@ -31,8 +31,8 @@ __utimes (const char *file, struct timeval tvp[2])
if (tvp)
{
times = &buf;
times->actime = tvp[0].tv_sec + tvp[0].tv_usec / 1000;
times->modtime = tvp[1].tv_sec + tvp[1].tv_usec / 1000;
times->actime = tvp[0].tv_sec + tvp[0].tv_usec / 1000000;
times->modtime = tvp[1].tv_sec + tvp[1].tv_usec / 1000000;
}
else
times = NULL;
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996 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
@@ -23,7 +23,7 @@ Cambridge, MA 02139, USA. */
/* Give the socket FD the local address ADDR (which is LEN bytes long). */
int
DEFUN(bind, (fd, addr, len),
int fd AND struct sockaddr *addr AND size_t len)
int fd AND const struct sockaddr *addr AND size_t len)
{
errno = ENOSYS;
return -1;
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996 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
@@ -26,7 +26,7 @@ Cambridge, MA 02139, USA. */
Return 0 on success, -1 for errors. */
int
DEFUN(connect, (fd, addr, len),
int fd AND struct sockaddr *addr AND size_t len)
int fd AND const struct sockaddr *addr AND size_t len)
{
errno = ENOSYS;
return -1;
-64
View File
@@ -1,64 +0,0 @@
/* On-demand PLT fixup for shared objects. Stub version.
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. */
#include <link.h>
#include "dynamic-link.h"
/* This function is not called in the normal way. The PLT jumps here, not
using a call. */
void
_dl_runtime_resolve ()
{
struct link_map *l = ???;
Elf32_Word reloc_offset = ???;
const Elf32_Sym *const symtab
= (const Elf32_Sym *) l->l_info[DT_SYMTAB]->d_un.d_ptr;
const char *strtab
= ((void *) l->l_addr + l->l_info[DT_STRTAB]->d_un.d_ptr);
const Elf32_Rel *const reloc = (void *) (l->l_info[DT_JMPREL]->d_un.d_ptr
+ reloc_offset);
const Elf32_Sym *definer;
Elf32_Addr loadbase;
struct link_map *scope, *real_next;
/* Look up the symbol's run-time value. */
real_next = l->l_next;
if (l->l_info[DT_SYMBOLIC])
{
l->l_prev->l_next = real_next;
l->l_next = _dl_loaded;
scope = l;
}
else
scope = _dl_loaded;
definer = &symtab[ELF32_R_SYM (reloc->r_info)];
loadbase = _dl_lookup_symbol (strtab + definer->st_name, &definer, scope);
/* Restore list frobnication done above for DT_SYMBOLIC. */
l->l_next = real_next;
l->l_prev->l_next = l;
/* Apply the relocation with that value. */
elf_machine_rel (l->l_addr, l->l_info, reloc, loadbase, definer);
}
+1 -1
View File
@@ -25,7 +25,7 @@ Cambridge, MA 02139, USA. */
unpredictable before this is done. */
int
msync (caddr_t addr, size_t len, int flags)
msync (caddr_t addr, size_t len)
{
errno = ENOSYS;
return -1;
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996 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
@@ -25,7 +25,7 @@ Cambridge, MA 02139, USA. */
int
DEFUN(sendto, (fd, buf, n, flags, addr, addr_len),
int fd AND PTR buf AND size_t n AND int flags AND
struct sockaddr *addr AND size_t addr_len)
const struct sockaddr *addr AND size_t addr_len)
{
errno = ENOSYS;
return -1;
+10
View File
@@ -292,4 +292,14 @@ $(objpfx)sysd-syscalls: $(..)sysdeps/unix/make-syscalls.sh \
done > $@T
mv -f $@T $@
# This syscall objects depend on s-proto.d, which is generated to
# specify dependencies generated syscalls with have on headers.
ifdef subdir
ifndef no_deps
# These deps use file names relative to a subdir, so don't
# include them in the parent directory.
-include $(objpfx)s-proto.d
endif
endif
endif
-4
View File
@@ -2,11 +2,7 @@
chflags - chflags 2 chflags
fchflags - fchflags 2 fchflags
getdents - getdirentries 4 __getdirentries getdirentries
revoke - revoke 1 revoke
setegid - setegid 1 setegid
seteuid - seteuid 1 seteuid
setlogin - setlogin 2 setlogin
setsid - setsid 0 __setsid setsid
sigaltstack - sigaltstack 2 sigaltstack
wait4 - wait4 4 __wait4 wait4
-3
View File
@@ -1,3 +0,0 @@
# File name Caller Syscall name # args Strong name Weak names
getdents - getdirentries 4 __getdirentries getdirentries
@@ -2,7 +2,5 @@
msync - msync 3 msync
poll - poll 3 poll
setsid - setsid 0 __setsid setsid
sys_mmap mmap mmap 5 __mmap_syscall
sys_wait4 wait4 wait4 4 __wait4_syscall
uname - uname 1 uname
+1 -1
View File
@@ -1,3 +1,3 @@
# File name Caller Syscall name # args Strong name Weak names
getdents - getdirentries 4 __getdirentries getdirentries
sigvec - sigvec 3 __raw_sigvec
+3 -2
View File
@@ -1,13 +1,14 @@
# File name Caller Syscall name # args Strong name Weak names
flock - flock 2 __flock flock
getdents - getdirentries 4 __getdirentries getdirentries
getdtsz - getdtablesize 0 __getdtablesize getdtablesize
getpagesize - getpagesize 0 __getpagesize getpagesize
killpg - killpg 2 killpg
settimeofday - settimeofday 2 __settimeofday settimeofday
sigblock - sigblock 1 __sigblock sigblock
sigpause - sigpause 1 __sigpause sigpause
sigsetmask - sigsetmask 1 __sigsetmask sigsetmask
sigstack - sigstack 2 sigstack
sigvec - sigvec 3 __sigvec sigvec
utimes - utimes 2 __utimes utimes
wait3 - wait3 3 __wait3 wait3
waitpid - waitpid 3 __waitpid waitpid
-26
View File
@@ -1,26 +0,0 @@
/* Copyright (C) 1992 Free Software Foundation, Inc.
Contributed by Ian Lance Taylor (ian@airs.com).
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. */
/* Get various sorts of information about the system.
This is an Ultrix only call. */
#include <sysdep.h>
SYSCALL__ (getsysinfo, 5)
ret
.end __getsysinfo
+1 -1
View File
@@ -1,3 +1,3 @@
ifeq ($(subdir),signal)
sysdep_routines := $(sysdep_routines) sigtramp __handler
sysdep_routines := $(sysdep_routines) __handler
endif
@@ -1,4 +1,4 @@
/* Copyright (C) 1992 Free Software Foundation, Inc.
/* Copyright (C) 1992, 1996 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
@@ -36,7 +36,6 @@ Cambridge, MA 02139, USA. */
/* The user's signal handler is called with three arguments. */
typedef void (*handler_type) (int sig, int code, struct sigcontext *);
/* Defined in __raw_sigvec.S. */
extern int EXFUN(__raw_sigvec, (int sig, CONST struct sigvec *vec,
struct sigvec *ovec,
void (*)(int sig, int code,
@@ -1,3 +1,3 @@
# File name Caller Syscall name # args Strong name Weak names
ipc - ipc 5 __ipc
raw-sigvec sigvec sigvec 4 __raw_sigvec
+1 -3
View File
@@ -1,5 +1,3 @@
# File name Caller Syscall name # args Strong name Weak names
getdents - getdirentries 4 __getdirentries getdirentries
setsid - setsid 0 __setsid setsid
uname - uname 1 uname
getsysinfo sysconf getsysinfo 5 __getsysinfo
-25
View File
@@ -1,25 +0,0 @@
/* Copyright (C) 1992, 1995 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
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. */
#include <sysdep.h>
SYSCALL__ (waitpid, 3)
ret
.end __waitpid
weak_alias (__waitpid, waitpid)
+2
View File
@@ -7,9 +7,11 @@ ftruncate - ftruncate 2 ftruncate
getpgid - getpgrp 1 __getpgid getpgid
getrusage - getrusage 2 __getrusage getrusage
gettimeofday - gettimeofday 2 __gettimeofday gettimeofday
settimeofday - settimeofday 2 __settimeofday settimeofday
setpgid - setpgrp 2 __setpgid setpgid setpgrp
setregid - setregid 2 __setregid setregid
setreuid - setreuid 2 __setreuid setreuid
sigaction - sigaction 3 __sigaction sigaction
sys_lstat lxstat lstat 2 __syscall_lstat
truncate - truncate 2 truncate
vhangup - vhangup 1 vhangup
+8
View File
@@ -0,0 +1,8 @@
sinclude(./aclocal.m4)dnl Autoconf lossage
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/unix.
if test -z "$inhibit_glue"; then
# For make_errlist.c, used in make_errlist.
AC_CHECK_FUNCS(strerror)
fi
+9 -1
View File
@@ -21,7 +21,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Make a definition for sys_errlist. */
extern int sys_nerr;
#ifndef HAVE_STRERROR
extern char *sys_errlist[];
#endif
int
main ()
@@ -35,7 +37,13 @@ main ()
puts ("CONST char *CONST _sys_errlist[] =\n {");
for (i = 0; i < sys_nerr; ++i)
printf (" \"%s\",\n", sys_errlist[i]);
printf (" \"%s\",\n",
#ifdef HAVE_STRERROR
strerror (i)
#else /* ! HAVE_STRERROR */
sys_errlist[i]
#endif /* HAVE_STRERROR */
);
puts (" NULL\n };\n");
+7
View File
@@ -36,12 +36,18 @@ rename - rename 2 rename
rmdir - rmdir 1 __rmdir rmdir
select - select 5 __select select
setdomain - setdomainname 2 setdomainname
setegid - setegid 1 __setegid setegid
seteuid - seteuid 1 __seteuid seteuid
setgid - setgid 1 __setgid setgid
setgroups - setgroups 2 setgroups
setitimer - setitimer 3 __setitimer setitimer
setpriority - setpriority 3 setpriority
setrlimit - setrlimit 2 setrlimit
setsid - setsid 0 __setsid setsid
settimeofday - settimeofday 2 __settimeofday settimeofday
setuid - setuid 1 __setuid setuid
sigsuspend - sigsuspend 1 sigsuspend
sstk - sstk 1 sstk
swapon - swapon 1 swapon
symlink - symlink 2 __symlink symlink
sync - sync 0 sync
@@ -51,5 +57,6 @@ sys_stat xstat stat 2 __syscall_stat
umask - umask 1 __umask umask
uname - uname 1 uname
unlink - unlink 1 __unlink unlink
utimes - utimes 2 __utimes utimes
write - write 3 __write write
writev - writev 3 writev
+3
View File
@@ -40,3 +40,6 @@ ifeq ($(subdir),dirent)
sysdep_routines := $(sysdep_routines) s_getdents
endif
# In SYSV style archives the symbol table member has an empty name.
ar-symtab-name =
-1
View File
@@ -1 +0,0 @@
#include <sysdeps/unix/bsd/ultrix4/wait3.S>
+13 -9
View File
@@ -1,3 +1,15 @@
ifeq ($(subdir), math)
sysdep_routines += setfpucw
extra-objs += ieee-fpucw.o
headers += fpu_control.h
install-lib += libieee.a
non-lib.a += libieee.a
$(objpfx)libieee.a: $(objpfx)ieee-fpucw.o
rm -f $@
ln $< $@
endif
ifeq ($(subdir), io)
sysdep_routines += fxstat lxstat xstat
endif
@@ -7,19 +19,11 @@ sysdep_routines += xmknod mount umount s_ptrace
headers += sys/mount.h
endif
#ifeq ($(subdir), posix)
#sysdep_routines := $(sysdep_routines) setpgrp
#endif
ifeq ($(subdir), time)
sysdep_routines := $(sysdep_routines) adjtimex
sysdep_routines += adjtimex
headers += sys/timex.h
endif
ifeq ($(subdir), sysvipc)
sysdep_routines := $(sysdep_routines) ipc
endif
ifeq ($(subdir), socket)
headers += sys/socketcall.h
endif

Some files were not shown because too many files have changed in this diff Show More