From: Erik Huelsmann Date: 2005-05-14T18:06:32+09:00 Subject: [PATCH] Win32: Ruby & APR; build problems for Ruby Subversion SWIG bindings ------=_Part_12010_18206299.1116061571685 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline As promised, I attached a patch to eliminate the compile problems where APR and ruby headers need to combined. In my case, the usecase is that I want to compile a ruby extention for APR based software. The log: [[[ Resolve possible type definition conflicts by defining types in the rb_ namespace instead of defining POSIX type names. * configure.in: Check for the availability of pid_t, gid_t and uid_t. * defines.h: Remove pid_t typedef. * ruby.h: Define rb_pid_t, rb_gid_t and rb_uid_t in accordance with the available system types. * process.c: Change instances of pid_t and gid_t to their rb_* counterparts. * ext/pty/pty.c: Change pid_t to rb_pid_t. * vms/config.h: Define HAVE_{P,G,U}ID_T to 1. * win32/Makefile.sub: Define HAVE_{P,G,U}ID_T to 0. * win32/win32.c: Change pid_t to rb_pid_t. * wince/Makefile.sub: Define HAVE_{P,G,U}ID_T to 0. * wince/sys/types.h: Remove definitions of {p,g,u}id_t. ]]] Note that I submitted a patch to APR too which should resolve future problems with other software. I'd appreciate it if you would accept (a variant of) this patch into the ruby tree. bye, Erik. On 4/26/05, Erik Huelsmann wrote: > On 4/26/05, nobu.nokada@softhome.net wrote: > > Hi, > > > > At Tue, 26 Apr 2005 05:05:02 +0900, > > Erik Huelsmann wrote in [ruby-core:04794]: > > > > > platforms, it uses what's there. Just like Ruby. I don't think it= 's a > > > > > solution for ruby to require that APR uses #undef before the type= def: > > > > > that would require a change to *all* software with which Ruby is = meant > > > > > to be compiled on windows. Not a pretty solution. > > > > > > > > And APR requires a change to all autoconfiscated softwares. > > > > > > Actually, Ruby uses a #define (as a result from the old use of > > > AC_CHECK_TYPE, probably), but the autoconf manual itself says that > > > AC_CHECK_TYPE with 2 arguments is flawed because it uses #define > > > instead of typedef. > > > > What `flaw'? Using #define instead of typedef itself? I don't > > consider it a flaw. typedef has its own problem, too. What's > > the reason why you claim that #define is wrong? >=20 > *I* don't call it a flaw, the Autoconf manual does. It has called it a > flaw ever since Autoconf 2.13 (see the section on AC_CHECK_TYPE and > its 2 variants). >=20 > I don't think using '#define' more wrong than it is to use 'typedef': > In both cases you're creating a type which is also defined in a > published standard. That's wrong, since there's no guarantee that your > software won't be combined (using SWIG for example) with software > which is going to try to do the same. That's bound to lead to the > conflict we're seeing. >=20 > > > > > I think neither APR nor Ruby should be 'messing' with types defin= ed by > > > > > POSIX. I'm preparing a patch for APR to stop doing this. > > > > > > > > Agreed. typedef which can'te be redefined nor detected at > > > > compile time shouldn't, at least. > > > > > > Right, but since the Subversion Ruby bindings have to include both > > > ruby.h and apr.h (which should both use typedef for pid_t, if they > > > were to define it with the 'new' autoconf). So you see the conflict > > > growing fast: apr can't itself rely on ruby.h being included, nor can > > > ruby.h rely on apr.h being included, yet both systems try to define > > > pid_t. > > > > So macro would be better than typedef in that sense. Anyhow, > > the macro is mandatory to compile them together. > > > > Maybe best ways were that all programs using pid_t have: > > > > #ifndef pid_t > > typedef int pid_t; > > #define pid_t pid_t > > #endif >=20 > In this case you're depending on other software being written adhering > to certain standards. If you do: >=20 > #if HAVE_PID_T > typedef pid_t rb_pid_t; > #else > typedef int rb_pid_t; > #endif >=20 > You're not depending on any software defining or redefining anything. > So, I'd say that's the preferred way to do it. >=20 > All this said, I downloaded a ruby snapshot yesterday (given that the > CVS service is still down). There are very few ruby internals which > refer to the pid_t type, so it will be a minimal patch to define an > rb_pid_t. >=20 > bye, >=20 >=20 > Erik. > ------=_Part_12010_18206299.1116061571685 Content-Type: application/octet-stream; name="non-conflicting-defines.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="non-conflicting-defines.diff" PyBub24tY29uZmxpY3RpbmctZGVmaW5lcy5kaWZmCj8gZXh0L2RsL2NhbGxiYWNrLmgKPyBleHQv cmlwcGVyL21rbWYubG9nCj8gZXh0L3JpcHBlci9yaXBwZXIub3V0cHV0Cj8gZXh0L3NvY2tldC9j b25zdGFudHMuaApJbmRleDogY29uZmlndXJlLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9zcmMv cnVieS9jb25maWd1cmUuaW4sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjc1CmRpZmYgLXUgLXIx LjI3NSBjb25maWd1cmUuaW4KLS0tIGNvbmZpZ3VyZS5pbgkzMCBBcHIgMjAwNSAwMjo1OTo0MSAt MDAwMAkxLjI3NQorKysgY29uZmlndXJlLmluCTE0IE1heSAyMDA1IDA3OjQ1OjAyIC0wMDAwCkBA IC0yMjYsNiArMjI2LDggQEAKIEFDX0NIRUNLX1NJWkVPRihkb3VibGUsIDgpCiBBQ19DSEVDS19T SVpFT0YodGltZV90LCAwKQogCitBQ19DSEVDS19UWVBFUyhbcGlkX3QsIGdpZF90LCB1aWRfdF0p CisKIEFDX0NBQ0hFX0NIRUNLKGZvciBwcm90b3R5cGVzLCByYl9jdl9oYXZlX3Byb3RvdHlwZXMs CiAgIFtBQ19UUllfQ09NUElMRShbaW50IGZvbyhpbnQgeCkgeyByZXR1cm4gMDsgfV0sIFtyZXR1 cm4gZm9vKDEwKTtdLAogCXJiX2N2X2hhdmVfcHJvdG90eXBlcz15ZXMsCkluZGV4OiBkZWZpbmVz LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NyYy9ydWJ5L2RlZmluZXMuaCx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS40MQpkaWZmIC11IC1yMS40MSBkZWZpbmVzLmgKLS0tIGRlZmluZXMuaAkxNCBB cHIgMjAwNCAwMjowMzoxNSAtMDAwMAkxLjQxCisrKyBkZWZpbmVzLmgJMTQgTWF5IDIwMDUgMDc6 NDU6MDIgLTAwMDAKQEAgLTE3Niw3ICsxNzYsNiBAQAogI2lmbmRlZiBYX09LCiAjZGVmaW5lIFhf T0sgMQogI2VuZGlmCi10eXBlZGVmIGludCBwaWRfdDsKICNlbmRpZiAvKiBfX0FQUExFX18gKi8K ICNlbmRpZiAvKiBOZVhUICovCiAKSW5kZXg6IHByb2Nlc3MuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiAvc3JjL3J1YnkvcHJvY2Vzcy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEyOQpkaWZmIC11 IC1yMS4xMjkgcHJvY2Vzcy5jCi0tLSBwcm9jZXNzLmMJNCBNYXIgMjAwNSAwNjo0Nzo0MSAtMDAw MAkxLjEyOQorKysgcHJvY2Vzcy5jCTE0IE1heSAyMDA1IDA3OjQ1OjAzIC0wMDAwCkBAIC0xODQ3 LDE0ICsxODQ3LDE0IEBACiAgICAgaWYgKHBpZCA8IDApIHJiX3N5c19mYWlsKDApOwogICAgIHJl dHVybiBJTlQyRklYKHBpZCk7CiAjZWxpZiBkZWZpbmVkKEhBVkVfU0VUUEdSUCkgJiYgZGVmaW5l ZChUSU9DTk9UVFkpCi0gIHBpZF90IHBpZDsKKyAgcmJfcGlkX3QgcGlkOwogICBpbnQgcmV0Owog CiAgIHJiX3NlY3VyZSgyKTsKICAgcGlkID0gZ2V0cGlkKCk7CiAjaWYgZGVmaW5lZChTRVRQR1JQ X1ZPSUQpCiAgIHJldCA9IHNldHBncnAoKTsKLSAgLyogSWYgYHBpZF90IHNldHBncnAodm9pZCkn IGlzIGVxdWl2YWxlbnQgdG8gc2V0c2lkKCksCisgIC8qIElmIGByYl9waWRfdCBzZXRwZ3JwKHZv aWQpJyBpcyBlcXVpdmFsZW50IHRvIHNldHNpZCgpLAogICAgICBgcmV0JyB3aWxsIGJlIHRoZSBz YW1lIHZhbHVlIGFzIGBwaWQnLCBhbmQgZm9sbG93aW5nIG9wZW4oKSB3aWxsIGZhaWwuCiAgICAg IEluIExpbnV4LCBgaW50IHNldHBncnAodm9pZCknIGlzIGVxdWl2YWxlbnQgdG8gc2V0cGdpZCgw LCAwKS4gKi8KICNlbHNlCkBAIC0yNjQyLDEwICsyNjQyLDEwIEBACiAjaWZkZWYgSEFWRV9HRVRH Uk9VUFMKICAgICBWQUxVRSBhcnk7CiAgICAgc2l6ZV90IG5ncm91cHM7Ci0gICAgZ2lkX3QgKmdy b3VwczsKKyAgICByYl9naWRfdCAqZ3JvdXBzOwogICAgIGludCBpOwogCi0gICAgZ3JvdXBzID0g QUxMT0NBX04oZ2lkX3QsIG1heGdyb3Vwcyk7CisgICAgZ3JvdXBzID0gQUxMT0NBX04ocmJfZ2lk X3QsIG1heGdyb3Vwcyk7CiAKICAgICBuZ3JvdXBzID0gZ2V0Z3JvdXBzKG1heGdyb3VwcywgZ3Jv dXBzKTsKICAgICBpZiAobmdyb3VwcyA9PSAtMSkKQEAgLTI2ODEsNyArMjY4MSw3IEBACiB7CiAj aWZkZWYgSEFWRV9TRVRHUk9VUFMKICAgICBzaXplX3Qgbmdyb3VwczsKLSAgICBnaWRfdCAqZ3Jv dXBzOworICAgIHJiX2dpZF90ICpncm91cHM7CiAgICAgaW50IGk7CiAgICAgc3RydWN0IGdyb3Vw ICpncjsKIApAQCAtMjY5MSw3ICsyNjkxLDcgQEAKICAgICBpZiAobmdyb3VwcyA+IG1heGdyb3Vw cykKIAlyYl9yYWlzZShyYl9lQXJnRXJyb3IsICJ0b28gbWFueSBncm91cHMsICVkIG1heCIsIG1h eGdyb3Vwcyk7CiAKLSAgICBncm91cHMgPSBBTExPQ0FfTihnaWRfdCwgbmdyb3Vwcyk7CisgICAg Z3JvdXBzID0gQUxMT0NBX04ocmJfZ2lkX3QsIG5ncm91cHMpOwogCiAgICAgZm9yIChpID0gMDsg aSA8IG5ncm91cHMgJiYgaSA8IFJBUlJBWShhcnkpLT5sZW47IGkrKykgewogCVZBTFVFIGcgPSBS QVJSQVkoYXJ5KS0+cHRyW2ldOwpAQCAtMjc0OSw3ICsyNzQ5LDcgQEAKICAgICBWQUxVRSBvYmos IHVuYW1lLCBiYXNlX2dycDsKIHsKICNpZmRlZiBIQVZFX0lOSVRHUk9VUFMKLSAgICBpZiAoaW5p dGdyb3VwcyhTdHJpbmdWYWx1ZVB0cih1bmFtZSksIChnaWRfdClOVU0ySU5UKGJhc2VfZ3JwKSkg IT0gMCkgeworICAgIGlmIChpbml0Z3JvdXBzKFN0cmluZ1ZhbHVlUHRyKHVuYW1lKSwgKHJiX2dp ZF90KU5VTTJJTlQoYmFzZV9ncnApKSAhPSAwKSB7CiAJcmJfc3lzX2ZhaWwoMCk7CiAgICAgfQog ICAgIHJldHVybiBwcm9jX2dldGdyb3VwcyhvYmopOwpJbmRleDogcnVieS5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9zcmMvcnVieS9ydWJ5LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTExCmRp ZmYgLXUgLXIxLjExMSBydWJ5LmgKLS0tIHJ1YnkuaAkzMCBBcHIgMjAwNSAwMjo1OTo0MSAtMDAw MAkxLjExMQorKysgcnVieS5oCTE0IE1heSAyMDA1IDA3OjQ1OjAzIC0wMDAwCkBAIC04Miw2ICs4 MiwyNSBAQAogdHlwZWRlZiB1bnNpZ25lZCBsb25nIFZBTFVFOwogdHlwZWRlZiB1bnNpZ25lZCBs b25nIElEOwogCisjaWYgISBIQVZFX1BJRF9UCisgIHR5cGVkZWYgaW50IHJiX3BpZF90OworI2Vs c2UKKyAgdHlwZWRlZiBwaWRfdCByYl9waWRfdDsKKyNlbmRpZgorCisjaWYgISBIQVZFX0dJRF9U CisgIHR5cGVkZWYgaW50IHJiX2dpZF90OworI2Vsc2UKKyAgdHlwZWRlZiBnaWRfdCByYl9naWRf dDsKKyNlbmRpZgorCisjaWYgISBIQVZFX1VJRF9UCisgIHR5cGVkZWYgaW50IHJiX3VpZF90Owor I2Vsc2UKKyAgdHlwZWRlZiB1aWRfdCByYl91aWRfdDsKKyNlbmRpZgorCisKICNpZmRlZiBfX1NU RENfXwogIyBpbmNsdWRlIDxsaW1pdHMuaD4KICNlbHNlCkluZGV4OiBleHQvcHR5L3B0eS5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KUkNTIGZpbGU6IC9zcmMvcnVieS9leHQvcHR5L3B0eS5jLHYKcmV0cmlldmluZyBy ZXZpc2lvbiAxLjIyCmRpZmYgLXUgLXIxLjIyIHB0eS5jCi0tLSBleHQvcHR5L3B0eS5jCTQgTWFy IDIwMDUgMDY6NDc6MzggLTAwMDAJMS4yMgorKysgZXh0L3B0eS9wdHkuYwkxNCBNYXkgMjAwNSAw Nzo0NTowMyAtMDAwMApAQCAtMTI4LDcgKzEyOCw3IEBACiAKIHN0cnVjdCBwdHlfaW5mbyB7CiAg ICAgaW50IGZkOwotICAgIHBpZF90IGNoaWxkX3BpZDsKKyAgICByYl9waWRfdCBjaGlsZF9waWQ7 CiAgICAgVkFMVUUgdGhyZWFkOwogfTsKIApJbmRleDogdm1zL2NvbmZpZy5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9zcmMvcnVieS92bXMvY29uZmlnLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu MQpkaWZmIC11IC1yMS4xIGNvbmZpZy5oCi0tLSB2bXMvY29uZmlnLmgJMjYgRGVjIDIwMDMgMDE6 Mzk6MjUgLTAwMDAJMS4xCisrKyB2bXMvY29uZmlnLmgJMTQgTWF5IDIwMDUgMDc6NDU6MDQgLTAw MDAKQEAgLTIzLDYgKzIzLDkgQEAKICNkZWZpbmUgSEFWRV9HRVRQR1JQIDEKIC8qICNkZWZpbmUg SEFWRV9HRVRQUklPUklUWSAxICovCiAvKiAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEgKi8KKyNk ZWZpbmUgSEFWRV9QSURfVCAxCisjZGVmaW5lIEhBVkVfR0lEX1QgMQorI2RlZmluZSBIQVZFX1VJ RF9UIDEKICNkZWZpbmUgSEFWRV9IWVBPVCAxCiAjZGVmaW5lIEhBVkVfSVNBU0NJSSAxCiAvKiAj ZGVmaW5lIEhBVkVfSVNJTkYgMSAqLwpJbmRleDogd2luMzIvTWFrZWZpbGUuc3ViCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KUkNTIGZpbGU6IC9zcmMvcnVieS93aW4zMi9NYWtlZmlsZS5zdWIsdgpyZXRyaWV2aW5nIHJl dmlzaW9uIDEuOTQKZGlmZiAtdSAtcjEuOTQgTWFrZWZpbGUuc3ViCi0tLSB3aW4zMi9NYWtlZmls ZS5zdWIJMTMgTWF5IDIwMDUgMTQ6NDQ6NDMgLTAwMDAJMS45NAorKysgd2luMzIvTWFrZWZpbGUu c3ViCTE0IE1heSAyMDA1IDA3OjQ1OjA0IC0wMDAwCkBAIC0yMjksOCArMjI5LDkgQEAKICNkZWZp bmUgSEFWRV9GQ05UTF9IIDEKICNkZWZpbmUgSEFWRV9TWVNfVVRJTUVfSCAxCiAjZGVmaW5lIEhB VkVfRkxPQVRfSCAxCi0jZGVmaW5lIHVpZF90IGludAotI2RlZmluZSBnaWRfdCBpbnQKKyNkZWZp bmUgSEFWRV9HSURfVCAwCisjZGVmaW5lIEhBVkVfUElEX1QgMAorI2RlZmluZSBIQVZFX1VJRF9U IDAKICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKICNkZWZpbmUgSEFWRV9TVF9S REVWIDEKICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CkluZGV4OiB3aW4zMi93aW4zMi5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KUkNTIGZpbGU6IC9zcmMvcnVieS93aW4zMi93aW4zMi5jLHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjE0NwpkaWZmIC11IC1yMS4xNDcgd2luMzIuYwotLS0gd2luMzIvd2luMzIuYwk1IE1h ciAyMDA1IDA5OjMwOjI0IC0wMDAwCTEuMTQ3CisrKyB3aW4zMi93aW4zMi5jCTE0IE1heSAyMDA1 IDA3OjQ1OjA1IC0wMDAwCkBAIC00NDUsNyArNDQ1LDcgQEAKIAogc3RhdGljIHN0cnVjdCBDaGls ZFJlY29yZCB7CiAgICAgSEFORExFIGhQcm9jZXNzOwkvKiBwcm9jZXNzIGhhbmRsZSAqLwotICAg IHBpZF90IHBpZDsJCS8qIHByb2Nlc3MgaWQgKi8KKyAgICByYl9waWRfdCBwaWQ7CS8qIHByb2Nl c3MgaWQgKi8KIH0gQ2hpbGRSZWNvcmRbTUFYQ0hJTEROVU1dOwogCiAjZGVmaW5lIEZPUkVBQ0hf Q0hJTEQodikgZG8geyBcCkBAIC00NjMsNyArNDYzLDcgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBD aGlsZFJlY29yZCAqCi1GaW5kQ2hpbGRTbG90KHBpZF90IHBpZCkKK0ZpbmRDaGlsZFNsb3QocmJf cGlkX3QgcGlkKQogewogCiAgICAgRk9SRUFDSF9DSElMRChjaGlsZCkgewpAQCAtNjc4LDcgKzY3 OCw3IEBACiAKIHN0YXRpYyBpbnQgc29ja2V0cGFpcl9pbnRlcm5hbChpbnQgYWYsIGludCB0eXBl LCBpbnQgcHJvdG9jb2wsIFNPQ0tFVCAqc3YpOwogCi1waWRfdAorcmJfcGlkX3QKIHJiX3czMl9w aXBlX2V4ZWMoY29uc3QgY2hhciAqY21kLCBjb25zdCBjaGFyICpwcm9nLCBpbnQgbW9kZSwgaW50 ICpwaXBlKQogewogICAgIHN0cnVjdCBDaGlsZFJlY29yZCogY2hpbGQ7CkBAIC05ODcsNyArOTg3 LDcgQEAKICAgICBDbG9zZUhhbmRsZShhUHJvY2Vzc0luZm9ybWF0aW9uLmhUaHJlYWQpOwogCiAg ICAgY2hpbGQtPmhQcm9jZXNzID0gYVByb2Nlc3NJbmZvcm1hdGlvbi5oUHJvY2VzczsKLSAgICBj aGlsZC0+cGlkID0gKHBpZF90KWFQcm9jZXNzSW5mb3JtYXRpb24uZHdQcm9jZXNzSWQ7CisgICAg Y2hpbGQtPnBpZCA9IChyYl9waWRfdClhUHJvY2Vzc0luZm9ybWF0aW9uLmR3UHJvY2Vzc0lkOwog CiAgICAgaWYgKCFJc1dpbk5UKCkpIHsKIAkvKiBPbiBXaW45eCwgbWFrZSBwaWQgcG9zaXRpdmUg c2ltaWxhcmx5IHRvIGN5Z3dpbiBhbmQgcGVybCAqLwpAQCAtMjU3Nyw3ICsyNTc3LDcgQEAKICNk ZWZpbmUgV05PSEFORyAtMQogI2VuZGlmCiAKLXN0YXRpYyBwaWRfdAorc3RhdGljIHJiX3BpZF90 CiBwb2xsX2NoaWxkX3N0YXR1cyhzdHJ1Y3QgQ2hpbGRSZWNvcmQgKmNoaWxkLCBpbnQgKnN0YXRf bG9jKQogewogICAgIERXT1JEIGV4aXRjb2RlOwpAQCAtMjU5NSw3ICsyNTk1LDcgQEAKICAgICB9 CiAgICAgaWYgKGV4aXRjb2RlICE9IFNUSUxMX0FDVElWRSkgewogCS8qIElmIGFscmVhZHkgZGll ZCwgcmV0dXJuIGltbWVkaWF0bHkuICovCi0JcGlkX3QgcGlkID0gY2hpbGQtPnBpZDsKKwlyYl9w aWRfdCBwaWQgPSBjaGlsZC0+cGlkOwogCUNsb3NlQ2hpbGRIYW5kbGUoY2hpbGQpOwogCWlmIChz dGF0X2xvYykgKnN0YXRfbG9jID0gZXhpdGNvZGUgPDwgODsKIAlyZXR1cm4gcGlkOwpAQCAtMjYw Myw4ICsyNjAzLDggQEAKICAgICByZXR1cm4gMDsKIH0KIAotcGlkX3QKLXdhaXRwaWQgKHBpZF90 IHBpZCwgaW50ICpzdGF0X2xvYywgaW50IG9wdGlvbnMpCityYl9waWRfdAord2FpdHBpZCAocmJf cGlkX3QgcGlkLCBpbnQgKnN0YXRfbG9jLCBpbnQgb3B0aW9ucykKIHsKICAgICBEV09SRCB0aW1l b3V0OwogCkBAIC0zNDM1LDEwICszNDM1LDEwIEBACiB9CiAKICN1bmRlZiBnZXRwaWQKLXBpZF90 CityYl9waWRfdAogcmJfdzMyX2dldHBpZCh2b2lkKQogewotICAgIHBpZF90IHBpZDsKKyAgICBy Yl9waWRfdCBwaWQ7CiAKICAgICBwaWQgPSBnZXRwaWQoKTsKIApJbmRleDogd2luY2UvTWFrZWZp bGUuc3ViCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9zcmMvcnVieS93aW5jZS9NYWtlZmlsZS5zdWIs dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzgKZGlmZiAtdSAtcjEuMzggTWFrZWZpbGUuc3ViCi0t LSB3aW5jZS9NYWtlZmlsZS5zdWIJMTMgTWF5IDIwMDUgMTQ6NDQ6NDMgLTAwMDAJMS4zOAorKysg d2luY2UvTWFrZWZpbGUuc3ViCTE0IE1heSAyMDA1IDA3OjQ1OjA1IC0wMDAwCkBAIC0yMzEsOCAr MjMxLDkgQEAKICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKICNkZWZpbmUgSEFWRV9TWVNfVVRJTUVf SCAxCiAjZGVmaW5lIEhBVkVfRkxPQVRfSCAxCi0jZGVmaW5lIHVpZF90IGludAotI2RlZmluZSBn aWRfdCBpbnQKKyNkZWZpbmUgSEFWRV9VSURfVCAwCisjZGVmaW5lIEhBVkVfR0lEX1QgMAorI2Rl ZmluZSBIQVZFX1BJRF9UIDAKICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKICNk ZWZpbmUgSEFWRV9TVF9SREVWIDEKICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CkluZGV4OiB3aW5j ZS9zeXMvdHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvc3JjL3J1Ynkvd2luY2Uvc3lzL3R5 cGVzLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC11IC1yMS4xIHR5cGVzLmgKLS0t IHdpbmNlL3N5cy90eXBlcy5oCTE0IERlYyAyMDAyIDA1OjI3OjM1IC0wMDAwCTEuMQorKysgd2lu Y2Uvc3lzL3R5cGVzLmgJMTQgTWF5IDIwMDUgMDc6NDU6MDUgLTAwMDAKQEAgLTE5LDggKzE5LDYg QEAKICAgI2RlZmluZSBfTU9ERV9UX0RFRklORURfCiAjZW5kaWYKIAotLy90eXBlZGVmIHVuc2ln bmVkIHNob3J0IGdpZF90OwotLy90eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVpZF90OwogdHlwZWRl ZiBsb25nIGNsb2NrX3Q7CiAKICNpZm5kZWYgX1BUUkRJRkZfVF9ERUZJTkVECkBAIC01OCwxMCAr NTYsNSBAQAogLy90eXBlZGVmIHVuc2lnbmVkIGxvbmcgdGltZV90OwogLy8jZGVmaW5lIF9USU1F X1RfREVGSU5FRF8KIC8vI2VuZGlmCi0KLSNpZm5kZWYgX1BJRF9UX0RFRklORURfCi10eXBlZGVm IHVuc2lnbmVkIGxvbmcgcGlkX3Q7Ci0jZGVmaW5lIF9QSURfVF9ERUZJTkVEXwotI2VuZGlmCiAK ICNlbmRpZgo= ------=_Part_12010_18206299.1116061571685--