From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by sourceware.org (Postfix) with ESMTPS id D33293858401 for ; Sun, 6 Nov 2022 10:54:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D33293858401 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 1C9691F99D; Sun, 6 Nov 2022 10:54:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1667732047; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=lPWv7wYN20CsO1LaWfRbtUgH0OwSKqXwumy5Ye8o7PA=; b=zJP9axJ0lmTKuJJ04QKYJjS85piMDsVeSSRGhp1q4Sk1e1JiSmC40I9oA5PBwsw5yDDb37 ziG23HxMcnCjVun6CxjS47JhHvZugM+XnI4ljFL1vRShQwLsvdJVWKjurCHdUGyA/LjV4J QKx+uf4TUxiCW9pkBcGt2Mxl853R2kc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1667732047; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=lPWv7wYN20CsO1LaWfRbtUgH0OwSKqXwumy5Ye8o7PA=; b=5a6Z2HSA+buUIodv7pekoU3nV7khuWDMDqUTl4dk6g0G/KXme0RBClLrBM86ic3dmmKOtq rllK0V2yzmJ22NCw== 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 F0CD71376E; Sun, 6 Nov 2022 10:54:06 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id RPovOU6SZ2MvGwAAMHmgww (envelope-from ); Sun, 06 Nov 2022 10:54:06 +0000 Content-Type: multipart/mixed; boundary="------------JwsnWPYjeTwnAeUA7rrwbSJZ" Message-ID: Date: Sun, 6 Nov 2022 11:54:06 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [PATCH 2/7] [gdb/testsuite] fix test gdb.base/print-file-var.exp for remote execution Content-Language: en-US To: Ivan Tetyushkin , gdb-patches@sourceware.org, Andrew Burgess References: <20221025162946.727169-1-ivan.tetyushkin@syntacore.com> <20221025162946.727169-3-ivan.tetyushkin@syntacore.com> From: Tom de Vries In-Reply-To: <20221025162946.727169-3-ivan.tetyushkin@syntacore.com> 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: This is a multi-part message in MIME format. --------------JwsnWPYjeTwnAeUA7rrwbSJZ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/25/22 18:29, Ivan Tetyushkin wrote: > --- > gdb/testsuite/gdb.base/print-file-var.exp | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/gdb/testsuite/gdb.base/print-file-var.exp b/gdb/testsuite/gdb.base/print-file-var.exp > index 9abe87d7758..73137630fed 100644 > --- a/gdb/testsuite/gdb.base/print-file-var.exp > +++ b/gdb/testsuite/gdb.base/print-file-var.exp > @@ -42,6 +42,8 @@ proc test {hidden dlopen version_id_main lang} { > set libobj1 [standard_output_file ${lib1}$suffix.so] > set libobj2 [standard_output_file ${lib2}$suffix.so] > > + set runtimelibobj2 [get_runtime_file $libobj2] > + > set lib_opts { debug $lang } > lappend lib_opts "additional_flags=-DHIDDEN=$hidden" > > @@ -60,7 +62,7 @@ proc test {hidden dlopen version_id_main lang} { > set link_opts [list debug shlib=${libobj1}] > > if {$dlopen} { > - lappend main_opts "additional_flags=-DSHLIB_NAME=\"$libobj2\"" > + lappend main_opts "additional_flags=-DSHLIB_NAME=\"$runtimelibobj2\"" > lappend link_opts "shlib_load" > } else { > lappend link_opts "shlib=${libobj2}" I get this test-case passing by avoiding to use an absolute file name: ... diff --git a/gdb/testsuite/gdb.base/print-file-var.exp b/gdb/testsuite/gdb.base/print-file- var.exp index 9abe87d7758..338840cb05e 100644 --- a/gdb/testsuite/gdb.base/print-file-var.exp +++ b/gdb/testsuite/gdb.base/print-file-var.exp @@ -60,7 +60,7 @@ proc test {hidden dlopen version_id_main lang} { set link_opts [list debug shlib=${libobj1}] if {$dlopen} { - lappend main_opts "additional_flags=-DSHLIB_NAME=\"$libobj2\"" + lappend main_opts "additional_flags=-DSHLIB_NAME=\"[file tail $libobj2]\"" lappend link_opts "shlib_load" } else { lappend link_opts "shlib=${libobj2}" ... which means that the file is found relative to $ORIGIN, as is the case for $dlopen == 0. I'm not entirely happy with this fix, because what we'd rather want is to use the name as returned by remote_download, but that's done in gdb_load_shlib later on (which also handles shlib_target_file, so actually, the name as returned by this proc is the one we really want), so it's not available yet at the time we do the compilation. I've thought about allowing gdb_load_shlib to be called without gdb instance, and for cases where there's no instance, registering the solib-search-path setting to be done at gdb start. This will allow us to move the gdb_load_shlib calls to before the compilation, such that we can use the result to set -DSHLIB_NAME. But I think it's a solution bound to cause confusion because things happen under the hood. Alternatively, we can try to not pass in the name into compilation (working around only some of the problems related to remote host testing, see https://sourceware.org/bugzilla/show_bug.cgi?id=16947), but that also has its limitations: we need to be able to patch target memory or the ability to use argv. Perhaps splitting up the functionality in gdb_load_shlib makes the most sense. By default, it'll do the same as before, but by calling it twice, once with -only-download, and once with -no-download can we get the solib name before starting gdb. I've given this a try in patch attached below. Ivan, could you check if the patch fixes the gdb.base/print-file-var.exp test-case for you? Thanks, - Tom --------------JwsnWPYjeTwnAeUA7rrwbSJZ Content-Type: text/x-patch; charset=UTF-8; name="0003-gdb-testsuite-Fix-gdb.base-print-file-var.exp-for-re.patch" Content-Disposition: attachment; filename*0="0003-gdb-testsuite-Fix-gdb.base-print-file-var.exp-for-re.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiMDcyNjQ1NDMzZjgzZDYyYTRiN2NmODU3ZDNkNTBmMGRkN2UwYzc1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gZGUgVnJpZXMgPHRkZXZyaWVzQHN1c2UuZGU+ CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAxMToyNjoyMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg My8zXSBbZ2RiL3Rlc3RzdWl0ZV0gRml4IGdkYi5iYXNlL3ByaW50LWZpbGUtdmFyLmV4cCBm b3IKIHJlbW90ZSB0YXJnZXQKCi0tLQogZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wcmludC1m aWxlLXZhci5leHAgfCAgNiArKy0KIGdkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAgICAgICAg ICAgICAgICAgIHwgNDggKysrKysrKysrKysrKysrKystLS0tLS0KIDIgZmlsZXMgY2hhbmdl ZCwgMzkgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9wcmludC1maWxlLXZhci5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3ByaW50LWZpbGUtdmFyLmV4cAppbmRleCA5YWJlODdkNzc1OC4uYWJkYmJi ZmRjZTQgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvcHJpbnQtZmlsZS12 YXIuZXhwCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvcHJpbnQtZmlsZS12YXIuZXhw CkBAIC01OSw4ICs1OSwxMCBAQCBwcm9jIHRlc3Qge2hpZGRlbiBkbG9wZW4gdmVyc2lvbl9p ZF9tYWluIGxhbmd9IHsKICAgICBzZXQgbWFpbl9vcHRzIFtsaXN0IGRlYnVnICRsYW5nXQog ICAgIHNldCBsaW5rX29wdHMgW2xpc3QgZGVidWcgc2hsaWI9JHtsaWJvYmoxfV0KIAorICAg IHNldCB0YXJnZXRfbGlib2JqMiBbZ2RiX2xvYWRfc2hsaWIgJGxpYm9iajIgLW9ubHktZG93 bmxvYWRdCisKICAgICBpZiB7JGRsb3Blbn0gewotCWxhcHBlbmQgbWFpbl9vcHRzICJhZGRp dGlvbmFsX2ZsYWdzPS1EU0hMSUJfTkFNRT1cIiRsaWJvYmoyXCIiCisJbGFwcGVuZCBtYWlu X29wdHMgImFkZGl0aW9uYWxfZmxhZ3M9LURTSExJQl9OQU1FPVwiJHRhcmdldF9saWJvYmoy XCIiCiAJbGFwcGVuZCBsaW5rX29wdHMgInNobGliX2xvYWQiCiAgICAgfSBlbHNlIHsKIAls YXBwZW5kIGxpbmtfb3B0cyAic2hsaWI9JHtsaWJvYmoyfSIKQEAgLTc5LDcgKzgxLDcgQEAg cHJvYyB0ZXN0IHtoaWRkZW4gZGxvcGVuIHZlcnNpb25faWRfbWFpbiBsYW5nfSB7CiAKICAg ICBjbGVhbl9yZXN0YXJ0ICRleGVjdXRhYmxlCiAgICAgZ2RiX2xvYWRfc2hsaWIgJGxpYm9i ajEKLSAgICBnZGJfbG9hZF9zaGxpYiAkbGlib2JqMgorICAgIGdkYl9sb2FkX3NobGliICRs aWJvYmoyIC1uby1kb3dubG9hZAogCiAgICAgaWYgIVtydW50b19tYWluXSB7CiAJcmV0dXJu IC0xCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwIGIvZ2RiL3Rlc3Rz dWl0ZS9saWIvZ2RiLmV4cAppbmRleCBlMmNkYTMwYjk1YS4uNTMyOGFmYjI3ZTggMTAwNjQ0 Ci0tLSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9s aWIvZ2RiLmV4cApAQCAtNTg3MywyNCArNTg3Myw0NiBAQCBwcm9jIGdkYl9yZW1vdGVfZG93 bmxvYWQge2Rlc3QgZnJvbWZpbGUge3RvZmlsZSB7fX19IHsKICMKICMgQ29weSB0aGUgbGlz dGVkIGxpYnJhcnkgdG8gdGhlIHRhcmdldC4KIAotcHJvYyBnZGJfbG9hZF9zaGxpYiB7IGZp bGUgfSB7Citwcm9jIGdkYl9sb2FkX3NobGliIHsgZmlsZSBhcmdzIH0gewogICAgIGdsb2Jh bCBnZGJfc3Bhd25faWQKIAotICAgIGlmICFbaW5mbyBleGlzdHMgZ2RiX3NwYXduX2lkXSB7 Ci0JcGVycm9yICJnZGJfbG9hZF9zaGxpYjogR0RCIGlzIG5vdCBydW5uaW5nIgorICAgIHNl dCBkb3dubG9hZCAxCisgICAgc2V0IHNvbGliLXNlYXJjaC1wYXRoIDEKKyAgICBwYXJzZV9h cmdzIHsKKwl7bm8tZG93bmxvYWR9CisJe29ubHktZG93bmxvYWR9CisgICAgfQorICAgIGlm IHsgJHtuby1kb3dubG9hZH0gJiYgJHtvbmx5LWRvd25sb2FkfSB9IHsKKwlwZXJyb3IgXAor CSAgICAiZ2RiX2xvYWRfc2hsaWI6IENhbm5vdCB1c2UgYm90aCAtbm8tZG93bmxvYWQgYW5k IC1vbmx5LWRvd25sb2FkIgorICAgIH0KKyAgICBpZiB7ICR7bm8tZG93bmxvYWR9IH0gewor CXNldCBkb3dubG9hZCAwCisgICAgfQorICAgIGlmIHsgJHtvbmx5LWRvd25sb2FkfSB9IHsK KwlzZXQgc29saWItc2VhcmNoLXBhdGggMAogICAgIH0KIAotICAgIHNldCBkZXN0IFtnZGJf cmVtb3RlX2Rvd25sb2FkIHRhcmdldCBbc2hsaWJfdGFyZ2V0X2ZpbGUgJGZpbGVdXQorICAg IHNldCBkZXN0ICIiCisgICAgaWYgeyAkZG93bmxvYWQgfSB7CisJc2V0IGRlc3QgW2dkYl9y ZW1vdGVfZG93bmxvYWQgdGFyZ2V0IFtzaGxpYl90YXJnZXRfZmlsZSAkZmlsZV1dCisgICAg fQogCi0gICAgaWYge1tpc19yZW1vdGUgdGFyZ2V0XX0gewotCSMgSWYgdGhlIHRhcmdldCBp cyByZW1vdGUsIHdlIG5lZWQgdG8gdGVsbCBnZGIgd2hlcmUgdG8gZmluZCB0aGUKLQkjIGxp YnJhcmllcy4KLQkjCi0JIyBXZSBjb3VsZCBzZXQgdGhpcyBldmVuIHdoZW4gbm90IHRlc3Rp bmcgcmVtb3RlbHksIGJ1dCBhIHVzZXIKLQkjIGdlbmVyYWxseSB3b24ndCBzZXQgaXQgdW5s ZXNzIG5lY2Vzc2FyeS4gIEluIG9yZGVyIHRvIG1ha2UgdGhlIHRlc3RzCi0JIyBtb3JlIGxp a2UgdGhlIHJlYWwtbGlmZSBzY2VuYXJpb3MsIHdlIGRvbid0IHNldCBpdCBmb3IgbG9jYWwg dGVzdGluZy4KLQlnZGJfdGVzdCAic2V0IHNvbGliLXNlYXJjaC1wYXRoIFtmaWxlIGRpcm5h bWUgJGZpbGVdIiAiIiBcCi0JICAgICJzZXQgc29saWItc2VhcmNoLXBhdGggZm9yIFtmaWxl IHRhaWwgJGZpbGVdIgorICAgIGlmIHsgJHtzb2xpYi1zZWFyY2gtcGF0aH0gfSB7CisJaWYg IVtpbmZvIGV4aXN0cyBnZGJfc3Bhd25faWRdIHsKKwkgICAgcGVycm9yICJnZGJfbG9hZF9z aGxpYjogR0RCIGlzIG5vdCBydW5uaW5nIgorCX0KKworCWlmIHtbaXNfcmVtb3RlIHRhcmdl dF19IHsKKwkgICAgIyBJZiB0aGUgdGFyZ2V0IGlzIHJlbW90ZSwgd2UgbmVlZCB0byB0ZWxs IGdkYiB3aGVyZSB0byBmaW5kIHRoZQorCSAgICAjIGxpYnJhcmllcy4KKwkgICAgIworCSAg ICAjIFdlIGNvdWxkIHNldCB0aGlzIGV2ZW4gd2hlbiBub3QgdGVzdGluZyByZW1vdGVseSwg YnV0IGEgdXNlcgorCSAgICAjIGdlbmVyYWxseSB3b24ndCBzZXQgaXQgdW5sZXNzIG5lY2Vz c2FyeS4gIEluIG9yZGVyIHRvIG1ha2UgdGhlIHRlc3RzCisJICAgICMgbW9yZSBsaWtlIHRo ZSByZWFsLWxpZmUgc2NlbmFyaW9zLCB3ZSBkb24ndCBzZXQgaXQgZm9yIGxvY2FsIHRlc3Rp bmcuCisJICAgIGdkYl90ZXN0ICJzZXQgc29saWItc2VhcmNoLXBhdGggW2ZpbGUgZGlybmFt ZSAkZmlsZV0iICIiIFwKKwkJInNldCBzb2xpYi1zZWFyY2gtcGF0aCBmb3IgW2ZpbGUgdGFp bCAkZmlsZV0iCisJfQogICAgIH0KIAogICAgIHJldHVybiAkZGVzdAotLSAKMi4zNS4zCgo= --------------JwsnWPYjeTwnAeUA7rrwbSJZ--