[PATCH] Windows jobserver updates for GNU make 4.2.1

Troy Runkel <[email protected]> Tue, 1 Nov 2016 19:16:33 +0000
Newsgroups gmane.comp.gnu.make.windows
Message-ID <DM2PR05MB430B0FEFC5C4585B9CF106CE2A10@DM2PR05MB430.namprd05.prod.outlook.com>
--_004_DM2PR05MB430B0FEFC5C4585B9CF106CE2A10DM2PR05MB430namprd_
Content-Type: multipart/alternative;
	boundary="_000_DM2PR05MB430B0FEFC5C4585B9CF106CE2A10DM2PR05MB430namprd_"

--_000_DM2PR05MB430B0FEFC5C4585B9CF106CE2A10DM2PR05MB430namprd_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

This patch expands the maximum number of simultaneous jobs on Windows from =
63 (limit dictated by Windows MAXIMUM_WAIT_OBJECTS) to 4095.

It also fixes a situation where GNU make on Windows could deadlock and/or s=
uffer memory corruption issues if -j or -j63 was used.  The problem was due=
 to the way that $(shell ...) commands are handled.

--Troy Runkel


--_000_DM2PR05MB430B0FEFC5C4585B9CF106CE2A10DM2PR05MB430namprd_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">This patch expands the maximum number of simultaneou=
s jobs on Windows from 63 (limit dictated by Windows MAXIMUM_WAIT_OBJECTS) =
to 4095.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">It also fixes a situation where GNU make on Windows =
could deadlock and/or suffer memory corruption issues if &#8211;j or &#8211=
;j63 was used.&nbsp; The problem was due to the way that $(shell &#8230;) c=
ommands are handled.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">--Troy Runkel<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_DM2PR05MB430B0FEFC5C4585B9CF106CE2A10DM2PR05MB430namprd_--

--_004_DM2PR05MB430B0FEFC5C4585B9CF106CE2A10DM2PR05MB430namprd_
Content-Type: application/octet-stream; name="windows_jobserver_update.diff"
Content-Description: windows_jobserver_update.diff
Content-Disposition: attachment; filename="windows_jobserver_update.diff";
	size=10962; creation-date="Tue, 01 Nov 2016 19:15:52 GMT";
	modification-date="Wed, 26 Oct 2016 19:01:58 GMT"
Content-Transfer-Encoding: base64

ZGlmZiAtTmF1ciBtYWtlLTQuMi4xLW9yaWcvQ2hhbmdlTG9nIG1ha2UtNC4yLjEvQ2hhbmdlTG9n
Ci0tLSBtYWtlLTQuMi4xLW9yaWcvQ2hhbmdlTG9nCTIwMTYtMDYtMTAgMTk6MDM6NTQuMDAwMDAw
MDAwIC0wNDAwCisrKyBtYWtlLTQuMi4xL0NoYW5nZUxvZwkyMDE2LTEwLTI2IDE0OjEyOjExLjc0
Njk4MTU3OSAtMDQwMApAQCAtMSwzICsxLDIzIEBACisyMDE2LTA5LTIxICBNYXJjIFVsbG1hbiA8
bWFyY0BtYXRod29ya3MuY29tPgorCisJKiBqb2IuYyAoc3RhcnRfd2FpdGluZ19qb2IpOiBBYnN0
cmFjdGVkIG91dCBNQVhJTVVNX1dBSVRfT0JKRUNUUy4KKwkobG9hZF90b29faGlnaCk6IEFic3Ry
YWN0ZWQgb3V0IE1BWElNVU1fV0FJVF9PQkpFQ1RTLgorCSogdzMyL3czMm9zLmMgKGpvYnNlcnZl
cl9zZXR1cCk6IEFic3RyYWN0ZWQgb3V0IE1BWElNVU1fV0FJVF9PQkpFQ1RTLgorCShqb2JzZXJ2
ZXJfYWNxdWlyZSk6IEFic3RyYWN0ZWQgb3V0IE1BWElNVU1fV0FJVF9PQkpFQ1RTLgorCSogdzMy
L2luY2x1ZGUvc3ViX3Byb2MuaDogQWRkZWQvcmVtb3ZlZCBFWFRFUk5fREVDTCBlbnRyaWVzLiAK
KwkqIHczMi9zdWJwcm9jL3N1Yl9wcm9jLmM6ICNkZWZpbmUgR01BS0VfTUFYSU1VTV9XQUlUX09C
SkVDVFMKKwkocHJvY2Vzc193YWl0X2Zvcl9tdWx0aXBsZV9vYmplY3RzKTogRHJvcC1pbiByZXBs
YWNlbWVudCBmb3IgV2luZG93cworCUFQSSBXYWl0Rm9yTXVsdGlwbGVPamVjdHMuCisJKHByb2Nl
c3Nfd2FpdF9mb3JfYW55X3ByaXZhdGUpOiBSZXBsYWNlZCBNQVhJTVVNX1dBSVRfT0JKRUNUUyB3
aXRoCisJR01BS0VfTUFYSU1VTV9XQUlUX09CSkVDVFMuCisJKHByb2Nlc3NfdGFibGVfZnVsbCk6
IFJlcGxhY2VtZW50IGZvciBwcm9jZXNzX3VzZWRfc2xvdHMuCisJKHByb2Nlc3NfdXNlZF9zbG90
cyk6IFJlbW92ZWQgYXMgbm8gbG9uZ2VyIG5lZWRlZC4KKwkocHJvY2Vzc190YWJsZV91c2FibGVf
c2l6ZSk6IFJldHVybnMgbWF4aW11bSB1c2FibGUgc2l6ZSBvZiBwcm9jZXNzCisJdGFibGUuCisJ
KHByb2Nlc3NfdGFibGVfYWN0dWFsX3NpemUpOiBSZXR1cm5zIGFjdHVhbCBzaXplIG9mIHByb2Nl
c3MgdGFibGUuCisJKHByb2Nlc3NfcmVnaXN0ZXIpOiBBZGRlZCBhc3NlcnRpb24uCisJKHByb2Nl
c3NfZWFzeSk6IEFic3RyYWN0ZWQgb3V0IE1BWElNVU1fV0FJVF9PQkpFQ1RTLgorCiAyMDE2LTA2
LTEwICBQYXVsIFNtaXRoICA8cHNtaXRoQGdudS5vcmc+CiAKIAlHTlUgTWFrZSByZWxlYXNlIDQu
Mi4xLgpkaWZmIC1OYXVyIG1ha2UtNC4yLjEtb3JpZy9qb2IuYyBtYWtlLTQuMi4xL2pvYi5jCi0t
LSBtYWtlLTQuMi4xLW9yaWcvam9iLmMJMjAxNi0wNS0yMSAxNjoyMjozMi4wMDAwMDAwMDAgLTA0
MDAKKysrIG1ha2UtNC4yLjEvam9iLmMJMjAxNi0xMC0yNiAxNDoxMjoxMS45NzAzMjQ0NjYgLTA0
MDAKQEAgLTE1NTksNyArMTU1OSw3IEBACiAgIGlmICghYy0+cmVtb3RlCiAgICAgICAmJiAoKGpv
Yl9zbG90c191c2VkID4gMCAmJiBsb2FkX3Rvb19oaWdoICgpKQogI2lmZGVmIFdJTkRPV1MzMgot
ICAgICAgICAgIHx8IChwcm9jZXNzX3VzZWRfc2xvdHMgKCkgPj0gTUFYSU1VTV9XQUlUX09CSkVD
VFMpCisgICAgICAgICAgfHwgcHJvY2Vzc190YWJsZV9mdWxsKCkKICNlbmRpZgogICAgICAgICAg
ICkpCiAgICAgewpAQCAtMTkzNCw4ICsxOTM0LDggQEAKICAgdGltZV90IG5vdzsKIAogI2lmZGVm
IFdJTkRPV1MzMgotICAvKiBzdWJfcHJvYy5jIGNhbm5vdCB3YWl0IGZvciBtb3JlIHRoYW4gTUFY
SU1VTV9XQUlUX09CSkVDVFMgY2hpbGRyZW4gKi8KLSAgaWYgKHByb2Nlc3NfdXNlZF9zbG90cyAo
KSA+PSBNQVhJTVVNX1dBSVRfT0JKRUNUUykKKyAgLyogc3ViX3Byb2MuYyBpcyBsaW1pdGVkIGlu
IHRoZSBudW1iZXIgb2Ygb2JqZWN0cyBpdCBjYW4gd2FpdCBmb3IuICovCisgIGlmIChwcm9jZXNz
X3RhYmxlX2Z1bGwoKSkKICAgICByZXR1cm4gMTsKICNlbmRpZgogCmRpZmYgLU5hdXIgbWFrZS00
LjIuMS1vcmlnL3czMi9pbmNsdWRlL3N1Yl9wcm9jLmggbWFrZS00LjIuMS93MzIvaW5jbHVkZS9z
dWJfcHJvYy5oCi0tLSBtYWtlLTQuMi4xLW9yaWcvdzMyL2luY2x1ZGUvc3ViX3Byb2MuaAkyMDE2
LTAzLTA4IDIzOjM5OjU1LjAwMDAwMDAwMCAtMDUwMAorKysgbWFrZS00LjIuMS93MzIvaW5jbHVk
ZS9zdWJfcHJvYy5oCTIwMTYtMTAtMjYgMTQ6MTI6MTIuNDU5MDQxMzE1IC0wNDAwCkBAIC00NCw4
ICs0NCwxMSBAQAogRVhURVJOX0RFQ0woSEFORExFIHByb2Nlc3NfZWFzeSwgKGNoYXIqKiBhcmd2
LCBjaGFyKiogZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvdXRm
ZCwgaW50IGVycmZkKSk7CiBFWFRFUk5fREVDTChCT09MIHByb2Nlc3Nfa2lsbCwgKEhBTkRMRSBw
cm9jLCBpbnQgc2lnbmFsKSk7Ci1FWFRFUk5fREVDTChpbnQgcHJvY2Vzc191c2VkX3Nsb3RzLCAo
Vk9JRF9ERUNMKSk7CitFWFRFUk5fREVDTChCT09MIHByb2Nlc3NfdGFibGVfZnVsbCwgKFZPSURf
REVDTCkpOworRVhURVJOX0RFQ0woaW50IHByb2Nlc3NfdGFibGVfdXNhYmxlX3NpemUsIChWT0lE
X0RFQ0wpKTsKK0VYVEVSTl9ERUNMKGludCBwcm9jZXNzX3RhYmxlX2FjdHVhbF9zaXplLCAoVk9J
RF9ERUNMKSk7CiBFWFRFUk5fREVDTChEV09SRCBwcm9jZXNzX3NldF9oYW5kbGVzLCAoSEFORExF
ICpoYW5kbGVzKSk7CitFWFRFUk5fREVDTChEV09SRCBwcm9jZXNzX3dhaXRfZm9yX211bHRpcGxl
X29iamVjdHMsIChEV09SRCwgY29uc3QgSEFORExFKiwgQk9PTCwgRFdPUkQpKTsKIAogLyogc3Vw
cG9ydCByb3V0aW5lcyAqLwogRVhURVJOX0RFQ0wobG9uZyBwcm9jZXNzX2Vycm5vLCAoSEFORExF
IHByb2MpKTsKZGlmZiAtTmF1ciBtYWtlLTQuMi4xLW9yaWcvdzMyL3N1YnByb2Mvc3ViX3Byb2Mu
YyBtYWtlLTQuMi4xL3czMi9zdWJwcm9jL3N1Yl9wcm9jLmMKLS0tIG1ha2UtNC4yLjEtb3JpZy93
MzIvc3VicHJvYy9zdWJfcHJvYy5jCTIwMTYtMDUtMjEgMTY6MjA6NTcuMDAwMDAwMDAwIC0wNDAw
CisrKyBtYWtlLTQuMi4xL3czMi9zdWJwcm9jL3N1Yl9wcm9jLmMJMjAxNi0xMC0yNiAxNDoxMjox
Mi40NzAyNTA5MjggLTA0MDAKQEAgLTE0LDYgKzE0LDcgQEAKIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGgK
IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv
Pi4gICovCiAKKyNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDxjb25maWcuaD4KICNpbmNs
dWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMzUsNiArMzYsMTMgQEAKICNp
bmNsdWRlICJwcm9jLmgiCiAjaW5jbHVkZSAidzMyZXJyLmgiCiAjaW5jbHVkZSAiZGVidWcuaCIK
KyNpbmNsdWRlICJvcy5oIgorCisjZGVmaW5lIEdNQUtFX01BWElNVU1fV0FJVF9PQkpFQ1RTIChN
QVhJTVVNX1dBSVRfT0JKRUNUUyAqIE1BWElNVU1fV0FJVF9PQkpFQ1RTKQorCisvKiBXZSBuZWVk
IHRvIG1vdmUgdGhlc2Ugc3BlY2lhbC1jYXNlIHJldHVybiBjb2RlcyBvdXQtb2YtYmFuZCAqLwor
I2RlZmluZSBHTUFLRV9XQUlUX1RJTUVPVVQgICAgICAweEZGRkYwMTAyTAorI2RlZmluZSBHTUFL
RV9XQUlUX0FCQU5ET05FRF8wICAweDAwMDgwMDAwTAogCiBzdGF0aWMgY2hhciAqbWFrZV9jb21t
YW5kX2xpbmUoY2hhciAqc2hlbGxfbmFtZSwgY2hhciAqZXhlY19wYXRoLCBjaGFyICoqYXJndik7
CiAKQEAgLTU3LDEwICs2NSw3MiBAQAogfSBzdWJfcHJvY2VzczsKIAogLyoga2VlcCB0cmFjayBv
ZiBjaGlsZHJlbiBzbyB3ZSBjYW4gaW1wbGVtZW50IGEgd2FpdHBpZC1saWtlIHJvdXRpbmUgKi8K
LXN0YXRpYyBzdWJfcHJvY2VzcyAqcHJvY19hcnJheVtNQVhJTVVNX1dBSVRfT0JKRUNUU107Citz
dGF0aWMgc3ViX3Byb2Nlc3MgKnByb2NfYXJyYXlbR01BS0VfTUFYSU1VTV9XQUlUX09CSkVDVFNd
Owogc3RhdGljIGludCBwcm9jX2luZGV4ID0gMDsKIHN0YXRpYyBpbnQgZmFrZV9leGl0c19wZW5k
aW5nID0gMDsKIAorLyogCisgKiBBZGRyZXNzIHRoZSBzY2FsYWJpbGl0eSBsaW1pdCBpbnRyaXNp
YyB0byBXYWl0Rm9yTXVsdGlwbGVPamVjdHMgYnkKKyAqIGNhbGxpbmcgV2FpdEZvck11bHRpcGxl
T2JqZWN0cyBvbiA2NCBlbGVtZW50IGNodW5rcyBvZiB0aGUgaW5wdXQKKyAqIGFycmF5IHdpdGgg
MCB0aW1lb3V0LiAgRXhpdCB3aXRoIGFuIGFwcHJvcHJpYXRlbHkgY29uZGl0aW9uZWQgcmVzdWx0
CisgKiBvciByZXBlYXQgYWdhaW4gZXZlcnkgMTAgbXMgaWYgbm8gaGFuZGxlIGhhcyBzaWduYWxl
ZCBhbmQgdGhlCisgKiByZXF1ZXN0ZWQgdGltZW91dCB3YXMgbm90IHplcm8uCisgKi8KK0RXT1JE
IHByb2Nlc3Nfd2FpdF9mb3JfbXVsdGlwbGVfb2JqZWN0cygKKyAgRFdPUkQgbkNvdW50LAorICBj
b25zdCBIQU5ETEUgKmxwSGFuZGxlcywKKyAgQk9PTCBiV2FpdEFsbCwKKyAgRFdPUkQgZHdNaWxs
aXNlY29uZHMKKykKK3sKKyAgYXNzZXJ0KG5Db3VudCA8PSBHTUFLRV9NQVhJTVVNX1dBSVRfT0JK
RUNUUyk7CisKKyAgaWYgKG5Db3VudCA8PSBNQVhJTVVNX1dBSVRfT0JKRUNUUykgeworICAgIERX
T1JEIHJldFZhbCA9ICBXYWl0Rm9yTXVsdGlwbGVPYmplY3RzKG5Db3VudCwgbHBIYW5kbGVzLCBi
V2FpdEFsbCwgZHdNaWxsaXNlY29uZHMpOworICAgIHJldHVybiAocmV0VmFsID09IFdBSVRfVElN
RU9VVCkgPyBHTUFLRV9XQUlUX1RJTUVPVVQgOiByZXRWYWw7CisgIH0gZWxzZSB7CisgICAgZm9y
ICg7OykgeworICAgICAgRFdPUkQgb2JqZWN0Q291bnQgPSBuQ291bnQ7CisgICAgICBpbnQgYmxv
Y2tDb3VudCAgPSAwOworICAgICAgRFdPUkQgcmV0VmFsOworCisgICAgICBhc3NlcnQoYldhaXRB
bGwgPT0gRkFMU0UpOyAvKiBUaGlzIGxvZ2ljIG9ubHkgd29ya3MgZm9yIHRoaXMgdXNlIGNhc2Ug
Ki8KKyAgICAgIGFzc2VydChkd01pbGxpc2Vjb25kcyA9PSAwIHx8IGR3TWlsbGlzZWNvbmRzID09
IElORklOSVRFKTsgLyogTm8gc3VwcG9ydCBmb3IgdGltZW91dHMgKi8KKworICAgICAgZm9yICg7
IG9iamVjdENvdW50ID4gMDsgYmxvY2tDb3VudCsrKSB7CisJRFdPUkQgbiA9IG9iamVjdENvdW50
IDw9IE1BWElNVU1fV0FJVF9PQkpFQ1RTID8gb2JqZWN0Q291bnQgOiBNQVhJTVVNX1dBSVRfT0JK
RUNUUzsKKwlvYmplY3RDb3VudCAtPSBuOworCXJldFZhbCA9IFdhaXRGb3JNdWx0aXBsZU9iamVj
dHMobiwgJmxwSGFuZGxlc1tibG9ja0NvdW50ICogTUFYSU1VTV9XQUlUX09CSkVDVFNdLAorCQkJ
CQkgICAgRkFMU0UsIDApOworCXN3aXRjaCAocmV0VmFsKSB7CisJICBjYXNlIFdBSVRfVElNRU9V
VDoKKwkgICAgcmV0VmFsID0gR01BS0VfV0FJVF9USU1FT1VUOworCSAgICBjb250aW51ZTsKKwkg
ICAgYnJlYWs7CisJICBjYXNlIFdBSVRfRkFJTEVEOgorCSAgICBmcHJpbnRmKHN0ZGVyciwiV2Fp
dEZvck11bHRpcGxlT2piZWN0cyBmYWlsZWQgd2FpdGluZyB3aXRoIGVycm9yICVkXG4iLCBHZXRM
YXN0RXJyb3IoKSk7CisJICAgIGJyZWFrOworCSAgZGVmYXVsdDoKKwkgICAgaWYgKHJldFZhbCA+
PSBXQUlUX0FCQU5ET05FRF8wKSB7CisJICAgICAgYXNzZXJ0KHJldFZhbCA8IFdBSVRfQUJBTkRP
TkVEXzAgKyBNQVhJTVVNX1dBSVRfT0JKRUNUUyk7CisJICAgICAgcmV0VmFsICs9IGJsb2NrQ291
bnQgKiBNQVhJTVVNX1dBSVRfT0JKRUNUUyAtIFdBSVRfQUJBTkRPTkVEXzAgKyBHTUFLRV9XQUlU
X0FCQU5ET05FRF8wOworCSAgICB9IGVsc2UgeworCSAgICAgIGFzc2VydChyZXRWYWwgPCBXQUlU
X09CSkVDVF8wICsgTUFYSU1VTV9XQUlUX09CSkVDVFMpOworCSAgICAgIHJldFZhbCArPSBibG9j
a0NvdW50ICogTUFYSU1VTV9XQUlUX09CSkVDVFM7CisJICAgIH0KKwkgICAgYnJlYWs7CisJfQor
CisJcmV0dXJuIHJldFZhbDsKKworICAgICAgfQorCisgICAgICBpZiAoZHdNaWxsaXNlY29uZHMg
PT0gMCkgcmV0dXJuIHJldFZhbDsKKworICAgICAgU2xlZXAoMTApOyAgLyogU2xlZXAgZm9yIDEw
IG1zICovCisgICAgfQorICB9Cit9CiAKIC8qCiAgKiBGaWxsIGEgSEFORExFIGxpc3Qgd2l0aCBo
YW5kbGVzIHRvIHdhaXQgZm9yLgpAQCAtMTE0LDcgKzE4NCw3IEBACiBzdGF0aWMgc3ViX3Byb2Nl
c3MgKgogcHJvY2Vzc193YWl0X2Zvcl9hbnlfcHJpdmF0ZShpbnQgYmxvY2ssIERXT1JEKiBwZHdX
YWl0U3RhdHVzKQogewotICAgICAgICBIQU5ETEUgaGFuZGxlc1tNQVhJTVVNX1dBSVRfT0JKRUNU
U107CisgICAgICAgIEhBTkRMRSBoYW5kbGVzW0dNQUtFX01BWElNVU1fV0FJVF9PQkpFQ1RTXTsK
ICAgICAgICAgRFdPUkQgcmV0dmFsLCB3aGljaDsKICAgICAgICAgaW50IGk7CiAKQEAgLTEzMSw3
ICsyMDEsNyBAQAogCiAgICAgICAgIC8qIHdhaXQgZm9yIHNvbWVvbmUgdG8gZXhpdCAqLwogICAg
ICAgICBpZiAoIWZha2VfZXhpdHNfcGVuZGluZykgewotICAgICAgICAgICAgICAgIHJldHZhbCA9
IFdhaXRGb3JNdWx0aXBsZU9iamVjdHMocHJvY19pbmRleCwgaGFuZGxlcywgRkFMU0UsIChibG9j
ayA/IElORklOSVRFIDogMCkpOworICAgICAgICAgICAgICAgIHJldHZhbCA9IHByb2Nlc3Nfd2Fp
dF9mb3JfbXVsdGlwbGVfb2JqZWN0cyhwcm9jX2luZGV4LCBoYW5kbGVzLCBGQUxTRSwgKGJsb2Nr
ID8gSU5GSU5JVEUgOiAwKSk7CiAgICAgICAgICAgICAgICAgd2hpY2ggPSByZXR2YWwgLSBXQUlU
X09CSkVDVF8wOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGZha2VfZXhpdHNf
cGVuZGluZy0tOwpAQCAtMTQxLDEwICsyMTEsMTAgQEAKIAogICAgICAgICAvKiBJZiB0aGUgcG9p
bnRlciBpcyBub3QgTlVMTCwgc2V0IHRoZSB3YWl0IHN0YXR1cyByZXN1bHQgdmFyaWFibGUuICov
CiAgICAgICAgIGlmIChwZHdXYWl0U3RhdHVzKQotICAgICAgICAgICAgKnBkd1dhaXRTdGF0dXMg
PSByZXR2YWw7CisgICAgICAgICAgICAgICAgKnBkd1dhaXRTdGF0dXMgPSAocmV0dmFsID09IEdN
QUtFX1dBSVRfVElNRU9VVCkgPyBXQUlUX1RJTUVPVVQgOiByZXR2YWw7CiAKICAgICAgICAgLyog
cmV0dXJuIHBvaW50ZXIgdG8gcHJvY2VzcyAqLwotICAgICAgICBpZiAoKHJldHZhbCA9PSBXQUlU
X1RJTUVPVVQpIHx8IChyZXR2YWwgPT0gV0FJVF9GQUlMRUQpKSB7CisgICAgICAgIGlmICgocmV0
dmFsID09IEdNQUtFX1dBSVRfVElNRU9VVCkgfHwgKHJldHZhbCA9PSBXQUlUX0ZBSUxFRCkpIHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsK
QEAgLTE2NiwyNSArMjM2LDQ3IEBACiB9CiAKIC8qCi0gKiBVc2UgdGhpcyBmdW5jdGlvbiB0byBy
ZWdpc3RlciBwcm9jZXNzZXMgeW91IHdpc2ggdG8gd2FpdCBmb3IgYnkKLSAqIGNhbGxpbmcgcHJv
Y2Vzc19maWxlX2lvKE5VTEwpIG9yIHByb2Nlc3Nfd2FpdF9hbnkoKS4gVGhpcyBtdXN0IGJlIGRv
bmUKLSAqIGJlY2F1c2UgaXQgaXMgcG9zc2libGUgZm9yIGNhbGxlcnMgb2YgdGhpcyBsaWJyYXJ5
IHRvIHJldXNlIHRoZSBzYW1lCi0gKiBoYW5kbGUgZm9yIG11bHRpcGxlIHByb2Nlc3NlcyBsYXVu
Y2hlcyA6LSgKKyAqIFJldHVybnMgdHJ1ZSB3aGVuIHdlIGhhdmUgbm8gbW9yZSBhdmFpbGFibGUg
c2xvdHMgaW4gb3VyIHByb2Nlc3MgdGFibGUuCiAgKi8KLXZvaWQKLXByb2Nlc3NfcmVnaXN0ZXIo
SEFORExFIHByb2MpCitCT09MCitwcm9jZXNzX3RhYmxlX2Z1bGwoKQogewotICAgICAgICBpZiAo
cHJvY19pbmRleCA8IE1BWElNVU1fV0FJVF9PQkpFQ1RTKQotICAgICAgICAgICAgICAgIHByb2Nf
YXJyYXlbcHJvY19pbmRleCsrXSA9IChzdWJfcHJvY2VzcyAqKSBwcm9jOworICBleHRlcm4gaW50
IHNoZWxsX2Z1bmN0aW9uX3BpZDsKKworICAvKiBSZXNlcnZlIHNsb3RzIGZvciBqb2JzZXJ2ZXJf
c2VtYXBob3JlIGlmIHdlIGhhdmUgb25lIGFuZCB0aGUgc2hlbGwgZnVuY3Rpb24gaWYgbm90IGFj
dGl2ZSAqLworICByZXR1cm4ocHJvY19pbmRleCA+PSBHTUFLRV9NQVhJTVVNX1dBSVRfT0JKRUNU
UyAtIGpvYnNlcnZlcl9lbmFibGVkKCkgLSAoc2hlbGxfZnVuY3Rpb25fcGlkID09IDApKTsKIH0K
IAogLyoKLSAqIFJldHVybiB0aGUgbnVtYmVyIG9mIHByb2Nlc3NlcyB0aGF0IHdlIGFyZSBzdGls
bCB3YWl0aW5nIGZvci4KKyAqIFJldHVybnMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGpvYiBzbG90
cyB3ZSBjYW4gc3VwcG9ydCB3aGVuIHVzaW5nIHRoZSBqb2JzZXJ2ZXIuCiAgKi8KIGludAotcHJv
Y2Vzc191c2VkX3Nsb3RzKHZvaWQpCitwcm9jZXNzX3RhYmxlX3VzYWJsZV9zaXplKCkKK3sKKyAg
LyogUmVzZXJ2ZSBzbG90cyBmb3Igam9ic2VydmVyX3NlbWFwaG9yZSBhbmQgc2hlbGwgZnVuY3Rp
b24gKi8KKyAgcmV0dXJuKEdNQUtFX01BWElNVU1fV0FJVF9PQkpFQ1RTIC0gMik7Cit9CisKKy8q
CisgKiBSZXR1cm5zIHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgcHJvY2VzcyB0YWJsZS4KKyAqLwor
aW50Citwcm9jZXNzX3RhYmxlX2FjdHVhbF9zaXplKCkKK3sKKyAgcmV0dXJuKEdNQUtFX01BWElN
VU1fV0FJVF9PQkpFQ1RTKTsKK30KKworLyoKKyAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHJlZ2lz
dGVyIHByb2Nlc3NlcyB5b3Ugd2lzaCB0byB3YWl0IGZvciBieQorICogY2FsbGluZyBwcm9jZXNz
X2ZpbGVfaW8oTlVMTCkgb3IgcHJvY2Vzc193YWl0X2FueSgpLiBUaGlzIG11c3QgYmUgZG9uZQor
ICogYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSBmb3IgY2FsbGVycyBvZiB0aGlzIGxpYnJhcnkgdG8g
cmV1c2UgdGhlIHNhbWUKKyAqIGhhbmRsZSBmb3IgbXVsdGlwbGUgcHJvY2Vzc2VzIGxhdW5jaGVz
IDotKAorICovCit2b2lkCitwcm9jZXNzX3JlZ2lzdGVyKEhBTkRMRSBwcm9jKQogewotICAgICAg
ICByZXR1cm4gcHJvY19pbmRleDsKKyAgYXNzZXJ0KHByb2NfaW5kZXggPCBHTUFLRV9NQVhJTVVN
X1dBSVRfT0JKRUNUUyk7CisgIHByb2NfYXJyYXlbcHJvY19pbmRleCsrXSA9IChzdWJfcHJvY2Vz
cyAqKSBwcm9jOwogfQogCiAvKgpAQCAtMTM2Miw3ICsxNDU0LDcgQEAKICAgSEFORExFIGhQcm9j
ZXNzLCB0bXBJbiwgdG1wT3V0LCB0bXBFcnI7CiAgIERXT1JEIGU7CiAKLSAgaWYgKHByb2NfaW5k
ZXggPj0gTUFYSU1VTV9XQUlUX09CSkVDVFMpIHsKKyAgaWYgKHByb2Nlc3NfdGFibGVfZnVsbCgp
KSB7CiAgICAgICAgIERCIChEQl9KT0JTLCAoInByb2Nlc3NfZWFzeTogQWxsIHByb2Nlc3Mgc2xv
dHMgdXNlZCB1cFxuIikpOwogICAgICAgICByZXR1cm4gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CiAg
IH0KZGlmZiAtTmF1ciBtYWtlLTQuMi4xLW9yaWcvdzMyL3czMm9zLmMgbWFrZS00LjIuMS93MzIv
dzMyb3MuYwotLS0gbWFrZS00LjIuMS1vcmlnL3czMi93MzJvcy5jCTIwMTYtMDQtMDQgMDE6Mzg6
MzcuMDAwMDAwMDAwIC0wNDAwCisrKyBtYWtlLTQuMi4xL3czMi93MzJvcy5jCTIwMTYtMTAtMjYg
MTQ6MTI6MTIuNDc0MTE5Njk0IC0wNDAwCkBAIC0zNiwxMyArMzYsMTEgQEAKIHVuc2lnbmVkIGlu
dAogam9ic2VydmVyX3NldHVwIChpbnQgc2xvdHMpCiB7Ci0gIC8qIHN1Yl9wcm9jLmMgY2Fubm90
IHdhaXQgZm9yIG1vcmUgdGhhbiBNQVhJTVVNX1dBSVRfT0JKRUNUUyBvYmplY3RzCi0gICAqIGFu
ZCBvbmUgb2YgdGhlbSBpcyB0aGUgam9iLXNlcnZlciBzZW1hcGhvcmUgb2JqZWN0LiAgTGltaXQg
dGhlCi0gICAqIG51bWJlciBvZiBhdmFpbGFibGUgam9iIHNsb3RzIHRvIChNQVhJTVVNX1dBSVRf
T0JKRUNUUyAtIDEpLiAqLworICAvKiBzdWJfcHJvYy5jIGlzIGxpbWl0ZWQgaW4gdGhlIG51bWJl
ciBvZiBvYmplY3RzIGl0IGNhbiB3YWl0IGZvci4gKi8KIAotICBpZiAoc2xvdHMgPj0gTUFYSU1V
TV9XQUlUX09CSkVDVFMpCisgIGlmIChzbG90cyA+IHByb2Nlc3NfdGFibGVfdXNhYmxlX3NpemUo
KSkKICAgICB7Ci0gICAgICBzbG90cyA9IE1BWElNVU1fV0FJVF9PQkpFQ1RTIC0gMTsKKyAgICAg
IHNsb3RzID0gcHJvY2Vzc190YWJsZV91c2FibGVfc2l6ZSgpOwogICAgICAgREIgKERCX0pPQlMs
IChfKCJKb2JzZXJ2ZXIgc2xvdHMgbGltaXRlZCB0byAlZFxuIiksIHNsb3RzKSk7CiAgICAgfQog
CkBAIC0xNjgsMjIgKzE2NiwyNiBAQAogdW5zaWduZWQgaW50CiBqb2JzZXJ2ZXJfYWNxdWlyZSAo
aW50IHRpbWVvdXQpCiB7Ci0gICAgSEFORExFIGhhbmRsZXNbTUFYSU1VTV9XQUlUX09CSkVDVFNd
OworICAgIEhBTkRMRSAqaGFuZGxlczsKICAgICBEV09SRCBkd0hhbmRsZUNvdW50OwogICAgIERX
T1JEIGR3RXZlbnQ7CiAKKyAgICBoYW5kbGVzID0geG1hbGxvYyhwcm9jZXNzX3RhYmxlX2FjdHVh
bF9zaXplKCkgKiBzaXplb2YoSEFORExFKSk7CisKICAgICAvKiBBZGQgam9ic2VydmVyIHNlbWFw
aG9yZSB0byBmaXJzdCBzbG90LiAqLwogICAgIGhhbmRsZXNbMF0gPSBqb2JzZXJ2ZXJfc2VtYXBo
b3JlOwogCiAgICAgLyogQnVpbGQgYXJyYXkgb2YgaGFuZGxlcyB0byB3YWl0IGZvci4gICovCiAg
ICAgZHdIYW5kbGVDb3VudCA9IDEgKyBwcm9jZXNzX3NldF9oYW5kbGVzICgmaGFuZGxlc1sxXSk7
CiAKLSAgICBkd0V2ZW50ID0gV2FpdEZvck11bHRpcGxlT2JqZWN0cyAoCisgICAgZHdFdmVudCA9
IHByb2Nlc3Nfd2FpdF9mb3JfbXVsdGlwbGVfb2JqZWN0cyAoCiAgICAgICAgIGR3SGFuZGxlQ291
bnQsICAvKiBudW1iZXIgb2Ygb2JqZWN0cyBpbiBhcnJheSAqLwogICAgICAgICBoYW5kbGVzLCAg
ICAgICAgLyogYXJyYXkgb2Ygb2JqZWN0cyAqLwogICAgICAgICBGQUxTRSwgICAgICAgICAgLyog
d2FpdCBmb3IgYW55IG9iamVjdCAqLwogICAgICAgICBJTkZJTklURSk7ICAgICAgLyogd2FpdCB1
bnRpbCBvYmplY3QgaXMgc2lnbmFsbGVkICovCiAKKyAgICBmcmVlKGhhbmRsZXMpOworCiAgICAg
aWYgKGR3RXZlbnQgPT0gV0FJVF9GQUlMRUQpCiAgICAgICB7CiAgICAgICAgIERXT1JEIGVyciA9
IEdldExhc3RFcnJvciAoKTsK

--_004_DM2PR05MB430B0FEFC5C4585B9CF106CE2A10DM2PR05MB430namprd_
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Make-w32 mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/make-w32

--_004_DM2PR05MB430B0FEFC5C4585B9CF106CE2A10DM2PR05MB430namprd_--