int pthread_attr_setstacksize (pthread_attr_t *__attr,
size_t __stacksize)
{
+ size_t limit;
ensure_valgrind("pthread_attr_setstacksize");
- if (__stacksize < VG_PTHREAD_STACK_SIZE)
+ limit = VG_PTHREAD_STACK_SIZE - VG_AR_CLIENT_STACKBASE_REDZONE_SZB
+ - 1000; /* paranoia */
+ if (__stacksize < limit)
return 0;
barf("pthread_attr_setstacksize: "
"requested size >= VG_PTHREAD_STACK_SIZE\n "
}
+extern
+ssize_t __libc_pwrite64 (int __fd, const void *__buf, size_t __nbytes,
+ __off64_t __offset);
+ssize_t __pwrite64 (int __fd, const void *__buf, size_t __nbytes,
+ __off64_t __offset)
+{
+ return __libc_pwrite64(__fd, __buf, __nbytes, __offset);
+}
+
extern
void __libc_longjmp(jmp_buf env, int val) __attribute((noreturn));
strong_alias(send, __send)
weak_alias (__pread64, pread64)
+weak_alias (__pwrite64, pwrite64)
weak_alias(__fork, fork)
//weak_alias(__vfork, vfork)
//void __pthread_mutexattr_settype ( void ) { unimp("__pthread_mutexattr_settype"); }
//void __pthread_once ( void ) { unimp("__pthread_once"); }
//void __pthread_setspecific ( void ) { unimp("__pthread_setspecific"); }
-void __pwrite64 ( void ) { unimp("__pwrite64"); }
+//void __pwrite64 ( void ) { unimp("__pwrite64"); }
//void __read ( void ) { unimp("__read"); }
//void __res_state ( void ) { unimp("__res_state"); }
//void __send ( void ) { unimp("__send"); }
# define weak_alias(name, aliasname) \
extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));
-weak_alias (__pwrite64, pwrite64)
-
weak_alias(pthread_rwlock_destroy, __pthread_rwlock_destroy)
weak_alias(pthread_rwlock_init, __pthread_rwlock_init)
weak_alias(pthread_rwlock_tryrdlock, __pthread_rwlock_tryrdlock)
int pthread_attr_setstacksize (pthread_attr_t *__attr,
size_t __stacksize)
{
+ size_t limit;
ensure_valgrind("pthread_attr_setstacksize");
- if (__stacksize < VG_PTHREAD_STACK_SIZE)
+ limit = VG_PTHREAD_STACK_SIZE - VG_AR_CLIENT_STACKBASE_REDZONE_SZB
+ - 1000; /* paranoia */
+ if (__stacksize < limit)
return 0;
barf("pthread_attr_setstacksize: "
"requested size >= VG_PTHREAD_STACK_SIZE\n "
}
+extern
+ssize_t __libc_pwrite64 (int __fd, const void *__buf, size_t __nbytes,
+ __off64_t __offset);
+ssize_t __pwrite64 (int __fd, const void *__buf, size_t __nbytes,
+ __off64_t __offset)
+{
+ return __libc_pwrite64(__fd, __buf, __nbytes, __offset);
+}
+
extern
void __libc_longjmp(jmp_buf env, int val) __attribute((noreturn));
strong_alias(send, __send)
weak_alias (__pread64, pread64)
+weak_alias (__pwrite64, pwrite64)
weak_alias(__fork, fork)
//weak_alias(__vfork, vfork)
//void __pthread_mutexattr_settype ( void ) { unimp("__pthread_mutexattr_settype"); }
//void __pthread_once ( void ) { unimp("__pthread_once"); }
//void __pthread_setspecific ( void ) { unimp("__pthread_setspecific"); }
-void __pwrite64 ( void ) { unimp("__pwrite64"); }
+//void __pwrite64 ( void ) { unimp("__pwrite64"); }
//void __read ( void ) { unimp("__read"); }
//void __res_state ( void ) { unimp("__res_state"); }
//void __send ( void ) { unimp("__send"); }
# define weak_alias(name, aliasname) \
extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));
-weak_alias (__pwrite64, pwrite64)
-
weak_alias(pthread_rwlock_destroy, __pthread_rwlock_destroy)
weak_alias(pthread_rwlock_init, __pthread_rwlock_init)
weak_alias(pthread_rwlock_tryrdlock, __pthread_rwlock_tryrdlock)
int pthread_attr_setstacksize (pthread_attr_t *__attr,
size_t __stacksize)
{
+ size_t limit;
ensure_valgrind("pthread_attr_setstacksize");
- if (__stacksize < VG_PTHREAD_STACK_SIZE)
+ limit = VG_PTHREAD_STACK_SIZE - VG_AR_CLIENT_STACKBASE_REDZONE_SZB
+ - 1000; /* paranoia */
+ if (__stacksize < limit)
return 0;
barf("pthread_attr_setstacksize: "
"requested size >= VG_PTHREAD_STACK_SIZE\n "
}
+extern
+ssize_t __libc_pwrite64 (int __fd, const void *__buf, size_t __nbytes,
+ __off64_t __offset);
+ssize_t __pwrite64 (int __fd, const void *__buf, size_t __nbytes,
+ __off64_t __offset)
+{
+ return __libc_pwrite64(__fd, __buf, __nbytes, __offset);
+}
+
extern
void __libc_longjmp(jmp_buf env, int val) __attribute((noreturn));
strong_alias(send, __send)
weak_alias (__pread64, pread64)
+weak_alias (__pwrite64, pwrite64)
weak_alias(__fork, fork)
//weak_alias(__vfork, vfork)
//void __pthread_mutexattr_settype ( void ) { unimp("__pthread_mutexattr_settype"); }
//void __pthread_once ( void ) { unimp("__pthread_once"); }
//void __pthread_setspecific ( void ) { unimp("__pthread_setspecific"); }
-void __pwrite64 ( void ) { unimp("__pwrite64"); }
+//void __pwrite64 ( void ) { unimp("__pwrite64"); }
//void __read ( void ) { unimp("__read"); }
//void __res_state ( void ) { unimp("__res_state"); }
//void __send ( void ) { unimp("__send"); }
# define weak_alias(name, aliasname) \
extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));
-weak_alias (__pwrite64, pwrite64)
-
weak_alias(pthread_rwlock_destroy, __pthread_rwlock_destroy)
weak_alias(pthread_rwlock_init, __pthread_rwlock_init)
weak_alias(pthread_rwlock_tryrdlock, __pthread_rwlock_tryrdlock)