From patchwork Tue Oct 24 14:29:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 23782 Received: (qmail 126446 invoked by alias); 24 Oct 2017 14:29:13 -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 126432 invoked by uid 89); 24 Oct 2017 14:29:12 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.8 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_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy=5946 X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Message-ID: <59EF4E31.8060201@arm.com> Date: Tue, 24 Oct 2017 15:29:05 +0100 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: nd@arm.com, Joseph Myers Subject: [PATCH 4/7] [BZ #17078] arm: remove prelinker support for R_ARM_TLS_DESC References: <59EF4CEC.8020301@arm.com> In-Reply-To: <59EF4CEC.8020301@arm.com> X-ClientProxiedBy: DB6PR0202CA0039.eurprd02.prod.outlook.com (2603:10a6:4:a5::25) To AM5PR0802MB2482.eurprd08.prod.outlook.com (2603:10a6:203:98::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 05ac22f0-fb52-464e-339b-08d51aeb95cb X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199)(49563074); SRVR:AM5PR0802MB2482; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0802MB2482; 3:XZ7g4zpDyrOME6hUQu0IYiFhl2d66c+kgk1rmGfeQuoDc1E7gjn3lnN8hI+7KUAtj+QTFSTytSeNedLMgmbmMVtcsHEp4Y4xoZ3IDO+BmKZ/Wxw8dQGUd+3jVG5UqO7zUF19pUnVQLCCS1tXJY5Mimv14pQrKdcSSUmnKVrmHVEwLMxYFlF8f63oAEHQRU0tz9npPU5oxHh+1lMLdzvLOmJPybR8nMNklMoipYniI9XJYzG8r1oE6qyQOWKXS6Un; 25:1CpnYcRb/EZEef80O+UZP1K/SoSLgcPrfZGzaagV7WCSJ07KgLaXda6gOwfmg8owk3WySQ3Xc17XAaSGbnZLVcxyqQluNk4mKouo5RmainXfgeNn7qTz2J9Ctxes+NiRNKbKVwQRNIwmkmheE9YQKStrRyt7mYOSww4O/D+dJBOgPRBjrHcVeSSIxh1lnEk9orRBSrBVKRX0L5JqYTNpg7DH/Jiz+EbYCr0ZJ2S+sqesPY9NMDiFvWW9GDEr+XCydDGUcG5R6WnvuvkMma6Dx6nTFHYBfLwl264scdYUrEK3ssoqOycki8jiKTbYaEFJH3pi3X6bCEWmYuBR9nLtNw==; 31:nzSgde+0XmQyZoVlNOlXm/w2mpV6IHeNXno+dXyXgSQyoyO5aHZ6K6p7AJlRsDfhoNuNWgi3f/kMrDRPCFaH2Ix5D6e5NEgzK9B9qB3IuaRCly6hXMD55K7gI+hK7wzpyavpTDYfWsKcRVSO3P1kk5bgpYg0EeYTzPK5y/rRJXHrBKjIousqu4S9kKuJYvNVoRrs7nHucTwfZD4Wm5jV+fRJlonWiTHxht9xxVcP24I= X-MS-TrafficTypeDiagnostic: AM5PR0802MB2482: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1; AM5PR0802MB2482; 20:/b8wdA88vZlQKLXSE3K1toh/Wke+Xv1PLRfKyD2/u5tNWhRlYCLVeodjQFTJ7RyOCYlFr0nS4mH5JUgxOlRzTNBibnZZZFhvw+kpLU6GRSJh90aWKd7buAm4wh8Mp5swlzr88bQSMcoJmxf3xl842MpKQvIpdavNckGn+g4oxFM=; 4:fXGCNAk74ddgnJbUQrppGd0Q6WfenB/aOz5Lht13Ixs90CnDD4Kuv7QhC8jqujlQ26n4cz3GeQozbDh+t5rP7tnuXXvOSYGtQj+zAwGoKi1oNEhkJLPkayGGcwXjWi2mJH7mFkKf/gitp5pLHZk+bMbDXHW5AYRYa8DhEOV2seXLPPqr0a4AxxAULSkEdVLeKTBHewqqxXD1JS31pki0sueNsUjzdriZjstTv14WdwRQUHuK7zg4HndbK/Dl6A+UxtHkQvZa1Eb6cNT2aFR54mbSgi5Iq2twTWer12ziCgY= X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(100000703101)(100105400095)(3231020)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM5PR0802MB2482; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM5PR0802MB2482; X-Forefront-PRVS: 047001DADA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(6009001)(346002)(376002)(39860400002)(199003)(189002)(81166006)(6916009)(68736007)(6116002)(36756003)(6486002)(77096006)(65816999)(53936002)(87266999)(16586007)(316002)(16576012)(54356999)(76176999)(58126008)(101416001)(105586002)(50986999)(33656002)(2906002)(305945005)(59896002)(564344004)(83506002)(270700001)(2476003)(568964002)(4326008)(106356001)(3846002)(65956001)(16526018)(4610100001)(5000100001)(72206003)(478600001)(189998001)(5890100001)(7736002)(8936002)(2950100002)(66066001)(25786009)(65806001)(5660300001)(86362001)(4001150100001)(97736004)(84326002)(80316001)(81156014)(64126003)(8676002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0802MB2482; H:[10.2.206.69]; 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; AM5PR0802MB2482; 23:u+8EVjre7kxCIgT+ycv7bC/x0de+JsKPY9uIYJB?= =?us-ascii?Q?J87If+I7FUY8bHI7dps4lKicWHkr8d9KsLaiR3hGAyJKp/HDGmWkedvLlKUd?= =?us-ascii?Q?EU71mw/4rVcDJOekpIrHmWKBJGmJhjXnXLjUR8ClikPe06iuMmIezfrNUlzy?= =?us-ascii?Q?EKP6ONpZs4G1Cy5W0cpQ2cRhDK9A/kYQrJEKtnZcdzXwqAXMMAD3w/GU+zE3?= =?us-ascii?Q?J+1y/W9lTkiuwPaC4Edv9bzt/DUAnJNjuyodxFtgV4c2TtczUMSoND8uSV1d?= =?us-ascii?Q?ig0moDUqUChHNFK9YJ+bGJFk6nra9WQQCSLslOlJy14MghDcEVZIh9Vo4J/0?= =?us-ascii?Q?WNd5M0m9iRGqZOhRXiXwUmDmc/RbYZfMyS0Cd21fEYQO6rKrwg0BhiD30Mor?= =?us-ascii?Q?ZM7F8fs0C1/r5+cD36AG0TQjTwVFlKFQhi2WGGCR/QDN+3vpGXP5fa48v1om?= =?us-ascii?Q?6I50EGkrbZNXt/IPXaN0Z44HMcaTrhvUAbhwqgoluKo+1I6NIwYt088shN7A?= =?us-ascii?Q?SU2axYGrFXtUy9Rk9q4GtJX8YGlCyD8faPuDHoo0bZNNbwncbdoKuP09lSWC?= =?us-ascii?Q?13qF/6IAEHPwhMz3zFcDN22tixy9ZaBFpPhk39cF4vOqzT7tsmG4RcHMswNt?= =?us-ascii?Q?uIilZRmJQY+UZc9/s6Qnn9Fzp1VF8rw9VanStdwhEFrPDAyR1r3+aD7oR6EG?= =?us-ascii?Q?AaMpR6vrcIrbYPvAi0cacMJkSFOXU5jr2NCnxxYiTSUw84B7tIaMeCM+MstD?= =?us-ascii?Q?K0B3w0bJWgxmHnb52CbDfcFHclKxbr32nx0kq0yVyADET4Vqm5UyLwt2IQSw?= =?us-ascii?Q?Xh5CZ8mexllgtM07/Hh9iwNedJH0keSL+FAlqLcX5W5+GlGKWshWpqRgPOm1?= =?us-ascii?Q?v4Mct/ewP0ToPJJzxeP0QUf3aRmA7Up+/A3jJpIt57Yliu5LcUlql5Pmkgs3?= =?us-ascii?Q?ihjvYEslWAPHIgWazduTp+b+VosmOs5Cm/28cnT1VPRwZJ5lhkKhTtGVZ+yZ?= =?us-ascii?Q?ST6UBuRcbyIXRe8y+lvkwnITWd5v5PjxI5GfL8hE9ViO/c4Yjj2AVK1goq9U?= =?us-ascii?Q?cDoooqvi2OO04+PmicpMb//8BsqE+9Sl4h0YjUCUsa+dRmXI4sCqJcyDfGYL?= =?us-ascii?Q?vKCmU1blI0V6gqFjNDeKbSfcIrOzkfo6IitH2p9Ko1Qp2Nzpi3LeVQ/Bbo8C?= =?us-ascii?Q?kPK+qIq9L/VrcF9+eT8+SNs9acsKp4qCI1uVMeFP82WoCaroc4BK1kHL+8bm?= =?us-ascii?Q?ibdFqnEo+2VP+Z4DIY3EFmZM4/62fn3toqPfjvvYjdLJF6oTN5r5F+G21Kox?= =?us-ascii?Q?m6FFUmCneV4mdVn7XWPDtmiWwe30K+lzqmLO2Pk7w9kUyPKQFdLuYt9TKb3P?= =?us-ascii?Q?Yz8LhJPW/t5XSni8CXC+EdpyukuzZfgMUX4pADmxOkL7rmsbL5h1YHbBtLzf?= =?us-ascii?Q?l2+mBWZ1Wcku7LnzqsKlQx0wiFEwnvQo=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0802MB2482; 6:m6cw5wy3wgKVSiATRFBNrtH03BfnFFAjLIjIiXGKciMl/fDewx/4Ry4ndXTN5Vyi0rdjAEbKIRszPLCw1w9qANAKwOKsjynXXXZ8goVIgZAPUNsRHQv3bWzHyV/LiR4tOW0Mc17L5oswNy8TCGpZhIHDvokAFU7vBPnnl0XZnwVplnNjk0ZmgiLVocj3U+CYfV5scIQF3aiDWmzkpR7lw4S5/2bZPWnRNpjT/X9bpjvCWfhAL7+K/gmeK+rN6ElffOqIGGlmJ08fR7zMW1hXDqtmDV290yoxGkgs9+EPnas9ZbdOTDFi+Vqgkt5A2ojPEfnYdJRM/xE7hsajCx9SUg==; 5:UITMfZqjolpOnrsv/mGUr5CYitV3ANjKavumjM7HHSiGUfuJVu2QhZP9uPRR8iU7KkGzO68lg6I0S5apsbEU1yWe6D0HRR8frpteUr26FMahbyigA+oUJRUPew8KLAhSyM5aJQw+61orv0QuRFuchw==; 24:c0ABYgYPZ5C7fxOpKsEiBFcvao6rdgxbXbclrsI4jxdwe9jrXQWnLmPBwLhRogGzn19Abs22pA34qBwv5IHBJJnHt/vteEDSXrzCSdG5uow=; 7:IYAI4kuQFZ5MycUSVKWZav0Ty/qvUDV5ixI8MbptD6bMemZM4zYwvoFt73aiJ8uQa7JHzv04S2aEqtTO2jYauKmN788oVljSrIyj4LC3jvJw1ma1ChPs2ZLM+jaZF/6GoLTMjqwkELI6o5XSKDkv/Oq5EVfzuFQoBr19388yaI5q0PqD6SDhcj692HrUvfwbZDBdA4T57eNkPRVMXPXpXONxNydCzRfcraIBvPZxABU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2017 14:29:07.3520 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 05ac22f0-fb52-464e-339b-08d51aeb95cb X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2482 2017-10-23 Szabolcs Nagy [BZ #17078] * sysdeps/arm/dl-machine.h (elf_machine_rela): Remove the R_ARM_TLS_DESC case. (elf_machine_lazy_rel): Remove the prelink check. From dbe01dbadd47a6f406bba6feb2cedd6840af0fc7 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Fri, 20 Oct 2017 17:10:50 +0100 Subject: [PATCH 4/7] [BZ #17078] arm: remove prelinker support for R_ARM_TLS_DESC This patch reverts commit 9c82da17b5794efebe005de2fd22d61a3ea4b58a Author: Maciej W. Rozycki Date: 2014-07-17 19:22:05 +0100 [BZ #17078] ARM: R_ARM_TLS_DESC prelinker support This only implemented support for the lazy binding case (and thus closed the bugzilla ticket prematurely), however tlsdesc on arm is not correct with lazy binding because there is a data race between the lazy initialization code and tlsdesc resolver functions. Lazy initialization of tlsdesc entries will be removed from arm to fix the data races and thus this half-finished prelinker support is no longer useful. [BZ #17078] * sysdeps/arm/dl-machine.h (elf_machine_rela): Remove the R_ARM_TLS_DESC case. (elf_machine_lazy_rel): Remove the prelink check. --- sysdeps/arm/dl-machine.h | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h index 7e2d73e3d4..bf5f5d205c 100644 --- a/sysdeps/arm/dl-machine.h +++ b/sysdeps/arm/dl-machine.h @@ -594,32 +594,6 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, case R_ARM_ABS32: *reloc_addr = value + reloc->r_addend; break; -# ifdef RESOLVE_CONFLICT_FIND_MAP - case R_ARM_TLS_DESC: - { - struct tlsdesc volatile *td __attribute__ ((unused)) = - (struct tlsdesc volatile *) reloc_addr; - - RESOLVE_CONFLICT_FIND_MAP (map, reloc_addr); - - /* Make sure we know what's going on. */ - assert (td->entry - == (void *) (D_PTR (map, l_info[ADDRIDX (DT_TLSDESC_PLT)]) - + map->l_addr)); - assert (map->l_info[ADDRIDX (DT_TLSDESC_GOT)]); - - /* Set up the lazy resolver and store the pointer to our link - map in _GLOBAL_OFFSET_TABLE[1] now as for a prelinked - binary elf_machine_runtime_setup() is not called and hence - neither has been initialized. */ - *(Elf32_Addr *) (D_PTR (map, l_info[ADDRIDX (DT_TLSDESC_GOT)]) - + map->l_addr) - = (Elf32_Addr) &_dl_tlsdesc_lazy_resolver; - ((Elf32_Addr *) D_PTR (map, l_info[DT_PLTGOT]))[1] - = (Elf32_Addr) map; - } - break; -# endif /* RESOLVE_CONFLICT_FIND_MAP */ case R_ARM_PC24: relocate_pc24 (map, value, reloc_addr, reloc->r_addend); break; @@ -699,11 +673,9 @@ elf_machine_lazy_rel (struct link_map *map, (struct tlsdesc volatile *)reloc_addr; /* The linker must have given us the parameter we need in the - first GOT entry, and left the second one empty. The latter - will have been preset by the prelinker if used though. - We fill it with the resolver address. */ - assert (td->entry == 0 - || map->l_info[VALIDX (DT_GNU_PRELINKED)] != NULL); + first GOT entry, and left the second one empty. We fill the + latter with the resolver address. */ + assert (td->entry == 0); td->entry = (void*)(D_PTR (map, l_info[ADDRIDX (DT_TLSDESC_PLT)]) + map->l_addr); } -- 2.11.0