From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id BDFF63858C83 for ; Wed, 11 Jan 2023 17:20:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BDFF63858C83 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id D29784F2F; Wed, 11 Jan 2023 17:20:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1673457624; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aiC1W+2HyuAJgCEA5KlDMAnJ82EPQVi5ImImuHqidHc=; b=FQwtcz0yofuWupwz0Y6Qq1xwHwuRXxTtrbpZYHwORN6aAus81BHqRRjxrgYHd8feD4J1BR +VmerqBSCz2BKPC6++Qgb5ebzVDwrFLIOD915/A2fFUfEjIndLuS4WiuefLRBdlRByof0/ gUNSjq2HaKA88MglQmxOJP6Ds4h4x/Y= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1673457624; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aiC1W+2HyuAJgCEA5KlDMAnJ82EPQVi5ImImuHqidHc=; b=WVXqql+XUtlfbYZlDCUmTydDRDSMocPx4sy2zgAefPJwk7OHrcXXNdjqtBIT1GsCdVp5nu fPsR238MwKITe3Ag== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id BC45B13591; Wed, 11 Jan 2023 17:20:24 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id VjLHLNjvvmPCbgAAMHmgww (envelope-from ); Wed, 11 Jan 2023 17:20:24 +0000 Message-ID: <5f94e5f9-fdd1-f85c-63f2-1750744d69a3@suse.de> Date: Wed, 11 Jan 2023 18:20:24 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [pushed] [gdb/testsuite] Fix gdb.threads/dlopen-libpthread.exp for upstream glibc Content-Language: en-US To: Simon Marchi , gdb-patches@sourceware.org References: <20221230155407.5917-1-tdevries@suse.de> <7bb6a09d-b915-c855-804d-4c3b13e38b37@simark.ca> <174dba84-bac5-af4c-cd2b-85257f57b025@suse.de> <01243e5b-137f-9ac0-8235-8f51df07902e@simark.ca> <55245ed9-0ac8-9d53-0c0d-56972d982666@suse.de> <7d3e66c6-0665-df09-fc08-0fba2bd23d80@simark.ca> From: Tom de Vries In-Reply-To: <7d3e66c6-0665-df09-fc08-0fba2bd23d80@simark.ca> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 1/11/23 17:20, Simon Marchi wrote: > > > On 1/11/23 04:17, Tom de Vries via Gdb-patches wrote: >> On 1/10/23 19:05, Simon Marchi wrote: >>>> Attached patch fixes things. >>>> >>>> WDYT? >>>> >>>> Thanks, >>>> - Tom >>> >>> >>> Here: >>> >>>> # We link the exec without -lpthread, but libpthread.so may already be loaded at main >>>> # due to LD_PRELOAD. >>>> set libpthread_maybe_preloaded 0 >>>> set binfile [standard_output_file $executable] >>>> if { [has_dependency $binfile libpthread\\.so] == 1 } { >>>> set libpthread_maybe_preloaded 1 >>>> } >>> >>> Ok, so this works because ldd is influenced by LD_PRELOAD, I didn't >>> know. >>> >> >> Yes, while lddtree is not, which had me confused for a while. >> >>>> >>>> # We link the shlib with -lpthread, but since glibc 2.34 libpthread has been >>>> # merged with libc, so libpthread.so may not be a dependency. >>>> set libpthread_missing 0 >>>> if { [has_dependency $binfile libpthread\\.so] == 0 } { >>>> set libpthread_missing 1 >>>> } >>> >>> The two has_dependency calls use $binfile. Should one of them use >>> $binfile_lib? The second one I think. >> >> Yes, thanks for catching this. >> >> I'll commit after another build & test cycle. > > Hmm, I still see the failure. I think the second has_dependency doesn't > work. It returns 1 when it shouldn't, because of the > dlopen-libpthread.so.d line: > > output of ldd /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.threads/dlopen-libpthread/dlopen-libpthread.so is > linux-vdso.so.1 (0x00007ffc809ee000)^M > libc.so.6 => /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.threads/dlopen-libpthread/dlopen-libpthread.so.d/libc.so.6 (0x00007f0a5cf03000)^M > /lib64/ld-linux-x86-64.so.2 (0x00007f0a5d132000)^M > > This directory is created by build_executable_own_libs in > lib/prelink-support.exp (used by the test). > > Tweaking the regexp to include a forward slash makes it work for me: > Hi Simon, thanks for letting me know, and sorry for this ongoing annoyance. I tested it this morning on three data points (openSUSE Leap 15.4, Ubuntu 22.04 with and without LD_PRELOAD=), and all looked fine. But after you mentioned the FAIL, I did a clean build from trunk and managed to reproduce it. I'm not sure what went wrong, either I tested the wrong test-case or I tested a different version of the patch. Anyway, your suggestion fixes the FAIL for me as well. I'll commit this asap. Thanks, - Tom > diff --git a/gdb/testsuite/gdb.threads/dlopen-libpthread.exp b/gdb/testsuite/gdb.threads/dlopen-libpthread.exp > index 134265ff470..c97e0284475 100644 > --- a/gdb/testsuite/gdb.threads/dlopen-libpthread.exp > +++ b/gdb/testsuite/gdb.threads/dlopen-libpthread.exp > @@ -68,14 +68,14 @@ if { !$have_probe } { > # due to LD_PRELOAD. > set libpthread_maybe_preloaded 0 > set binfile [standard_output_file $executable] > -if { [has_dependency $binfile libpthread\\.so] == 1 } { > +if { [has_dependency $binfile /libpthread\\.so] == 1 } { > set libpthread_maybe_preloaded 1 > } > > # We link the shlib with -lpthread, but since glibc 2.34 libpthread has been > # merged with libc, so libpthread.so may not be a dependency. > set libpthread_missing 0 > -if { [has_dependency $binfile_lib libpthread\\.so] == 0 } { > +if { [has_dependency $binfile_lib /libpthread\\.so] == 0 } { > set libpthread_missing 1 > } > > Simon