From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id xVBuNiCKk2pCJBMAWB0awg (envelope-from ) for ; Sat, 29 Aug 2026 21:40:48 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=o2.pl header.i=@o2.pl header.a=rsa-sha256 header.s=20241105 header.b=PV6PW8/Y; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id C5AF81E09B; Sat, 29 Aug 2026 21:40:48 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 7D1F41E09B for ; Sat, 29 Aug 2026 21:40:45 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6C3BC4BA23C0 for ; Sun, 30 Aug 2026 01:40:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6C3BC4BA23C0 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=o2.pl header.i=@o2.pl header.a=rsa-sha256 header.s=20241105 header.b=PV6PW8/Y Received: from mx-out.tlen.pl (mx-out.tlen.pl [193.222.135.175]) by sourceware.org (Postfix) with ESMTPS id 094AD4BA2E25 for ; Sun, 30 Aug 2026 01:40:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 094AD4BA2E25 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=o2.pl Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=o2.pl ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 094AD4BA2E25 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=193.222.135.175 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1788054018; cv=none; b=Yyzx04BQxLupY6rzKhgX3shC+WMu4u0FYMz6Lp5gWMEpjmg9yRdIdov44wn5Uur5I5QR6t07imVXtGuFX0iOFirGUkiPJ6EeOJtRQPK5FwBG/nc0dJLOaK6I2EQbGeooLjyZayJPgbrOCjda5zMjsujHkwk3TEKMUR71FMtCVtA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1788054018; c=relaxed/simple; bh=5kFlWxR29J83TnkxvZX1Tf61IhUdMJtxWk8+aXEmjAE=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=uQ56b5FRHfqnoTCh1roeqtHXr3SjH0loS3Qapoi6OPuH+/rot2UIY0A3b0lQlXBZD4Lmg6kiyXjMruYTQwn2hXkWHcrJVbSeLPguEw7Gk5HwtMeETbgNO+Lhl6TkLh9EYPrCILWZPEc12t+GuVY5btDeZMuNh/Gu2XiBbrpJsuw= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=o2.pl header.i=@o2.pl header.a=rsa-sha256 header.s=20241105 header.b=PV6PW8/Y DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 094AD4BA2E25 Received: (wp-smtpd smtp.tlen.pl 7663 invoked from network); 30 Aug 2026 03:40:14 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=o2.pl; s=20241105; t=1788054014; bh=mlXA9u3YU7W7dSGgRE2TpyZGiOCqDSGs8Oq3xdJB7Mw=; h=Subject:To:Cc:From; b=PV6PW8/YXZLRn5BvIFs/4qsZTF5rs/7sCS/TDk7QchWXTJM6uBXrCoOphN4E8+F75 VwajTAkG/ycZSR3134+hZ4B5nGNlNrb0pwfsY/tSHP1WAQmKxKw30TXwNOIgr+yx3a H1DlN6glIULYpBHpmAQjAV0Pu60P9HHHKB05xRtKFBJwi2C9d/mxzplPbIuQeX5rNq jOj9j9cuL7yG23PLuonX4h7by3JvRFwzCk7i4zMYp61m/xq1omfTDrQq4NoaUT65eO AyRp8/Fatchnhg7hx+piFS15opM5VK5L+/U2UacIXg5zGI0xElObsbdDoLRcsyEMXV GVKWKf+QsBZmg== Received: from [192.168.0.1] (ip-94-42-228-142.multimo.pl [94.42.228.142]) (envelope-sender ) by smtp.tlen.pl (WP-SMTPD) with TLS_AES_256_GCM_SHA384 encrypted SMTP for ; 30 Aug 2026 03:40:14 +0200 Content-Type: multipart/mixed; boundary="------------4cHNl0qw09XTL6QyJ1ruFZsZ" Message-ID: <140cc872-432a-4b4d-85d6-c93ac879bafb@o2.pl> Date: Sun, 30 Aug 2026 03:40:13 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] H8/300: sim: Fix simulator hang caused by qsort on Windows/MinGW. To: Tom Tromey Cc: gdb-patches@sourceware.org, Jeffrey Law References: <20260822110423.1569154-1-jdx@o2.pl> <878q5rbngh.fsf@tromey.com> Content-Language: pl From: Jan Dubiec In-Reply-To: <878q5rbngh.fsf@tromey.com> X-WP-MailID: 00a2177a6a524eb87935d899ccc626bf X-WP-AV: skaner antywirusowy Poczty o2 X-WP-SPAM: NO 0000000 [sZMs] X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org This is a multi-part message in MIME format. --------------4cHNl0qw09XTL6QyJ1ruFZsZ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 27.08.2026 17:19, Tom Tromey wrote: >>>>>> "Jan" == Jan Dubiec writes: > > Jan> So I think the best solution is to use a sorting algorithm known to be > Jan> stable on every host, e.g. the insertion sort implementation from my > Jan> previous message. > > Would it be possible to change the comparison function to be stable? It is impossible by definition, because stability is a property of the sorting algorithm, not the comparator. However, the comparator can be modified in such a way that an unstable sorting algorithm produces a “good enough” result. That said, the following simple patch is sufficient: /* Secondarily sort based on the first opcode nibble. */ - return p1->data.nib[0] - p2->data.nib[0]; + if (p1->data.nib[0] != p2->data.nib[0]) + return p1->data.nib[0] - p2->data.nib[0]; + + /* The 3rd sort key */ + return strcmp(p1->name, p2->name); However, I decided to take the longer route (see the attached patch) in order to make the opcode table as close as possible to the one that would be produced by a stable sorting algorithm. > I think it would be somewhat nicer not to have a separate sort > implementation. > > If that's too hard, though, I think your approach is fine. It wasn't difficult, but I’m still inclined to favor a stable, predictable sorting algorithm. That said, it’s not a big deal to me. Let me know what you think about it, and then I’ll post a new version of the patch. /J.D. --------------4cHNl0qw09XTL6QyJ1ruFZsZ Content-Type: text/plain; charset=UTF-8; name="instruction_comparator.patch" Content-Disposition: attachment; filename="instruction_comparator.patch" Content-Transfer-Encoding: base64 IHNpbS9oODMwMC9jb21waWxlLmMgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc2ltL2g4MzAwL2NvbXBpbGUuYyBiL3NpbS9oODMwMC9j b21waWxlLmMKaW5kZXggMDY5ODgwOTUyMjguLjNjY2E2OTczMGIwIDEwMDY0NAotLS0gYS9z aW0vaDgzMDAvY29tcGlsZS5jCisrKyBiL3NpbS9oODMwMC9jb21waWxlLmMKQEAgLTE1ODYs NiArMTU4Niw3IEBAIGluc3RydWN0aW9uX2NvbXBhcmF0b3IgKGNvbnN0IHZvaWQgKnAxXywg Y29uc3Qgdm9pZCAqcDJfKQogewogICBzdHJ1Y3QgaDhfb3Bjb2RlICpwMSA9IChzdHJ1Y3Qg aDhfb3Bjb2RlICopcDFfOwogICBzdHJ1Y3QgaDhfb3Bjb2RlICpwMiA9IChzdHJ1Y3QgaDhf b3Bjb2RlICopcDJfOworICBpbnQgY21wOwogCiAgIC8qIFRoZSAxc3Qgc29ydCBrZXkgaXMg YmFzZWQgb24gd2hldGhlciBvciBub3QgdGhlCiAgICAgIGluc3RydWN0aW9uIGlzIGV2ZW4g YXZhaWxhYmxlLiAgVGhpcyByZWR1Y2VzIHRoZQpAQCAtMTYwNSw3ICsxNjA2LDQzIEBAIGlu c3RydWN0aW9uX2NvbXBhcmF0b3IgKGNvbnN0IHZvaWQgKnAxXywgY29uc3Qgdm9pZCAqcDJf KQogICAgIHJldHVybiBwMl9hdmFpbGFibGUgLSBwMV9hdmFpbGFibGU7CiAKICAgLyogU2Vj b25kYXJpbHkgc29ydCBiYXNlZCBvbiB0aGUgZmlyc3Qgb3Bjb2RlIG5pYmJsZS4gICovCi0g IHJldHVybiBwMS0+ZGF0YS5uaWJbMF0gLSBwMi0+ZGF0YS5uaWJbMF07CisgIGlmIChwMS0+ ZGF0YS5uaWJbMF0gIT0gcDItPmRhdGEubmliWzBdKQorICAgIHJldHVybiBwMS0+ZGF0YS5u aWJbMF0gLSBwMi0+ZGF0YS5uaWJbMF07CisKKyAgLyogVGhlIDNyZCBzb3J0IGtleSAgKi8K KyAgY21wID0gc3RyY21wKHAxLT5uYW1lLCBwMi0+bmFtZSk7CisgIGlmIChjbXApCisgICAg eworICAgICAgLyogVHdvIGRpZmZlcmVudCBvcGNvZGVzICAqLworICAgICAgc2l6ZV90IGwx ID0gc3RybGVuKHAxLT5uYW1lKTsKKyAgICAgIHNpemVfdCBsMiA9IHN0cmxlbihwMi0+bmFt ZSk7CisgICAgICBwdHJkaWZmX3QgaTEgPSBzdHJjaHIocDEtPm5hbWUsICcuJykgLSBwMS0+ bmFtZTsKKyAgICAgIHB0cmRpZmZfdCBpMiA9IHN0cmNocihwMi0+bmFtZSwgJy4nKSAtIHAy LT5uYW1lOworICAgICAgY2hhciBjMSwgYzI7CisKKyAgICAgIGlmICgobDEgPT0gbDIpICYm IChpMSA9PSBpMikgJiYgKGkxID4gMCkpCisgICAgICAgIHsKKyAgICAgICAgICAvKiBDaGVj ayBmb3IgZGlmZmVyZW50IG1uZW1vbmljcywgZS5nLiBhZGQudyB2cy4gYW5kLmIgICovCisg ICAgICAgICAgY21wID0gc3RybmNtcChwMS0+bmFtZSwgcDItPm5hbWUsIGkxKTsKKyAgICAg ICAgICBpZiAoY21wKQorICAgICAgICAgICAgcmV0dXJuIGNtcDsKKworICAgICAgICAgIC8q IEF0IHRoaXMgcG9pbnQgd2UgZXhwZWN0IG9ubHkgYiwgdyBvciBsIHN1ZmZpeCwKKyAgICAg ICAgICAgICB3aGVyZSBiIDwgdyA8IGwgICovCisgICAgICAgICAgYzEgPSBwMS0+bmFtZVtp MSsxXTsKKyAgICAgICAgICBjMiA9IHAyLT5uYW1lW2kyKzFdOworICAgICAgICAgIGlmIChj MSA9PSAnYicpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgZWxzZSBpZiAo YzEgPT0gJ3cnKQorICAgICAgICAgICAgcmV0dXJuIChjMiA9PSAnYicpID8gMSA6IC0xOwor ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAg ICByZXR1cm4gY21wOworICAgIH0KKworICAvKiBUaGUgNHRoIHNvcnQga2V5ICAqLworICBy ZXR1cm4gcDEtPmhvdyAtIHAyLT5ob3c7CiB9CiAKIAo= --------------4cHNl0qw09XTL6QyJ1ruFZsZ--