From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id 539EB3858D28; Wed, 18 Jan 2023 15:42:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 539EB3858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.97,226,1669104000"; d="diff'?scan'208";a="93787896" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 18 Jan 2023 07:42:35 -0800 IronPort-SDR: 65ZiQVs1psN/XyZM1apGwWgn6Fj2+cxufJCRgA7R3M02WhWnmNftpwCghndA5t+eT6QrDgW42S INTh5sKBZ791WLfdxkILvTEsVfKvfyMUlVsgr2uTlbz2523j8UTRjQJkuVUlLfCy+hWG0vgji0 1x/PoGV6RCDoiKeR2ojCSxGl2851qC4A782ckxwIm8ZyXKk+Dwvpa1wHn0HbkvkhJgEnng+xKf x0mU3JZeUo4JNTZVHJml01wdv9qlmanT1IjFjsqw0MRKDnCUHXTCPfS3JPGG02x/uyTlq0dczL W68= Content-Type: multipart/mixed; boundary="------------8TpHTNIww4y44Why0FHw0cPl" Message-ID: <0b95e5f1-142e-e13a-7d77-272073e25c2a@codesourcery.com> Date: Wed, 18 Jan 2023 16:42:24 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Content-Language: en-US To: gcc-patches , fortran From: Tobias Burnus CC: NightStrike Subject: [Patch] libfortran: Fix execute_command_line for Windows X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_PASS,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: --------------8TpHTNIww4y44Why0FHw0cPl Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Reported by nightstrike, who also tested this patch. On Windows, we call system() which works as described at https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/system-ws= ystem?view=3Dmsvc-170 Namely, it only fails with "-1" if the command interpreter could not be started. Otherwise, it has the return value. (Same on Linux.) On POSIX systems, 'sh' calls exit(127) or _exit(127) if it cannot execute the program of the passed string, as documented. Cf. https://www.unix.com/man-page/posix/3p/system/ Thus, the question is what happens on Windows. Our experiments, several webpages (like stackoverflow) and the source code of WINE for cmd.exe indic= ate that Windows returns 9009 in that case. See for instance https://github.com/wine-mirror/wine/blob/master/programs/cmd/wcmdmain.c#L12= 62-L1269 Thus, we now do likewise. The code is for MINGW; Cygwin does not set that t= hat var and is likely to use return values closer to POSIX. OK for mainline? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------8TpHTNIww4y44Why0FHw0cPl Content-Type: text/x-patch; charset="UTF-8"; name="win-cmd-exec.diff" Content-Disposition: attachment; filename="win-cmd-exec.diff" Content-Transfer-Encoding: base64 bGliZm9ydHJhbjogRml4IGV4ZWN1dGVfY29tbWFuZF9saW5lIGZvciBXaW5kb3dzCgpPbiBX aW5kb3dzLCAnc3lzdGVtJyBpcyBjYWxsZWQgLSB0aGF0IGZhaWxzIHdpdGggLTEgaWYgdGhl IGNvbW1hbmQKaW50ZXJwcmV0ZXIgY291bGQgbm90IGJlIHN0YXJ0ZWQ7IG9uIFBPU0lYIHN5 c3RlbXMsIGlmIHRoZSBjaGlsZApwcm9jZXNzIGNvdWxkIG5vdCBiZSBzdGFydGVkIGJ5IHRo ZSBzaGVsbCwgZXhpdCgxMjcpL19leGl0KDEyNykgaXMKY2FsbGVkL3JldHVybmVkLiBPbiBX aW5kb3dzLCBjbWQuZXhlIChhbmQgYWxzbyB0aGUgUG93ZXJTaGVsbCkgcmV0dXJuCmVycm9y bGV2ZWwgOTAwOS4KCmxpYmdmb3J0cmFuL0NoYW5nZUxvZzoKCgkqIGludHJpbnNpY3MvZXhl Y3V0ZV9jb21tYW5kX2xpbmUuYyAoZXhlY3V0ZV9jb21tYW5kX2xpbmUpOiBPbgoJV2luZG93 cywgcmVnYXJkIHN5c3RlbSgpJ3MgcmV0dXJuIHZhbHVlIG9mIDkwMDkgYXMgRVhFQ19JTlZB TElEQ09NTUFORC4KCmRpZmYgLS1naXQgYS9saWJnZm9ydHJhbi9pbnRyaW5zaWNzL2V4ZWN1 dGVfY29tbWFuZF9saW5lLmMgYi9saWJnZm9ydHJhbi9pbnRyaW5zaWNzL2V4ZWN1dGVfY29t bWFuZF9saW5lLmMKaW5kZXggMzA1ZjA2N2Q5NzMuLjBkMTY4ODQwMGMyIDEwMDY0NAotLS0g YS9saWJnZm9ydHJhbi9pbnRyaW5zaWNzL2V4ZWN1dGVfY29tbWFuZF9saW5lLmMKKysrIGIv bGliZ2ZvcnRyYW4vaW50cmluc2ljcy9leGVjdXRlX2NvbW1hbmRfbGluZS5jCkBAIC0xNDIs MTAgKzE0MiwxNSBAQCBleGVjdXRlX2NvbW1hbmRfbGluZSAoY29uc3QgY2hhciAqY29tbWFu ZCwgYm9vbCB3YWl0LCBpbnQgKmV4aXRzdGF0LAogI2VuZGlmCiAgICAgICBlbHNlIGlmIChy ZXMgPT0gMTI3IHx8IHJlcyA9PSAxMjYKICNpZiBkZWZpbmVkKFdFWElUU1RBVFVTKSAmJiBk ZWZpbmVkKFdJRkVYSVRFRCkKIAkgICAgICAgfHwgKFdJRkVYSVRFRChyZXMpICYmIFdFWElU U1RBVFVTKHJlcykgPT0gMTI3KQogCSAgICAgICB8fCAoV0lGRVhJVEVEKHJlcykgJiYgV0VY SVRTVEFUVVMocmVzKSA9PSAxMjYpCisjZW5kaWYKKyNpZmRlZiBfX01JTkdXMzJfXworCQkg IC8qIGNtZC5leGUgc2V0cyB0aGUgZXJyb3JsZXZlbCB0byA5MDA5LAorCQkgICAgIGlmIHRo ZSBjb21tYW5kIGNvdWxkIG5vdCBiZSBleGVjdXRlZC4gICovCisJCXx8IHJlcyA9PSA5MDA5 CiAjZW5kaWYKIAkgICAgICAgKQogCS8qIFNoZWxsIHJldHVybiBjb2RlcyAxMjYgYW5kIDEy NyBtZWFuIHRoYXQgdGhlIGNvbW1hbmQgbGluZSBjb3VsZAogCSAgIG5vdCBiZSBleGVjdXRl ZCBmb3IgdmFyaW91cyByZWFzb25zLiAgKi8KIAlzZXRfY21kc3RhdCAoY21kc3RhdCwgRVhF Q19JTlZBTElEQ09NTUFORCk7Cg== --------------8TpHTNIww4y44Why0FHw0cPl--