From patchwork Fri Nov 25 11:15:38 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 84114 Delivered-To: patch@linaro.org Received: by 10.140.20.101 with SMTP id 92csp75509qgi; Fri, 25 Nov 2016 03:16:06 -0800 (PST) X-Received: by 10.99.66.198 with SMTP id p189mr13208595pga.30.1480072566884; Fri, 25 Nov 2016 03:16:06 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id 90si15617506pla.209.2016.11.25.03.16.06 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Nov 2016 03:16:06 -0800 (PST) Received-SPF: pass (google.com: domain of libc-alpha-return-75164-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org; spf=pass (google.com: domain of libc-alpha-return-75164-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-75164-patch=linaro.org@sourceware.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:cc :subject:content-type; q=dns; s=default; b=W7p1TlRqhIwV6ttH10kJu 2b2YLOh3BsJTfAkgc68Mu9r1JJOYYvX9Rfs0aHGRGdihQixIPChWkeoSnh6ZYewx ZvKxDR0OlWXd0qm0YqDjy5X2DZlOOoG7u7s3aTJx1CqZIbck9aJOoqV2KV74dYot 2+FUggvQm5ht64eH3Je0qQ= 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:message-id:date:from:mime-version:to:cc :subject:content-type; s=default; bh=bHNKbOuO895PnYGtO+xAlrGkMNA =; b=qgm/nXUtRo81kpgxpgI/qzHKpFnmo+E5EDg1gTls3nnkhElHCaRmIP6Cofv DgTNgDtnUBEyi0J1aPgGOC8JD+vJ3wY5BkNBqYQ7pr8pHOCr+bbICf5sy4cMzyFP Fbxv6uTkIDyIvt0RDx6Z8LnMTRxpPxIfhRnZlyoOi9PGgRL4= Received: (qmail 22437 invoked by alias); 25 Nov 2016 11:15:57 -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 22371 invoked by uid 89); 25 Nov 2016 11:15:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:sk:mail-ve X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Message-ID: <58381D5A.2060202@arm.com> Date: Fri, 25 Nov 2016 11:15:38 +0000 From: Szabolcs Nagy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: GNU C Library CC: Subject: [PATCH v2] Test case for BZ 19329 X-ClientProxiedBy: DB6PR0701CA0005.eurprd07.prod.outlook.com (10.168.7.143) To AM4PR0802MB2145.eurprd08.prod.outlook.com (10.172.217.7) X-Microsoft-Exchange-Diagnostics: 1; AM4PR0802MB2145; 2:TDl1FA08wh9DmJfnoGNIY53qGl8tpF4Ki30scYgiWDT6vSW2KwFBEIpnH18pO1DwDbWVGtG6weidFJ4YnwJzQJNTRfIvPr9e76ZVw2MsIsiT/zRX1Y34MHMK+qesymGYh4YZ4b9X+xMkjS3FQfSvEd6Ep5ng7GRRSZRpOk4IWY0=; 3:iMQfmn5JIgd2lxCS76+ScMD990pHfuz3y3egaODweCV5rZeOJGeKs7+ub5Xe/iQMIEuhefYM+7M4OOY1z3mdC11XzaGkcCMhlWf2nmoayQV4LahU9olJJjkyHFf2LwQ2LF3KtQNayjiu9QzO3RZU6luP88qdxQdQdjEphaDqW9Q=; 25:6gFwIulubnAQMpdX6gEtFTc1SZVO0Bn/laaxbAeMMSJm238K9T35RgnzRu5bbsN1fH4XPuRIxKacUfGikWGSZkCjEmqkfJz7DVXMY/03rtILI0qZDFpJ0VuN83TVCsOpHdV9LnQscekujRHG6NJg9+ceOgQBh9k/+xR77+Uazge+Tji2DQ44q+6ILGwcmqFpNK2BjWY7JgDi0r4id6symeVEQCmLKiAEAfWDk73yp8LScTEaOpsQkfyxF/KaIBs7ekE/G7PSlF9JhUNPcN5p7P8eyDf05ns6579qVLwOFHgeis7J0dQin4J96NfX/t9TaLwKv+7TxcxbihjBDYjEFSVY1N01c15z26sygD/S30f62JJ3lVid/Wf0nESnh46j+l42UffQuZMmz4hR3HGQT9AWKEOVCNutd7B/64G5+N7id5a68qh0BSJFqflVSuLilco4MPTHTC46M4IMpCGfwvInR3suqQuXSF3IOvTCf8v2YergP9Y1LlcFg3FahI9A X-MS-Office365-Filtering-Correlation-Id: 3fd40190-b63d-41d3-cb05-08d41524647a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:AM4PR0802MB2145; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0802MB2145; 31:1/94vzP/boYbANH6jF5qd6eRhcdnz0hpJTk4pgXcZQQExvhMa8szQ+e9D3BViwzswEJiHk98qBcD2oF9KnZpGB+WveoEFHdjwqoCzyrgXaWv+bpGTfbc3rZcfuu50Ca/sWOuZ82X9NXtEZQba4VinuA+jefpwcVuXDEF6Eu9Ks8SX/JI0le/6Q3rdP/sBTTCzbUvWzplV3PUqpXCwhuEXHUcsxTzf7HFkDQJldDUbT6LEhs54JhXCAHG+n7LuX3I70HMksnU/ADNJ0ohtd3+6k3rbPeEVw2daqZBlslmzwQ=; 20:fzOCtgDo5dsvg02p6VqMDFRPF/rMruAhfVDh7hZ8pf6UcLzwoVbCKXW9WsWCIG7AGf/jldeWg5UWyAezqs+wSqna/Xq6VQiwX/PylX8mBsvM/LcpG5JFfJzJoxXvdc7rBhTsoOgmpa1CGZdSQpPkEJbirG+7qZ9kKtXx3JhQP8Y= NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(102415395)(6045199)(6060326)(6040361)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6041248)(6061324)(20161123555025)(20161123564025)(20161123560025)(20161123562025); SRVR:AM4PR0802MB2145; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0802MB2145; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0802MB2145; 4:ryPud0Pm2f7QB+eVXyNcer+5QEhad3AiUE1wN/jYyWYv8c3J4Iei2Y1OsD7Itiad9C2GZ0R1g7sGsFfRRUvWnEEuAI5ro9pndAkY+dGNre2mLvHnzhKTqa9KctKNH90fAYCvEMETKyNSMXiGU40+luut8cfeLp0o2mdkl6DuB3rdGlAhF4A5ntAi2lixAFTQfFXfkm7xOvUiLJWXCNYKTRWjFVBC/V/Wfngeyg1w1qOZARItAXKuQ8PrIkexE0Fo12KHdQ4AdeBLTUnNqx6JUxldOvMvTRpIPmTnwbecwD1veTshnSCsoC0Lp+X+fnl5TvsZduGvEutijvzxNrB1NXjbPTZ2ID55sSSTSrduS0G8EYEi0ueMf0F2HBIaiMpUJqZYK075O00AiKP+mVk4jXd3Hbjlsk6PjZVDRK47Rul5tW62DXkkvl1j6YVT1Sexp+WTYzzSjiWX7UX+uTzTFU0t0LLR4B7NxlqC1HXeXcrixw5aJEmL25EM+/a4eamGDWe0ryOAPbEjC34wJlavXHQsog3QrK8mAJXjtMoGwuNSQxC1uReV0bG28opRnVe9h/KKq2I+uzH4CrKPUMPJvI3n6q/Q4KtK0+znZ1YHNzCXdB+/AwFw8WdnMP1AaGJDUCPQlUFqxGNVzSn8JdHqPfx30n12ZK8BfYGSFV63NO6haAZ3zc2wGYJt6aFTb/NE X-Forefront-PRVS: 01371B902F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6049001)(7916002)(199003)(377424004)(189002)(6666003)(305945005)(50986999)(39450400002)(65816999)(33656002)(99136001)(64126003)(81166006)(81156014)(54356999)(87266999)(65806001)(92566002)(66066001)(65956001)(8676002)(5000100001)(189998001)(97736004)(106356001)(21490400002)(5890100001)(38730400001)(512874002)(39400400001)(39380400001)(59896002)(101416001)(105586002)(7846002)(4610100001)(7736002)(110136003)(36756003)(2476003)(2906002)(4326007)(5660300001)(39410400001)(83506001)(270700001)(4001350100001)(42186005)(568964002)(77096005)(4001150100001)(3846002)(450100001)(68736007)(86362001)(80316001)(84326002)(6916009)(6116002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR0802MB2145; H:[10.2.206.73]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR0802MB2145; 23:8KfaSivN+/urW6OQDjl2zTQWSXNLkSF7148OJoM?= =?us-ascii?Q?Mr3gaT3AZLNdHaNlVTbJg9UcQUHh03aRCVgxit+foIwC8ZtSVlZRuouP18Ih?= =?us-ascii?Q?VTnIpD5vy/eZXLG2YjtP+iejeWJiPs6ZYV0bUx/agLTcxhCyIglUQt4HRU6J?= =?us-ascii?Q?vuPYm/tbwGXZQZKAoIOlfx04nbDBZX8IHp1uVOZI1sTxQeQkHJcw1VFc41Jq?= =?us-ascii?Q?4e1Fy1I+jp6t6hToN2SXPIZc++ZHQNNOJQirHQ8Uo69myhUYutASDgPo5PzN?= =?us-ascii?Q?jQqAc+nxBDrei9nf/yXXiZSCWdkVKqHfP57vlW5dKEncQ7Xf8Ay4PkJu7sQu?= =?us-ascii?Q?jLvHiel/jmmrmo/yPax9P2zO1joXGfkkcN/sWH21PFz/TMPOFMl7kRyud2jQ?= =?us-ascii?Q?frSw4/Y8v6fmXFU2k8kLgyOoACK4NaUsUfLI+MfqVShdJ9nNRlMPvFRsC+h4?= =?us-ascii?Q?9OFgVy/gOXuGNM4/JnNBWkhfjrydFQeXe3PsG9ejkrcyJX4pcoaihSHsXSYL?= =?us-ascii?Q?zKZiD5dKO5v+hpU3nvszlQkqrs0XjvarY9ynYau388fontmsrNBM+JdkJANu?= =?us-ascii?Q?Sg/B6t5+A5/Mv0rwMvjJaY+WeSHP0V7WcBqFPT1ofAgPBJoMrZhTHiSOv8MI?= =?us-ascii?Q?vTnC4lqEZ7oNkNXw1PgOdWDnyGWwME7VScadvYOiU0aK4n+dZ4lAfEdiLetn?= =?us-ascii?Q?Yd+9ivqD4lhdyA6nwlZ/jbXs1N6ZRus1umuIAxmkj3F3isiL5eKJpU7cMzAR?= =?us-ascii?Q?C/U67YZPpENHlLJESIFo/nqh1haHmkapacHSvAe4/r9jefQthOJ3K6o9uWx9?= =?us-ascii?Q?JWY5I1WE+rXFbbeYsQhSQMWfccFsJ2aGY+KzLk06s+E9P0bsUpnqyM+qnXUf?= =?us-ascii?Q?9D71s+MctojcR2H5pbhVt1zFjiywSuoUeTylNCLxSdRp4ZthQfS5ZJ9ENx2T?= =?us-ascii?Q?+j+MbEgIGpqD/VW1iicCL0EreDjkHU17NMNeZt1K7iIknzR+O2xiIiDvypQ2?= =?us-ascii?Q?WzGO1BtmAZePK+6d8PkmIfKu2waA+bKI65w0eCUU1zeDGfrdBCOg0iUsYWfF?= =?us-ascii?Q?sB/TdoqdT+0Zy+RkUYS6/4ZLp9fTvazPuMoSrA6vF6rJP2C6KeIVGd2xjs6T?= =?us-ascii?Q?TLDvKazYvrGkESAnL1uZc1UMKkqJxluD7zP12wjMUx9QAtq0S+zWJm+r6bnd?= =?us-ascii?Q?OzdJanPhFeezuXRlowv1bUV54p0k6/B+HYW07KY2Qdn+fPiFESxjVYsW4jvt?= =?us-ascii?Q?LqS3XzV+VDS9wTA/rMU4Oh8tKg3T1oZAPRwAsXtpN2QYUyW+uWnYz1swJUVF?= =?us-ascii?Q?b3Cd/NszAtux3wi4IqmDLg5Ye9E+19LRBtv0F7mthgxqVx2SD2E1MDNRB87g?= =?us-ascii?Q?bPHVk7E+U+qGI0OU9QXLBVO8g7VE+QhtJgfiaKksxGmEu8E6k3jv+hiLEu1C?= =?us-ascii?Q?FTmkjybMV8tBPcrFL1q2RlMSrR3uFba3e+4KXwc8yguFOqmsOh1ipi+c8u2n?= =?us-ascii?Q?VWfN0LYVHpSuGSxq/UVLD92I6+pwHZ460y5qiHu/GzQ3gTTqB8PrZMFClyXa?= =?us-ascii?Q?L+/CF4hxOBodw6aCVPLztaHdTo9KoaSR00ncKt2A=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM4PR0802MB2145; 6:AtSZKVYe8uSLQuAisMjRkraJ2uk/RHaGr40QCeqUvh3prM+zOt0ocgD20gNzAdF7VjurLxenDDSPvei9nu0GMc/AkQaWOPiFWgzHg+NAvlOqM+mOJvQnZLYwXuvKwpG2ZKao8V7wUIZJ8zbGhpzWuGL/uGRezqcgUzebAmCxsmSF2DB+5bwdiYc1kW8SuwACCwKQVlw7fyHn5wXMu0cr1Ti1Y6ops/nVt/iSH8GKS3cG+HY+UHO9b22/6qBaIVMjI1oVPrpXsJqksKNsHun+yxf6aZTDYtKGL/8RYjZeKq3ZeSk6g5KySuJo/TbagGVCsRs8BTzxxLJ8262Q6VIvv5+vg6t3R7rN6aaCEjNP44jokre61r4aAm9jrOxkj3AB; 5:AvuktnlLSXhTUijVdkL9TW1APNwtKxWjBGkCaR4MKR6zbnAlHpELyZ/6NH8JrTxyehnnWynzu9t0xuqNPVsiFv7qATyedvvALp49lqb3J7nRLVS9wV7ZWimTf4HX4CTy9RhJmgDAzZZ/w5pAdAhMGA16vWcO2Q3UXhJ8mc7J6/8=; 24:SJHJiVXggEGxRWJQta2ckWtLmJfosOLdeVBkViRdj8ObOB14VtetDpWLLgv0JO2lExYJ3gt92+bxkNjfMVFwebNyM/MSUSTs09q27M7GAi8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM4PR0802MB2145; 7:OyDcGbL2TFIt7tAFuXWEH22eAV1lVlU+DZJfddDg2Y2GXMvyeZHgEH2xk9aGDhnjgPeSKRMvKZ3O1OGTHq2ZLq/RPapzICR2PpLAvYOBcF1/gheDhTYxtnd8hIhVAnIRSWkmnEBGzm580FVX+d/DlkinYDRWYZb4b3aMnehQk53penp3eJ8/cF3kDGJSJTDLy3csRNpPnhPeZQCDLACN7nxz7B+aeW01yBcShgqhFTux1adPW6r/HM4rJX1p6KeAszc7VLtCAbwRwqVS1vBW8DFoROepAKQ9AWKLE/BA/zoX/ZWFsUnT/9Ly7DsNc/EhmjDHKQyKOfW0iKr2sttnfdxzsavT0sXFY+VsG3dVfdc= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2016 11:15:41.3316 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0802MB2145 Test concurrent dlopen and pthread_create when the loaded modules have TLS. This triggers dl-tls assertion failures more reliably than the tst-stack4 test. The dlopened module has 100 DT_NEEDED dependencies and the number of concurrent threads created during dlopen can wildly depend on filesystem speed and hardware. v2: - undef NDEBUG. - join nop threads so at most 3 threads exist at a time. - remove stack size setting (resource usage is no longer a concern). - stop creating threads after dlopen observably finished. - print the number of threads created for debugging. Doing the test in a fork loop can make it more reliable, but not any faster. 2016-11-25 Szabolcs Nagy * nptl/Makefile (tests): Add tst-tls7. (modules-names): Add tst-tls7mod, tst-tls7mod-dep. * nptl/tst-tls7.c: New file. * nptl/tst-tls7mod-dep.c: New file. * nptl/tst-tls7mod.c: New file. diff --git a/nptl/Makefile b/nptl/Makefile index 11588fe..90152d2 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -327,7 +327,7 @@ tests += tst-cancelx2 tst-cancelx3 tst-cancelx4 tst-cancelx5 \ tst-oncex3 tst-oncex4 ifeq ($(build-shared),yes) tests += tst-atfork2 tst-tls3 tst-tls3-malloc tst-tls4 tst-tls5 tst-_res1 \ - tst-fini1 tst-stackguard1 + tst-fini1 tst-stackguard1 tst-tls7 tests-nolibpthread += tst-fini1 ifeq ($(have-z-execstack),yes) tests += tst-execstack @@ -338,7 +338,7 @@ modules-names = tst-atfork2mod tst-tls3mod tst-tls4moda tst-tls4modb \ tst-tls5mod tst-tls5moda tst-tls5modb tst-tls5modc \ tst-tls5modd tst-tls5mode tst-tls5modf tst-stack4mod \ tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod \ - tst-join7mod + tst-join7mod tst-tls7mod tst-tls7mod-dep extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) \ tst-cleanup4aux.o tst-cleanupx4aux.o test-extras += $(modules-names) tst-cleanup4aux tst-cleanupx4aux @@ -545,6 +545,18 @@ $(objpfx)tst-tls5: $(objpfx)tst-tls5mod.so $(shared-thread-library) LDFLAGS-tst-tls5 = $(no-as-needed) LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so +$(objpfx)tst-tls7: $(libdl) $(shared-thread-library) +tst-tls7mod-deps = $(shell for i in 0 1 2 3 4 5 6 7 8 9; do \ + for j in 0 1 2 3 4 5 6 7 8 9; do \ + echo $(objpfx)tst-tls7mod-dep-$$i-$$j.so; \ + done; done) +$(objpfx)tst-tls7.out: $(objpfx)tst-tls7mod.so +$(objpfx)tst-tls7mod.so: $(tst-tls7mod-deps) +$(tst-tls7mod-deps): $(objpfx)tst-tls7mod-dep.so + cp -f $< $@ +clean: + rm -f $(tst-tls7mod-deps) + ifeq ($(build-shared),yes) $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \ $(objpfx)tst-tls5moda.so $(objpfx)tst-tls5modb.so \ diff --git a/nptl/tst-tls7.c b/nptl/tst-tls7.c new file mode 100644 index 0000000..73d3f3d --- /dev/null +++ b/nptl/tst-tls7.c @@ -0,0 +1,68 @@ +/* Test concurrent dlopen and pthread_create: BZ 19329. + Copyright (C) 2016 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 + +#undef NDEBUG +#include + +#define THREADS 10000 + +static volatile int done; + +static void * +start (void *a) +{ + assert (dlopen ("tst-tls7mod.so", RTLD_LAZY) != NULL); + atomic_store_relaxed (&done, 1); + return 0; +} + +static void * +nop (void *a) +{ + return 0; +} + +static int +do_test (void) +{ + pthread_t t1, t2; + int i; + + /* Load a module with lots of dependencies and TLS. */ + assert (pthread_create (&t1, 0, start, 0) == 0); + + /* Concurrently create lots of threads until dlopen is observably done. */ + for (i = 0; i < THREADS && !atomic_load_relaxed (&done); i++) + { + assert (pthread_create (&t2, 0, nop, 0) == 0); + assert (pthread_join (t2, 0) == 0); + } + + assert (pthread_join (t1, 0) == 0); + printf ("threads created during dlopen: %d\n", i); + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff --git a/nptl/tst-tls7mod-dep.c b/nptl/tst-tls7mod-dep.c new file mode 100644 index 0000000..206ece4 --- /dev/null +++ b/nptl/tst-tls7mod-dep.c @@ -0,0 +1 @@ +int __thread x; diff --git a/nptl/tst-tls7mod.c b/nptl/tst-tls7mod.c new file mode 100644 index 0000000..206ece4 --- /dev/null +++ b/nptl/tst-tls7mod.c @@ -0,0 +1 @@ +int __thread x;