[Gc] gc6.2alpha6 test results and fixups

Dan Bonachea bonachea@cs.berkeley.edu
Fri, 06 Jun 2003 07:03:47 -0700


--=====================_92713665==_
Content-Type: text/plain; charset="us-ascii"; format=flowed

Here are the results from my testing on AIX, IRIX, OSF1 and Cygwin:

AIX 5.1 - tested on gcc3.2 and VisualAge C 6, both in 32/64 bit modes, both 
with and without threads
-------

* AIX does not implement POSIX semaphores (sem_init returns error "Function 
not implemented"). Now I remember why I used pthread condition variables 
instead :)  I've reapplied that part of my patch.

* There was a missing entry for GC_AIX_THREADS at the top of 
pthread_stop_world.c

* A few AIX threads fixups in configure.in and fix a bad comment in gc_typed.h

* With these fixups, all tests pass

IRIX 6.5 - tested on gcc2.95.3/32-bit and MIPSPro C 7 in 32/64 bit modes, both 
with and without threads
--------

* The new GC_STATIC_ASSERT() macro causes an internal compiler error on the 
MIPSPro C 7.3.1.3m compiler, even when the condition is satisfied:
INTERNAL ERROR at line 928: stmk_expr not implemented enk_runtime_sizeof
cc INTERNAL ERROR:  /usr/lib32/cmplrs/fec returned non-zero status 1
I've added an alternate version which works correctly for that compiler.

* As I reported in my last patch, the file name mips_sgi_mach_dep.S is not 
acceptable to gcc (2.95.3) on IRIX 6. The file must be renamed to 
mips_sgi_mach_dep.s (lowercase s extension) in order to compile properly.
  Here's the current error message in case you don't believe me:

gcc -g -O2 "-DPACKAGE_NAME=\"gc\"" "-DPACKAGE_TARNAME=\"gc\"" 
"-DPACKAGE_VERSION=\"6.2alpha6\"" "-DPACKAGE_STRING=\"gc 6.2alpha6\"" 
"-DPACKAGE_BUGREPORT=\"Hans.Boehm@hp.com\"" -DGC_VERSION_MAJOR=6 
-DGC_VERSION_MINOR=2 -DGC_ALPHA_VERSION=6 "-DPACKAGE=\"gc\"" 
"-DVERSION=\"6.2alpha6\"" -DNO_EXECUTE_PERMISSION=1 -DSTDC_HEADERS=1 
-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_UNISTD_H=1 
-DHAVE_DLFCN_H=1 -DSILENT=1 -DNO_SIGNALS=1 -DNO_EXECUTE_PERMISSION=1 
-DALL_INTERIOR_POINTERS=1 -DJAVA_FINALIZATION=1 -DGC_GCJ_SUPPORT=1 
-DATOMIC_UNCOLLECTABLE=1 -c ../src/mips_sgi_mach_dep.S  -DPIC -o 
.libs/mips_sgi_mach_dep.lo
as: Error: /usr/include/sys/regdef.h, line 17: Expected cpp-generated line 
number

  I noticed some code in Makefile that appears to try and work-around this 
issue by renaming the file at build time, but the problem remains if you're 
using Makefile.am. What's the motivation for keeping this broken .S filename? 
I've verified that both gcc and MIPSPro are happy with the .s filename - is 
there some other compiler we're trying to satisfy here?

* With these fixups, all tests pass on IRIX

OSF1 v5.1 pthreads with Compaq C 6.4, with and without threads
---------
* One character fix to threadlibs.c - must be -pthread not -lpthread, the 
latter causes link failures

* With this fix all tests pass, so you can remove the comment from 
pthread_support.c about OSF1 threads being completely untested and working 
with 0.0000001% probability...  :)

Finally, I verified the collector works on Cygwin uni and pthreads w/gcc (no 
fixes needed).

All the necessary AIX/IRIX/OSF changes are in the attached patch against 
6.2alpha6.

Thanks,

Dan

At 09:55 PM 6/5/2003, Hans Boehm wrote:
>I just released GC version 2.6alpha6 at
>
>http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc2.6alpha6.tar.gz
>
>This includes two major, slightly overlapping, patches:
>
>1) Brian Alliet's support for Darwin threads and restructuring of some
>of the pthread support code.
>
>2) Dan Bonachea's support for AIX pthreads.
>
>I tested on a few platforms, but not on either Darwin or AIX.  I would
>like to call this 6.2 once I get confirmation that this works on those
>platforms and a few others.  (Most likely this will require some minor
>patches to compensate for bugs I introduced during the integration.)
>
>Hans
>
>--
>Hans Boehm
>(hboehm@hpl.hp.com)

--=====================_92713665==_
Content-Type: text/plain; name="gc6.2alpha6-AIXIRIXOSF-diff.txt";
 x-mac-type="42494E41"; x-mac-creator="74747874"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gc6.2alpha6-AIXIRIXOSF-diff.txt"

