diff options
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/ChangeLog | 19 | ||||
-rw-r--r-- | nptl/Makefile | 11 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h | 3 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/kernel-features.h | 6 | ||||
-rw-r--r-- | nptl/tst-stackguard1.c | 8 |
5 files changed, 42 insertions, 5 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 222112161a..c485435e82 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -3604,6 +3604,15 @@ Use __sigfillset. Document that sigfillset does the right thing wrt to SIGSETXID. +2005-08-08 Jakub Jelinek <jakub@redhat.com> + + * tst-stackguard1.c (do_test): Likewise. + +2005-07-29 Jakub Jelinek <jakub@redhat.com> + + * tst-stackguard1.c (do_test): Don't fail if the poor man's + randomization doesn't work well enough. + 2005-07-11 Jakub Jelinek <jakub@redhat.com> [BZ #1102] @@ -4340,6 +4349,11 @@ Move definition inside libpthread, libc, librt check. Provide definition for rtld. +2004-09-02 Jakub Jelinek <jakub@redhat.com> + + * pthread_cond_destroy.c (__pthread_cond_destroy): If there are + waiters, awake all waiters on the associated mutex. + 2004-09-02 Ulrich Drepper <drepper@redhat.com> * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp. @@ -6414,6 +6428,11 @@ * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules). +2003-07-22 Jakub Jelinek <jakub@redhat.com> + + * descr.h: Don't include lowlevellock.h, pthreaddef.h and dl-sysdep.h + if __need_struct_pthread_size, instead define lll_lock_t. + 2003-07-25 Jakub Jelinek <jakub@redhat.com> * tst-cancel17.c (do_test): Check if aio_cancel failed. diff --git a/nptl/Makefile b/nptl/Makefile index f96ed458e6..e8180021ec 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -339,7 +339,8 @@ endif extra-objs += $(crti-objs) $(crtn-objs) omit-deps += crti crtn -CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) +CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \ + -fno-asynchronous-unwind-tables endif CFLAGS-flockfile.c = -D_IO_MTSAFE_IO @@ -525,15 +526,19 @@ $(addprefix $(objpfx), \ $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \ $(objpfx)libpthread_nonshared.a $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so -# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so, +# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so, # since otherwise libpthread.so comes before libc.so when linking. $(addprefix $(objpfx), $(tests-reverse)): \ - $(objpfx)../libc.so $(objpfx)libpthread.so \ + $(objpfx)linklibc.so $(objpfx)libpthread.so \ $(objpfx)libpthread_nonshared.a $(objpfx)../libc.so: $(common-objpfx)libc.so ; $(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a $(objpfx)tst-atfork2.out: $(objpfx)tst-atfork2mod.so + +$(objpfx)linklibc.so: $(common-objpfx)libc.so + ln -s ../libc.so $@ +generated += libclink.so else $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a endif diff --git a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h index f9fa4e52eb..e23ad29e3e 100644 --- a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h +++ b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h @@ -187,4 +187,7 @@ /* Typed memory objects are not available. */ #define _POSIX_TYPED_MEMORY_OBJECTS -1 +/* Streams are not available. */ +#define _XOPEN_STREAMS -1 + #endif /* bits/posix_opt.h */ diff --git a/nptl/sysdeps/unix/sysv/linux/kernel-features.h b/nptl/sysdeps/unix/sysv/linux/kernel-features.h new file mode 100644 index 0000000000..162d73e388 --- /dev/null +++ b/nptl/sysdeps/unix/sysv/linux/kernel-features.h @@ -0,0 +1,6 @@ +#include_next <kernel-features.h> + +/* NPTL can always assume all clone thread flags work. */ +#ifndef __ASSUME_CLONE_THREAD_FLAGS +# define __ASSUME_CLONE_THREAD_FLAGS 1 +#endif diff --git a/nptl/tst-stackguard1.c b/nptl/tst-stackguard1.c index 15c30aeb6b..77ebbfbd7e 100644 --- a/nptl/tst-stackguard1.c +++ b/nptl/tst-stackguard1.c @@ -190,17 +190,21 @@ do_test (void) the 16 runs, something is very wrong. */ int ndifferences = 0; int ndefaults = 0; + int npartlyrandomized = 0; for (i = 0; i < N; ++i) { if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) ndifferences++; else if (child_stack_chk_guards[i] == default_guard) ndefaults++; + else if (*(char *) &child_stack_chk_guards[i] == 0) + npartlyrandomized++; } - printf ("differences %d defaults %d\n", ndifferences, ndefaults); + printf ("differences %d defaults %d partly randomized %d\n", + ndifferences, ndefaults, npartlyrandomized); - if (ndifferences < N / 2 && ndefaults < N / 2) + if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) { puts ("stack guard canaries are not randomized enough"); puts ("nor equal to the default canary value"); |