delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-apps/2001/05/17/00:34:27

Mailing-List: contact cygwin-apps-help AT sourceware DOT cygnus DOT com; run by ezmlm
Sender: cygwin-apps-owner AT sourceware DOT cygnus DOT com
List-Subscribe: <mailto:cygwin-apps-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-apps/>
List-Post: <mailto:cygwin-apps AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-apps-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/lists.html#faqs>
Delivered-To: mailing list cygwin-apps AT sources DOT redhat DOT com
Message-ID: <20010517043410.19503.qmail@web6403.mail.yahoo.com>
Date: Thu, 17 May 2001 14:34:10 +1000 (EST)
From: =?iso-8859-1?q?Danny=20Smith?= <danny_r_smith_2001 AT yahoo DOT co DOT nz>
Subject: gcc-2.95.3-4 to mingw
To: cygwin-apps <cygwin-apps AT cygwin DOT com>
MIME-Version: 1.0

--0-440941406-990074050=:17212
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Hello all,

Attached diff file are my changes to cygwin's gcc-2.95.3-4 src to get
it to build under mingw.  I have also built from FSF gcc-2.95.3
(release) source with similar set of patches (on top of Mumits Jan 2000
diffs), but I thought keeping in sync with cygwin version would have
advantages as far as maintenance and testing.   I have additional gcc
patches that I would like to add to both cygwin and mingw, which is
another reason for me wanting to sync gcc src.

These are the main differences to cygwin version 

libio  _IO_pos_t/_IO_off_t type mismatch:  These were necessitated by
the type mismatches between header files and implementation files.
Refer here:
http://gcc.gnu.org/ml/gcc-patches/2000-09/msg01139.html  
It is only a problem with msvcrt version of mingw because in crtdll
version, _IO_pos_t and _IO_off_t are same basic type. Ditto for cygwin.
  In mingw, the former resolves to long long, the latter long, as per
resp. C runtime types.  

__gthread_getspecific steps on GetLastError: refer here
http://www.geocrawler.com/archives/3/6013/2000/10/0/4465027/

One other little bit, a recurring problem with sys_nerr and
sys_errlist[] and dllimport in libiberty/strerror.c.  This should
probably be sent to libiberty; I haven't included in ChangeLog.

I haven't done much testing of above changes with this particular
build,
but they have not caused any problems since initial testing with 2.95.3
prerelease 1 in Jan (I think) and release in March.  The main
difference
between my prior builds (which I have tested extensively) and this is:

config/i386/cygwin.h:  Recent changes to this get rid of use of builtin
specs to accomodate mno-cygwin-all search dirs are specified in specs
file. Perhaps that could be done for mingw as well, but the way I have
built is to use the default builtin specs as in prior mingw releases. 
I've put a guard in so that cygwin's undefs don't get applied to a
native mingw build.


DIR_SEPARATOR: make '/' the default for mingw, like cygwin.

version.c: insert mingw into the version string.  I tried to use an 
#ifdef __MINGW32__ here to get distinct version string for mingw vs
cygwin but that breaks the sed script in configure.  The 'cygwin-mingw'
bit of the string won't do of course, but is the last of my concerns at
the moment.  


I configured like so:
../gcc-2.95.3/configure  --prefix=/mingw --host=mingw32
--target=mingw32
--disable-nls --enable-threads=win32 --enable-languages=f77,c++

and built like so:
make "CFLAGS=-O2" bootstrap

This build, of course, will provide the mingw-extra bits for
the cygwin -mno-cygwin folk.


Danny





_____________________________________________________________________________
http://messenger.yahoo.com.au - Yahoo! Messenger
- Voice chat, mail alerts, stock quotes and favourite news and lots more!
--0-440941406-990074050=:17212
Content-Type: application/octet-stream; name="gcc-2.95.3-4m.diff"
Content-Transfer-Encoding: base64
Content-Description: gcc-2.95.3-4m.diff
Content-Disposition: attachment; filename="gcc-2.95.3-4m.diff"

