From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id DA49C3858D32 for ; Fri, 14 Apr 2023 12:11:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DA49C3858D32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [111.18.6.45]) by gateway (Coremail) with SMTP id _____8DxE4TUQjlkHXAcAA--.44172S3; Fri, 14 Apr 2023 20:11:01 +0800 (CST) Received: from [192.168.68.105] (unknown [111.18.6.45]) by localhost.localdomain (Coremail) with SMTP id AQAAf8BxHuTSQjlkSMwkAA--.10450S3; Fri, 14 Apr 2023 20:10:59 +0800 (CST) Message-ID: <8f371758-3130-1560-1f5d-5ed7b29f3935@loongson.cn> Date: Fri, 14 Apr 2023 20:11:24 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 Subject: Re: [PATCH v2] gdb/testsuite: Skip dump ihex for 64-bit address in gdb.base/dump.exp Content-Language: en-US To: Hui Li , gdb-patches@sourceware.org References: <20230410015236.25639-1-lihui@loongson.cn> From: Tiezhu Yang In-Reply-To: <20230410015236.25639-1-lihui@loongson.cn> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-CM-TRANSID:AQAAf8BxHuTSQjlkSMwkAA--.10450S3 X-CM-SenderInfo: p1dqw3xlh2x3gn0dqz5rrqw2lrqou0/ X-Coremail-Antispam: 1Uk129KBjvJXoW7Zr1fZF1rAw45tw1UWr4fAFb_yoW8uFyrpw 47Ga90kF4kGFW2vFW7Xa9rX34YyrW8Aay5A34akry2kF15Xr4fCwn2kw47Ja1rCF10gFy3 Kanayr4YgF4YkaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUj1kv1TuYvTs0mT0YCTnIWj qI5I8CrVACY4xI64kE6c02F40Ex7xfYxn0WfASr-VFAUDa7-sFnT9fnUUIcSsGvfJTRUUU bI8YFVCjjxCrM7AC8VAFwI0_Jr0_Gr1l1xkIjI8I6I8E6xAIw20EY4v20xvaj40_Wr0E3s 1l1IIY67AEw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xv wVC0I7IYx2IY67AKxVWUJVWUCwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwA2z4 x0Y4vEx4A2jsIE14v26r4UJVWxJr1l84ACjcxK6I8E87Iv6xkF7I0E14v26F4UJVW0owAS 0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07AIYIkI8VC2zVCFFI0UMc02F40EFcxC0V AKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1l Ox8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcVAKI48JMxk0xIA0c2IEe2xFo4CEbIxvr21l42 xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWU GwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1Y6r17MIIYrxkI7VAKI4 8JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4U MIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVW8JVWxJwCI42IY6I 8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxUzsqWUUUUU X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,NICE_REPLY_A,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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 4/10/23 09:52, Hui Li wrote: > (1) Description of problem > > In the current code, when execute the following test on LoongArch: > > $make check-gdb TESTS="gdb.base/dump.exp" > ``` > FAIL: gdb.base/dump.exp: dump array as value, intel hex > FAIL: gdb.base/dump.exp: dump struct as value, intel hex > FAIL: gdb.base/dump.exp: dump array as memory, ihex > FAIL: gdb.base/dump.exp: dump struct as memory, ihex > > ``` > These tests passed on the X86_64, > > (2) Root cause > > On LoongArch, variable intarray address 0x120008068 out of range for IHEX, > so dump ihex test failed. > > gdb.base/dump.exp has the following code to check 64-bit address > > ``` > # Check the address of a variable. If it is bigger than 32-bit, > # assume our target has 64-bit addresses that are not supported by SREC, > # IHEX and TEKHEX. We skip those tests then. > set max_32bit_address "0xffffffff" > set data_address [get_hexadecimal_valueof "&intarray" 0x100000000] > if {${data_address} > ${max_32bit_address}} { > set is64bitonly "yes" > } > ``` > > We check the "&intarray" on different target as follow: > > ``` > $gdb gdb/testsuite/outputs/gdb.base/dump/dump > ... > (gdb) start > ... > > On X86_64: > (gdb) print /x &intarray > $1 = 0x404060 > > On LoongArch: > (gdb) print /x &intarray > $1 = 0x120008068 > ``` > The variable address difference here is due to the link script > of linker. > > ``` > On X86_64: > $ld --verbose > ... > PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); > . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; > > On LoongArch: > $ld --verbose > ... > PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x120000000)); > . = SEGMENT_START("text-segment", 0x120000000) + SIZEOF_HEADERS; > > ``` > > (3) How to fix > > Because 64-bit variable address out of range for IHEX, it's not an > functional problem for LoongArch. Refer to the handling of 64-bit > targets in this testsuite, use the "is64bitonly" flag to skip those > tests for the target has 64-bit addresses. > > Signed-off-by: Hui Li Tested on LoongArch, pushed. Thanks, Tiezhu