delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1997/08/30/06:50:36

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
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".

- Raw text -


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