From: jeffdbREMOVETHIS AT netzone DOT com (Mikey) Subject: Re: problem building a dll that uses other dll's 30 Aug 1997 06:50:36 -0700 Approved: cygnus DOT gnu-win32 AT cygnus DOT com Distribution: cygnus Message-ID: <34023e4c.26952970.cygnus.gnu-win32@smtp.netzone.com> References: <199708251740 DOT NAA14070 AT nut DOT brown DOT edu> <199708251852 DOT OAA02984 AT nut DOT brown DOT edu> Reply-To: jeffdbREMOVETHIS AT netzone DOT com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="--=_3402440a28422765075358a9.MFSBCHJLHS" Original-To: dgold AT brown DOT edu, gnu-win32 AT cygnus DOT com In-Reply-To: <199708251852.OAA02984@nut.brown.edu> X-Mailer: Forte Agent 1.01/32.397 Original-Sender: owner-gnu-win32 AT cygnus DOT com ----=_3402440a28422765075358a9.MFSBCHJLHS Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit These are from the SDK_4_ming_cygwin32 lib2def does the obvious, the Makefile should show you how to use it. If you don't have the .lib file, you can use impdef.exe to generate the .def file, you may need to edit it to eliminate c++ junk, (vc++ has different name mangling conventions then g++) just redirect the output of impdef to a file, then run dlltool on it as shown in the enclosed Makefile. On Mon, 25 Aug 1997 14:54:39 -500, you wrote: >> The dll is not the stub library, the stub library >> for foo.dll is libfoo.a > >ok, the thing is that i don't have the stub library for foo.dll. foo.dll >is from a commercial product. does this mean i'm stuck? if i had the .a >files i would have been all set long ago :) > >is there some way to generate the .a file for foo.dll? > >> BTW all of this stuff is in the ld man page, and also >> in gcc.info, you might try reading them. > >really i already knew all the basics of ld, the stuff i'm having the >problem with is specific to gnuwin32. Then why are you asking about -l "small L"? One of the basics of ld, is that you don't link directly with coff or aout shared libraries, you have to make a stub library first. That's the main reason why linux when to ELF. > >thanks. >--------------------------------------------------------- >Dan Goldwater dgold AT brown DOT edu >http://fatmac.ee.cornell.edu/~goldwada >--------------------------------------------------------- > > > (jeffdbREMOVETHIS AT netzone DOT com) delete REMOVETHIS from the above to reply Mikey ----=_3402440a28422765075358a9.MFSBCHJLHS Content-Type: application/octet-stream; name=Makefile Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=Makefile LlBIT05ZOiBhbGwgaW5zdGFsbCBjbGVhbiBkaXN0Y2xlYW4gdW5pbnN0YWxsIGRpc3R1bmluc3Rh bGwKCiN0aGVzZSBhcmUgaGVyZSB0byBiZSBvdmVyaWRkZW4gZnJvbSB0aGUgY29tbWFuZCBsaW5l IG9yIHRoZSB0b3AgbGV2ZWwgTWFrZWZpbGUKCnByZWZpeCA9IGBnY2MgLXByaW50LWZpbGUtbmFt ZT1jcnQwLm98c2VkIC1lIHMvXFxcXFxcXFwvXFxcXC8vZyAtZSBzL1xcXFwvaTM4Ni1jeWd3aW4z MlxcXFwvbGliXFxcXC9jcnQwLm8vL2AKZXhlY19wcmVmaXggIDo9ICQoc2hlbGwgZWNobyAke3By ZWZpeH0pClNESz0vbS9tc3Rvb2xzClNES0QgPSAgJHtTREt9CgppZmVxICIkKGZpbmRzdHJpbmcg aTM4Ni1jeWd3aW4zMiwkKGV4ZWNfcHJlZml4KSkiICJpMzg2LWN5Z3dpbjMyIgpJTlNUQUxMRElS PSQoZXhlY19wcmVmaXgpL2kzODYtY3lnd2luMzIvbGliCmVsc2UKSU5TVEFMTERJUj0kKGV4ZWNf cHJlZml4KS9saWIKZW5kaWYKCgouU1VGRklYRVM6ICQoU1VGRklYRVMpIC5saWIgLkxJQiAuZGVm IC5kbGwgLmEKCgpPVVJMSUJTPSBsaWJjcnRkbGwuYSBsaWJsYXJnZWludC5hIGxpYm9sZG5hbWVz LmEKCkJBU0VMSUJTPSBcCglsaWJhZHZhcGkzMi5hIFwKCWxpYmNvbWN0bDMyLmEgXAoJbGliY29t ZGxnMzIuYSBcCglsaWJnZGkzMi5hIFwKCWxpYmltbTMyLmEgXAoJbGlia2VybmVsMzIuYSBcCgls aWJsc2FwaTMyLmEgXAoJbGlibXN3c29jay5hIFwKCWxpYm5ldGFwaTMyLmEgXAoJbGlib2xlMzIu YSBcCglsaWJvbGVhdXQzMi5hIFwKCWxpYnJhc2FwaTMyLmEgXAoJbGlic2hlbGwzMi5hIFwKCWxp YnVzZXIzMi5hIFwKCWxpYnV1aWQuYSBcCglsaWJ2ZXJzaW9uLmEgXAoJbGlid2lubW0uYSBcCgls aWJ3aW5zcG9vbC5hIFwKCWxpYndzMl8zMi5hIFwKCWxpYndzb2NrMzIuYSBcCgoKCkNZR0xJQlM9 IFwKCWxpYmNhcC5hIFwKCWxpYmN0bDNkMzIuYSBcCglsaWJkbGNhcGkuYSBcCglsaWJnbHUzMi5h IFwKCWxpYmljbXAuYSBcCglsaWJsYXJnZWludC5hIFwKCWxpYmx6MzIuYSBcCglsaWJtYXBpMzIu YSBcCglsaWJtZmN1aWEzMi5hIFwKCWxpYm1nbXRhcGkuYSBcCglsaWJtcHIuYSBcCglsaWJtc2Fj bTMyLmEgXAoJbGlibmRkZWFwaS5hIFwKCWxpYm9kYmMzMi5hIFwKCWxpYm9kYmNjcDMyLmEgXAoJ bGlib2xlZGxnLmEgXAoJbGlib2xlcHJvMzIuYSBcCglsaWJvcGVuZ2wzMi5hIFwKCWxpYnBlbndp bjMyLmEgXAoJbGlicGtwZDMyLmEgXAoJbGlicnBjZGNlNC5hIFwKCWxpYnJwY25kci5hIFwKCWxp YnJwY25zNC5hIFwKCWxpYnJwY3J0NC5hIFwKCWxpYnNjcm5zYXZlLmEgXAoJbGlic25tcC5hIFwK CWxpYnN2cmFwaS5hIFwKCWxpYnRhcGkzMi5hIFwKCWxpYnRoMzIuYSBcCglsaWJ0aHVuazMyLmEg XAoJbGlidXJsLmEgXAoJbGlidmRtZGJnLmEgXAoJbGlidmZ3MzIuYSBcCglsaWJ3aW4zMnNwbC5h IFwKCWxpYndpbnNlcnZlLmEgXAoJbGlid2luc3RybS5hIFwKCWxpYndvdzMyLmEgXAoJbGlid3N0 LmEgXAoKClNES0xJQlM9JChhZGRwcmVmaXggbGliLCQoYWRkc3VmZml4IC5hLCQoYmFzZW5hbWUg JChub3RkaXIgJCh3aWxkY2FyZCAkKFNESykvbGliLyoubGliKSkpKSkKCgphbGw6ICQoT1VSTElC UykgJChCQVNFTElCUykKCmluc3RhbGwtbXlsaWI6CglpbnN0YWxsICouYSAkKElOU1RBTExESVIp LwoKbGliY3J0ZGxsLmE6IGNydGRsbC5kZWYKCWRsbHRvb2wgLS1kbGxuYW1lIGNydGRsbC5kbGwg LS1kZWYgJDwgLS1vdXRwdXQtbGliICRAIC1rCgpsaWJsYXJnZWludC5hOiBsYXJnZWludC5kZWYK CWRsbHRvb2wgLS1kbGxuYW1lIGNydGRsbC5kbGwgLS1kZWYgJDwgLS1vdXRwdXQtbGliICRAIC1r CgpsaWJvbGRuYW1lcy5hOiBvbGRuYW1lcy5kZWYKCWRsbHRvb2wgLS1kbGxuYW1lIGNydGRsbC5k bGwgLS1kZWYgJDwgLS1vdXRwdXQtbGliICRAIC1rCgolLmRlZjogJChTREspL2xpYi8lLmxpYgoJ c2V0IC14djtcCglbIC1kIG9iai9pMzg2LyBdIHx8IG1rZGlyIC1wIG9iai9pMzg2LztcCgljcCAk PCAuIDtcCglPYmpzPWBhciAtdCAkKG5vdGRpciAkPCl8Z3JlcCAtdiBcXC5kbGxgO1wKCVsgLXog IiQkT2JqcyIgXSAmJiBleGl0IDA7XAoJYXIgLXggJChub3RkaXIgJDwpICQkT2JqcztcCglhciAt ZCAkKG5vdGRpciAkPCkgJCRPYmpzO1wKCWZvciBmaWxlIGluICQkT2JqcztkbyBcCgkgIG9iamNv cHkgJCRmaWxlIGBiYXNlbmFtZSAkJGZpbGUgLm9iamAubztcCgkgIHJtICQkZmlsZTtcCglkb25l CgkuLi9iaW4vbGliMmRlZiAkKG5vdGRpciAkPCkgPiAkQAoJcm0gJChub3RkaXIgJDwpCgpsaWIl LmE6ICUuZGVmCglkbGx0b29sIC0tZGxsbmFtZSAkKi5kbGwgIC0tZGVmICQ8ICAtLW91dHB1dC1s aWIgJEAgLWsKCXNldCAteHY7XAoJT2Jqcz1gZWNobyAqLm9gO1wKCVsgIiQkT2JqcyIgPSAiKi5v IiBdICYmIGV4aXQgMDtcCglhciB1cnZzICRAICQkT2JqcztcCglybSAqLm8KCiMgdG8ga2VlcCBh IGNvcHkgb2YgdGhlIC5kZWYgZmlsZXMgdW5jb21tZW50IHRoZSBuZXh0IDYgbGluZXMKIyUuZGVm OiAkKFNESykvbGliLyUubGliCiMJLW1rZGlyIC1wIGRlZnMKIwkuLi9iaW4vbGliMmRlZiAkPCA+ IGRlZnMvJEAKIwojbGliJS5hOiAlLmRlZgojCWRsbHRvb2wgLS1kbGxuYW1lICQqLmRsbCAgLS1k ZWYgZGVmcy8kPCAgLS1vdXRwdXQtbGliICRAIC1rCgoKCmFsbC1TREs6ICQoU0RLTElCUykKCmlu c3RhbGw6IGFsbAoJaW5zdGFsbCAtZCAkKElOU1RBTExESVIpCglpbnN0YWxsICouYSAkKElOU1RB TExESVIpLwoKZGlzdGNsZWFuIGNsZWFuOgoJcm0gLWYgKi5hIGRlZnMvKi5kZWYKCmRpc3R1bmlu c3RhbGw6Cglmb3IgZmlsZSBpbiAkKE9VUkxJQlMpICQoQ1lHTElCUykgJChTREtMSUJTKSA7ZG8g XAoJICBybSAtZiAkKElOU1RBTExESVIpLyQkZmlsZTsgXAoJZG9uZQoJLXJtZGlyIC1wICQoSU5T VEFMTERJUikKCnVuaW5zdGFsbDoKCXJtIC1mICQoSU5TVEFMTERJUikvbGliY3J0ZGxsLmEK ----=_3402440a28422765075358a9.MFSBCHJLHS Content-Type: application/octet-stream; name=lib2def Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=lib2def IyEvYmluL3NoCgp0bG93KCl7CmVjaG8gJDF8dHIgQS1aIGEtegp9CgppZiBbIHgiJDEiID0geCIi IF07dGhlbgogIGVjaG8gInNoZWxsIHNjcmlwdCB0byBnZW5lcmF0ZSAuZGVmIGZpbGVzIGZyb20g LkxJQiBmaWxlcwogICQwIGZpbGVuYW1lIC4uLiIKICBleGl0IDAKZWxzZQogIGVjaG8gTElCUkFS WSBgYmFzZW5hbWUgJDEgLmxpYmAgCiAgZWNobyBFWFBPUlRTCiAgZWNobyBmYWtlZnVuYyRSQU5E T00KICBubSAtLWV4dGVybi1vbmx5ICQxfGVncmVwICdeLi4uLi4uLi4gW1RSXScgXAogIHxmZ3Jl cCAtdiAnJEFBJ1wKICB8ZmdyZXAgLXYgJ0NAXzAnXAogIHxmZ3JlcCAtdiAnQEAnIFwKICB8c29y dCBcCiAgfHNlZCAtZSAncy9bXl9dKl8vLycgLWUgJ3MvW14/XSo/Ly8nIApmaQoKIyBUPSAudGV4 dCBzZWN0aW9uIFI9IHJlYWRvbmx5IC5kYXRhIHNlY3Rpb24gKGV4cG9ydGVkIHZhcmlhYmxlcykK IyAkQUEgQ0BfMCBAQCBleHBvcnRlZCBzdHJ1Y3R1cmUvaW50ZXJuYWwgZnVuY3Rpb24gZGVmaW5p dGlvbnMK ----=_3402440a28422765075358a9.MFSBCHJLHS Content-Type: application/octet-stream; name=impdef.c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=impdef.c Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIFRoaXMgaXMgYSBtb2RpZmlj YXRpb24gb2Y6Ci8vICAgUEVEVU1QIC0gTWF0dCBQaWV0cmVrIDE5OTUKLy8gZG9uZSBieSBJc21h ZWwgSnVyYWRvIDE5OTcKLy8KLy8gVGhpcyBwcm9ncmFtIG9ubHkgb3V0cHV0cyB0byBzdGRvdXQg YSBERUYgZmlsZSBmcm9tIGEgRExMIGdpdmVuIGluIHRoZQovLyBjb21tYW5kIGxpbmUuCi8vIEkg ZG9utHQga25vdyBob3cgdG8gY29udGFjdCBNYXR0LCBzbyBpZiB0aGlzIHByb2dyYW0gaXMgbm90 IGxlZ2FsLCBwbGVhc2UKLy8gbGV0IG1lIGtub3cuCi8vICAgIGlzbWFlbGpAaG90bWFpbC5jb20K Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgojaW5jbHVkZSA8d2luZG93cy5o PgojaW5jbHVkZSA8c3RkaW8uaD4KaW50IGZsYWcyID0gMTsKCi8vIFRoaXMgY29kZSB3YXMgdGFr ZW4gZnJvbSBXSU5OVC5ILCB3aGljaCBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGN1cnJlbnQKLy8g Q3lnbnVzIHBvcnQuCiNpZm5kZWYgX1dJTk5UXwojZGVmaW5lIEZJRUxEX09GRlNFVCh0eXBlLCBm aWVsZCkgICAgKChMT05HKSYoKCh0eXBlICopMCktPmZpZWxkKSkKI2RlZmluZSBJTUFHRV9GSVJT VF9TRUNUSU9OKCBudGhlYWRlciApICgoUElNQUdFX1NFQ1RJT05fSEVBREVSKSAgICAgICBcCiAg ICAoKERXT1JEKW50aGVhZGVyICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgIEZJRUxEX09GRlNFVCggSU1BR0VfTlRfSEVBREVSUywgT3B0aW9u YWxIZWFkZXIgKSArICAgICAgICAgICAgICAgIFwKICAgICAoKFBJTUFHRV9OVF9IRUFERVJTKShu dGhlYWRlcikpLT5GaWxlSGVhZGVyLlNpemVPZk9wdGlvbmFsSGVhZGVyICBcCiAgICApKQoKI2Rl ZmluZSBJTUFHRV9TSVpFT0ZfU0hPUlRfTkFNRSAgICAgICAgICAgICAgOAojZGVmaW5lIElNQUdF X0RJUkVDVE9SWV9FTlRSWV9FWFBPUlQgICAgICAgICAwICAgLy8gRXhwb3J0IERpcmVjdG9yeQoj ZGVmaW5lIElNQUdFX05VTUJFUk9GX0RJUkVDVE9SWV9FTlRSSUVTICAgIDE2CiNkZWZpbmUgSU1B R0VfTlRfU0lHTkFUVVJFICAgICAgICAgICAgICAgICAgMHgwMDAwNDU1MCAgLy8gUEUwMAojZGVm aW5lIElNQUdFX0RPU19TSUdOQVRVUkUgICAgICAgICAgICAgICAgIDB4NUE0RCAgICAgIC8vIE1a Cgp0eXBlZGVmIHN0cnVjdCBfSU1BR0VfREFUQV9ESVJFQ1RPUlkgewogICAgRFdPUkQgICBWaXJ0 dWFsQWRkcmVzczsKICAgIERXT1JEICAgU2l6ZTsKfSBJTUFHRV9EQVRBX0RJUkVDVE9SWSwgKlBJ TUFHRV9EQVRBX0RJUkVDVE9SWTsKCnR5cGVkZWYgc3RydWN0IF9JTUFHRV9GSUxFX0hFQURFUiB7 CiAgICBXT1JEICAgIE1hY2hpbmU7CiAgICBXT1JEICAgIE51bWJlck9mU2VjdGlvbnM7CiAgICBE V09SRCAgIFRpbWVEYXRlU3RhbXA7CiAgICBEV09SRCAgIFBvaW50ZXJUb1N5bWJvbFRhYmxlOwog ICAgRFdPUkQgICBOdW1iZXJPZlN5bWJvbHM7CiAgICBXT1JEICAgIFNpemVPZk9wdGlvbmFsSGVh ZGVyOwogICAgV09SRCAgICBDaGFyYWN0ZXJpc3RpY3M7Cn0gSU1BR0VfRklMRV9IRUFERVIsICpQ SU1BR0VfRklMRV9IRUFERVI7Cgp0eXBlZGVmIHN0cnVjdCBfSU1BR0VfT1BUSU9OQUxfSEVBREVS IHsKICAgIC8vCiAgICAvLyBTdGFuZGFyZCBmaWVsZHMuCiAgICAvLwoKICAgIFdPUkQgICAgTWFn aWM7CiAgICBCWVRFICAgIE1ham9yTGlua2VyVmVyc2lvbjsKICAgIEJZVEUgICAgTWlub3JMaW5r ZXJWZXJzaW9uOwogICAgRFdPUkQgICBTaXplT2ZDb2RlOwogICAgRFdPUkQgICBTaXplT2ZJbml0 aWFsaXplZERhdGE7CiAgICBEV09SRCAgIFNpemVPZlVuaW5pdGlhbGl6ZWREYXRhOwogICAgRFdP UkQgICBBZGRyZXNzT2ZFbnRyeVBvaW50OwogICAgRFdPUkQgICBCYXNlT2ZDb2RlOwogICAgRFdP UkQgICBCYXNlT2ZEYXRhOwoKICAgIC8vCiAgICAvLyBOVCBhZGRpdGlvbmFsIGZpZWxkcy4KICAg IC8vCgogICAgRFdPUkQgICBJbWFnZUJhc2U7CiAgICBEV09SRCAgIFNlY3Rpb25BbGlnbm1lbnQ7 CiAgICBEV09SRCAgIEZpbGVBbGlnbm1lbnQ7CiAgICBXT1JEICAgIE1ham9yT3BlcmF0aW5nU3lz dGVtVmVyc2lvbjsKICAgIFdPUkQgICAgTWlub3JPcGVyYXRpbmdTeXN0ZW1WZXJzaW9uOwogICAg V09SRCAgICBNYWpvckltYWdlVmVyc2lvbjsKICAgIFdPUkQgICAgTWlub3JJbWFnZVZlcnNpb247 CiAgICBXT1JEICAgIE1ham9yU3Vic3lzdGVtVmVyc2lvbjsKICAgIFdPUkQgICAgTWlub3JTdWJz eXN0ZW1WZXJzaW9uOwogICAgRFdPUkQgICBSZXNlcnZlZDE7CiAgICBEV09SRCAgIFNpemVPZklt YWdlOwogICAgRFdPUkQgICBTaXplT2ZIZWFkZXJzOwogICAgRFdPUkQgICBDaGVja1N1bTsKICAg IFdPUkQgICAgU3Vic3lzdGVtOwogICAgV09SRCAgICBEbGxDaGFyYWN0ZXJpc3RpY3M7CiAgICBE V09SRCAgIFNpemVPZlN0YWNrUmVzZXJ2ZTsKICAgIERXT1JEICAgU2l6ZU9mU3RhY2tDb21taXQ7 CiAgICBEV09SRCAgIFNpemVPZkhlYXBSZXNlcnZlOwogICAgRFdPUkQgICBTaXplT2ZIZWFwQ29t bWl0OwogICAgRFdPUkQgICBMb2FkZXJGbGFnczsKICAgIERXT1JEICAgTnVtYmVyT2ZSdmFBbmRT aXplczsKICAgIElNQUdFX0RBVEFfRElSRUNUT1JZIERhdGFEaXJlY3RvcnlbSU1BR0VfTlVNQkVS T0ZfRElSRUNUT1JZX0VOVFJJRVNdOwp9IElNQUdFX09QVElPTkFMX0hFQURFUiwgKlBJTUFHRV9P UFRJT05BTF9IRUFERVI7CgoKdHlwZWRlZiBzdHJ1Y3QgX0lNQUdFX05UX0hFQURFUlMgewogICAg RFdPUkQgU2lnbmF0dXJlOwogICAgSU1BR0VfRklMRV9IRUFERVIgRmlsZUhlYWRlcjsKICAgIElN QUdFX09QVElPTkFMX0hFQURFUiBPcHRpb25hbEhlYWRlcjsKfSBJTUFHRV9OVF9IRUFERVJTLCAq UElNQUdFX05UX0hFQURFUlM7Cgp0eXBlZGVmIHN0cnVjdCBfSU1BR0VfU0VDVElPTl9IRUFERVIg ewogICAgQllURSAgICBOYW1lW0lNQUdFX1NJWkVPRl9TSE9SVF9OQU1FXTsKICAgIHVuaW9uIHsK ICAgICAgICAgICAgRFdPUkQgICBQaHlzaWNhbEFkZHJlc3M7CiAgICAgICAgICAgIERXT1JEICAg VmlydHVhbFNpemU7CiAgICB9IE1pc2M7CiAgICBEV09SRCAgIFZpcnR1YWxBZGRyZXNzOwogICAg RFdPUkQgICBTaXplT2ZSYXdEYXRhOwogICAgRFdPUkQgICBQb2ludGVyVG9SYXdEYXRhOwogICAg RFdPUkQgICBQb2ludGVyVG9SZWxvY2F0aW9uczsKICAgIERXT1JEICAgUG9pbnRlclRvTGluZW51 bWJlcnM7CiAgICBXT1JEICAgIE51bWJlck9mUmVsb2NhdGlvbnM7CiAgICBXT1JEICAgIE51bWJl ck9mTGluZW51bWJlcnM7CiAgICBEV09SRCAgIENoYXJhY3RlcmlzdGljczsKfSBJTUFHRV9TRUNU SU9OX0hFQURFUiwgKlBJTUFHRV9TRUNUSU9OX0hFQURFUjsKCnR5cGVkZWYgc3RydWN0IF9JTUFH RV9FWFBPUlRfRElSRUNUT1JZIHsKICAgIERXT1JEICAgQ2hhcmFjdGVyaXN0aWNzOwogICAgRFdP UkQgICBUaW1lRGF0ZVN0YW1wOwogICAgV09SRCAgICBNYWpvclZlcnNpb247CiAgICBXT1JEICAg IE1pbm9yVmVyc2lvbjsKICAgIERXT1JEICAgTmFtZTsKICAgIERXT1JEICAgQmFzZTsKICAgIERX T1JEICAgTnVtYmVyT2ZGdW5jdGlvbnM7CiAgICBEV09SRCAgIE51bWJlck9mTmFtZXM7CiAgICBQ RFdPUkQgICpBZGRyZXNzT2ZGdW5jdGlvbnM7CiAgICBQRFdPUkQgICpBZGRyZXNzT2ZOYW1lczsK ICAgIFBXT1JEICAgKkFkZHJlc3NPZk5hbWVPcmRpbmFsczsKfSBJTUFHRV9FWFBPUlRfRElSRUNU T1JZLCAqUElNQUdFX0VYUE9SVF9ESVJFQ1RPUlk7Cgp0eXBlZGVmIHN0cnVjdCBfSU1BR0VfRE9T X0hFQURFUiB7ICAgICAgLy8gRE9TIC5FWEUgaGVhZGVyCiAgICBXT1JEICAgZV9tYWdpYzsgICAg ICAgICAgICAgICAgICAgICAvLyBNYWdpYyBudW1iZXIKICAgIFdPUkQgICBlX2NibHA7ICAgICAg ICAgICAgICAgICAgICAgIC8vIEJ5dGVzIG9uIGxhc3QgcGFnZSBvZiBmaWxlCiAgICBXT1JEICAg ZV9jcDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBQYWdlcyBpbiBmaWxlCiAgICBXT1JEICAg ZV9jcmxjOyAgICAgICAgICAgICAgICAgICAgICAvLyBSZWxvY2F0aW9ucwogICAgV09SRCAgIGVf Y3BhcmhkcjsgICAgICAgICAgICAgICAgICAgLy8gU2l6ZSBvZiBoZWFkZXIgaW4gcGFyYWdyYXBo cwogICAgV09SRCAgIGVfbWluYWxsb2M7ICAgICAgICAgICAgICAgICAgLy8gTWluaW11bSBleHRy YSBwYXJhZ3JhcGhzIG5lZWRlZAogICAgV09SRCAgIGVfbWF4YWxsb2M7ICAgICAgICAgICAgICAg ICAgLy8gTWF4aW11bSBleHRyYSBwYXJhZ3JhcGhzIG5lZWRlZAogICAgV09SRCAgIGVfc3M7ICAg ICAgICAgICAgICAgICAgICAgICAgLy8gSW5pdGlhbCAocmVsYXRpdmUpIFNTIHZhbHVlCiAgICBX T1JEICAgZV9zcDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbml0aWFsIFNQIHZhbHVlCiAg ICBXT1JEICAgZV9jc3VtOyAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVja3N1bQogICAgV09S RCAgIGVfaXA7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5pdGlhbCBJUCB2YWx1ZQogICAg V09SRCAgIGVfY3M7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5pdGlhbCAocmVsYXRpdmUp IENTIHZhbHVlCiAgICBXT1JEICAgZV9sZmFybGM7ICAgICAgICAgICAgICAgICAgICAvLyBGaWxl IGFkZHJlc3Mgb2YgcmVsb2NhdGlvbiB0YWJsZQogICAgV09SRCAgIGVfb3ZubzsgICAgICAgICAg ICAgICAgICAgICAgLy8gT3ZlcmxheSBudW1iZXIKICAgIFdPUkQgICBlX3Jlc1s0XTsgICAgICAg ICAgICAgICAgICAgIC8vIFJlc2VydmVkIHdvcmRzCiAgICBXT1JEICAgZV9vZW1pZDsgICAgICAg ICAgICAgICAgICAgICAvLyBPRU0gaWRlbnRpZmllciAoZm9yIGVfb2VtaW5mbykKICAgIFdPUkQg ICBlX29lbWluZm87ICAgICAgICAgICAgICAgICAgIC8vIE9FTSBpbmZvcm1hdGlvbjsgZV9vZW1p ZCBzcGVjaWZpYwogICAgV09SRCAgIGVfcmVzMlsxMF07ICAgICAgICAgICAgICAgICAgLy8gUmVz ZXJ2ZWQgd29yZHMKICAgIExPTkcgICBlX2xmYW5ldzsgICAgICAgICAgICAgICAgICAgIC8vIEZp bGUgYWRkcmVzcyBvZiBuZXcgZXhlIGhlYWRlcgogIH0gSU1BR0VfRE9TX0hFQURFUiwgKlBJTUFH RV9ET1NfSEVBREVSOwojZW5kaWYgLy8gX19XSU5OVF9fCgovLyBIZXJlIHN0YXJ0cyBNYXR0J3Mg Y29kZQovLwovLwovLyBNYWtlUHRyIGlzIGEgbWFjcm8gdGhhdCBhbGxvd3MgeW91IHRvIGVhc2ls eSBhZGQgdG8gdmFsdWVzIChpbmNsdWRpbmcKLy8gcG9pbnRlcnMpIHRvZ2V0aGVyIHdpdGhvdXQg ZGVhbGluZyB3aXRoIEMncyBwb2ludGVyIGFyaXRobWV0aWMuICBJdAovLyBlc3NlbnRpYWxseSB0 cmVhdHMgdGhlIGxhc3QgdHdvIHBhcmFtZXRlcnMgYXMgRFdPUkRzLiAgVGhlIGZpcnN0Ci8vIHBh cmFtZXRlciBpcyB1c2VkIHRvIHR5cGVjYXN0IHRoZSByZXN1bHQgdG8gdGhlIGFwcHJvcHJpYXRl IHBvaW50ZXIgdHlwZS4KI2RlZmluZSBNYWtlUHRyKCBjYXN0LCBwdHIsIGFkZFZhbHVlICkgKGNh c3QpKCAoRFdPUkQpKHB0cikgKyAoRFdPUkQpKGFkZFZhbHVlKSkKUElNQUdFX1NFQ1RJT05fSEVB REVSIEdldEVuY2xvc2luZ1NlY3Rpb25IZWFkZXIoRFdPUkQgcnZhLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSU1BR0VfTlRfSEVBREVSUyBwTlRIZWFk ZXIpCnsKICAgIFBJTUFHRV9TRUNUSU9OX0hFQURFUiBzZWN0aW9uID0gSU1BR0VfRklSU1RfU0VD VElPTihwTlRIZWFkZXIpOwogICAgdW5zaWduZWQgaTsKCiAgICBmb3IgKCBpPTA7IGkgPCBwTlRI ZWFkZXItPkZpbGVIZWFkZXIuTnVtYmVyT2ZTZWN0aW9uczsgaSsrLCBzZWN0aW9uKysgKSB7CiAg ICAgICAgLy8gSXMgdGhlIFJWQSB3aXRoaW4gdGhpcyBzZWN0aW9uPwogICAgICAgIGlmICggKHJ2 YSA+PSBzZWN0aW9uLT5WaXJ0dWFsQWRkcmVzcykgJiYKICAgICAgICAgICAgIChydmEgPCAoc2Vj dGlvbi0+VmlydHVhbEFkZHJlc3MgKyBzZWN0aW9uLT5NaXNjLlZpcnR1YWxTaXplKSkpCiAgICAg ICAgICAgIHJldHVybiBzZWN0aW9uOwogICAgfQogICAgcmV0dXJuIDA7Cn0KCnZvaWQgRHVtcEV4 cG9ydHNTZWN0aW9uKERXT1JEIGJhc2UsIFBJTUFHRV9OVF9IRUFERVJTIHBOVEhlYWRlcikgewog ICAgUElNQUdFX0VYUE9SVF9ESVJFQ1RPUlkgZXhwb3J0RGlyOwogICAgUElNQUdFX1NFQ1RJT05f SEVBREVSIGhlYWRlcjsKICAgIElOVCBkZWx0YTsKICAgIERXT1JEIGk7CiAgICBQRFdPUkQgZnVu Y3Rpb25zOwogICAgUFdPUkQgb3JkaW5hbHM7CiAgICBQU1RSICpuYW1lOwogICAgRFdPUkQgZXhw b3J0c1N0YXJ0UlZBLCBleHBvcnRzRW5kUlZBOwoKICAgIGV4cG9ydHNTdGFydFJWQSA9IHBOVEhl YWRlci0+T3B0aW9uYWxIZWFkZXIuRGF0YURpcmVjdG9yeSBbSU1BR0VfRElSRUNUT1JZX0VOVFJZ X0VYUE9SVF0uVmlydHVhbEFkZHJlc3M7CiAgICBleHBvcnRzRW5kUlZBID0gZXhwb3J0c1N0YXJ0 UlZBICsgcE5USGVhZGVyLT5PcHRpb25hbEhlYWRlci5EYXRhRGlyZWN0b3J5IFtJTUFHRV9ESVJF Q1RPUllfRU5UUllfRVhQT1JUXS5TaXplOwoKICAgIC8vIEdldCB0aGUgSU1BR0VfU0VDVElPTl9I RUFERVIgdGhhdCBjb250YWlucyB0aGUgZXhwb3J0cy4gIFRoaXMgaXMKICAgIC8vIHVzdWFsbHkg dGhlIC5lZGF0YSBzZWN0aW9uLCBidXQgZG9lc24ndCBoYXZlIHRvIGJlLgogICAgaGVhZGVyID0g KFBJTUFHRV9TRUNUSU9OX0hFQURFUilHZXRFbmNsb3NpbmdTZWN0aW9uSGVhZGVyKCBleHBvcnRz U3RhcnRSVkEsIHBOVEhlYWRlciApOwogICAgaWYgKCAhaGVhZGVyICkgcmV0dXJuOwogICAgZGVs dGEgPSAoSU5UKShoZWFkZXItPlZpcnR1YWxBZGRyZXNzIC0gaGVhZGVyLT5Qb2ludGVyVG9SYXdE YXRhKTsKICAgIGV4cG9ydERpciA9IE1ha2VQdHIoUElNQUdFX0VYUE9SVF9ESVJFQ1RPUlksIGJh c2UsIGV4cG9ydHNTdGFydFJWQSAtIGRlbHRhKTsKCgogICAgaWYgKGZsYWcyKQogICAgcHJpbnRm KCJFWFBPUlRTXG4iKTsKCiAgICBmdW5jdGlvbnMgPSAoUERXT1JEKSgoRFdPUkQpZXhwb3J0RGly LT5BZGRyZXNzT2ZGdW5jdGlvbnMgLSBkZWx0YSArIGJhc2UpOwogICAgb3JkaW5hbHMgPSAoUFdP UkQpKChEV09SRClleHBvcnREaXItPkFkZHJlc3NPZk5hbWVPcmRpbmFscyAtIGRlbHRhICsgYmFz ZSk7CiAgICBuYW1lID0gKFBTVFIgKikoKERXT1JEKWV4cG9ydERpci0+QWRkcmVzc09mTmFtZXMg LSBkZWx0YSArIGJhc2UpOwogICAgZm9yICggaT0wOyBpIDwgZXhwb3J0RGlyLT5OdW1iZXJPZkZ1 bmN0aW9uczsgaSsrICkgewogICAgICAgIERXT1JEIGVudHJ5UG9pbnRSVkEgPSBmdW5jdGlvbnNb aV07CiAgICAgICAgRFdPUkQgajsKICAgICAgICBpbnQgZmxhZz0wOwoKICAgICAgICBpZiAoIGVu dHJ5UG9pbnRSVkEgPT0gMCApICAgLy8gU2tpcCBvdmVyIGdhcHMgaW4gZXhwb3J0ZWQgZnVuY3Rp b24KICAgICAgICAgICAgY29udGludWU7ICAgICAgICAgICAgICAgLy8gb3JkaW5hbHMgKHRoZSBl bnRyeXBvaW50IGlzIDAgZm9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IHRoZXNlIGZ1bmN0aW9ucykuCiAgICAgICAgLy8gU2VlIGlmIHRoaXMgZnVuY3Rpb24gaGFzIGFu IGFzc29jaWF0ZWQgbmFtZSBleHBvcnRlZCBmb3IgaXQuCiAgICAgICAgZm9yICggaj0wOyBqIDwg ZXhwb3J0RGlyLT5OdW1iZXJPZk5hbWVzOyBqKysgKQogICAgICAgICAgICBpZiAoIG9yZGluYWxz W2pdID09IGkgKSB7CiAgICAgICAgICAgICAgICBwcmludGYoIiVzIiwgbmFtZVtqXSAtIGRlbHRh ICsgYmFzZSk7CgoJCWlmIChmbGFnMikKCQlwcmludGYoIlx0QCV1IiwgaSArIGV4cG9ydERpci0+ QmFzZSk7CgogICAgICAgICAgICAgICAgZmxhZz0xOwogICAgICAgICAgICB9CiAgICAgICAgLy8g SXMgaXQgYSBmb3J3YXJkZXI/ICBJZiBzbywgdGhlIGVudHJ5IHBvaW50IFJWQSBpcyBpbnNpZGUg dGhlCiAgICAgICAgLy8gLmVkYXRhIHNlY3Rpb24sIGFuZCBpcyBhbiBSVkEgdG8gdGhlIERsbE5h bWUuRW50cnlQb2ludE5hbWUKICAgICAgICBpZiAoIChlbnRyeVBvaW50UlZBID49IGV4cG9ydHNT dGFydFJWQSkmJihlbnRyeVBvaW50UlZBIDw9IGV4cG9ydHNFbmRSVkEpICkKICAgICAgICB7CiAg ICAgICAgICAgIHByaW50ZigiJXMiLCBlbnRyeVBvaW50UlZBIC0gZGVsdGEgKyBiYXNlKTsKCgkg ICAgaWYgKGZsYWcyKQoJICAgIHByaW50ZigiXHRAJXUiLCBpICsgZXhwb3J0RGlyLT5CYXNlKTsK CiAgICAgICAgICAgIGZsYWc9MTsKICAgICAgICB9CgogICAgICAgIGlmIChmbGFnKSBwcmludGYo IlxuIik7CiAgICB9Cn0KCnZvaWQgRHVtcEV4ZUZpbGUoIFBJTUFHRV9ET1NfSEVBREVSIGRvc0hl YWRlciApCnsKICAgIFBJTUFHRV9OVF9IRUFERVJTIHBOVEhlYWRlcjsKICAgIERXT1JEIGJhc2Ug PSAoRFdPUkQpZG9zSGVhZGVyOwoKICAgIHBOVEhlYWRlciA9IE1ha2VQdHIoIFBJTUFHRV9OVF9I RUFERVJTLCBkb3NIZWFkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9zSGVh ZGVyLT5lX2xmYW5ldyApOwoKICAgIC8vIEZpcnN0LCB2ZXJpZnkgdGhhdCB0aGUgZV9sZmFuZXcg ZmllbGQgZ2F2ZSB1cyBhIHJlYXNvbmFibGUKICAgIC8vIHBvaW50ZXIsIHRoZW4gdmVyaWZ5IHRo ZSBQRSBzaWduYXR1cmUuCiAgICAvLyBJSjogZ2NjIGRvZXNuJ3Qgc3VwcG9ydCBDIGV4ZXB0aW9u cz8/Ci8vICAgIF9fdHJ5Ci8vICAgIHsKICAgICAgICBpZiAoIHBOVEhlYWRlci0+U2lnbmF0dXJl ICE9IElNQUdFX05UX1NJR05BVFVSRSApCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIk5v dCBhIFBvcnRhYmxlIEV4ZWN1dGFibGUgKFBFKSBFWEVcbiIpOwogICAgICAgICAgICByZXR1cm47 CiAgICAgICAgfQovLyAgICB9Ci8qCiAgICBfX2V4Y2VwdCggVFJVRSApICAgIC8vIFNob3VsZCBv bmx5IGdldCBoZXJlIGlmIHBOVEhlYWRlciAoYWJvdmUpIGlzIGJvZ3VzCiAgICB7CiAgICAgICAg cHJpbnRmKCAiaW52YWxpZCAuRVhFXG4iKTsKICAgICAgICByZXR1cm47CiAgICB9CiovCiAgICBE dW1wRXhwb3J0c1NlY3Rpb24oYmFzZSwgcE5USGVhZGVyKTsKICAgIHByaW50ZigiXG4iKTsKfQoK dm9pZCBEdW1wRmlsZShMUFNUUiBmaWxlbmFtZSkKewogICAgSEFORExFIGhGaWxlOwogICAgSEFO RExFIGhGaWxlTWFwcGluZzsKICAgIExQVk9JRCBscEZpbGVCYXNlOwogICAgUElNQUdFX0RPU19I RUFERVIgZG9zSGVhZGVyOwogICAgCiAgICBoRmlsZSA9IENyZWF0ZUZpbGUoZmlsZW5hbWUsIEdF TkVSSUNfUkVBRCwgRklMRV9TSEFSRV9SRUFELCBOVUxMLAogICAgICAgICAgICAgICAgICAgICAg ICBPUEVOX0VYSVNUSU5HLCBGSUxFX0FUVFJJQlVURV9OT1JNQUwsIDApOwoKICAgIGlmICggaEZp bGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUgKQogICAgewogICAgICAgIHByaW50ZigiQ291bGRu J3Qgb3BlbiBmaWxlIHdpdGggQ3JlYXRlRmlsZSgpXG4iKTsKICAgICAgICByZXR1cm47CiAgICB9 CgogICAgaEZpbGVNYXBwaW5nID0gQ3JlYXRlRmlsZU1hcHBpbmcoaEZpbGUsIE5VTEwsIFBBR0Vf UkVBRE9OTFksIDAsIDAsIE5VTEwpOwogICAgaWYgKCBoRmlsZU1hcHBpbmcgPT0gMCApCiAgICB7 CiAgICAgICAgQ2xvc2VIYW5kbGUoaEZpbGUpOwogICAgICAgIHByaW50ZigiQ291bGRuJ3Qgb3Bl biBmaWxlIG1hcHBpbmcgd2l0aCBDcmVhdGVGaWxlTWFwcGluZygpXG4iKTsKICAgICAgICByZXR1 cm47CiAgICB9CgogICAgbHBGaWxlQmFzZSA9IE1hcFZpZXdPZkZpbGUoaEZpbGVNYXBwaW5nLCBG SUxFX01BUF9SRUFELCAwLCAwLCAwKTsKICAgIGlmICggbHBGaWxlQmFzZSA9PSAwICkKICAgIHsK ICAgICAgICBDbG9zZUhhbmRsZShoRmlsZU1hcHBpbmcpOwogICAgICAgIENsb3NlSGFuZGxlKGhG aWxlKTsKICAgICAgICBwcmludGYoIkNvdWxkbid0IG1hcCB2aWV3IG9mIGZpbGUgd2l0aCBNYXBW aWV3T2ZGaWxlKClcbiIpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoZmxhZzIpCiAg ICBwcmludGYoIjtFeHBvcnRzIG9mIGZpbGUgJXNcblxuIiwgZmlsZW5hbWUpOwogICAgCiAgICBk b3NIZWFkZXIgPSAoUElNQUdFX0RPU19IRUFERVIpbHBGaWxlQmFzZTsKICAgIGlmICggZG9zSGVh ZGVyLT5lX21hZ2ljID09IElNQUdFX0RPU19TSUdOQVRVUkUgKQogICAgewogICAgICAgIER1bXBF eGVGaWxlKCBkb3NIZWFkZXIgKTsKICAgIH0KICAgIGVsc2UgcHJpbnRmKCJGb3JtYXQgVW5rbm93 biFcbiIpOwp9CgpjaGFyIEhlbHBUZXh0W10gPQoiSU1QREVGXG4iCiJTeW50YXg6IElNUERFRiBE TExuYW1lXG5cbiIKIk1vZGlmaWNhdGlvbiBvZjpcbiIKIlBFRFVNUCAtIFdpbjMyL0NPRkYgRVhF L09CSi9MSUIgZmlsZSBkdW1wZXIgLSAxOTk1IE1hdHQgUGlldHJla1xuIgoiYnkgSXNtYWVsIEp1 cmFkbyAxOTk3LiBPbmx5IHByb2R1Y2VzIGEgREVGIGZpbGUgZnJvbSBhIERMTFxuIgoiTGV0IG1l IGtub3cgaWYgdGhpcyBtb2RpZmljYXRpb24gaXMgbm90IGxlZ2FsOiBpc21hZWxqQGhvdG1haWwu Y29tXG4iOwoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewogIGlmICggYXJnYyA9 PSAxICkgewogICAgcHJpbnRmKCBIZWxwVGV4dCApOwogICAgcmV0dXJuIDE7CiAgfQogIGlmIChh cmdjID09IDMgJiYgKmFyZ3ZbMV0gPT0gJy0nKQogIHsKICBmbGFnMiA9IDA7CiAgRHVtcEZpbGUo YXJndlsyXSk7CiAgfQogIGVsc2UKICB7CiAgRHVtcEZpbGUoYXJndlsxXSk7CiAgfQogIHJldHVy biAwOwp9Cg== ----=_3402440a28422765075358a9.MFSBCHJLHS-- - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".