From patchwork Sun Feb 9 19:27:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Thibault X-Patchwork-Id: 1235537 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-109301-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ens-lyon.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha1 header.s=default header.b=dnESaW1P; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48FzbW5nbqz9sRQ for ; Mon, 10 Feb 2020 06:28:23 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; q=dns; s=default; b=eil pc5RftGXOxBbwLGj9shmrYu1yOZwZI4XJa3+mLln83aeahvUe8M0sj+7Pr45qtPm oNoEhmoaBWCyzrPOpbcht0yXKNU+DcR/vr+tL43nC1upD5z+tHdUKD9JS/CrzuTZ M55ZVfz/jdS0B359fxBECAnOSAB3eM9C4ESVgvEI= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; s=default; bh=rdFHcdQsL xAodUonuvBlZP9y4/E=; b=dnESaW1PZbeg3/uw2+mF1YGP7/byCD7jMd4qL0NDu di1KC+1OU1Ch8i0IkAQWx10w7QZH3Dvd335v2nP/LtjassUSFl/yU3bMsKeOQOZf SboOHLVfgZrEE9yghIxNu6JSi3sPSIE0sncOdJiESF9RQ/Ep9OSZQlogIgGadn5t Gs= Received: (qmail 27525 invoked by alias); 9 Feb 2020 19:27:59 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 27425 invoked by uid 89); 9 Feb 2020 19:27:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NEUTRAL autolearn=ham version=3.3.1 spammy= X-HELO: hera.aquilenet.fr From: Samuel Thibault To: libc-alpha@sourceware.org Cc: Samuel Thibault , commit-hurd@gnu.org Subject: [hurd, commited 1/3] htl: Report missing mutex lock on pthread_cond_*wait Date: Sun, 9 Feb 2020 20:27:48 +0100 Message-Id: <20200209192750.292859-1-samuel.thibault@ens-lyon.org> MIME-Version: 1.0 --- htl/Makefile | 2 +- htl/pt-internal.h | 3 ++ sysdeps/htl/pt-cond-timedwait.c | 4 ++ sysdeps/mach/hurd/htl/pt-mutex-checklocked.c | 51 ++++++++++++++++++++ 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 sysdeps/mach/hurd/htl/pt-mutex-checklocked.c diff --git a/htl/Makefile b/htl/Makefile index bb9ef5deba..b2dc797ee4 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -68,7 +68,7 @@ libpthread-routines := pt-attr pt-attr-destroy pt-attr-getdetachstate \ pt-mutexattr-setpshared pt-mutexattr-settype \ pt-mutexattr-getrobust pt-mutexattr-setrobust \ \ - pt-mutex-init pt-mutex-destroy \ + pt-mutex-init pt-mutex-destroy pt-mutex-checklocked \ pt-mutex-lock pt-mutex-trylock pt-mutex-timedlock \ pt-mutex-unlock \ pt-mutex-transfer-np \ diff --git a/htl/pt-internal.h b/htl/pt-internal.h index 064e795157..8ffe1bd970 100644 --- a/htl/pt-internal.h +++ b/htl/pt-internal.h @@ -301,6 +301,9 @@ extern error_t __pthread_sigstate (struct __pthread *__restrict thread, int how, const sigset_t *__restrict set, sigset_t *__restrict oset, int clear_pending); + +/* If supported, check that MUTEX is locked by the caller. */ +extern int __pthread_mutex_checklocked (pthread_mutex_t *mtx); /* Default thread attributes. */ diff --git a/sysdeps/htl/pt-cond-timedwait.c b/sysdeps/htl/pt-cond-timedwait.c index d9ce23b682..3a11e016d7 100644 --- a/sysdeps/htl/pt-cond-timedwait.c +++ b/sysdeps/htl/pt-cond-timedwait.c @@ -78,6 +78,10 @@ __pthread_cond_timedwait_internal (pthread_cond_t *cond, if (abstime && ! valid_nanoseconds (abstime->tv_nsec)) return EINVAL; + err = __pthread_mutex_checklocked (mutex); + if (err) + return err; + struct __pthread *self = _pthread_self (); struct cancel_ctx ctx; ctx.wakeup = self; diff --git a/sysdeps/mach/hurd/htl/pt-mutex-checklocked.c b/sysdeps/mach/hurd/htl/pt-mutex-checklocked.c new file mode 100644 index 0000000000..dea580fa04 --- /dev/null +++ b/sysdeps/mach/hurd/htl/pt-mutex-checklocked.c @@ -0,0 +1,51 @@ +/* __pthread_mutex_checklocked. Hurd version. + Copyright (C) 2016-2020 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 Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include +#include +#include "pt-mutex.h" +#include + +int +__pthread_mutex_checklocked (pthread_mutex_t *mtxp) +{ + int ret = 0; + + switch (MTX_TYPE (mtxp)) + { + case PT_MTX_NORMAL: + break; + + case PT_MTX_RECURSIVE: + case PT_MTX_ERRORCHECK: + case PT_MTX_NORMAL | PTHREAD_MUTEX_ROBUST: + case PT_MTX_RECURSIVE | PTHREAD_MUTEX_ROBUST: + case PT_MTX_ERRORCHECK | PTHREAD_MUTEX_ROBUST: + if (!mtx_owned_p (mtxp, _pthread_self (), mtxp->__flags)) + ret = EPERM; + break; + + default: + ret = EINVAL; + break; + } + + return ret; +} From patchwork Sun Feb 9 19:27:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Thibault X-Patchwork-Id: 1235538 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-109302-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ens-lyon.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha1 header.s=default header.b=AGAPc6UI; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48Fzbd1L5kz9sRQ for ; Mon, 10 Feb 2020 06:28:28 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=jNjn5stt5DXRt7QiN9d+FBBfGUrJBMsmOy6FXFEPyZH0HHIUhjjNx A2voLc49uxTX/QwU22vGMwU10tnr5FONL6b7Uqgz0d+V24aMBb8c/NIt2zuU8V9v 2He5ITKonItqOHBQrAKVUtYXgn6LPMXDlJ20/biONJEogC+DaDynhQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=fhRTMVdbdn3EVQzdHhatsWALwyg=; b=AGAPc6UIXopAkVp6ldVu8nDzWvph IpV++cOELORrYEzZLbb49/tKFdVeehhLgPlrrGtIm27LQ7I7UpGxAQOevA3ct6Ib 59ExvRSZ08da7J80EtDmOEEHbp2ndCANHAy1J8wsdxXuFte/SxRQhigw1Jx2W1bj qEAKLEn6p2mm2qw= Received: (qmail 27774 invoked by alias); 9 Feb 2020 19:28:01 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 27672 invoked by uid 89); 9 Feb 2020 19:28:00 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.3 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NEUTRAL autolearn=ham version=3.3.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: hera.aquilenet.fr From: Samuel Thibault To: libc-alpha@sourceware.org Cc: Samuel Thibault , commit-hurd@gnu.org Subject: [hurd, commited 2/3] htl: make pthread_cond_destroy return EBUSY on waiters Date: Sun, 9 Feb 2020 20:27:49 +0100 Message-Id: <20200209192750.292859-2-samuel.thibault@ens-lyon.org> In-Reply-To: <20200209192750.292859-1-samuel.thibault@ens-lyon.org> References: <20200209192750.292859-1-samuel.thibault@ens-lyon.org> MIME-Version: 1.0 --- sysdeps/htl/pt-cond-destroy.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sysdeps/htl/pt-cond-destroy.c b/sysdeps/htl/pt-cond-destroy.c index 62cc77b0d2..b28e7e1ada 100644 --- a/sysdeps/htl/pt-cond-destroy.c +++ b/sysdeps/htl/pt-cond-destroy.c @@ -22,7 +22,14 @@ int __pthread_cond_destroy (pthread_cond_t *cond) { - return 0; + int ret = 0; + + __pthread_spin_lock (&cond->__lock); + if (cond->__queue) + ret = EBUSY; + __pthread_spin_unlock (&cond->__lock); + + return ret; } strong_alias (__pthread_cond_destroy, pthread_cond_destroy); From patchwork Sun Feb 9 19:27:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Thibault X-Patchwork-Id: 1235539 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-109303-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ens-lyon.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha1 header.s=default header.b=l4kXJrTV; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48Fzbn3b5Jz9sRQ for ; Mon, 10 Feb 2020 06:28:37 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; q=dns; s= default; b=nKOWQGcI0JnaeT+6myxnQIUikyi2uc0bPvATZBJMt2ItgokzapYPf NOR6JJdJo6Qay10y3Sv1o2vqBk21vr5PjfIxww5b4i0PLt0bJ/xNUvKedTNGtsrh U/TUzpb9BwnDAjkdxSJov+s/zh5O5z1IjgemxT3flhNRGWgClD7pMg= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; s=default; bh=zML9XrjC7fTNl0orsYhHWaJ3cVM=; b=l4kXJrTVgvSUo5bX0iZXVqroSbQn QEWAWHygSFbSUG8wqZtmvVuU0Yw8FRHyXPi7QM2wgGyo1kQ6lfIPY6vLUwm8mBxq 4L8liJbdYQmDCljYmG5XY6VzlYv8bYaarxSbiBdK4LWhIErqdzWTKACZA483TrSu /uPwMGJLatDb5HY= Received: (qmail 27825 invoked by alias); 9 Feb 2020 19:28:01 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 27698 invoked by uid 89); 9 Feb 2020 19:28:00 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NEUTRAL autolearn=ham version=3.3.1 spammy= X-HELO: hera.aquilenet.fr From: Samuel Thibault To: libc-alpha@sourceware.org Cc: Samuel Thibault , commit-hurd@gnu.org Subject: [hurd, commited 3/3] pthread: Move most cond tests from nptl to sysdeps/pthread Date: Sun, 9 Feb 2020 20:27:50 +0100 Message-Id: <20200209192750.292859-3-samuel.thibault@ens-lyon.org> In-Reply-To: <20200209192750.292859-1-samuel.thibault@ens-lyon.org> References: <20200209192750.292859-1-samuel.thibault@ens-lyon.org> MIME-Version: 1.0 So they can be checked with htl too. --- nptl/Makefile | 11 +++-------- sysdeps/mach/hurd/i386/Makefile | 11 +++++++++++ sysdeps/pthread/Makefile | 10 ++++++++++ {nptl => sysdeps/pthread}/tst-cond-except.c | 0 {nptl => sysdeps/pthread}/tst-cond1.c | 0 {nptl => sysdeps/pthread}/tst-cond10.c | 0 {nptl => sysdeps/pthread}/tst-cond11-static.c | 0 {nptl => sysdeps/pthread}/tst-cond11.c | 0 {nptl => sysdeps/pthread}/tst-cond12.c | 0 {nptl => sysdeps/pthread}/tst-cond13.c | 0 {nptl => sysdeps/pthread}/tst-cond14.c | 0 {nptl => sysdeps/pthread}/tst-cond15.c | 0 {nptl => sysdeps/pthread}/tst-cond16.c | 2 ++ {nptl => sysdeps/pthread}/tst-cond17.c | 0 {nptl => sysdeps/pthread}/tst-cond18.c | 2 ++ {nptl => sysdeps/pthread}/tst-cond19.c | 0 {nptl => sysdeps/pthread}/tst-cond2.c | 0 {nptl => sysdeps/pthread}/tst-cond22.c | 0 {nptl => sysdeps/pthread}/tst-cond23.c | 0 {nptl => sysdeps/pthread}/tst-cond24.c | 0 {nptl => sysdeps/pthread}/tst-cond25.c | 0 {nptl => sysdeps/pthread}/tst-cond26.c | 0 {nptl => sysdeps/pthread}/tst-cond27.c | 0 {nptl => sysdeps/pthread}/tst-cond3.c | 0 {nptl => sysdeps/pthread}/tst-cond4.c | 0 {nptl => sysdeps/pthread}/tst-cond5.c | 0 {nptl => sysdeps/pthread}/tst-cond6.c | 0 {nptl => sysdeps/pthread}/tst-cond7.c | 0 {nptl => sysdeps/pthread}/tst-cond8-static.c | 0 {nptl => sysdeps/pthread}/tst-cond8.c | 0 {nptl => sysdeps/pthread}/tst-cond9.c | 0 31 files changed, 28 insertions(+), 8 deletions(-) rename {nptl => sysdeps/pthread}/tst-cond-except.c (100%) rename {nptl => sysdeps/pthread}/tst-cond1.c (100%) rename {nptl => sysdeps/pthread}/tst-cond10.c (100%) rename {nptl => sysdeps/pthread}/tst-cond11-static.c (100%) rename {nptl => sysdeps/pthread}/tst-cond11.c (100%) rename {nptl => sysdeps/pthread}/tst-cond12.c (100%) rename {nptl => sysdeps/pthread}/tst-cond13.c (100%) rename {nptl => sysdeps/pthread}/tst-cond14.c (100%) rename {nptl => sysdeps/pthread}/tst-cond15.c (100%) rename {nptl => sysdeps/pthread}/tst-cond16.c (98%) rename {nptl => sysdeps/pthread}/tst-cond17.c (100%) rename {nptl => sysdeps/pthread}/tst-cond18.c (98%) rename {nptl => sysdeps/pthread}/tst-cond19.c (100%) rename {nptl => sysdeps/pthread}/tst-cond2.c (100%) rename {nptl => sysdeps/pthread}/tst-cond22.c (100%) rename {nptl => sysdeps/pthread}/tst-cond23.c (100%) rename {nptl => sysdeps/pthread}/tst-cond24.c (100%) rename {nptl => sysdeps/pthread}/tst-cond25.c (100%) rename {nptl => sysdeps/pthread}/tst-cond26.c (100%) rename {nptl => sysdeps/pthread}/tst-cond27.c (100%) rename {nptl => sysdeps/pthread}/tst-cond3.c (100%) rename {nptl => sysdeps/pthread}/tst-cond4.c (100%) rename {nptl => sysdeps/pthread}/tst-cond5.c (100%) rename {nptl => sysdeps/pthread}/tst-cond6.c (100%) rename {nptl => sysdeps/pthread}/tst-cond7.c (100%) rename {nptl => sysdeps/pthread}/tst-cond8-static.c (100%) rename {nptl => sysdeps/pthread}/tst-cond8.c (100%) rename {nptl => sysdeps/pthread}/tst-cond9.c (100%) diff --git a/nptl/Makefile b/nptl/Makefile index 51a0be008b..8fadd1d025 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -239,12 +239,7 @@ tests = tst-attr2 tst-attr3 tst-default-attr \ tst-mutex7robust tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 \ tst-mutexpi5 tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a \ tst-mutexpi9 \ - tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \ - tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \ - tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \ - tst-cond20 tst-cond21 tst-cond22 tst-cond23 tst-cond24 tst-cond25 \ - tst-cond26 tst-cond27 \ - tst-cond-except \ + tst-cond11 tst-cond20 tst-cond21 tst-cond22 tst-cond26 tst-cond27 \ tst-robust1 tst-robust2 tst-robust3 tst-robust4 tst-robust5 \ tst-robust6 tst-robust7 tst-robust8 tst-robust9 \ tst-robustpi1 tst-robustpi2 tst-robustpi3 tst-robustpi4 tst-robustpi5 \ @@ -450,12 +445,12 @@ link-libc-static := $(common-objpfx)libc.a $(static-gnulib) \ $(common-objpfx)libc.a tests-static += tst-locale1 tst-locale2 tst-stackguard1-static \ - tst-cancel21-static tst-cancel24-static tst-cond8-static \ + tst-cancel21-static tst-cancel24-static \ tst-mutex8-static tst-mutexpi8-static tst-sem11-static \ tst-sem12-static tst-cond11-static tests += tst-cancel21-static tst-cancel24-static \ - tst-cond8-static tst-cond11-static + tst-cond11-static tests-internal += tst-sem11-static tst-sem12-static tst-stackguard1-static xtests-static += tst-setuid1-static diff --git a/sysdeps/mach/hurd/i386/Makefile b/sysdeps/mach/hurd/i386/Makefile index 584d9275c9..fa89fc1cf8 100644 --- a/sysdeps/mach/hurd/i386/Makefile +++ b/sysdeps/mach/hurd/i386/Makefile @@ -104,6 +104,17 @@ endif # For bug 25521 ifeq ($(subdir),htl) test-xfail-tst-mutex4 = yes +test-xfail-tst-cond4 = yes +test-xfail-tst-cond6 = yes +test-xfail-tst-cond12 = yes +test-xfail-tst-cond13 = yes +test-xfail-tst-cond23 = yes +endif + +# For bug 25522 +ifeq ($(subdir),htl) +test-xfail-tst-cond24 = yes +test-xfail-tst-cond25 = yes endif ifeq ($(subdir),elf) diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile index 5117110210..2c33c5c904 100644 --- a/sysdeps/pthread/Makefile +++ b/sysdeps/pthread/Makefile @@ -45,7 +45,17 @@ tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \ tst-attr1 \ tst-basic1 tst-basic2 tst-basic3 tst-basic4 tst-basic5 tst-basic6 \ tst-basic7 \ + tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \ + tst-cond8 tst-cond9 tst-cond10 tst-cond12 tst-cond13 \ + tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \ + tst-cond23 tst-cond24 tst-cond25 \ + tst-cond-except \ tst-mutex1 tst-mutex2 tst-mutex3 tst-mutex4 tst-mutex6 tst-mutex10 \ tst-spin1 tst-spin2 tst-spin3 tst-spin4 +ifeq ($(build-shared),yes) +tests-static += tst-cond8-static +tests += tst-cond8-static +endif + endif diff --git a/nptl/tst-cond-except.c b/sysdeps/pthread/tst-cond-except.c similarity index 100% rename from nptl/tst-cond-except.c rename to sysdeps/pthread/tst-cond-except.c diff --git a/nptl/tst-cond1.c b/sysdeps/pthread/tst-cond1.c similarity index 100% rename from nptl/tst-cond1.c rename to sysdeps/pthread/tst-cond1.c diff --git a/nptl/tst-cond10.c b/sysdeps/pthread/tst-cond10.c similarity index 100% rename from nptl/tst-cond10.c rename to sysdeps/pthread/tst-cond10.c diff --git a/nptl/tst-cond11-static.c b/sysdeps/pthread/tst-cond11-static.c similarity index 100% rename from nptl/tst-cond11-static.c rename to sysdeps/pthread/tst-cond11-static.c diff --git a/nptl/tst-cond11.c b/sysdeps/pthread/tst-cond11.c similarity index 100% rename from nptl/tst-cond11.c rename to sysdeps/pthread/tst-cond11.c diff --git a/nptl/tst-cond12.c b/sysdeps/pthread/tst-cond12.c similarity index 100% rename from nptl/tst-cond12.c rename to sysdeps/pthread/tst-cond12.c diff --git a/nptl/tst-cond13.c b/sysdeps/pthread/tst-cond13.c similarity index 100% rename from nptl/tst-cond13.c rename to sysdeps/pthread/tst-cond13.c diff --git a/nptl/tst-cond14.c b/sysdeps/pthread/tst-cond14.c similarity index 100% rename from nptl/tst-cond14.c rename to sysdeps/pthread/tst-cond14.c diff --git a/nptl/tst-cond15.c b/sysdeps/pthread/tst-cond15.c similarity index 100% rename from nptl/tst-cond15.c rename to sysdeps/pthread/tst-cond15.c diff --git a/nptl/tst-cond16.c b/sysdeps/pthread/tst-cond16.c similarity index 98% rename from nptl/tst-cond16.c rename to sysdeps/pthread/tst-cond16.c index 61e3cbe980..daadd87860 100644 --- a/nptl/tst-cond16.c +++ b/sysdeps/pthread/tst-cond16.c @@ -76,8 +76,10 @@ do_test (void) int i, ret, sz; pthread_attr_init (&attr); sz = sysconf (_SC_PAGESIZE); +#ifdef PTHREAD_STACK_MIN if (sz < PTHREAD_STACK_MIN) sz = PTHREAD_STACK_MIN; +#endif pthread_attr_setstacksize (&attr, sz); for (i = 0; i < count; ++i) if ((ret = pthread_create (&th[i], &attr, tf, NULL)) != 0) diff --git a/nptl/tst-cond17.c b/sysdeps/pthread/tst-cond17.c similarity index 100% rename from nptl/tst-cond17.c rename to sysdeps/pthread/tst-cond17.c diff --git a/nptl/tst-cond18.c b/sysdeps/pthread/tst-cond18.c similarity index 98% rename from nptl/tst-cond18.c rename to sysdeps/pthread/tst-cond18.c index f984c3ce88..38c35d7602 100644 --- a/nptl/tst-cond18.c +++ b/sysdeps/pthread/tst-cond18.c @@ -88,8 +88,10 @@ do_test (void) int i, ret, sz; pthread_attr_init (&attr); sz = sysconf (_SC_PAGESIZE); +#ifdef PTHREAD_STACK_MIN if (sz < PTHREAD_STACK_MIN) sz = PTHREAD_STACK_MIN; +#endif pthread_attr_setstacksize (&attr, sz); for (i = 0; i <= count; ++i) diff --git a/nptl/tst-cond19.c b/sysdeps/pthread/tst-cond19.c similarity index 100% rename from nptl/tst-cond19.c rename to sysdeps/pthread/tst-cond19.c diff --git a/nptl/tst-cond2.c b/sysdeps/pthread/tst-cond2.c similarity index 100% rename from nptl/tst-cond2.c rename to sysdeps/pthread/tst-cond2.c diff --git a/nptl/tst-cond22.c b/sysdeps/pthread/tst-cond22.c similarity index 100% rename from nptl/tst-cond22.c rename to sysdeps/pthread/tst-cond22.c diff --git a/nptl/tst-cond23.c b/sysdeps/pthread/tst-cond23.c similarity index 100% rename from nptl/tst-cond23.c rename to sysdeps/pthread/tst-cond23.c diff --git a/nptl/tst-cond24.c b/sysdeps/pthread/tst-cond24.c similarity index 100% rename from nptl/tst-cond24.c rename to sysdeps/pthread/tst-cond24.c diff --git a/nptl/tst-cond25.c b/sysdeps/pthread/tst-cond25.c similarity index 100% rename from nptl/tst-cond25.c rename to sysdeps/pthread/tst-cond25.c diff --git a/nptl/tst-cond26.c b/sysdeps/pthread/tst-cond26.c similarity index 100% rename from nptl/tst-cond26.c rename to sysdeps/pthread/tst-cond26.c diff --git a/nptl/tst-cond27.c b/sysdeps/pthread/tst-cond27.c similarity index 100% rename from nptl/tst-cond27.c rename to sysdeps/pthread/tst-cond27.c diff --git a/nptl/tst-cond3.c b/sysdeps/pthread/tst-cond3.c similarity index 100% rename from nptl/tst-cond3.c rename to sysdeps/pthread/tst-cond3.c diff --git a/nptl/tst-cond4.c b/sysdeps/pthread/tst-cond4.c similarity index 100% rename from nptl/tst-cond4.c rename to sysdeps/pthread/tst-cond4.c diff --git a/nptl/tst-cond5.c b/sysdeps/pthread/tst-cond5.c similarity index 100% rename from nptl/tst-cond5.c rename to sysdeps/pthread/tst-cond5.c diff --git a/nptl/tst-cond6.c b/sysdeps/pthread/tst-cond6.c similarity index 100% rename from nptl/tst-cond6.c rename to sysdeps/pthread/tst-cond6.c diff --git a/nptl/tst-cond7.c b/sysdeps/pthread/tst-cond7.c similarity index 100% rename from nptl/tst-cond7.c rename to sysdeps/pthread/tst-cond7.c diff --git a/nptl/tst-cond8-static.c b/sysdeps/pthread/tst-cond8-static.c similarity index 100% rename from nptl/tst-cond8-static.c rename to sysdeps/pthread/tst-cond8-static.c diff --git a/nptl/tst-cond8.c b/sysdeps/pthread/tst-cond8.c similarity index 100% rename from nptl/tst-cond8.c rename to sysdeps/pthread/tst-cond8.c diff --git a/nptl/tst-cond9.c b/sysdeps/pthread/tst-cond9.c similarity index 100% rename from nptl/tst-cond9.c rename to sysdeps/pthread/tst-cond9.c