mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
2004-05-10 Jakub Jelinek <jakub@redhat.com> * sysdeps/posix/sysconf.c (__sysconf) <cases _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE, _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS, _SC_THREADS, _SC_THREAD_SAFE_FUNCTIONS, _SC_THREAD_ATTR_STACKADDR, _SC_THREAD_ATTR_STACKSIZE, _SC_THREAD_PRIORITY_SCHEDULING, _SC_THREAD_PRIO_INHERIT, _SC_THREAD_PRIO_PROTECT, _SC_THREAD_PROCESS_SHARED>: Return _POSIX_* value instead of 1. * sysdeps/unix/sysv/linux/sysconf.c (__sysconf) <case _SC_MONOTONIC_CLOCK>: Return _POSIX_VERSION instead of 1. 2004-05-07 Jeroen Dekkers <jeroen@dekkers.cx> * sysdeps/mach/hurd/i386/Makefile (CFLAGS-init-first.c): Add -momit-leaf-frame-pointer. * inet/test-ifaddrs.c (addr_string): Surround AF_PACKET case with #ifdef AF_PACKET. * sysdeps/mach/hurd/getcwd.c (_hurd_canonicalize_directory_name_intern): Only realloc when size is <= 0. * sysdeps/mach/hurd/mmap.c (__mmap): Fail when addr or offset isn't page aligned. * sysdeps/mach/hurd/spawni.c (EXPAND_DTABLE): Set dtablesize to new size. * sysdeps/mach/hurd/Versions (GLIBC_PRIVATE): Add __libc_read, __libc_write and __libc_lseek64.
This commit is contained in:
35
ChangeLog
35
ChangeLog
@ -1,3 +1,38 @@
|
|||||||
|
2004-05-10 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/posix/sysconf.c (__sysconf) <cases _SC_REALTIME_SIGNALS,
|
||||||
|
_SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO,
|
||||||
|
_SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC, _SC_MAPPED_FILES,
|
||||||
|
_SC_MEMLOCK, _SC_MEMLOCK_RANGE, _SC_MEMORY_PROTECTION,
|
||||||
|
_SC_MESSAGE_PASSING, _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS,
|
||||||
|
_SC_THREADS, _SC_THREAD_SAFE_FUNCTIONS, _SC_THREAD_ATTR_STACKADDR,
|
||||||
|
_SC_THREAD_ATTR_STACKSIZE, _SC_THREAD_PRIORITY_SCHEDULING,
|
||||||
|
_SC_THREAD_PRIO_INHERIT, _SC_THREAD_PRIO_PROTECT,
|
||||||
|
_SC_THREAD_PROCESS_SHARED>: Return _POSIX_* value instead of 1.
|
||||||
|
* sysdeps/unix/sysv/linux/sysconf.c (__sysconf)
|
||||||
|
<case _SC_MONOTONIC_CLOCK>: Return _POSIX_VERSION instead of 1.
|
||||||
|
|
||||||
|
2004-05-07 Jeroen Dekkers <jeroen@dekkers.cx>
|
||||||
|
|
||||||
|
* sysdeps/mach/hurd/i386/Makefile (CFLAGS-init-first.c): Add
|
||||||
|
-momit-leaf-frame-pointer.
|
||||||
|
|
||||||
|
* inet/test-ifaddrs.c (addr_string): Surround AF_PACKET case with
|
||||||
|
#ifdef AF_PACKET.
|
||||||
|
|
||||||
|
* sysdeps/mach/hurd/getcwd.c
|
||||||
|
(_hurd_canonicalize_directory_name_intern): Only realloc when
|
||||||
|
size is <= 0.
|
||||||
|
|
||||||
|
* sysdeps/mach/hurd/mmap.c (__mmap): Fail when addr or offset
|
||||||
|
isn't page aligned.
|
||||||
|
|
||||||
|
* sysdeps/mach/hurd/spawni.c (EXPAND_DTABLE): Set dtablesize to
|
||||||
|
new size.
|
||||||
|
|
||||||
|
* sysdeps/mach/hurd/Versions (GLIBC_PRIVATE): Add __libc_read,
|
||||||
|
__libc_write and __libc_lseek64.
|
||||||
|
|
||||||
2004-05-29 Roland McGrath <roland@redhat.com>
|
2004-05-29 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
* elf/Makefile (shared-only-routines): Add dl-caller.
|
* elf/Makefile (shared-only-routines): Add dl-caller.
|
||||||
|
@ -48,8 +48,10 @@ addr_string (struct sockaddr *sa, char *buf, size_t size)
|
|||||||
case AF_UNSPEC:
|
case AF_UNSPEC:
|
||||||
return "---";
|
return "---";
|
||||||
|
|
||||||
|
#ifdef AF_PACKET
|
||||||
case AF_PACKET:
|
case AF_PACKET:
|
||||||
return "<packet>";
|
return "<packet>";
|
||||||
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
++failures;
|
++failures;
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
2004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
|
||||||
|
Add __broadcast_seq field.
|
||||||
|
* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
|
||||||
|
all waiters as woken with woken_seq and bump broadcast counter.
|
||||||
|
* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
|
||||||
|
__broadcast_seq. Increment __woken_seq correctly when cleanuped.
|
||||||
|
* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
|
||||||
|
Comment typo fixes. Avoid returning -ETIMEDOUT.
|
||||||
|
|
||||||
|
2004-06-01 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
|
||||||
|
(__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
|
||||||
|
Reported by Kaz Kojima.
|
||||||
|
|
||||||
2004-05-25 Jakub Jelinek <jakub@redhat.com>
|
2004-05-25 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/aio_misc.h: New file.
|
* sysdeps/unix/sysv/linux/aio_misc.h: New file.
|
||||||
|
@ -82,6 +82,7 @@ typedef union
|
|||||||
unsigned long long int __wakeup_seq;
|
unsigned long long int __wakeup_seq;
|
||||||
unsigned long long int __woken_seq;
|
unsigned long long int __woken_seq;
|
||||||
void *__mutex;
|
void *__mutex;
|
||||||
|
unsigned int __broadcast_seq;
|
||||||
} __data;
|
} __data;
|
||||||
char __size[__SIZEOF_PTHREAD_COND_T];
|
char __size[__SIZEOF_PTHREAD_COND_T];
|
||||||
long long int __align;
|
long long int __align;
|
||||||
|
@ -67,6 +67,11 @@ __pthread_cond_broadcast:
|
|||||||
woken up. */
|
woken up. */
|
||||||
mov.l r1, @(wakeup_seq,r8)
|
mov.l r1, @(wakeup_seq,r8)
|
||||||
mov.l r0, @(wakeup_seq+4,r8)
|
mov.l r0, @(wakeup_seq+4,r8)
|
||||||
|
mov.l r1, @(woken_seq,r8)
|
||||||
|
mov.l r0, @(woken_seq+4,r8)
|
||||||
|
mov.l @(broadcast_seq,r8), r2
|
||||||
|
add #1, r2
|
||||||
|
mov.l r2, @(broadcast_seq,r8)
|
||||||
|
|
||||||
/* Get the address of the mutex used. */
|
/* Get the address of the mutex used. */
|
||||||
mov.l @(dep_mutex,r8), r9
|
mov.l @(dep_mutex,r8), r9
|
||||||
|
@ -114,6 +114,8 @@ __pthread_cond_timedwait:
|
|||||||
/* Get and store current wakeup_seq value. */
|
/* Get and store current wakeup_seq value. */
|
||||||
mov.l @(wakeup_seq,r8), r10
|
mov.l @(wakeup_seq,r8), r10
|
||||||
mov.l @(wakeup_seq+4,r8), r11
|
mov.l @(wakeup_seq+4,r8), r11
|
||||||
|
mov.l @(broadcast_seq,r8), r0
|
||||||
|
mov.l r0, @(4,r15)
|
||||||
|
|
||||||
8:
|
8:
|
||||||
/* Get current time. */
|
/* Get current time. */
|
||||||
@ -140,8 +142,10 @@ __pthread_cond_timedwait:
|
|||||||
add r1, r3
|
add r1, r3
|
||||||
add #-1, r2
|
add #-1, r2
|
||||||
12:
|
12:
|
||||||
|
mov #-ETIMEDOUT, r1
|
||||||
|
mov.l r1, @(12,r15)
|
||||||
cmp/pz r2
|
cmp/pz r2
|
||||||
bf 13f /* Time is already up. */
|
bf 6f /* Time is already up. */
|
||||||
|
|
||||||
/* Store relative timeout. */
|
/* Store relative timeout. */
|
||||||
mov.l r2, @(16,r15)
|
mov.l r2, @(16,r15)
|
||||||
@ -193,6 +197,11 @@ __pthread_cond_timedwait:
|
|||||||
#endif
|
#endif
|
||||||
bf 5f
|
bf 5f
|
||||||
6:
|
6:
|
||||||
|
mov.l @(broadcast_seq,r8), r0
|
||||||
|
mov.l @(4,r15), r1
|
||||||
|
cmp/eq r0, r1
|
||||||
|
bf 23f
|
||||||
|
|
||||||
mov.l @(woken_seq,r8), r0
|
mov.l @(woken_seq,r8), r0
|
||||||
mov.l @(woken_seq+4,r8), r1
|
mov.l @(woken_seq+4,r8), r1
|
||||||
|
|
||||||
@ -212,7 +221,7 @@ __pthread_cond_timedwait:
|
|||||||
mov.l @(12,r15),r0
|
mov.l @(12,r15),r0
|
||||||
cmp/eq #-ETIMEDOUT, r0
|
cmp/eq #-ETIMEDOUT, r0
|
||||||
bf 8b
|
bf 8b
|
||||||
13:
|
|
||||||
mov #1, r2
|
mov #1, r2
|
||||||
mov #0, r3
|
mov #0, r3
|
||||||
|
|
||||||
@ -227,6 +236,11 @@ __pthread_cond_timedwait:
|
|||||||
bra 14f
|
bra 14f
|
||||||
mov.l r0, @(24,r15)
|
mov.l r0, @(24,r15)
|
||||||
|
|
||||||
|
23:
|
||||||
|
mov #0, r0
|
||||||
|
bra 24f
|
||||||
|
mov.l r0, @(24,r15)
|
||||||
|
|
||||||
9:
|
9:
|
||||||
mov #0, r0
|
mov #0, r0
|
||||||
mov.l r0, @(24,r15)
|
mov.l r0, @(24,r15)
|
||||||
@ -242,6 +256,7 @@ __pthread_cond_timedwait:
|
|||||||
mov.l r0,@(woken_seq,r8)
|
mov.l r0,@(woken_seq,r8)
|
||||||
mov.l r1,@(woken_seq+4,r8)
|
mov.l r1,@(woken_seq+4,r8)
|
||||||
|
|
||||||
|
24:
|
||||||
#if cond_lock != 0
|
#if cond_lock != 0
|
||||||
DEC (@(cond_lock,r8), r2)
|
DEC (@(cond_lock,r8), r2)
|
||||||
#else
|
#else
|
||||||
@ -301,7 +316,7 @@ __pthread_cond_timedwait:
|
|||||||
nop
|
nop
|
||||||
|
|
||||||
3:
|
3:
|
||||||
/* Unlock in loop requires waekup. */
|
/* Unlock in loop requires wakeup. */
|
||||||
mov r8, r4
|
mov r8, r4
|
||||||
#if cond_lock != 0
|
#if cond_lock != 0
|
||||||
add #cond_lock, r4
|
add #cond_lock, r4
|
||||||
@ -327,7 +342,7 @@ __pthread_cond_timedwait:
|
|||||||
nop
|
nop
|
||||||
|
|
||||||
10:
|
10:
|
||||||
/* Unlock after loop requires waekup. */
|
/* Unlock after loop requires wakeup. */
|
||||||
mov r8, r4
|
mov r8, r4
|
||||||
#if cond_lock != 0
|
#if cond_lock != 0
|
||||||
add #cond_lock, r4
|
add #cond_lock, r4
|
||||||
@ -403,6 +418,11 @@ __condvar_tw_cleanup:
|
|||||||
.Lmwait5b:
|
.Lmwait5b:
|
||||||
|
|
||||||
1:
|
1:
|
||||||
|
mov.l @(broadcast_seq,r8), r0
|
||||||
|
mov.l @(4,r15), r1
|
||||||
|
cmp/eq r0, r1
|
||||||
|
bf 3f
|
||||||
|
|
||||||
mov #1, r2
|
mov #1, r2
|
||||||
mov #0, r3
|
mov #0, r3
|
||||||
|
|
||||||
@ -414,6 +434,15 @@ __condvar_tw_cleanup:
|
|||||||
mov.l r0,@(wakeup_seq,r8)
|
mov.l r0,@(wakeup_seq,r8)
|
||||||
mov.l r1,@(wakeup_seq+4,r8)
|
mov.l r1,@(wakeup_seq+4,r8)
|
||||||
|
|
||||||
|
clrt
|
||||||
|
mov.l @(woken_seq,r8),r0
|
||||||
|
mov.l @(woken_seq+4,r8),r1
|
||||||
|
addc r2, r0
|
||||||
|
addc r3, r1
|
||||||
|
mov.l r0,@(woken_seq,r8)
|
||||||
|
mov.l r1,@(woken_seq+4,r8)
|
||||||
|
|
||||||
|
3:
|
||||||
#if cond_lock != 0
|
#if cond_lock != 0
|
||||||
DEC (@(cond_lock,r8), r2)
|
DEC (@(cond_lock,r8), r2)
|
||||||
#else
|
#else
|
||||||
|
@ -108,6 +108,8 @@ __pthread_cond_wait:
|
|||||||
/* Get and store current wakeup_seq value. */
|
/* Get and store current wakeup_seq value. */
|
||||||
mov.l @(wakeup_seq,r8), r10
|
mov.l @(wakeup_seq,r8), r10
|
||||||
mov.l @(wakeup_seq+4,r8), r11
|
mov.l @(wakeup_seq+4,r8), r11
|
||||||
|
mov.l @(broadcast_seq,r8), r0
|
||||||
|
mov.l r0, @(4,r15)
|
||||||
|
|
||||||
8:
|
8:
|
||||||
/* Unlock. */
|
/* Unlock. */
|
||||||
@ -152,6 +154,11 @@ __pthread_cond_wait:
|
|||||||
#endif
|
#endif
|
||||||
bf 5f
|
bf 5f
|
||||||
6:
|
6:
|
||||||
|
mov.l @(broadcast_seq,r8), r0
|
||||||
|
mov.l @(4,r15), r1
|
||||||
|
cmp/eq r0, r1
|
||||||
|
bf 16f
|
||||||
|
|
||||||
mov.l @(woken_seq,r8), r0
|
mov.l @(woken_seq,r8), r0
|
||||||
mov.l @(woken_seq+4,r8), r1
|
mov.l @(woken_seq+4,r8), r1
|
||||||
|
|
||||||
@ -179,6 +186,7 @@ __pthread_cond_wait:
|
|||||||
mov.l r0,@(woken_seq,r8)
|
mov.l r0,@(woken_seq,r8)
|
||||||
mov.l r1,@(woken_seq+4,r8)
|
mov.l r1,@(woken_seq+4,r8)
|
||||||
|
|
||||||
|
16:
|
||||||
#if cond_lock != 0
|
#if cond_lock != 0
|
||||||
DEC (@(cond_lock,r8), r2)
|
DEC (@(cond_lock,r8), r2)
|
||||||
#else
|
#else
|
||||||
@ -330,6 +338,11 @@ __condvar_w_cleanup:
|
|||||||
.Lmwait3b:
|
.Lmwait3b:
|
||||||
|
|
||||||
1:
|
1:
|
||||||
|
mov.l @(broadcast_seq,r8), r0
|
||||||
|
mov.l @(4,r15), r1
|
||||||
|
cmp/eq r0, r1
|
||||||
|
bf 3f
|
||||||
|
|
||||||
mov #1, r2
|
mov #1, r2
|
||||||
mov #0, r3
|
mov #0, r3
|
||||||
|
|
||||||
@ -341,6 +354,15 @@ __condvar_w_cleanup:
|
|||||||
mov.l r0,@(wakeup_seq,r8)
|
mov.l r0,@(wakeup_seq,r8)
|
||||||
mov.l r1,@(wakeup_seq+4,r8)
|
mov.l r1,@(wakeup_seq+4,r8)
|
||||||
|
|
||||||
|
clrt
|
||||||
|
mov.l @(woken_seq,r8),r0
|
||||||
|
mov.l @(woken_seq+4,r8),r1
|
||||||
|
addc r2, r0
|
||||||
|
addc r3, r1
|
||||||
|
mov.l r0,@(woken_seq,r8)
|
||||||
|
mov.l r1,@(woken_seq+4,r8)
|
||||||
|
|
||||||
|
3:
|
||||||
#if cond_lock != 0
|
#if cond_lock != 0
|
||||||
DEC (@(cond_lock,r8), r2)
|
DEC (@(cond_lock,r8), r2)
|
||||||
#else
|
#else
|
||||||
|
@ -4,6 +4,9 @@ libc {
|
|||||||
__getcwd; __mmap;
|
__getcwd; __mmap;
|
||||||
}
|
}
|
||||||
GLIBC_PRIVATE {
|
GLIBC_PRIVATE {
|
||||||
|
# Functions shared with the dynamic linker
|
||||||
|
__libc_read; __libc_write; __libc_lseek64;
|
||||||
|
|
||||||
_dl_init_first;
|
_dl_init_first;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1991,92,93,94,95,96,97,98,2002 Free Software Foundation, Inc.
|
/* Copyright (C) 1991,92,93,94,95,96,97,98,2002,04 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -50,6 +50,7 @@ _hurd_canonicalize_directory_name_internal (file_t thisdir,
|
|||||||
file_t parent;
|
file_t parent;
|
||||||
char *dirbuf = NULL;
|
char *dirbuf = NULL;
|
||||||
unsigned int dirbufsize = 0;
|
unsigned int dirbufsize = 0;
|
||||||
|
const size_t orig_size = size;
|
||||||
|
|
||||||
inline void cleanup (void)
|
inline void cleanup (void)
|
||||||
{
|
{
|
||||||
@ -67,7 +68,7 @@ _hurd_canonicalize_directory_name_internal (file_t thisdir,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (size == 0)
|
if (size <= 0)
|
||||||
{
|
{
|
||||||
if (buf != NULL)
|
if (buf != NULL)
|
||||||
{
|
{
|
||||||
@ -226,7 +227,7 @@ _hurd_canonicalize_directory_name_internal (file_t thisdir,
|
|||||||
|
|
||||||
if (file_namep - file_name < d->d_namlen + 1)
|
if (file_namep - file_name < d->d_namlen + 1)
|
||||||
{
|
{
|
||||||
if (buf != NULL)
|
if (orig_size > 0)
|
||||||
{
|
{
|
||||||
errno = ERANGE;
|
errno = ERANGE;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -3,3 +3,6 @@ sysdep_routines += ioperm
|
|||||||
sysdep_headers += sys/io.h
|
sysdep_headers += sys/io.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(subdir),csu)
|
||||||
|
CFLAGS-init-first.c += -momit-leaf-frame-pointer
|
||||||
|
endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1994,1995,1996,1997,1999,2002,2003
|
/* Copyright (C) 1994,1995,1996,1997,1999,2002,2003,2004
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -39,10 +39,13 @@ __mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
|
|||||||
vm_prot_t vmprot;
|
vm_prot_t vmprot;
|
||||||
memory_object_t memobj;
|
memory_object_t memobj;
|
||||||
vm_address_t mapaddr;
|
vm_address_t mapaddr;
|
||||||
vm_size_t pageoff;
|
|
||||||
|
|
||||||
mapaddr = (vm_address_t) addr;
|
mapaddr = (vm_address_t) addr;
|
||||||
|
|
||||||
|
/* ADDR and OFFSET must be page-aligned. */
|
||||||
|
if ((mapaddr & (vm_page_size - 1)) || (offset & (vm_page_size - 1)))
|
||||||
|
return (__ptr_t) (long int) __hurd_fail (EINVAL);
|
||||||
|
|
||||||
if ((flags & (MAP_TYPE|MAP_INHERIT)) == MAP_ANON
|
if ((flags & (MAP_TYPE|MAP_INHERIT)) == MAP_ANON
|
||||||
&& prot == (PROT_READ|PROT_WRITE)) /* cf VM_PROT_DEFAULT */
|
&& prot == (PROT_READ|PROT_WRITE)) /* cf VM_PROT_DEFAULT */
|
||||||
{
|
{
|
||||||
@ -62,20 +65,6 @@ __mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
|
|||||||
return err ? (__ptr_t) (long int) __hurd_fail (err) : (__ptr_t) mapaddr;
|
return err ? (__ptr_t) (long int) __hurd_fail (err) : (__ptr_t) mapaddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
pageoff = offset & (vm_page_size - 1);
|
|
||||||
offset &= ~(vm_page_size - 1);
|
|
||||||
|
|
||||||
if (flags & MAP_FIXED)
|
|
||||||
{
|
|
||||||
/* A specific address is requested. It need not be page-aligned;
|
|
||||||
it just needs to be congruent with the object offset. */
|
|
||||||
if ((mapaddr & (vm_page_size - 1)) != pageoff)
|
|
||||||
return (__ptr_t) (long int) __hurd_fail (EINVAL);
|
|
||||||
else
|
|
||||||
/* We will add back PAGEOFF after mapping. */
|
|
||||||
mapaddr -= pageoff;
|
|
||||||
}
|
|
||||||
|
|
||||||
vmprot = VM_PROT_NONE;
|
vmprot = VM_PROT_NONE;
|
||||||
if (prot & PROT_READ)
|
if (prot & PROT_READ)
|
||||||
vmprot |= VM_PROT_READ;
|
vmprot |= VM_PROT_READ;
|
||||||
@ -173,9 +162,6 @@ __mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
|
|||||||
if (err)
|
if (err)
|
||||||
return (__ptr_t) (long int) __hurd_fail (err);
|
return (__ptr_t) (long int) __hurd_fail (err);
|
||||||
|
|
||||||
/* Adjust the mapping address for the offset-within-page. */
|
|
||||||
mapaddr += pageoff;
|
|
||||||
|
|
||||||
return (__ptr_t) mapaddr;
|
return (__ptr_t) mapaddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* spawn a new process running an executable. Hurd version.
|
/* spawn a new process running an executable. Hurd version.
|
||||||
Copyright (C) 2001,02 Free Software Foundation, Inc.
|
Copyright (C) 2001,02,04 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -399,6 +399,7 @@ __spawni (pid_t *pid, const char *file,
|
|||||||
NEW_TABLE (dtable, newfd); \
|
NEW_TABLE (dtable, newfd); \
|
||||||
NEW_TABLE (ulink_dtable, newfd); \
|
NEW_TABLE (ulink_dtable, newfd); \
|
||||||
NEW_TABLE (dtable_cells, newfd); \
|
NEW_TABLE (dtable_cells, newfd); \
|
||||||
|
dtablesize = newfd + 1; \
|
||||||
} \
|
} \
|
||||||
((unsigned int)newfd < dtablesize ? 0 : EMFILE); \
|
((unsigned int)newfd < dtablesize ? 0 : EMFILE); \
|
||||||
})
|
})
|
||||||
@ -592,7 +593,7 @@ __spawni (pid_t *pid, const char *file,
|
|||||||
case ESTALE:
|
case ESTALE:
|
||||||
case ENOTDIR:
|
case ENOTDIR:
|
||||||
/* Those errors indicate the file is missing or not executable
|
/* Those errors indicate the file is missing or not executable
|
||||||
v by us, in which case we want to just try the next path
|
by us, in which case we want to just try the next path
|
||||||
directory. */
|
directory. */
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -97,98 +97,98 @@ __sysconf (name)
|
|||||||
|
|
||||||
case _SC_REALTIME_SIGNALS:
|
case _SC_REALTIME_SIGNALS:
|
||||||
#ifdef _POSIX_REALTIME_SIGNALS
|
#ifdef _POSIX_REALTIME_SIGNALS
|
||||||
return 1;
|
return _POSIX_REALTIME_SIGNALS;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_PRIORITY_SCHEDULING:
|
case _SC_PRIORITY_SCHEDULING:
|
||||||
#ifdef _POSIX_PRIORITY_SCHEDULING
|
#ifdef _POSIX_PRIORITY_SCHEDULING
|
||||||
return 1;
|
return _POSIX_PRIORITY_SCHEDULING;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_TIMERS:
|
case _SC_TIMERS:
|
||||||
#ifdef _POSIX_TIMERS
|
#ifdef _POSIX_TIMERS
|
||||||
return 1;
|
return _POSIX_TIMERS;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_ASYNCHRONOUS_IO:
|
case _SC_ASYNCHRONOUS_IO:
|
||||||
#ifdef _POSIX_ASYNCHRONOUS_IO
|
#ifdef _POSIX_ASYNCHRONOUS_IO
|
||||||
return 1;
|
return _POSIX_ASYNCHRONOUS_IO;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_PRIORITIZED_IO:
|
case _SC_PRIORITIZED_IO:
|
||||||
#ifdef _POSIX_PRIORITIZED_IO
|
#ifdef _POSIX_PRIORITIZED_IO
|
||||||
return 1;
|
return _POSIX_PRIORITIZED_IO;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_SYNCHRONIZED_IO:
|
case _SC_SYNCHRONIZED_IO:
|
||||||
#ifdef _POSIX_SYNCHRONIZED_IO
|
#ifdef _POSIX_SYNCHRONIZED_IO
|
||||||
return 1;
|
return _POSIX_SYNCHRONIZED_IO;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_FSYNC:
|
case _SC_FSYNC:
|
||||||
#ifdef _POSIX_FSYNC
|
#ifdef _POSIX_FSYNC
|
||||||
return 1;
|
return _POSIX_FSYNC;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_MAPPED_FILES:
|
case _SC_MAPPED_FILES:
|
||||||
#ifdef _POSIX_MAPPED_FILES
|
#ifdef _POSIX_MAPPED_FILES
|
||||||
return 1;
|
return _POSIX_MAPPED_FILES;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_MEMLOCK:
|
case _SC_MEMLOCK:
|
||||||
#ifdef _POSIX_MEMLOCK
|
#ifdef _POSIX_MEMLOCK
|
||||||
return 1;
|
return _POSIX_MEMLOCK;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_MEMLOCK_RANGE:
|
case _SC_MEMLOCK_RANGE:
|
||||||
#ifdef _POSIX_MEMLOCK_RANGE
|
#ifdef _POSIX_MEMLOCK_RANGE
|
||||||
return 1;
|
return _POSIX_MEMLOCK_RANGE;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_MEMORY_PROTECTION:
|
case _SC_MEMORY_PROTECTION:
|
||||||
#ifdef _POSIX_MEMORY_PROTECTION
|
#ifdef _POSIX_MEMORY_PROTECTION
|
||||||
return 1;
|
return _POSIX_MEMORY_PROTECTION;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_MESSAGE_PASSING:
|
case _SC_MESSAGE_PASSING:
|
||||||
#ifdef _POSIX_MESSAGE_PASSING
|
#ifdef _POSIX_MESSAGE_PASSING
|
||||||
return 1;
|
return _POSIX_MESSAGE_PASSING;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_SEMAPHORES:
|
case _SC_SEMAPHORES:
|
||||||
#ifdef _POSIX_SEMAPHORES
|
#ifdef _POSIX_SEMAPHORES
|
||||||
return 1;
|
return _POSIX_SEMAPHORES;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_SHARED_MEMORY_OBJECTS:
|
case _SC_SHARED_MEMORY_OBJECTS:
|
||||||
#ifdef _POSIX_SHARED_MEMORY_OBJECTS
|
#ifdef _POSIX_SHARED_MEMORY_OBJECTS
|
||||||
return 1;
|
return _POSIX_SHARED_MEMORY_OBJECTS;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
@ -507,14 +507,14 @@ __sysconf (name)
|
|||||||
/* POSIX 1003.1c (POSIX Threads). */
|
/* POSIX 1003.1c (POSIX Threads). */
|
||||||
case _SC_THREADS:
|
case _SC_THREADS:
|
||||||
#ifdef _POSIX_THREADS
|
#ifdef _POSIX_THREADS
|
||||||
return 1;
|
return _POSIX_THREADS;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_THREAD_SAFE_FUNCTIONS:
|
case _SC_THREAD_SAFE_FUNCTIONS:
|
||||||
#ifdef _POSIX_THREAD_SAFE_FUNCTIONS
|
#ifdef _POSIX_THREAD_SAFE_FUNCTIONS
|
||||||
return 1;
|
return _POSIX_THREAD_SAFE_FUNCTIONS;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
@ -569,42 +569,42 @@ __sysconf (name)
|
|||||||
|
|
||||||
case _SC_THREAD_ATTR_STACKADDR:
|
case _SC_THREAD_ATTR_STACKADDR:
|
||||||
#ifdef _POSIX_THREAD_ATTR_STACKADDR
|
#ifdef _POSIX_THREAD_ATTR_STACKADDR
|
||||||
return 1;
|
return _POSIX_THREAD_ATTR_STACKADDR;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_THREAD_ATTR_STACKSIZE:
|
case _SC_THREAD_ATTR_STACKSIZE:
|
||||||
#ifdef _POSIX_THREAD_ATTR_STACKSIZE
|
#ifdef _POSIX_THREAD_ATTR_STACKSIZE
|
||||||
return 1;
|
return _POSIX_THREAD_ATTR_STACKSIZE;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_THREAD_PRIORITY_SCHEDULING:
|
case _SC_THREAD_PRIORITY_SCHEDULING:
|
||||||
#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING
|
#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING
|
||||||
return 1;
|
return _POSIX_THREAD_PRIORITY_SCHEDULING;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_THREAD_PRIO_INHERIT:
|
case _SC_THREAD_PRIO_INHERIT:
|
||||||
#ifdef _POSIX_THREAD_PRIO_INHERIT
|
#ifdef _POSIX_THREAD_PRIO_INHERIT
|
||||||
return 1;
|
return _POSIX_THREAD_PRIO_INHERIT;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_THREAD_PRIO_PROTECT:
|
case _SC_THREAD_PRIO_PROTECT:
|
||||||
#ifdef _POSIX_THREAD_PRIO_PROTECT
|
#ifdef _POSIX_THREAD_PRIO_PROTECT
|
||||||
return 1;
|
return _POSIX_THREAD_PRIO_PROTECT;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_THREAD_PROCESS_SHARED:
|
case _SC_THREAD_PROCESS_SHARED:
|
||||||
#ifdef _POSIX_THREAD_PROCESS_SHARED
|
#ifdef _POSIX_THREAD_PROCESS_SHARED
|
||||||
return 1;
|
return _POSIX_THREAD_PROCESS_SHARED;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
@ -44,7 +44,7 @@ __sysconf (int name)
|
|||||||
INTERNAL_SYSCALL_DECL (err);
|
INTERNAL_SYSCALL_DECL (err);
|
||||||
int r;
|
int r;
|
||||||
r = INTERNAL_SYSCALL (clock_getres, err, 2, CLOCK_MONOTONIC, &ts);
|
r = INTERNAL_SYSCALL (clock_getres, err, 2, CLOCK_MONOTONIC, &ts);
|
||||||
return INTERNAL_SYSCALL_ERROR_P (r, err) ? -1 : 1;
|
return INTERNAL_SYSCALL_ERROR_P (r, err) ? -1 : _POSIX_VERSION;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user