Q2hhbmdlTG9nDQoNCgkyMDAxLTA1LTE3ICBEYW5ueSBTbWl0aCAgPGRhbm55
X3Jfc21pdGhfMjAwMUB5YWhvby5jb20ubno+DQoNCgkqIGdjYy9jb25maWcv
aTM4Ni9taW5ndzMyLmggKE5BVElWRV9NSU5HVyk6IERlZmluZSBiZWZvcmUg
aW5jbHVkaW5nDQoJY3lnd2luLmguDQoJKENQUF9QUkVERUZJTkVTKTogVXBk
YXRlIF9fTUlOR1czMl9fIHRvIDAuNS4NCgkoU1RBTkRBUkRfSU5DTFVERV9E
SVIpOiBHZXQgcmlkIG9mIGkzODYtIGluIGRpciBuYW1lLiANCgkoQ1BMVVNQ
TFVTX0NQUF9TUEVDKTogVW5kZWZpbmUuDQoJKiBnY2MvY29uZmlnL2kzODYv
Y3lnd2luLmg6IChOQVRJVkVfTUlOR1cpOiBHdWFyZCB1bmRlZnMgb2YNCglz
cGVjIGRlZmluZXMgd2hlbiBidWlsZGluZyBmb3IgbmF0aXZlIG1pbmd3Lg0K
CSogZ2NjL2NvbmZpZy9pMzg2L3htLW1pbmd3MzIuaCAoRElSX1NFUEFSQVRP
UltfMl0pOiBNYWtlICcvJyBkZWZhdWx0Lg0KCSogZ2NjL2NvbmZpZ3VyZS5p
biAodG0tZmlsZSk6IE1ha2UgbXN2Y3J0IGRlZmF1bHQgZm9yIG1pbmd3Lg0K
CSogZ2NjL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZS4NCgkqIGdjYy9saWJnY2My
LmMgKE1BWFBBVEhMRU4pOiBJZiBub3QgZGVmaW5lZCwgZGVmaW5lIGFzIE1B
WF9QQVRIIGlmDQoJYXZhaWxhYmxlLCBlbHNlIDEwMjQuDQoJKiBnY2MvdmVy
c2lvbi5jOiBBZGQgIi1taW5ndyIgdG8gc3RyaW5nLiANCgkqIGdjYy9ndGhy
LXdpbjMyLmggKF9fZ3RocmVhZF9nZXRzcGVjaWZpYyk6IFNhdmUgYW5kIHJl
c3RvcmUgbGFzdCBlcnJvci4gDQoJKiBsaWJpby9nZW4tcGFyYW1zKFZUQUJM
RV9MQUJFTF9QUkVGSVgpOiBGaXggc2VkIHNjcmlwdCB0byBoYW5kbGUNCgl2
dGFibGVfdGh1bmsgZGVjb3JhdGlvbi4gDQoNCglGaXggbGliaW8gaGVhZGVy
L2ltcGxlbWVudGF0aW9uIHR5cGUgbWlzbWF0Y2hlcy4NCgkyMDAwLTA5LTI5
ICBKLiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4N
Cg0KCSogbGliaW8vZmlsZW9wcy5jIChfSU9fZmlsZV9mb3Blbik6IENoYW5n
ZSBpbXBsZW1lbnRhdGlvbiB0byBtYXRjaA0KCXByb3RvdHlwZSBpbiBsaWJp
b1AuaC4NCgkoX0lPX2ZpbGVfc2Vla29mZik6IExpa2V3aXNlLg0KCShfSU9f
ZmlsZV9zZWVrKTogTGlrZXdpc2UuDQoJKiBsaWJpby9nZW5vcHMuYyAoX0lP
X2RlZmF1bHRfc2Vla3Bvcyk6IExpa2V3aXNlLg0KCShfSU9fZGVmYXVsdF9z
ZWVrb2ZmKTogTGlrZXdpc2UuDQoJKF9JT19kZWZhdWx0X3NlZWspOiBMaWtl
d2lzZS4NCgkqIGxpYmlvL2lvc2Vla29mZi5jIChfSU9fc2Vla29mZik6IExp
a2V3aXNlLg0KCSogbGliaW8vaW9zZWVrcG9zLmMgKF9JT19zZWVrcG9zKTog
TGlrZXdpc2UuDQoJKiBsaWJpby9zdHJvcHMuYyAoX0lPX3N0cl9zZWVrb2Zm
KTogTGlrZXdpc2UuDQoJKiBsaWJpby9saWJpb1AuaDogQWx3YXlzIGNoZWNr
IHRoYXQgX0dfSU9fSU9fRklMRV9WRVJTSU9OIGlzIGRlZmluZWQNCgliZWZv
cmUgdGVzdGluZyB2ZXJzaW9uLg0KDQoNCg0KZGlmZiAtdXJwYiBnY2MtMi45
NS4zLTRcZ2NjXGNvbmZpZ1xpMzg2XGN5Z3dpbi5oIGdjYy0yLjk1LjMtNG1c
Z2NjXGNvbmZpZ1xpMzg2XGN5Z3dpbi5oDQotLS0gZ2NjLTIuOTUuMy00XGdj
Y1xjb25maWdcaTM4NlxjeWd3aW4uaAlUaHUgQXByIDI2IDExOjA0OjI0IDIw
MDENCisrKyBnY2MtMi45NS4zLTRtXGdjY1xjb25maWdcaTM4NlxjeWd3aW4u
aAlXZWQgTWF5IDE2IDE5OjM4OjIwIDIwMDENCkBAIC01OTIsNiArNTkyLDgg
QEAgZXh0ZXJuIHZvaWQgaTM4Nl9wZV9hc21fZmlsZV9lbmQgU1RESU9fUA0K
ICNkZWZpbmUgU0VUX0FTTV9PUCAiXHQuc2V0Ig0KICNlbmRpZg0KIA0KKy8q
ICB0aGVzZSB1bmRlZnMgYnJlYWsgbWluZ3csIHdoaWNoIGN1cnJlbnRseSB1
c2VzIGJ1aWx0LWluIHNwZWNzICovDQorI2lmbmRlZiBOQVRJVkVfTUlOR1cg
IA0KICN1bmRlZiBNRF9TVEFSVEZJTEVfUFJFRklYDQogI2lmIDANCiAjZGVm
aW5lIE1EX1NUQVJURklMRV9QUkVGSVggICAgIENZR1dJTl9MSUINCkBAIC02
MTEsMyArNjEzLDQgQEAgZXh0ZXJuIHZvaWQgaTM4Nl9wZV9hc21fZmlsZV9l
bmQgU1RESU9fUA0KICN1bmRlZiBTVEFOREFSRF9JTkNMVURFX0RJUg0KICNk
ZWZpbmUgU1RBTkRBUkRfSU5DTFVERV9ESVIgMA0KICNlbmRpZg0KKyNlbmRp
ZiAvKiBuZGVmIE5BVElWRV9NSU5HVyAqLw0KT25seSBpbiBnY2MtMi45NS4z
LTRtXGdjY1xjb25maWdcaTM4NjogY3lnd2luLm1rLmgNCmRpZmYgLXVycGIg
Z2NjLTIuOTUuMy00XGdjY1xjb25maWdcaTM4NlxtaW5ndzMyLmggZ2NjLTIu
OTUuMy00bVxnY2NcY29uZmlnXGkzODZcbWluZ3czMi5oDQotLS0gZ2NjLTIu
OTUuMy00XGdjY1xjb25maWdcaTM4NlxtaW5ndzMyLmgJV2VkIEphbiAxOSAx
OToyMDo0MCAyMDAwDQorKysgZ2NjLTIuOTUuMy00bVxnY2NcY29uZmlnXGkz
ODZcbWluZ3czMi5oCVdlZCBNYXkgMTYgMTk6Mzg6MjAgMjAwMQ0KQEAgLTIz
LDcgKzIzLDEwIEBAIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAqLw0K
IA0KIC8qIE1vc3Qgb2YgdGhpcyBpcyB0aGUgc2FtZSBhcyBmb3IgY3lnd2lu
LCBleGNlcHQgZm9yIGNoYW5naW5nIHNvbWUNCiAgICBzcGVjcy4gICovDQot
DQorI2lmbmRlZiBOQVRJVkVfTUlOR1cNCisgLyogdGhpcyBpcyB0byBxdWFy
ZCBhZ2FpbnN0IHNvbWUgdW5kZWZzIG9mIGNvbW1hbmQtbGluZSBkZWZpbmVz
IGJ5IGN5Z3dpbi5oICovDQorI2RlZmluZSBOQVRJVkVfTUlOR1cNCisjZW5k
aWYNCiAjaW5jbHVkZSAiaTM4Ni9jeWd3aW4uaCINCiANCiAvKiBQbGVhc2Ug
a2VlcCBjaGFuZ2VzIHRvIENQUF9QUkVERUZJTkVTIGluIHN5bmMgd2l0aCBp
Mzg2L2NydGRsbC4gVGhlDQpAQCAtMzEsNyArMzQsNyBAQCBCb3N0b24sIE1B
IDAyMTExLTEzMDcsIFVTQS4gKi8NCiAgICBkaXN0aW5ndWlzaCBNU1ZDIGZy
b20gQ1JURExMIHJ1bnRpbWUgaW4gbWluZ3cgaGVhZGVycy4gKi8NCiAjdW5k
ZWYgQ1BQX1BSRURFRklORVMNCiAjZGVmaW5lIENQUF9QUkVERUZJTkVTICIt
RGkzODYgLURfV0lOMzIgLURXSU4zMiAtRF9fV0lOMzJfXyBcDQotICAtRF9f
TUlOR1czMl9fPTAuMiAtRF9fTVNWQ1JUX18gLURXSU5OVCAgLURfWDg2Xz0x
IC1EX19TVERDX189MVwNCisgIC1EX19NSU5HVzMyX189MC41IC1EX19NU1ZD
UlRfXyAtRFdJTk5UICAtRF9YODZfPTEgLURfX1NURENfXz0xXA0KICAgLURf
X3N0ZGNhbGw9X19hdHRyaWJ1dGVfXygoX19zdGRjYWxsX18pKSBcDQogICAt
RF9zdGRjYWxsPV9fYXR0cmlidXRlX18oKF9fc3RkY2FsbF9fKSkgXA0KICAg
LURfX2NkZWNsPV9fYXR0cmlidXRlX18oKF9fY2RlY2xfXykpIFwNCkBAIC00
MCw3ICs0Myw3IEBAIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAqLw0K
IA0KIC8qIFNwZWNpZmljIGEgZGlmZmVyZW50IGRpcmVjdG9yeSBmb3IgdGhl
IHN0YW5kYXJkIGluY2x1ZGUgZmlsZXMuICAqLw0KICN1bmRlZiBTVEFOREFS
RF9JTkNMVURFX0RJUg0KLSNkZWZpbmUgU1RBTkRBUkRfSU5DTFVERV9ESVIg
Ii91c3IvbG9jYWwvaTM4Ni1taW5ndzMyL2luY2x1ZGUiDQorI2RlZmluZSBT
VEFOREFSRF9JTkNMVURFX0RJUiAiL3Vzci9sb2NhbC9taW5ndzMyL2luY2x1
ZGUiDQogDQogI2RlZmluZSBTVEFOREFSRF9JTkNMVURFX0NPTVBPTkVOVCAi
TUlOR1czMiINCiANCkBAIC00OCw2ICs1MSw5IEBAIEJvc3RvbiwgTUEgMDIx
MTEtMTMwNywgVVNBLiAqLw0KICNkZWZpbmUgQ1BQX1NQRUMgXA0KICAgIi1y
ZW1hcCAlKGNwcF9jcHUpICV7cG9zaXg6LURfUE9TSVhfU09VUkNFfSAle210
aHJlYWRzOi1EX01UfSINCiANCisvKiBPdmVycmlkZSBDeWd3aW4gZGVmaW5p
dGlvbiwgd2hpY2ggaXMgY29uZGl0aW9uYWwgb24gLW1uby1jeWd3aW4gICov
DQorI3VuZGVmIENQTFVTUExVU19DUFBfU1BFQw0KKw0KIC8qIEZvciBXaW5k
b3dzIGFwcGxpY2F0aW9ucywgaW5jbHVkZSBtb3JlIGxpYnJhcmllcywgYnV0
IGFsd2F5cyBpbmNsdWRlDQogICAga2VybmVsMzIuICAqLw0KICN1bmRlZiBM
SUJfU1BFQw0KQEAgLTEwNSw0ICsxMTEsMyBAQCBkbyB7CQkJCQkJXA0KIC8q
IE92ZXJyaWRlIEN5Z3dpbidzIGRlZmluaXRpb24uIFRoaXMgaXMgbmVjZXNz
YXJ5IG5vdyBkdWUgdG8gdGhlIHdheQ0KICAgIEN5Z3dpbiBwcm9maWxpbmcg
Y29kZSBpcyB3cml0dGVuLiBPbmNlICJmaXhlZCIsIHdlIGNhbiByZW1vdmUg
dGhpcy4gICovDQogI3VuZGVmIFNVQlRBUkdFVF9QUk9MT0dVRQ0KLQ0KZGlm
ZiAtdXJwYiBnY2MtMi45NS4zLTRcZ2NjXGNvbmZpZ1xpMzg2XHhtLW1pbmd3
MzIuaCBnY2MtMi45NS4zLTRtXGdjY1xjb25maWdcaTM4Nlx4bS1taW5ndzMy
LmgNCi0tLSBnY2MtMi45NS4zLTRcZ2NjXGNvbmZpZ1xpMzg2XHhtLW1pbmd3
MzIuaAlGcmkgTm92IDA1IDE0OjA5OjU2IDE5OTkNCisrKyBnY2MtMi45NS4z
LTRtXGdjY1xjb25maWdcaTM4Nlx4bS1taW5ndzMyLmgJVGh1IE1heSAxNyAx
Mzo0MTo0NSAyMDAxDQpAQCAtMzUsOCArMzUsOCBAQCBCb3N0b24sIE1BIDAy
MTExLTEzMDcsIFVTQS4gKi8NCiAjZGVmaW5lIGVudmlyb24gX2Vudmlyb24N
CiANCiAvKiBFdmVuIHRob3VnaCB3ZSBzdXBwb3J0ICIvIiwgYWxsb3cgIlwi
IHNpbmNlIGV2ZXJ5Ym9keSB0ZXN0cyBib3RoLiAgKi8NCi0jZGVmaW5lIERJ
Ul9TRVBBUkFUT1IgJ1xcJw0KLSNkZWZpbmUgRElSX1NFUEFSQVRPUl8yICcv
Jw0KKyNkZWZpbmUgRElSX1NFUEFSQVRPUiAnLycNCisjZGVmaW5lIERJUl9T
RVBBUkFUT1JfMiAnXFwnDQogDQogLyogTWluZ3czMiBkb2VzIG5vdCB0cnkg
dG8gaGlkZSB0aGUgdW5kZXJseWluZyBET1MtYmFzZWQgZmlsZSBzeXN0ZW0N
CiAgICBsaWtlIEN5Z3dpbiBkb2VzLiAgKi8NCk9ubHkgaW4gZ2NjLTIuOTUu
My00bVxnY2NcY29uZmlnXGkzODY6IHhtLW1pbmd3MzIuaC4kJCQNCmRpZmYg
LXVycGIgZ2NjLTIuOTUuMy00XGdjY1xjb25maWd1cmUgZ2NjLTIuOTUuMy00
bVxnY2NcY29uZmlndXJlDQotLS0gZ2NjLTIuOTUuMy00XGdjY1xjb25maWd1
cmUJU2F0IE1hciAxNyAwNjo0Mjo1MiAyMDAxDQorKysgZ2NjLTIuOTUuMy00
bVxnY2NcY29uZmlndXJlCVRodSBNYXkgMTcgMTA6MjA6NDYgMjAwMQ0KQEAg
LTM4OTYsMTAgKzM4OTYsMTAgQEAgZm9yIG1hY2hpbmUgaW4gJGJ1aWxkICRo
b3N0ICR0YXJnZXQ7IGRvDQogCQlmaQ0KIAkJZXhlZXh0PS5leGUNCiAJCWNh
c2UgJG1hY2hpbmUgaW4NCi0JCQkqbWluZ3czMm1zdiopDQotCQkJCTs7DQot
CQkJKm1pbndnMzJjcnQqIHwgKm1pbmd3MzIqKQ0KKwkJCSptaW5ndzMyY3J0
KikNCiAJCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBpMzg2L2NydGRsbC5oIg0K
KyAJCQkJOzsNCisJCQkqbWluZ3czMm1zdiogfCAqbWluZ3czMiopDQogCQkJ
CTs7DQogCQllc2FjDQogCQk7Ow0KZGlmZiAtdXJwYiBnY2MtMi45NS4zLTRc
Z2NjXGNvbmZpZ3VyZS5pbiBnY2MtMi45NS4zLTRtXGdjY1xjb25maWd1cmUu
aW4NCi0tLSBnY2MtMi45NS4zLTRcZ2NjXGNvbmZpZ3VyZS5pbglTYXQgTWFy
IDE3IDA2OjM5OjQwIDIwMDENCisrKyBnY2MtMi45NS4zLTRtXGdjY1xjb25m
aWd1cmUuaW4JV2VkIE1heSAxNiAxOTozODoxNiAyMDAxDQpAQCAtMTU1Miwx
MSArMTU1MiwxMSBAQCBjaGFuZ2VxdW90ZShbLF0pZG5sDQogCQlmaQ0KIAkJ
ZXhlZXh0PS5leGUNCiAJCWNhc2UgJG1hY2hpbmUgaW4NCi0JCQkqbWluZ3cz
Mm1zdiopDQotCQkJCTs7DQotCQkJKm1pbndnMzJjcnQqIHwgKm1pbmd3MzIq
KQ0KKwkJCQkqbWlud2czMmNydCogKQ0KIAkJCQl0bV9maWxlPSIke3RtX2Zp
bGV9IGkzODYvY3J0ZGxsLmgiDQogCQkJCTs7DQorCQkJCSptaW5ndzMybXN2
KiB8ICptaW5ndzMyKikNCisJCQkJCTs7DQogCQllc2FjDQogCQk7Ow0KIGNo
YW5nZXF1b3RlKCwpZG5sDQpkaWZmIC11cnBiIGdjYy0yLjk1LjMtNFxnY2Nc
Z3Roci13aW4zMi5oIGdjYy0yLjk1LjMtNG1cZ2NjXGd0aHItd2luMzIuaA0K
LS0tIGdjYy0yLjk1LjMtNFxnY2NcZ3Roci13aW4zMi5oCUZyaSBOb3YgMDUg
MjE6Mzk6NDYgMTk5OQ0KKysrIGdjYy0yLjk1LjMtNG1cZ2NjXGd0aHItd2lu
MzIuaAlXZWQgTWF5IDE2IDE5OjM4OjE2IDIwMDENCkBAIC0xNzIsNyArMTcy
LDExIEBAIF9fZ3RocmVhZF9rZXlfZGVsZXRlIChfX2d0aHJlYWRfa2V5X3Qg
a2UNCiBzdGF0aWMgaW5saW5lIHZvaWQgKg0KIF9fZ3RocmVhZF9nZXRzcGVj
aWZpYyAoX19ndGhyZWFkX2tleV90IGtleSkNCiB7DQotICByZXR1cm4gVGxz
R2V0VmFsdWUgKGtleSk7DQorICB2b2lkICpwdHI7DQorICBpbnQgbGFzdGVy
cm9yID0gR2V0TGFzdEVycm9yKCk7DQorICBwdHIgPSBUbHNHZXRWYWx1ZSAo
a2V5KTsNCisgIFNldExhc3RFcnJvciggbGFzdGVycm9yICk7DQorICByZXR1
cm4gcHRyOw0KIH0NCiANCiBzdGF0aWMgaW5saW5lIGludA0KZGlmZiAtdXJw
YiBnY2MtMi45NS4zLTRcZ2NjXGxpYmdjYzIuYyBnY2MtMi45NS4zLTRtXGdj
Y1xsaWJnY2MyLmMNCi0tLSBnY2MtMi45NS4zLTRcZ2NjXGxpYmdjYzIuYwlX
ZWQgSmFuIDMxIDEwOjM2OjA2IDIwMDENCisrKyBnY2MtMi45NS4zLTRtXGdj
Y1xsaWJnY2MyLmMJV2VkIE1heSAxNiAyMzowODoyOSAyMDAxDQpAQCAtNDgs
NiArNDgsMTUgQEAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAqLw0K
ICNpbmNsdWRlIDxzdGRkZWYuaD4NCiAjZW5kaWYNCiANCisjaWZuZGVmIE1B
WFBBVEhMRU4NCisjaWZkZWYgTUFYX1BBVEgNCisjZGVmaW5lIE1BWFBBVEhM
RU4gTUFYX1BBVEgNCisjZWxzZQ0KKyNkZWZpbmUgTUFYUEFUSExFTiAxMDI0
DQorI2VuZGlmDQorI2VuZGlmDQorDQorDQogLyogRG9uJ3QgdXNlIGBmYW5j
eV9hYm9ydCcgaGVyZSBldmVuIGlmIGNvbmZpZy5oIHNheXMgdG8gdXNlIGl0
LiAgKi8NCiAjaWZkZWYgYWJvcnQNCiAjdW5kZWYgYWJvcnQNCk9ubHkgaW4g
Z2NjLTIuOTUuMy00bVxnY2M6IHNqbGouZGlmZg0KZGlmZiAtdXJwYiBnY2Mt
Mi45NS4zLTRcZ2NjXHZlcnNpb24uYyBnY2MtMi45NS4zLTRtXGdjY1x2ZXJz
aW9uLmMNCi0tLSBnY2MtMi45NS4zLTRcZ2NjXHZlcnNpb24uYwlUaHUgQXBy
IDI2IDA0OjM2OjAwIDIwMDENCisrKyBnY2MtMi45NS4zLTRtXGdjY1x2ZXJz
aW9uLmMJVGh1IE1heSAxNyAxMTo0Mjo1MyAyMDAxDQpAQCAtMSArMSBAQA0K
LWNoYXIgKnZlcnNpb25fc3RyaW5nID0gIjIuOTUuMy00IChjeWd3aW4gc3Bl
Y2lhbCkiOw0KK2NoYXIgKnZlcnNpb25fc3RyaW5nID0gIjIuOTUuMy00IChj
eWd3aW4tbWluZ3cgc3BlY2lhbCkiOw0KZGlmZiAtdXJwYiBnY2MtMi45NS4z
LTRcbGliaWJlcnR5XHN0cmVycm9yLmMgZ2NjLTIuOTUuMy00bVxsaWJpYmVy
dHlcc3RyZXJyb3IuYw0KLS0tIGdjYy0yLjk1LjMtNFxsaWJpYmVydHlcc3Ry
ZXJyb3IuYwlUdWUgTWF5IDMwIDA5OjQ1OjMyIDIwMDANCisrKyBnY2MtMi45
NS4zLTRtXGxpYmliZXJ0eVxzdHJlcnJvci5jCVdlZCBNYXkgMTYgMTk6Mzg6
NDcgMjAwMQ0KQEAgLTQ2NCwxMCArNDY0LDEwIEBAIHN0YXRpYyBpbnQgc3lz
X25lcnI7DQogc3RhdGljIGNvbnN0IGNoYXIgKipzeXNfZXJybGlzdDsNCiAN
CiAjZWxzZQ0KLQ0KKyNpZiAhKGRlZmluZWQgIF9fTUlOR1czMl9fICkgLyog
ZG9uJ3Qgb3ZlcnJpZGUgdGhlIF9fZGxsaW1wb3J0IGF0dHJpYnV0ZSAqLw0K
IGV4dGVybiBpbnQgc3lzX25lcnI7DQogZXh0ZXJuIGNoYXIgKnN5c19lcnJs
aXN0W107DQotDQorI2VuZGlmDQogI2VuZGlmDQogDQogDQpkaWZmIC11cnBi
IGdjYy0yLjk1LjMtNFxsaWJpb1xmaWxlb3BzLmMgZ2NjLTIuOTUuMy00bVxs
aWJpb1xmaWxlb3BzLmMNCi0tLSBnY2MtMi45NS4zLTRcbGliaW9cZmlsZW9w
cy5jCUZyaSBOb3YgMDUgMTQ6MTA6MTYgMTk5OQ0KKysrIGdjYy0yLjk1LjMt
NG1cbGliaW9cZmlsZW9wcy5jCVdlZCBNYXkgMTYgMTk6Mzg6NDcgMjAwMQ0K
QEAgLTI2MCw3ICsyNjAsNyBAQCBfSU9fZG9fd3JpdGUgKGZwLCBkYXRhLCB0
b19kbykNCiAgICAgZnAtPl9vZmZzZXQgPSBfSU9fcG9zX0JBRDsNCiAgIGVs
c2UgaWYgKGZwLT5fSU9fcmVhZF9lbmQgIT0gZnAtPl9JT193cml0ZV9iYXNl
KQ0KICAgICB7DQotICAgICAgX0lPX3Bvc190IG5ld19wb3MNCisgICAgICBf
SU9fb2ZmX3QgbmV3X3Bvcw0KIAk9IF9JT19TWVNTRUVLIChmcCwgZnAtPl9J
T193cml0ZV9iYXNlIC0gZnAtPl9JT19yZWFkX2VuZCwgMSk7DQogICAgICAg
aWYgKG5ld19wb3MgPT0gX0lPX3Bvc19CQUQpDQogCXJldHVybiBFT0Y7DQpA
QCAtNDE5LDE0ICs0MTksMTQgQEAgX0lPX2ZpbGVfc3luYyAoZnApDQogICBy
ZXR1cm4gcmV0dmFsOw0KIH0NCiANCi1fSU9fcG9zX3QNCitfSU9fb2ZmX3QN
CiBfSU9fZmlsZV9zZWVrb2ZmIChmcCwgb2Zmc2V0LCBkaXIsIG1vZGUpDQog
ICAgICBfSU9fRklMRSAqZnA7DQogICAgICBfSU9fb2ZmX3Qgb2Zmc2V0Ow0K
ICAgICAgaW50IGRpcjsNCiAgICAgIGludCBtb2RlOw0KIHsNCi0gIF9JT19w
b3NfdCByZXN1bHQ7DQorICBfSU9fb2ZmX3QgcmVzdWx0Ow0KICAgX0lPX29m
Zl90IGRlbHRhLCBuZXdfb2Zmc2V0Ow0KICAgbG9uZyBjb3VudDsNCiAgIC8q
IFBPU0lYLjEgOC4yLjMuNyBzYXlzIHRoYXQgYWZ0ZXIgYSBjYWxsIHRoZSBm
Zmx1c2goKSB0aGUgZmlsZQ0KQEAgLTQ4OSw3ICs0ODksNyBAQCBfSU9fZmls
ZV9zZWVrb2ZmIChmcCwgb2Zmc2V0LCBkaXIsIG1vZGUpDQogICAgICAgJiYg
IV9JT19pbl9iYWNrdXAgKGZwKSkNCiAgICAgew0KICAgICAgIC8qIE9mZnNl
dCByZWxhdGl2ZSB0byBzdGFydCBvZiBtYWluIGdldCBhcmVhLiAqLw0KLSAg
ICAgIF9JT19wb3NfdCByZWxfb2Zmc2V0ID0gKG9mZnNldCAtIGZwLT5fb2Zm
c2V0DQorICAgICAgX0lPX29mZl90IHJlbF9vZmZzZXQgPSAob2Zmc2V0IC0g
ZnAtPl9vZmZzZXQNCiAJCQkgICAgICArIChmcC0+X0lPX3JlYWRfZW5kIC0g
ZnAtPl9JT19yZWFkX2Jhc2UpKTsNCiAgICAgICBpZiAocmVsX29mZnNldCA+
PSAwKQ0KIAl7DQpAQCAtNTg3LDcgKzU4Nyw3IEBAIF9JT19maWxlX3JlYWQg
KGZwLCBidWYsIHNpemUpDQogICByZXR1cm4gcmVhZCAoZnAtPl9maWxlbm8s
IGJ1Ziwgc2l6ZSk7DQogfQ0KIA0KLV9JT19wb3NfdA0KK19JT19vZmZfdA0K
IF9JT19maWxlX3NlZWsgKGZwLCBvZmZzZXQsIGRpcikNCiAgICAgIF9JT19G
SUxFICpmcDsNCiAgICAgIF9JT19vZmZfdCBvZmZzZXQ7DQpkaWZmIC11cnBi
IGdjYy0yLjk1LjMtNFxsaWJpb1xnZW4tcGFyYW1zIGdjYy0yLjk1LjMtNG1c
bGliaW9cZ2VuLXBhcmFtcw0KLS0tIGdjYy0yLjk1LjMtNFxsaWJpb1xnZW4t
cGFyYW1zCUZyaSBOb3YgMDUgMTQ6MTA6MTYgMTk5OQ0KKysrIGdjYy0yLjk1
LjMtNG1cbGliaW9cZ2VuLXBhcmFtcwlXZWQgTWF5IDE2IDE5OjM4OjQ3IDIw
MDENCkBAIC0xMjYsMTEgKzEyNiwxMSBAQCBpZiB0ZXN0IC16ICIke05BTUVT
X0hBVkVfVU5ERVJTQ09SRX0iIFwNCiAgICAgICAjIE5vdyB3ZSBnZXQgcmlk
IG9mIHRoZSA8PiwgYW5kIGFueSBvdGhlciBqdW5rIG9uIHRoZSBubSBvdXRw
dXQgbGluZS4NCiAgICAgICAjIChXZSBnZXQgcmlkIG9mIDxmaWxlYnVmPiBp
biBjYXNlIG5tIGluY2x1ZGVkIGRlYnVnZ2luZyBvdXRwdXQgZm9yDQogICAg
ICAgIyBjbGFzcyBmaWxlYnVmIGl0c2VsZi4pICBPbiB3aW5kb3dzMzIsIHdl
IGFsc28gbmVlZCB0byBkZWxldGUgdGhlIA0KLSAgICAgICMgdW5pcXVlIHNl
Y3Rpb25zICguZGF0YSRfdnQkKiksIG90aGVyd2lzZSB3ZSBnZXQgdGhlIHdy
b25nIHJlc3VsdC4NCisgICAgICAjIHVuaXF1ZSBzZWN0aW9ucyAoLmRhdGFc
JF8qdnRbJF9dKSwgb3RoZXJ3aXNlIHdlIGdldCB0aGUgd3JvbmcgcmVzdWx0
Lg0KICAgICAgICMgRmluYWxseSwgd2Ugc2VsZWN0IHRoZSBmaXJzdCBsaW5l
IG9mIHRoZSByZXN1bHQsIGFuZCBob3BlIHRoYXQncyANCiAgICAgICAjIHdo
YXQgd2Ugd2FudGVkIQ0KICAgICAgIHZ0YWJfbmFtZT1gJHtTRUR9IC1uIC1l
ICcvPGZpbGVidWY+L2QnIFwNCi0gICAgICAgIC1lICcvXC5kYXRhWyRfLl08
X3Z0XCQ3ZmlsZWJ1Zj4vZCcgXA0KKyAgICAgICAgLWUgJy9cLmRhdGFbJF8u
XTxfKnZ0WyRfXTdmaWxlYnVmPi9kJyBcDQogICAgICAgICAtZSAncy9eLio8
XCguKlwpPi4qJC9cMS9wJyBcDQogICAgICAgICA8ZHVtbXkub3V0IHwgJHtT
RUR9IC1uIC1lICcxcCdgDQogICAgICAgY2FzZSAiJHt2dGFiX25hbWV9IiBp
bg0KZGlmZiAtdXJwYiBnY2MtMi45NS4zLTRcbGliaW9cZ2Vub3BzLmMgZ2Nj
LTIuOTUuMy00bVxsaWJpb1xnZW5vcHMuYw0KLS0tIGdjYy0yLjk1LjMtNFxs
aWJpb1xnZW5vcHMuYwlGcmkgTm92IDA1IDE0OjEwOjE2IDE5OTkNCisrKyBn
Y2MtMi45NS4zLTRtXGxpYmlvXGdlbm9wcy5jCVdlZCBNYXkgMTYgMTk6Mzg6
NDcgMjAwMQ0KQEAgLTQ2NywxMCArNDY3LDEwIEBAIF9JT19kZWZhdWx0X3Nl
dGJ1ZiAoZnAsIHAsIGxlbikNCiAgICAgcmV0dXJuIGZwOw0KIH0NCiANCi1f
SU9fcG9zX3QNCitfSU9fb2ZmX3QNCiBfSU9fZGVmYXVsdF9zZWVrcG9zIChm
cCwgcG9zLCBtb2RlKQ0KICAgICAgX0lPX0ZJTEUgKmZwOw0KLSAgICAgX0lP
X3Bvc190IHBvczsNCisgICAgIF9JT19vZmZfdCBwb3M7DQogICAgICBpbnQg
bW9kZTsNCiB7DQogICByZXR1cm4gX0lPX1NFRUtPRkYgKGZwLCBfSU9fcG9z
X2FzX29mZiAocG9zKSwgMCwgbW9kZSk7DQpAQCAtNTUxLDcgKzU1MSw3IEBA
IF9JT19kZWZhdWx0X2ZpbmlzaCAoZnAsIGR1bW15KQ0KICAgX0lPX3VuX2xp
bmsgKGZwKTsNCiB9DQogDQotX0lPX3Bvc190DQorX0lPX29mZl90DQogX0lP
X2RlZmF1bHRfc2Vla29mZiAoZnAsIG9mZnNldCwgZGlyLCBtb2RlKQ0KICAg
ICAgX0lPX0ZJTEUgKmZwOw0KICAgICAgX0lPX29mZl90IG9mZnNldDsNCkBA
IC04ODIsNyArODgyLDcgQEAgX0lPX2RlZmF1bHRfcGJhY2tmYWlsIChmcCwg
YykNCiAgIHJldHVybiAodW5zaWduZWQgY2hhcikgKmZwLT5fSU9fcmVhZF9w
dHI7DQogfQ0KIA0KLV9JT19wb3NfdA0KK19JT19vZmZfdA0KIF9JT19kZWZh
dWx0X3NlZWsgKGZwLCBvZmZzZXQsIGRpcikNCiAgICAgIF9JT19GSUxFICpm
cDsNCiAgICAgIF9JT19vZmZfdCBvZmZzZXQ7DQpkaWZmIC11cnBiIGdjYy0y
Ljk1LjMtNFxsaWJpb1xpb2Z0ZWxsLmMgZ2NjLTIuOTUuMy00bVxsaWJpb1xp
b2Z0ZWxsLmMNCi0tLSBnY2MtMi45NS4zLTRcbGliaW9caW9mdGVsbC5jCUZy
aSBOb3YgMDUgMTQ6MTA6MTYgMTk5OQ0KKysrIGdjYy0yLjk1LjMtNG1cbGli
aW9caW9mdGVsbC5jCVdlZCBNYXkgMTYgMTk6Mzg6NDcgMjAwMQ0KQEAgLTMx
LDcgKzMxLDcgQEAgbG9uZyBpbnQNCiBfSU9fZnRlbGwgKGZwKQ0KICAgICAg
X0lPX0ZJTEUgKmZwOw0KIHsNCi0gIF9JT19wb3NfdCBwb3M7DQorICBfSU9f
b2ZmX3QgcG9zOw0KICAgQ0hFQ0tfRklMRSAoZnAsIC0xTCk7DQogICBfSU9f
Y2xlYW51cF9yZWdpb25fc3RhcnQgKCh2b2lkICgqKSBfX1AgKCh2b2lkICop
KSkgX0lPX2Z1bmxvY2tmaWxlLCBmcCk7DQogICBfSU9fZmxvY2tmaWxlIChm
cCk7DQpkaWZmIC11cnBiIGdjYy0yLjk1LjMtNFxsaWJpb1xpb3NlZWtvZmYu
YyBnY2MtMi45NS4zLTRtXGxpYmlvXGlvc2Vla29mZi5jDQotLS0gZ2NjLTIu
OTUuMy00XGxpYmlvXGlvc2Vla29mZi5jCUZyaSBOb3YgMDUgMTQ6MTA6MTYg
MTk5OQ0KKysrIGdjYy0yLjk1LjMtNG1cbGliaW9caW9zZWVrb2ZmLmMJV2Vk
IE1heSAxNiAxOTozODo0NyAyMDAxDQpAQCAtMjUsMTQgKzI1LDE0IEBADQog
DQogI2luY2x1ZGUgPGxpYmlvUC5oPg0KIA0KLV9JT19wb3NfdA0KK19JT19v
ZmZfdA0KIF9JT19zZWVrb2ZmIChmcCwgb2Zmc2V0LCBkaXIsIG1vZGUpDQog
ICAgICBfSU9fRklMRSAqZnA7DQogICAgICBfSU9fb2ZmX3Qgb2Zmc2V0Ow0K
ICAgICAgaW50IGRpcjsNCiAgICAgIGludCBtb2RlOw0KIHsNCi0gIF9JT19w
b3NfdCByZXR2YWw7DQorICBfSU9fb2ZmX3QgcmV0dmFsOw0KIA0KICAgLyog
SWYgd2UgaGF2ZSBhIGJhY2t1cCBidWZmZXIsIGdldCByaWQgb2YgaXQsIHNp
bmNlIHRoZSBfX3NlZWtvZmYNCiAgICAgIGNhbGxiYWNrIG1heSBub3Qga25v
dyB0byBkbyB0aGUgcmlnaHQgdGhpbmcgYWJvdXQgaXQuDQpkaWZmIC11cnBi
IGdjYy0yLjk1LjMtNFxsaWJpb1xpb3NlZWtwb3MuYyBnY2MtMi45NS4zLTRt
XGxpYmlvXGlvc2Vla3Bvcy5jDQotLS0gZ2NjLTIuOTUuMy00XGxpYmlvXGlv
c2Vla3Bvcy5jCUZyaSBOb3YgMDUgMTQ6MTA6MTYgMTk5OQ0KKysrIGdjYy0y
Ljk1LjMtNG1cbGliaW9caW9zZWVrcG9zLmMJV2VkIE1heSAxNiAxOTozODo0
NyAyMDAxDQpAQCAtMjUsMTMgKzI1LDEzIEBADQogDQogI2luY2x1ZGUgPGxp
YmlvUC5oPg0KIA0KLV9JT19wb3NfdA0KK19JT19vZmZfdA0KIF9JT19zZWVr
cG9zIChmcCwgcG9zLCBtb2RlKQ0KICAgICAgX0lPX0ZJTEUgKmZwOw0KLSAg
ICAgX0lPX3Bvc190IHBvczsNCisgICAgIF9JT19vZmZfdCBwb3M7DQogICAg
ICBpbnQgbW9kZTsNCiB7DQotICBfSU9fcG9zX3QgcmV0dmFsOw0KKyAgX0lP
X29mZl90IHJldHZhbDsNCiANCiAgIC8qIElmIHdlIGhhdmUgYSBiYWNrdXAg
YnVmZmVyLCBnZXQgcmlkIG9mIGl0LCBzaW5jZSB0aGUgX19zZWVrb2ZmDQog
ICAgICBjYWxsYmFjayBtYXkgbm90IGtub3cgdG8gZG8gdGhlIHJpZ2h0IHRo
aW5nIGFib3V0IGl0Lg0KZGlmZiAtdXJwYiBnY2MtMi45NS4zLTRcbGliaW9c
c3RyZWFtYnVmLmNjIGdjYy0yLjk1LjMtNG1cbGliaW9cc3RyZWFtYnVmLmNj
DQotLS0gZ2NjLTIuOTUuMy00XGxpYmlvXHN0cmVhbWJ1Zi5jYwlGcmkgTm92
IDA1IDE0OjEwOjE4IDE5OTkNCisrKyBnY2MtMi45NS4zLTRtXGxpYmlvXHN0
cmVhbWJ1Zi5jYwlXZWQgTWF5IDE2IDE5OjM4OjQ3IDIwMDENCkBAIC0xNTAs
MTIgKzE1MCwxMiBAQCBzdGF0aWMgaW50IF9JT19zYl9zdGF0KF9JT19GSUxF
ICpmcCwgdm9pDQogc3RhdGljIGludCBfSU9fc2JfZG9hbGxvY2F0ZShfSU9f
RklMRSAqZnApDQogeyByZXR1cm4gKChzdHJlYW1idWYqKWZwKS0+ZG9hbGxv
Y2F0ZSgpOyB9DQogDQotc3RhdGljIF9JT19wb3NfdCBfSU9fc2Jfc2Vla29m
ZihfSU9fRklMRSAqZnAsIF9JT19vZmZfdCBwb3MsIGludCBkaXIsIGludCBt
b2RlKQ0KK3N0YXRpYyBfSU9fb2ZmX3QgX0lPX3NiX3NlZWtvZmYoX0lPX0ZJ
TEUgKmZwLCBfSU9fb2ZmX3QgcG9zLCBpbnQgZGlyLCBpbnQgbW9kZSkNCiB7
DQogICByZXR1cm4gKChzdHJlYW1idWYqKWZwKS0+c2Vla29mZihwb3MsIChp
b3M6OnNlZWtfZGlyKWRpciwgbW9kZSk7DQogfQ0KIA0KLXN0YXRpYyBfSU9f
cG9zX3QgX0lPX3NiX3NlZWtwb3MoX0lPX0ZJTEUgKmZwLCBfSU9fcG9zX3Qg
cG9zLCBpbnQgbW9kZSkNCitzdGF0aWMgX0lPX29mZl90IF9JT19zYl9zZWVr
cG9zKF9JT19GSUxFICpmcCwgX0lPX3Bvc190IHBvcywgaW50IG1vZGUpDQog
ew0KICAgcmV0dXJuICgoc3RyZWFtYnVmKilmcCktPnNlZWtwb3MocG9zLCBt
b2RlKTsNCiB9DQpkaWZmIC11cnBiIGdjYy0yLjk1LjMtNFxsaWJpb1xzdHJv
cHMuYyBnY2MtMi45NS4zLTRtXGxpYmlvXHN0cm9wcy5jDQotLS0gZ2NjLTIu
OTUuMy00XGxpYmlvXHN0cm9wcy5jCUZyaSBOb3YgMDUgMTQ6MTA6MTggMTk5
OQ0KKysrIGdjYy0yLjk1LjMtNG1cbGliaW9cc3Ryb3BzLmMJV2VkIE1heSAx
NiAxOTozODo0NyAyMDAxDQpAQCAtMjA1LDcgKzIwNSw3IEBAIF9JT19zdHJf
Y291bnQgKGZwKQ0KIAkgIC0gZnAtPl9JT19yZWFkX2Jhc2UpOw0KIH0NCiAN
Ci1fSU9fcG9zX3QNCitfSU9fb2ZmX3QNCiBfSU9fc3RyX3NlZWtvZmYgKGZw
LCBvZmZzZXQsIGRpciwgbW9kZSkNCiAgICAgIF9JT19GSUxFICpmcDsNCiAg
ICAgIF9JT19vZmZfdCBvZmZzZXQ7DQpAQCAtMjEzLDcgKzIxMyw3IEBAIF9J
T19zdHJfc2Vla29mZiAoZnAsIG9mZnNldCwgZGlyLCBtb2RlKQ0KICAgICAg
aW50IG1vZGU7DQogew0KICAgX0lPX3NzaXplX3QgY3VyX3NpemUgPSBfSU9f
c3RyX2NvdW50IChmcCk7DQotICBfSU9fcG9zX3QgbmV3X3BvcyA9IEVPRjsN
CisgIF9JT19vZmZfdCBuZXdfcG9zID0gRU9GOw0KIA0KICAgLyogTW92ZSB0
aGUgZ2V0IHBvaW50ZXIsIGlmIHJlcXVlc3RlZC4gKi8NCiAgIGlmIChtb2Rl
ICYgX0lPU19JTlBVVCkNCg==

--0-440941406-990074050=:17212--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019