From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by sourceware.org (Postfix) with ESMTPS id 0F7BC3858D35 for ; Mon, 22 May 2023 13:25:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0F7BC3858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-510e419d701so9417306a12.1 for ; Mon, 22 May 2023 06:25:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684761933; x=1687353933; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=uPGG+Wkixl19HkmBNSrSAJQs3aiOCgI2aJUzqvkFv9M=; b=P52ZJ3HT3xtC/0PeG5WBVB0+JK9XQ+5XceplKkL+3PQkOs+uGwcSyJbHPdqur6zuAn xeQtadg2wKX6gf++YxMLrpihzqFs8K4ZsZhrn9bFWr/dHxK9GMqfWXyw9K30/jx8PsEY hES7+MkuaT8MzemyOFKZttQ2gduCzZRKD4Nx5uxy8qzSYWpkqFz37ijG4HYA6gH7sXqE TYRnIHgBMf5U9qbaxb5104Vr2+lfKziGra7bv1Sp0xXjar3BCzqMY1Qr7ia/gXeWvLzL sf4Mhy8UIwZv6DvzsgKEij7oqRjZGIrUupHghh9k5fN2D776sKobENQK4wbChAvqlzvc Z0jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684761933; x=1687353933; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=uPGG+Wkixl19HkmBNSrSAJQs3aiOCgI2aJUzqvkFv9M=; b=lH1+/wyTrE3lLnuAj3SU0pHtlNvrnSnRACMYzAds8du64KPPLEYdM/NG9BAi2k0LzE j7uTBMOKyf5eVgeQyML8QMBDVDts+B/2j1/s0fWW+LGLGGSn4iGOe2m1X3NlMqEllnbt tM3pZi+XDmukqs4Py29wXHuuxZZGtiZbrlfnrWua3aq/sv7BeFSdKys8N9WcFxOtI1MK g98HhRH7Jg/QjGXV9RbYJzRaCbJIesFO9r0d5AnoY1OxpVJt2/ZleFaTp8aqpR/c+H7J g7a4gAh8WDKBXrXoVZ6djNm3LW1APjeNg6sjKL4l6gXImJWQFD//msJrcGvXSE+Nyrzg +CGQ== X-Gm-Message-State: AC+VfDzfBWjIOGh7SKvvj7Dys5x0PxCGGJFGDtSkCpwA1Rdsml2TjnaN ixBr3Fboyo6BOGPIj0+H9pwWmLTBHeg01y94YQZzUXUVQeJd2g== X-Google-Smtp-Source: ACHHUZ7tRKVwwupRN4AjkCnuQhA8K0axcJ3e5ESFmVrxVF2ODSeeaKdRO82GOtGUePCD10Fx++x/E9gJ3N74Ukg7pXQ= X-Received: by 2002:aa7:c6c8:0:b0:510:6217:9994 with SMTP id b8-20020aa7c6c8000000b0051062179994mr7712689eds.39.1684761932501; Mon, 22 May 2023 06:25:32 -0700 (PDT) MIME-Version: 1.0 From: Costas Argyris Date: Mon, 22 May 2023 14:25:21 +0100 Message-ID: Subject: [PATCH] libiberty: On Windows pass a >32k cmdline through a response file. To: gcc-patches@gcc.gnu.org Cc: Jonathan Yong <10walls@gmail.com> Content-Type: multipart/mixed; boundary="00000000000084ce7b05fc4834ba" X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,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: --00000000000084ce7b05fc4834ba Content-Type: multipart/alternative; boundary="00000000000084ce7905fc4834b8" --00000000000084ce7905fc4834b8 Content-Type: text/plain; charset="UTF-8" Currently on Windows, when CreateProcess is called with a command-line that exceeds the 32k Windows limit, we get a very bad error: "CreateProcess: No such file or directory" This patch detects the case where this would happen and writes the long command-line to a temporary response file and calls CreateProcess with @file instead. --00000000000084ce7905fc4834b8-- --00000000000084ce7b05fc4834ba Content-Type: text/x-patch; charset="US-ASCII"; name="0001-libiberty-On-Windows-pass-a-32k-cmdline-through-a-re.patch" Content-Disposition: attachment; filename="0001-libiberty-On-Windows-pass-a-32k-cmdline-through-a-re.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lhyve94u0 RnJvbSA1YzcyMzdjMTAyY2RhY2EzNGU1OTA3Y2QyNWMzMTYxMGJkYTUxOTE5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb3N0YXMgQXJneXJp cyA8Y29zdGFzLmFyZ3lyaXNAZ21haWwuY29tPgpEYXRlOiBNb24sIDIyIE1h eSAyMDIzIDEzOjU1OjU2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gbGliaWJl cnR5OiBPbiBXaW5kb3dzLCBwYXNzIGEgPjMyayBjbWRsaW5lIHRocm91Z2gg YSByZXNwb25zZQogZmlsZS4KCnBleC13aW4zMi5jICh3aW4zMl9zcGF3bik6 IElmIHRoZSBjb21tYW5kIGxpbmUgZm9yIENyZWF0ZVByb2Nlc3MKZXhjZWVk cyB0aGUgMzJrIFdpbmRvd3MgbGltaXQsIHRyeSB0byBzdG9yZSBpdCBpbiBh IHRlbXBvcmFyeQpyZXNwb25zZSBmaWxlIGFuZCBjYWxsIENyZWF0ZVByb2Nl c3Mgd2l0aCBAZmlsZSBpbnN0ZWFkIChQUjcxODUwKS4KClNpZ25lZC1vZmYt Ynk6IENvc3RhcyBBcmd5cmlzIDxjb3N0YXMuYXJneXJpc0BnbWFpbC5jb20+ Ci0tLQogbGliaWJlcnR5L3BleC13aW4zMi5jIHwgNTcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDQ0IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2xpYmliZXJ0eS9wZXgtd2luMzIuYyBiL2xpYmliZXJ0eS9wZXgt d2luMzIuYwppbmRleCAyM2M2YzE5MGEyYy4uMGZkOGIzODczNGMgMTAwNjQ0 Ci0tLSBhL2xpYmliZXJ0eS9wZXgtd2luMzIuYworKysgYi9saWJpYmVydHkv cGV4LXdpbjMyLmMKQEAgLTU2OSw3ICs1NjksOCBAQCBlbnZfY29tcGFyZSAo Y29uc3Qgdm9pZCAqYV9wdHIsIGNvbnN0IHZvaWQgKmJfcHRyKQogICogdGFy Z2V0IGlzIG5vdCBhY3R1YWxseSBhbiBleGVjdXRhYmxlLCBzdWNoIGFzIGlm IGl0IGlzIGEgc2hlbGwgc2NyaXB0LiAqLwogCiBzdGF0aWMgcGlkX3QKLXdp bjMyX3NwYXduIChjb25zdCBjaGFyICpleGVjdXRhYmxlLAord2luMzJfc3Bh d24gKHN0cnVjdCBwZXhfb2JqICpvYmosCisgICAgICAgICBjb25zdCBjaGFy ICpleGVjdXRhYmxlLAogCSAgICAgQk9PTCBzZWFyY2gsCiAJICAgICBjaGFy ICpjb25zdCAqYXJndiwKICAgICAgICAgICAgICBjaGFyICpjb25zdCAqZW52 LCAvKiBhcnJheSBvZiBzdHJpbmdzIG9mIHRoZSBmb3JtOiBWQVI9VkFMVUUg Ki8KQEAgLTYyNCw4ICs2MjUsMzcgQEAgd2luMzJfc3Bhd24gKGNvbnN0IGNo YXIgKmV4ZWN1dGFibGUsCiAgIGNtZGxpbmUgPSBhcmd2X3RvX2NtZGxpbmUg KGFyZ3YpOwogICBpZiAoIWNtZGxpbmUpCiAgICAgZ290byBleGl0OwotICAg IAotICAvKiBDcmVhdGUgdGhlIGNoaWxkIHByb2Nlc3MuICAqLyAgCisgIC8q IElmIGNtZGxpbmUgaXMgdG9vIGxhcmdlLCBDcmVhdGVQcm9jZXNzIHdpbGwg ZmFpbCB3aXRoIGEgYmFkCisgICAgICdObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5JyBlcnJvci4gVHJ5IHBhc3NpbmcgaXQgdGhyb3VnaCBhCisgICAgIHRl bXBvcmFyeSByZXNwb25zZSBmaWxlIGluc3RlYWQuICAqLworICBpZiAoc3Ry bGVuIChjbWRsaW5lKSA+IDMyNzY3KQorICAgIHsKKyAgICAgIGNoYXIgKnJl c3BvbnNlX2ZpbGUgPSBtYWtlX3RlbXBfZmlsZSAoIiIpOworICAgICAgLyog UmVnaXN0ZXIgdGhlIGZpbGUgZm9yIGRlbGV0aW9uIGJ5IHBleF9mcmVlLiAg Ki8KKyAgICAgICsrb2JqLT5yZW1vdmVfY291bnQ7CisgICAgICBvYmotPnJl bW92ZSA9IFhSRVNJWkVWRUMgKGNoYXIgKiwgb2JqLT5yZW1vdmUsIG9iai0+ cmVtb3ZlX2NvdW50KTsKKyAgICAgIG9iai0+cmVtb3ZlW29iai0+cmVtb3Zl X2NvdW50IC0gMV0gPSByZXNwb25zZV9maWxlOworICAgICAgaW50IGZkID0g cGV4X3dpbjMyX29wZW5fd3JpdGUgKG9iaiwgcmVzcG9uc2VfZmlsZSwgMCwg MCk7CisgICAgICBpZiAoZmQgPT0gLTEpCisgICAgICAgIGdvdG8gZXhpdDsK KyAgICAgIEZJTEUgKmYgPSBwZXhfd2luMzJfZmRvcGVudyAob2JqLCBmZCwg MCk7CisgICAgICAvKiBEb24ndCB3cml0ZSBhcmd2WzBdIChwcm9ncmFtIG5h bWUpIHRvIHRoZSByZXNwb25zZSBmaWxlLiAgKi8KKyAgICAgIGlmICh3cml0 ZWFyZ3YgKCZhcmd2WzFdLCBmKSkKKyAgICAgICAgeworICAgICAgICAgIGZj bG9zZSAoZik7CisgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9Cisg ICAgICBmY2xvc2UgKGYpOyAvKiBBbHNvIGNsb3NlcyBmZCBhbmQgdGhlIHVu ZGVybHlpbmcgT1MgaGFuZGxlLiAgKi8KKyAgICAgIGNoYXIgKnJlc3BvbnNl X2FyZyA9IGNvbmNhdCAoIkAiLCByZXNwb25zZV9maWxlLCBOVUxMKTsKKyAg ICAgIGNoYXIgKnJlc3BvbnNlX2FyZ3ZbM10gPSB7YXJndlswXSwgcmVzcG9u c2VfYXJnLCBOVUxMfTsKKyAgICAgIGZyZWUgKGNtZGxpbmUpOworICAgICAg Y21kbGluZSA9IGFyZ3ZfdG9fY21kbGluZSAocmVzcG9uc2VfYXJndik7Cisg ICAgICBmcmVlIChyZXNwb25zZV9hcmcpOworICAgICAgaWYgKCFjbWRsaW5l KQorICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAKKyAgLyogQ3JlYXRl IHRoZSBjaGlsZCBwcm9jZXNzLiAgKi8KICAgaWYgKENyZWF0ZVByb2Nlc3Mg KGZ1bGxfZXhlY3V0YWJsZSwgY21kbGluZSwKIAkJICAgICAgLypscFByb2Nl c3NBdHRyaWJ1dGVzPSovTlVMTCwKIAkJICAgICAgLypscFRocmVhZEF0dHJp YnV0ZXM9Ki9OVUxMLApAQCAtNjQ1LDcgKzY3NSw3IEBAIHdpbjMyX3NwYXdu IChjb25zdCBjaGFyICpleGVjdXRhYmxlLAogICBmcmVlIChlbnZfYmxvY2sp OwogICBmcmVlIChjbWRsaW5lKTsKICAgZnJlZSAoZnVsbF9leGVjdXRhYmxl KTsKLQorICAKICAgcmV0dXJuIHBpZDsKIH0KIApAQCAtNjUzLDcgKzY4Myw4 IEBAIHdpbjMyX3NwYXduIChjb25zdCBjaGFyICpleGVjdXRhYmxlLAogICAg VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYXMgYSBmYWxsYmFjayBpZiB3aW4z Ml9zcGF3biBmYWlscy4gKi8KIAogc3RhdGljIHBpZF90Ci1zcGF3bl9zY3Jp cHQgKGNvbnN0IGNoYXIgKmV4ZWN1dGFibGUsIGNoYXIgKmNvbnN0ICphcmd2 LAorc3Bhd25fc2NyaXB0IChzdHJ1Y3QgcGV4X29iaiAqb2JqLAorICAgICAg ICAgICAgICBjb25zdCBjaGFyICpleGVjdXRhYmxlLCBjaGFyICpjb25zdCAq YXJndiwKICAgICAgICAgICAgICAgY2hhciogY29uc3QgKmVudiwKIAkgICAg ICBEV09SRCBkd0NyZWF0aW9uRmxhZ3MsCiAJICAgICAgTFBTVEFSVFVQSU5G TyBzaSwKQEAgLTcwMywyMCArNzM0LDIwIEBAIHNwYXduX3NjcmlwdCAoY29u c3QgY2hhciAqZXhlY3V0YWJsZSwgY2hhciAqY29uc3QgKmFyZ3YsCiAJICAg ICAgZXhlY3V0YWJsZSA9IHN0cnJjaHIgKGV4ZWN1dGFibGUxLCAnXFwnKSAr IDE7CiAJICAgICAgaWYgKCFleGVjdXRhYmxlKQogCQlleGVjdXRhYmxlID0g ZXhlY3V0YWJsZTE7Ci0JICAgICAgcGlkID0gd2luMzJfc3Bhd24gKGV4ZWN1 dGFibGUsIFRSVUUsIGFyZ3YsIGVudiwKKwkgICAgICBwaWQgPSB3aW4zMl9z cGF3biAob2JqLCBleGVjdXRhYmxlLCBUUlVFLCBhcmd2LCBlbnYsCiAJCQkJ IGR3Q3JlYXRpb25GbGFncywgc2ksIHBpKTsKICNlbHNlCiAJICAgICAgaWYg KHN0cmNociAoZXhlY3V0YWJsZTEsICdcXCcpID09IE5VTEwpCi0JCXBpZCA9 IHdpbjMyX3NwYXduIChleGVjdXRhYmxlMSwgVFJVRSwgYXJndiwgZW52LAor CQlwaWQgPSB3aW4zMl9zcGF3biAob2JqLCBleGVjdXRhYmxlMSwgVFJVRSwg YXJndiwgZW52LAogCQkJCSAgIGR3Q3JlYXRpb25GbGFncywgc2ksIHBpKTsK IAkgICAgICBlbHNlIGlmIChleGVjdXRhYmxlMVswXSAhPSAnXFwnKQotCQlw aWQgPSB3aW4zMl9zcGF3biAoZXhlY3V0YWJsZTEsIEZBTFNFLCBhcmd2LCBl bnYsCisJCXBpZCA9IHdpbjMyX3NwYXduIChvYmosIGV4ZWN1dGFibGUxLCBG QUxTRSwgYXJndiwgZW52LAogCQkJCSAgIGR3Q3JlYXRpb25GbGFncywgc2ks IHBpKTsKIAkgICAgICBlbHNlCiAJCXsKIAkJICBjb25zdCBjaGFyICpuZXdl eCA9IG1pbmd3X3Jvb3RpZnkgKGV4ZWN1dGFibGUxKTsKIAkJICAqYXZoZXJl ID0gbmV3ZXg7Ci0JCSAgcGlkID0gd2luMzJfc3Bhd24gKG5ld2V4LCBGQUxT RSwgYXJndiwgZW52LAorCQkgIHBpZCA9IHdpbjMyX3NwYXduIChvYmosIG5l d2V4LCBGQUxTRSwgYXJndiwgZW52LAogCQkJCSAgICAgZHdDcmVhdGlvbkZs YWdzLCBzaSwgcGkpOwogCQkgIGlmIChleGVjdXRhYmxlMSAhPSBuZXdleCkK IAkJICAgIGZyZWUgKChjaGFyICopIG5ld2V4KTsKQEAgLTcyNiw3ICs3NTcs NyBAQCBzcGF3bl9zY3JpcHQgKGNvbnN0IGNoYXIgKmV4ZWN1dGFibGUsIGNo YXIgKmNvbnN0ICphcmd2LAogCQkgICAgICBpZiAobmV3ZXggIT0gZXhlY3V0 YWJsZTEpCiAJCQl7CiAJCQkgICphdmhlcmUgPSBuZXdleDsKLQkJCSAgcGlk ID0gd2luMzJfc3Bhd24gKG5ld2V4LCBGQUxTRSwgYXJndiwgZW52LAorCQkJ ICBwaWQgPSB3aW4zMl9zcGF3biAob2JqLCBuZXdleCwgRkFMU0UsIGFyZ3Ys IGVudiwKIAkJCQkJICAgICBkd0NyZWF0aW9uRmxhZ3MsIHNpLCBwaSk7CiAJ CQkgIGZyZWUgKChjaGFyICopIG5ld2V4KTsKIAkJCX0KQEAgLTc0NSw3ICs3 NzYsNyBAQCBzcGF3bl9zY3JpcHQgKGNvbnN0IGNoYXIgKmV4ZWN1dGFibGUs IGNoYXIgKmNvbnN0ICphcmd2LAogLyogRXhlY3V0ZSBhIGNoaWxkLiAgKi8K IAogc3RhdGljIHBpZF90Ci1wZXhfd2luMzJfZXhlY19jaGlsZCAoc3RydWN0 IHBleF9vYmogKm9iaiBBVFRSSUJVVEVfVU5VU0VELCBpbnQgZmxhZ3MsCitw ZXhfd2luMzJfZXhlY19jaGlsZCAoc3RydWN0IHBleF9vYmogKm9iaiwgaW50 IGZsYWdzLAogCQkgICAgICBjb25zdCBjaGFyICpleGVjdXRhYmxlLCBjaGFy ICogY29uc3QgKiBhcmd2LAogICAgICAgICAgICAgICAgICAgICAgIGNoYXIq IGNvbnN0KiBlbnYsCiAJCSAgICAgIGludCBpbiwgaW50IG91dCwgaW50IGVy cmRlcywKQEAgLTg0MSwxMCArODcyLDEwIEBAIHBleF93aW4zMl9leGVjX2No aWxkIChzdHJ1Y3QgcGV4X29iaiAqb2JqIEFUVFJJQlVURV9VTlVTRUQsIGlu dCBmbGFncywKICAgc2kuaFN0ZEVycm9yID0gc3RkZXJyX2hhbmRsZTsKIAog ICAvKiBDcmVhdGUgdGhlIGNoaWxkIHByb2Nlc3MuICAqLyAgCi0gIHBpZCA9 IHdpbjMyX3NwYXduIChleGVjdXRhYmxlLCAoZmxhZ3MgJiBQRVhfU0VBUkNI KSAhPSAwLAorICBwaWQgPSB3aW4zMl9zcGF3biAob2JqLCBleGVjdXRhYmxl LCAoZmxhZ3MgJiBQRVhfU0VBUkNIKSAhPSAwLAogCQkgICAgIGFyZ3YsIGVu diwgZHdDcmVhdGlvbkZsYWdzLCAmc2ksICZwaSk7CiAgIGlmIChwaWQgPT0g KHBpZF90KSAtMSkKLSAgICBwaWQgPSBzcGF3bl9zY3JpcHQgKGV4ZWN1dGFi bGUsIGFyZ3YsIGVudiwgZHdDcmVhdGlvbkZsYWdzLAorICAgIHBpZCA9IHNw YXduX3NjcmlwdCAob2JqLCBleGVjdXRhYmxlLCBhcmd2LCBlbnYsIGR3Q3Jl YXRpb25GbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICZzaSwgJnBp KTsKICAgaWYgKHBpZCA9PSAocGlkX3QpIC0xKQogICAgIHsKLS0gCjIuMzAu MgoK --00000000000084ce7b05fc4834ba--