ZGlmZiAtciAtTmF1ciBvbGQvTWFrZWZpbGUgbmV3L01ha2VmaWxlCi0tLSBvbGQvTWFrZWZpbGUJ
MjAwMy0wNi0wNSAxNjoxMTo1OC4wMDAwMDAwMDAgLTA3MDAKKysrIG5ldy9NYWtlZmlsZQkyMDAz
LTA2LTA2IDA2OjMyOjA2LjAwMDAwMDAwMCAtMDcwMApAQCAtMjg3LDcgKzI4Nyw3IEBACiAKIENP
UkRfT0JKUz0gIGNvcmQvY29yZGJzY3MubyBjb3JkL2NvcmR4dHJhLm8gY29yZC9jb3JkcHJudC5v
CiAKLVNSQ1M9ICQoQ1NSQ1MpIG1pcHNfc2dpX21hY2hfZGVwLlMgcnM2MDAwX21hY2hfZGVwLnMg
YWxwaGFfbWFjaF9kZXAuUyBcCitTUkNTPSAkKENTUkNTKSBtaXBzX3NnaV9tYWNoX2RlcC5zIHJz
NjAwMF9tYWNoX2RlcC5zIGFscGhhX21hY2hfZGVwLlMgXAogICAgIHNwYXJjX21hY2hfZGVwLlMg
aW5jbHVkZS9nYy5oIGluY2x1ZGUvZ2NfdHlwZWQuaCBcCiAgICAgaW5jbHVkZS9wcml2YXRlL2dj
X2hkcnMuaCBpbmNsdWRlL3ByaXZhdGUvZ2NfcHJpdi5oIFwKICAgICBpbmNsdWRlL3ByaXZhdGUv
Z2Njb25maWcuaCBpbmNsdWRlL3ByaXZhdGUvZ2NfcG1hcmsuaCBcCkBAIC00ODcsMTUgKzQ4Nywx
NCBAQAogIyAJZ2NjIC1zaGFyZWQgLVdsLC1zb25hbWU9bGliZ2Muc28uMCAtbyBsaWJnYy5zby4w
ICQoTElCT0JKUykgZHluX2xvYWQubG8KICMJdG91Y2ggbGlibGludXhnYy5zbwogCi1tYWNoX2Rl
cC5vOiAkKHNyY2RpcikvbWFjaF9kZXAuYyAkKHNyY2RpcikvbWlwc19zZ2lfbWFjaF9kZXAuUyBc
CittYWNoX2RlcC5vOiAkKHNyY2RpcikvbWFjaF9kZXAuYyAkKHNyY2RpcikvbWlwc19zZ2lfbWFj
aF9kZXAucyBcCiAJICAgICQoc3JjZGlyKS9taXBzX3VsdHJpeF9tYWNoX2RlcC5zIFwKICAgICAg
ICAgICAgICQoc3JjZGlyKS9yczYwMDBfbWFjaF9kZXAucyAkKHNyY2RpcikvcG93ZXJwY19kYXJ3
aW5fbWFjaF9kZXAucyBcCiAJICAgICQoc3JjZGlyKS9zcGFyY19tYWNoX2RlcC5TICQoc3JjZGly
KS9zcGFyY19zdW5vczRfbWFjaF9kZXAucyBcCiAJICAgICQoc3JjZGlyKS9pYTY0X3NhdmVfcmVn
c19pbl9zdGFjay5zIFwKIAkgICAgJChzcmNkaXIpL3NwYXJjX25ldGJzZF9tYWNoX2RlcC5zICQo
VVRJTFMpCiAJcm0gLWYgbWFjaF9kZXAubwotCS4vaWZfbWFjaCBNSVBTIElSSVg1ICQoQ0MpIC1F
ICQoc3JjZGlyKS9taXBzX3NnaV9tYWNoX2RlcC5TIFwKLQkgfCAuL2lmX21hY2ggTUlQUyBJUklY
NSBncmVwIC12ICJeXCMiID4gJChzcmNkaXIpL21pcHNfc2dpX21hY2hfZGVwLnMKKwkuL2lmX21h
Y2ggTUlQUyBJUklYNSAkKENDKSAtYyAtbyBtYWNoX2RlcC5vICQoc3JjZGlyKS9taXBzX3NnaV9t
YWNoX2RlcC5zCiAJLi9pZl9tYWNoIE1JUFMgUklTQ09TICQoQVMpIC1vIG1hY2hfZGVwLm8gJChz
cmNkaXIpL21pcHNfdWx0cml4X21hY2hfZGVwLnMKIAkuL2lmX21hY2ggTUlQUyBVTFRSSVggJChB
UykgLW8gbWFjaF9kZXAubyAkKHNyY2RpcikvbWlwc191bHRyaXhfbWFjaF9kZXAucwogCS4vaWZf
bWFjaCBQT1dFUlBDIE1BQ09TWCAkKEFTKSAtbyBtYWNoX2RlcC5vICQoc3JjZGlyKS9wb3dlcnBj
X2Rhcndpbl9tYWNoX2RlcC5zCkBAIC01NjUsNyArNTY0LDcgQEAKIGNsZWFuOiAKIAlybSAtZiBn
Yy5hICoubyAqLmV4ZSB0ZXN0cy8qLm8gZ2N0ZXN0IGdjdGVzdF9keW5fbGluayB0ZXN0X2NwcCBc
CiAJICAgICAgc2V0am1wX3Rlc3QgIG1vbi5vdXQgZ21vbi5vdXQgYS5vdXQgY29yZSBpZl9ub3Rf
dGhlcmUgaWZfbWFjaCBcCi0JICAgICAgdGhyZWFkbGlicyAkKENPUkRfT0JKUykgY29yZC9jb3Jk
dGVzdCBjb3JkL2RlIG1pcHNfc2dpX21hY2hfZGVwLnMKKwkgICAgICB0aHJlYWRsaWJzICQoQ09S
RF9PQkpTKSBjb3JkL2NvcmR0ZXN0IGNvcmQvZGUgCiAJLXJtIC1mICp+CiAKIGdjdGVzdDogdGVz
dHMvdGVzdC5vIGdjLmEgJChVVElMUykKZGlmZiAtciAtTmF1ciBvbGQvTWFrZWZpbGUuYW0gbmV3
L01ha2VmaWxlLmFtCi0tLSBvbGQvTWFrZWZpbGUuYW0JMjAwMy0wNi0wNSAxNjowNToyMC4wMDAw
MDAwMDAgLTA3MDAKKysrIG5ldy9NYWtlZmlsZS5hbQkyMDAzLTA2LTA2IDA0OjAzOjU2LjAwMDAw
MDAwMCAtMDcwMApAQCAtNjAsNyArNjAsNyBAQAogbGliZ2NfbGFfTERGTEFHUyA9IC12ZXJzaW9u
LWluZm8gMToyOjAKIAogRVhUUkFfbGliZ2NfbGFfU09VUkNFUyA9IGFscGhhX21hY2hfZGVwLlMg
XAotICAgIG1pcHNfc2dpX21hY2hfZGVwLlMgbWlwc191bHRyaXhfbWFjaF9kZXAucyBwb3dlcnBj
X2Rhcndpbl9tYWNoX2RlcC5zIFwKKyAgICBtaXBzX3NnaV9tYWNoX2RlcC5zIG1pcHNfdWx0cml4
X21hY2hfZGVwLnMgcG93ZXJwY19kYXJ3aW5fbWFjaF9kZXAucyBcCiAgICAgcnM2MDAwX21hY2hf
ZGVwLnMgc3BhcmNfbWFjaF9kZXAuUyBzcGFyY19uZXRic2RfbWFjaF9kZXAucyBcCiAgICAgc3Bh
cmNfc3Vub3M0X21hY2hfZGVwLnMgaWE2NF9zYXZlX3JlZ3NfaW5fc3RhY2sucwogCkBAIC02OCw3
ICs2OCw3IEBACiBsaWJnY2NwcF9sYV9MSUJBREQgPSAkKFRIUkVBRExJQlMpCiBsaWJnY2NwcF9s
YV9MREZMQUdTID0gLXZlcnNpb24taW5mbyAxOjI6MAogCi1FWFRSQV9ESVNUICs9IGFscGhhX21h
Y2hfZGVwLlMgbWlwc19zZ2lfbWFjaF9kZXAuUyBzcGFyY19tYWNoX2RlcC5TCitFWFRSQV9ESVNU
ICs9IGFscGhhX21hY2hfZGVwLlMgbWlwc19zZ2lfbWFjaF9kZXAucyBzcGFyY19tYWNoX2RlcC5T
CiAKIEFNX0NYWEZMQUdTID0gQEdDX0NGTEFHU0AKIEFNX0NGTEFHUyA9IEBHQ19DRkxBR1NACmRp
ZmYgLXIgLU5hdXIgb2xkL01ha2VmaWxlLmluIG5ldy9NYWtlZmlsZS5pbgotLS0gb2xkL01ha2Vm
aWxlLmluCTIwMDMtMDYtMDUgMTY6MDY6MDIuMDAwMDAwMDAwIC0wNzAwCisrKyBuZXcvTWFrZWZp
bGUuaW4JMjAwMy0wNi0wNiAwNDowNDoxNC4wMDAwMDAwMDAgLTA3MDAKQEAgLTE0NSw3ICsxNDUs
NyBAQAogCiAjIDpGSVhNRTogd2h5IGRvIHdlIGRpc3RyaWJ1dGUgdGhpcyBvbmU/Pz8KICMKLUVY
VFJBX0RJU1QgPSBhbHBoYV9tYWNoX2RlcC5TIG1pcHNfc2dpX21hY2hfZGVwLlMgc3BhcmNfbWFj
aF9kZXAuUyBSRUFETUUuUVVJQ0sgQkNDX01BS0VGSUxFIE5UX01BS0VGSUxFIE5UX1RIUkVBRFNf
TUFLRUZJTEUgXAorRVhUUkFfRElTVCA9IGFscGhhX21hY2hfZGVwLlMgbWlwc19zZ2lfbWFjaF9k
ZXAucyBzcGFyY19tYWNoX2RlcC5TIFJFQURNRS5RVUlDSyBCQ0NfTUFLRUZJTEUgTlRfTUFLRUZJ
TEUgTlRfVEhSRUFEU19NQUtFRklMRSBcCiAgICAgT1MyX01BS0VGSUxFIFBDUi1NYWtlZmlsZSBk
aWdpbWFycy5tYWsgRU1YX01BS0VGSUxFCVwKICAgICBNYWtlZmlsZS5kaXJlY3QgTWFrZWZpbGUu
ZGoJTWFrZWZpbGUuRExMcyBTTWFrZWZpbGUuYW1pZ2EgXAogICAgIFdDQ19NQUtFRklMRVwKQEAg
LTE5Myw3ICsxOTMsNyBAQAogbGliZ2NfbGFfTERGTEFHUyA9IC12ZXJzaW9uLWluZm8gMToyOjAK
IAogRVhUUkFfbGliZ2NfbGFfU09VUkNFUyA9IGFscGhhX21hY2hfZGVwLlMgXAotICAgIG1pcHNf
c2dpX21hY2hfZGVwLlMgbWlwc191bHRyaXhfbWFjaF9kZXAucyBwb3dlcnBjX2Rhcndpbl9tYWNo
X2RlcC5zIFwKKyAgICBtaXBzX3NnaV9tYWNoX2RlcC5zIG1pcHNfdWx0cml4X21hY2hfZGVwLnMg
cG93ZXJwY19kYXJ3aW5fbWFjaF9kZXAucyBcCiAgICAgcnM2MDAwX21hY2hfZGVwLnMgc3BhcmNf
bWFjaF9kZXAuUyBzcGFyY19uZXRic2RfbWFjaF9kZXAucyBcCiAgICAgc3BhcmNfc3Vub3M0X21h
Y2hfZGVwLnMgaWE2NF9zYXZlX3JlZ3NfaW5fc3RhY2sucwogCmRpZmYgLXIgLU5hdXIgb2xkL2Fp
eF9pcml4X3RocmVhZHMuYyBuZXcvYWl4X2lyaXhfdGhyZWFkcy5jCi0tLSBvbGQvYWl4X2lyaXhf
dGhyZWFkcy5jCTIwMDMtMDYtMDMgMTI6MTQ6MTIuMDAwMDAwMDAwIC0wNzAwCisrKyBuZXcvYWl4
X2lyaXhfdGhyZWFkcy5jCTIwMDMtMDYtMDYgMDA6MzE6NTAuMDAwMDAwMDAwIC0wNzAwCkBAIC01
NjMsNyArNTYzLDkgQEAKICAgICB3b3JkIGZsYWdzOwogICAgIHB0cl90IHN0YWNrOwogICAgIHNp
emVfdCBzdGFja19zaXplOwotICAgIHNlbV90IHJlZ2lzdGVyZWQ7CQorICAgIHB0aHJlYWRfbXV0
ZXhfdCByZWdpc3RlcmVkbG9jazsKKyAgICBwdGhyZWFkX2NvbmRfdCByZWdpc3RlcmVkOyAgICAg
CisgICAgaW50IHZvbGF0aWxlIHJlZ2lzdGVyZWRkb25lOwogfTsKIAogdm9pZCBHQ190aHJlYWRf
ZXhpdF9wcm9jKHZvaWQgKmFyZykKQEAgLTYzNiw3ICs2MzgsMTIgQEAKICAgICBVTkxPQ0soKTsK
ICAgICBzdGFydCA9IHNpIC0+IHN0YXJ0X3JvdXRpbmU7CiAgICAgc3RhcnRfYXJnID0gc2kgLT4g
YXJnOwotICAgIHNlbV9wb3N0KCYoc2kgLT4gcmVnaXN0ZXJlZCkpOworCisgICAgcHRocmVhZF9t
dXRleF9sb2NrKCYoc2ktPnJlZ2lzdGVyZWRsb2NrKSk7CisgICAgc2ktPnJlZ2lzdGVyZWRkb25l
ID0gMTsKKyAgICBwdGhyZWFkX2NvbmRfc2lnbmFsKCYoc2ktPnJlZ2lzdGVyZWQpKTsKKyAgICBw
dGhyZWFkX211dGV4X3VubG9jaygmKHNpLT5yZWdpc3RlcmVkbG9jaykpOworCiAgICAgcHRocmVh
ZF9jbGVhbnVwX3B1c2goR0NfdGhyZWFkX2V4aXRfcHJvYywgMCk7CiAgICAgcmVzdWx0ID0gKCpz
dGFydCkoc3RhcnRfYXJnKTsKICAgICBtZSAtPiBzdGF0dXMgPSByZXN1bHQ7CkBAIC03MDQsOSAr
NzExLDggQEAKICAgICAvKiBsaWJyYXJ5LCB3aGljaCBpc24ndCB2aXNpYmxlIHRvIHRoZSBjb2xs
ZWN0b3IuCQkgKi8KIAogICAgIGlmICgwID09IHNpKSByZXR1cm4oRU5PTUVNKTsKLSAgICBpZiAo
MCAhPSBzZW1faW5pdCgmKHNpIC0+IHJlZ2lzdGVyZWQpLCAwLCAwKSkgewotICAgICAgICBBQk9S
VCgic2VtX2luaXQgZmFpbGVkIik7Ci0gICAgfQorICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmKHNp
LT5yZWdpc3RlcmVkbG9jayksIE5VTEwpOworICAgIHB0aHJlYWRfY29uZF9pbml0KCYoc2ktPnJl
Z2lzdGVyZWQpLE5VTEwpOwogICAgIHNpIC0+IHN0YXJ0X3JvdXRpbmUgPSBzdGFydF9yb3V0aW5l
OwogICAgIHNpIC0+IGFyZyA9IGFyZzsKICAgICBMT0NLKCk7CkBAIC03NjMsMTMgKzc2OSwxNSBA
QAogICAgIC8qIFRoaXMgYWxzbyBlbnN1cmVzIHRoYXQgd2UgaG9sZCBvbnRvIHNpIHVudGlsIHRo
ZSBjaGlsZCBpcyBkb25lCSovCiAgICAgLyogd2l0aCBpdC4gIFRodXMgaXQgZG9lc24ndCBtYXR0
ZXIgd2hldGhlciBpdCBpcyBvdGhlcndpc2UJCSovCiAgICAgLyogdmlzaWJsZSB0byB0aGUgY29s
bGVjdG9yLgkJCQkJKi8KLSAgICAgICAgd2hpbGUgKDAgIT0gc2VtX3dhaXQoJihzaSAtPiByZWdp
c3RlcmVkKSkpIHsKLQkgIGlmIChlcnJubyAhPSBFSU5UUikgewotCSAgICBHQ19wcmludGYxKCJT
ZW1fd2FpdDogZXJybm8gPSAlbGRcbiIsICh1bnNpZ25lZCBsb25nKSBlcnJubyk7Ci0JICAgIEFC
T1JUKCJzZW1fd2FpdCBmYWlsZWQiKTsKLQkgIH0KLQl9Ci0gICAgICAgIHNlbV9kZXN0cm95KCYo
c2kgLT4gcmVnaXN0ZXJlZCkpOworCisgICAgc2ktPnJlZ2lzdGVyZWRkb25lID0gMDsKKyAgICBw
dGhyZWFkX211dGV4X2xvY2soJihzaS0+cmVnaXN0ZXJlZGxvY2spKTsKKyAgICB3aGlsZSAoIXNp
LT5yZWdpc3RlcmVkZG9uZSkgCisgICAgICBwdGhyZWFkX2NvbmRfd2FpdCgmKHNpLT5yZWdpc3Rl
cmVkKSwgJihzaS0+cmVnaXN0ZXJlZGxvY2spKTsKKyAgICBwdGhyZWFkX211dGV4X3VubG9jaygm
KHNpLT5yZWdpc3RlcmVkbG9jaykpOworCisgICAgcHRocmVhZF9jb25kX2Rlc3Ryb3koJihzaS0+
cmVnaXN0ZXJlZCkpOworICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmKHNpLT5yZWdpc3RlcmVk
bG9jaykpOwogICAgIHB0aHJlYWRfYXR0cl9kZXN0cm95KCZuZXdfYXR0cik7ICAKIAogICAgIHJl
dHVybihyZXN1bHQpOwpkaWZmIC1yIC1OYXVyIG9sZC9jb25maWd1cmUuaW4gbmV3L2NvbmZpZ3Vy
ZS5pbgotLS0gb2xkL2NvbmZpZ3VyZS5pbgkyMDAzLTA2LTAzIDEzOjM4OjA4LjAwMDAwMDAwMCAt
MDcwMAorKysgbmV3L2NvbmZpZ3VyZS5pbgkyMDAzLTA2LTA2IDAwOjU0OjU0LjAwMDAwMDAwMCAt
MDcwMApAQCAtMTU4LDYgKzE1OCwxMiBAQAogICAgICMgRW5hYmxlIF9QT1NJWDRBX0RSQUZUMTBf
U09VUkNFIHdpdGggZmxhZyAtcHRocmVhZAogICAgIElOQ0xVREVTPSItcHRocmVhZCAkSU5DTFVE
RVMiCiAgICAgOzsKKyBhaXgpCisgICAgVEhSRUFEUz1wb3NpeAorICAgIFRIUkVBRExJQlM9LWxw
dGhyZWFkCisgICAgQUNfREVGSU5FKEdDX0FJWF9USFJFQURTKQorICAgIEFDX0RFRklORShfUkVF
TlRSQU5UKQorICAgIDs7CiAgZGVjb3NmMSB8IGlyaXggfCBtYWNoIHwgb3MyIHwgc29sYXJpcyB8
IGRjZSB8IHZ4d29ya3MpCiAgICAgQUNfTVNHX0VSUk9SKHRocmVhZCBwYWNrYWdlICRUSFJFQURT
IG5vdCB5ZXQgc3VwcG9ydGVkKQogICAgIDs7CmRpZmYgLXIgLU5hdXIgb2xkL2luY2x1ZGUvZ2Nf
dHlwZWQuaCBuZXcvaW5jbHVkZS9nY190eXBlZC5oCi0tLSBvbGQvaW5jbHVkZS9nY190eXBlZC5o
CTIwMDItMTAtMTcgMDc6Mzk6NTAuMDAwMDAwMDAwIC0wNzAwCisrKyBuZXcvaW5jbHVkZS9nY190
eXBlZC5oCTIwMDMtMDYtMDYgMDA6NTA6NTAuMDAwMDAwMDAwIC0wNzAwCkBAIC02Nyw3ICs2Nyw3
IEBACiAvKiBJdCBpcyBwb3NzaWJsZSB0byBnZW5lcmF0ZSBhIGRlc2NyaXB0b3IgZm9yIGEgQyB0
eXBlIFQgd2l0aAkqLwogLyogd29yZCBhbGlnbmVkIHBvaW50ZXIgZmllbGRzIGYxLCBmMiwgLi4u
IGFzIGZvbGxvd3M6CQkJKi8KIC8qCQkJCQkJCQkJKi8KLS8qIEdDX2Rlc2NyIFRfZGVzY3I7Cisv
KiBHQ19kZXNjciBUX2Rlc2NyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqLwogLyogR0Nfd29yZCBUX2JpdG1hcFtHQ19CSVRNQVBfU0laRShUKV0g
PSB7MH07CQkJCSovCiAvKiBHQ19zZXRfYml0KFRfYml0bWFwLCBHQ19XT1JEX09GRlNFVChULGYx
KSk7CQkJCSovCiAvKiBHQ19zZXRfYml0KFRfYml0bWFwLCBHQ19XT1JEX09GRlNFVChULGYyKSk7
CQkJCSovCmRpZmYgLXIgLU5hdXIgb2xkL2luY2x1ZGUvcHJpdmF0ZS9nY19wcml2LmggbmV3L2lu
Y2x1ZGUvcHJpdmF0ZS9nY19wcml2LmgKLS0tIG9sZC9pbmNsdWRlL3ByaXZhdGUvZ2NfcHJpdi5o
CTIwMDMtMDYtMDMgMTE6MTY6MzQuMDAwMDAwMDAwIC0wNzAwCisrKyBuZXcvaW5jbHVkZS9wcml2
YXRlL2djX3ByaXYuaAkyMDAzLTA2LTA2IDA0OjQxOjA0LjAwMDAwMDAwMCAtMDcwMApAQCAtMTg2
MSw3ICsxODYxLDEzIEBACiAKIC8qIENoZWNrIGEgY29tcGlsZSB0aW1lIGFzc2VydGlvbiBhdCBj
b21waWxlIHRpbWUuICBUaGUgZXJyb3IJKi8KIC8qIG1lc3NhZ2UgZm9yIGZhaWx1cmUgaXMgYSBi
aXQgYmFyb3F1ZSwgYnV0IC4uLgkJKi8KKyNpZiBkZWZpbmVkKG1pcHMpICYmICFkZWZpbmVkKF9f
R05VQ19fKQorLyogRE9COiBNSVBTUHJvIEMgZ2V0cyBhbiBpbnRlcm5hbCBlcnJvciB0YWtpbmcg
dGhlIHNpemVvZiBhbiBhcnJheSB0eXBlLiAKKyAgIFRoaXMgY29kZSB3b3JrcyBjb3JyZWN0bHkg
KHVnbGluZXNzIGlzIHRvIGF2b2lkICJ1bnVzZWQgdmFyIiB3YXJuaW5ncykgKi8KKyMgZGVmaW5l
IEdDX1NUQVRJQ19BU1NFUlQoZXhwcikgZG8geyBpZiAoMCkgeyBjaGFyIGpbKGV4cHIpPyAxIDog
LTFdOyBqWzBdPSdcMCc7IGpbMF09alswXTsgfSB9IHdoaWxlKDApCisjZWxzZQogIyBkZWZpbmUg
R0NfU1RBVElDX0FTU0VSVChleHByKSBzaXplb2YoY2hhclsoZXhwcik/IDEgOiAtMV0pCisjZW5k
aWYKIAogIyBpZiBkZWZpbmVkKFBBUkFMTEVMX01BUkspIHx8IGRlZmluZWQoVEhSRUFEX0xPQ0FM
X0FMTE9DKQogICAgIC8qIFdlIG5lZWQgYWRkaXRpb25hbCBzeW5jaHJvbml6YXRpb24gZmFjaWxp
dGllcyBmcm9tIHRoZSB0aHJlYWQJKi8KZGlmZiAtciAtTmF1ciBvbGQvbWlwc19zZ2lfbWFjaF9k
ZXAuUyBuZXcvbWlwc19zZ2lfbWFjaF9kZXAuUwotLS0gb2xkL21pcHNfc2dpX21hY2hfZGVwLlMJ
MjAwMS0wNi0xMiAwOTowODo1MC4wMDAwMDAwMDAgLTA3MDAKKysrIG5ldy9taXBzX3NnaV9tYWNo
X2RlcC5TCTE5NjktMTItMzEgMTY6MDA6MDAuMDAwMDAwMDAwIC0wODAwCkBAIC0xLDQxICswLDAg
QEAKLSNpbmNsdWRlIDxzeXMvcmVnZGVmLmg+Ci0jaW5jbHVkZSA8c3lzL2FzbS5oPgotCi0jIGRl
ZmluZSBjYWxsX3B1c2goeCkgICAgIG1vdmUgICAgJDQseDsgICAgamFsICAgICBHQ19wdXNoX29u
ZQotCi0gICAgLm9wdGlvbiBwaWMyCi0gICAgLnRleHQKLS8qIE1hcmsgZnJvbSBtYWNoaW5lIHJl
Z2lzdGVycyB0aGF0IGFyZSBzYXZlZCBieSBDIGNvbXBpbGVyICovCi0jICAgZGVmaW5lIEZSQU1F
U1ogMzIKLSMgICBkZWZpbmUgUkFPRkYgRlJBTUVTWi1TWlJFRwotIyAgIGRlZmluZSBHUE9GRiBG
UkFNRVNaLSgyKlNaUkVHKQotICAgIE5FU1RFRChHQ19wdXNoX3JlZ3MsIEZSQU1FU1osIHJhKQot
ICAgIC5tYXNrIDB4ODAwMDAwMDAsLVNaUkVHCSMgaW5mb3JtIGRlYnVnZ2VyIG9mIHNhdmVkIHJh
IGxvYwotICAgIG1vdmUgCXQwLGdwCi0gICAgU0VUVVBfR1BYKHQ4KQotICAgIFBUUl9TVUJVCXNw
LEZSQU1FU1oKLSMgICBpZmRlZiBTRVRVUF9HUDY0Ci0gICAgICBTRVRVUF9HUDY0KEdQT0ZGLCBH
Q19wdXNoX3JlZ3MpCi0jICAgZW5kaWYKLSAgICBTQVZFX0dQKEdQT0ZGKQotICAgIFJFR19TIAly
YSxSQU9GRihzcCkKLSMgICBpZiAoX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMikKLSAgICAJ
Y2FsbF9wdXNoKCQyKQotICAgIAljYWxsX3B1c2goJDMpCi0jICAgZW5kaWYKLSAgICBjYWxsX3B1
c2goJDE2KQotICAgIGNhbGxfcHVzaCgkMTcpCi0gICAgY2FsbF9wdXNoKCQxOCkKLSAgICBjYWxs
X3B1c2goJDE5KQotICAgIGNhbGxfcHVzaCgkMjApCi0gICAgY2FsbF9wdXNoKCQyMSkKLSAgICBj
YWxsX3B1c2goJDIyKQotICAgIGNhbGxfcHVzaCgkMjMpCi0gICAgY2FsbF9wdXNoKCQzMCkKLSAg
ICBSRUdfTAlyYSxSQU9GRihzcCkKLSMgICBpZmRlZiBSRVNUT1JFX0dQNjQKLSAgICAgIFJFU1RP
UkVfR1A2NAotIyAgIGVuZGlmCi0gICAgUFRSX0FERFUJc3AsRlJBTUVTWgotICAgIGoJCXJhCi0g
ICAgLmVuZCAgICBHQ19wdXNoX3JlZ3MKZGlmZiAtciAtTmF1ciBvbGQvbWlwc19zZ2lfbWFjaF9k
ZXAucyBuZXcvbWlwc19zZ2lfbWFjaF9kZXAucwotLS0gb2xkL21pcHNfc2dpX21hY2hfZGVwLnMJ
MTk2OS0xMi0zMSAxNjowMDowMC4wMDAwMDAwMDAgLTA4MDAKKysrIG5ldy9taXBzX3NnaV9tYWNo
X2RlcC5zCTIwMDEtMDYtMTIgMDk6MDg6NTAuMDAwMDAwMDAwIC0wNzAwCkBAIC0wLDAgKzEsNDEg
QEAKKyNpbmNsdWRlIDxzeXMvcmVnZGVmLmg+CisjaW5jbHVkZSA8c3lzL2FzbS5oPgorCisjIGRl
ZmluZSBjYWxsX3B1c2goeCkgICAgIG1vdmUgICAgJDQseDsgICAgamFsICAgICBHQ19wdXNoX29u
ZQorCisgICAgLm9wdGlvbiBwaWMyCisgICAgLnRleHQKKy8qIE1hcmsgZnJvbSBtYWNoaW5lIHJl
Z2lzdGVycyB0aGF0IGFyZSBzYXZlZCBieSBDIGNvbXBpbGVyICovCisjICAgZGVmaW5lIEZSQU1F
U1ogMzIKKyMgICBkZWZpbmUgUkFPRkYgRlJBTUVTWi1TWlJFRworIyAgIGRlZmluZSBHUE9GRiBG
UkFNRVNaLSgyKlNaUkVHKQorICAgIE5FU1RFRChHQ19wdXNoX3JlZ3MsIEZSQU1FU1osIHJhKQor
ICAgIC5tYXNrIDB4ODAwMDAwMDAsLVNaUkVHCSMgaW5mb3JtIGRlYnVnZ2VyIG9mIHNhdmVkIHJh
IGxvYworICAgIG1vdmUgCXQwLGdwCisgICAgU0VUVVBfR1BYKHQ4KQorICAgIFBUUl9TVUJVCXNw
LEZSQU1FU1oKKyMgICBpZmRlZiBTRVRVUF9HUDY0CisgICAgICBTRVRVUF9HUDY0KEdQT0ZGLCBH
Q19wdXNoX3JlZ3MpCisjICAgZW5kaWYKKyAgICBTQVZFX0dQKEdQT0ZGKQorICAgIFJFR19TIAly
YSxSQU9GRihzcCkKKyMgICBpZiAoX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMikKKyAgICAJ
Y2FsbF9wdXNoKCQyKQorICAgIAljYWxsX3B1c2goJDMpCisjICAgZW5kaWYKKyAgICBjYWxsX3B1
c2goJDE2KQorICAgIGNhbGxfcHVzaCgkMTcpCisgICAgY2FsbF9wdXNoKCQxOCkKKyAgICBjYWxs
X3B1c2goJDE5KQorICAgIGNhbGxfcHVzaCgkMjApCisgICAgY2FsbF9wdXNoKCQyMSkKKyAgICBj
YWxsX3B1c2goJDIyKQorICAgIGNhbGxfcHVzaCgkMjMpCisgICAgY2FsbF9wdXNoKCQzMCkKKyAg
ICBSRUdfTAlyYSxSQU9GRihzcCkKKyMgICBpZmRlZiBSRVNUT1JFX0dQNjQKKyAgICAgIFJFU1RP
UkVfR1A2NAorIyAgIGVuZGlmCisgICAgUFRSX0FERFUJc3AsRlJBTUVTWgorICAgIGoJCXJhCisg
ICAgLmVuZCAgICBHQ19wdXNoX3JlZ3MKZGlmZiAtciAtTmF1ciBvbGQvcHRocmVhZF9zdG9wX3dv
cmxkLmMgbmV3L3B0aHJlYWRfc3RvcF93b3JsZC5jCi0tLSBvbGQvcHRocmVhZF9zdG9wX3dvcmxk
LmMJMjAwMy0wNS0yOSAwODo1MDoxMC4wMDAwMDAwMDAgLTA3MDAKKysrIG5ldy9wdGhyZWFkX3N0
b3Bfd29ybGQuYwkyMDAzLTA2LTA2IDAwOjQwOjE0LjAwMDAwMDAwMCAtMDcwMApAQCAtMiw3ICsy
LDcgQEAKIAogI2lmIGRlZmluZWQoR0NfUFRIUkVBRFMpICYmICFkZWZpbmVkKEdDX1NPTEFSSVNf
VEhSRUFEUykgXAogICAgICAmJiAhZGVmaW5lZChHQ19JUklYX1RIUkVBRFMpICYmICFkZWZpbmVk
KEdDX1dJTjMyX1RIUkVBRFMpIFwKLSAgICAgJiYgIWRlZmluZWQoR0NfREFSV0lOX1RIUkVBRFMp
CisgICAgICYmICFkZWZpbmVkKEdDX0RBUldJTl9USFJFQURTKSAmJiAhZGVmaW5lZChHQ19BSVhf
VEhSRUFEUykKIAogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPHNlbWFwaG9yZS5oPgpk
aWZmIC1yIC1OYXVyIG9sZC9wdGhyZWFkX3N1cHBvcnQuYyBuZXcvcHRocmVhZF9zdXBwb3J0LmMK
LS0tIG9sZC9wdGhyZWFkX3N1cHBvcnQuYwkyMDAzLTA2LTAzIDExOjQ0OjI4LjAwMDAwMDAwMCAt
MDcwMAorKysgbmV3L3B0aHJlYWRfc3VwcG9ydC5jCTIwMDMtMDYtMDYgMDc6MDA6MjAuMDAwMDAw
MDAwIC0wNzAwCkBAIC0yOSwxMSArMjksOCBAQAogIC8qIERHL1VYIGl4ODYgc3VwcG9ydCA8dGFr
aXNAeGZyZWU4Ni5vcmc+ICovCiAvKgogICogTGludXhfdGhyZWFkcy5jIG5vdyBhbHNvIGluY2x1
ZGVzIHNvbWUgY29kZSB0byBzdXBwb3J0IEhQVVggYW5kCi0gKiBPU0YxIChDb21wYXEgVHJ1NjQg
VW5peCwgcmVhbGx5KS4gIFRoZSBPU0YxIHN1cHBvcnQgaXMgbm90IHlldAotICogZnVuY3Rpb25h
bC4gIFRoZSBPU0YxIGNvZGUgaXMgYmFzZWQgb24gRXJpYyBCZW5zb24ncwotICogcGF0Y2gsIHRo
b3VnaCB0aGF0IHdhcyBvcmlnaW5hbGx5IGFnYWluc3QgaHB1eF9pcml4X3RocmVhZHMuICBUaGUg
Y29kZQotICogaGVyZSBpcyBjb21wbGV0ZWx5IHVudGVzdGVkLiAgV2l0aCAwLjAwMDAwMDElIHBy
b2JhYmlsaXR5LCBpdCBtaWdodAotICogYWN0dWFsbHkgd29yay4KKyAqIE9TRjEgKENvbXBhcSBU
cnU2NCBVbml4LCByZWFsbHkpLiAgVGhlIE9TRjEgc3VwcG9ydCBpcyBiYXNlZCBvbiBFcmljIEJl
bnNvbidzCisgKiBwYXRjaC4KICAqCiAgKiBFcmljIGFsc28gc3VnZ2VzdGVkIGFuIGFsdGVybmF0
ZSBiYXNpcyBmb3IgYSBsb2NrIGltcGxlbWVudGF0aW9uIGluCiAgKiBoaXMgY29kZToKZGlmZiAt
ciAtTmF1ciBvbGQvdGhyZWFkbGlicy5jIG5ldy90aHJlYWRsaWJzLmMKLS0tIG9sZC90aHJlYWRs
aWJzLmMJMjAwMy0wNS0zMCAxNzo1ODo0Mi4wMDAwMDAwMDAgLTA3MDAKKysrIG5ldy90aHJlYWRs
aWJzLmMJMjAwMy0wNi0wNiAwNjo1NDozOC4wMDAwMDAwMDAgLTA3MDAKQEAgLTI0LDcgKzI0LDcg
QEAKICAgICAgICAgcHJpbnRmKCItbHB0aHJlYWRcbiIpOwogIyAgIGVuZGlmCiAjICAgaWYgZGVm
aW5lZChHQ19PU0YxX1RIUkVBRFMpCi0JcHJpbnRmKCItbHB0aHJlYWQgLWxydCIpOworCXByaW50
ZigiLXB0aHJlYWQgLWxydCIpOyAvKiBET0I6IG11c3QgYmUgLXB0aHJlYWQsIG5vdCAtbHB0aHJl
YWQgKi8KICMgICBlbmRpZgogICAgIC8qIFlvdSBuZWVkIEdDQyAzLjAuMyB0byBidWlsZCB0aGlz
IG9uZSEgICAgICAgICAgICovICAKICAgICAvKiBERy9VWCBuYXRpdmUgZ2NjIGRvZXNudCBrbm93
IHdoYXQgIi1wdGhyZWFkIiBpcyAqLwo=
--=====================_92713665==_--