Re: patch for win32 dynloader
"Magnus Hagander" <[email protected]> Thu, 28 Jul 2005 22:10:42 +0200
| Newsgroups | gmane.comp.db.postgresql.devel.win32,gmane.comp.db.postgresql.devel.patches |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. ------_=_NextPart_001_01C593B0.6F0410E0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable > >> 3) I restarted the postmaster both times. I got this error=20 > both times. > >> :25: ERROR: could not load library "C:/Program > >> Files/PostgreSQL/8.0/lib/testtrigfuncs.dll": dynamic load error >=20 > > Yes. We really need to look at fixing that error message. I had=20 > > forgotten it completely :-( >=20 > > Bruce, you think we can sneak that in after feature freeze? I would=20 > > call it a bugfix :-) >=20 > Me too. That's been on the radar for awhile --- please do=20 > send in a patch. Here we go, that wasn't too hard :-) Apart from adding the error handling, it does one more thing: it changes the errormode when loading the DLLs. Previously if a DLL was broken, or referenced other DLLs that couldn't be found, a popup dialog box would appear on the screen. Which had to be clicked before the backend could continue. This patch also disables the popup error message for DLL loads. I think this is something we should consider doing for the entire backend - disable those popups, and say we deal with it ourselves. What do you other win32 hackers thinnk about this? In the meantime, this patch fixes the error msgs. Please apply for 8.1 and please consider a backpatch to 8.0. //Magnus ------_=_NextPart_001_01C593B0.6F0410E0 Content-Type: application/octet-stream; name="win32_dynloader_err.patch" Content-Transfer-Encoding: base64 Content-Description: win32_dynloader_err.patch Content-Disposition: attachment; filename="win32_dynloader_err.patch" SW5kZXg6IGJhY2tlbmQvcG9ydC9keW5sb2FkZXIvd2luMzIuYw0KPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9wcm9qZWN0cy9jdnNyb290 L3Bnc3FsL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL3dpbjMyLmMsdg0K cmV0cmlldmluZyByZXZpc2lvbiAxLjUNCmRpZmYgLWMgLXIxLjUgd2luMzIu Yw0KKioqIGJhY2tlbmQvcG9ydC9keW5sb2FkZXIvd2luMzIuYwkyIERlYyAy MDA0IDE5OjM4OjUwIC0wMDAwCTEuNQ0KLS0tIGJhY2tlbmQvcG9ydC9keW5s b2FkZXIvd2luMzIuYwkyOCBKdWwgMjAwNSAyMDowNzowNyAtMDAwMA0KKioq KioqKioqKioqKioqDQoqKiogMSwzMiAqKioqDQogIC8qICRQb3N0Z3JlU1FM OiBwZ3NxbC9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5jLHYg MS41IDIwMDQvMTIvMDIgMTk6Mzg6NTAgbW9tamlhbiBFeHAgJCAqLw0KICAN CiAgI2luY2x1ZGUgPHdpbmRvd3MuaD4NCiAgDQogIGNoYXIgKmRsZXJyb3Io dm9pZCk7DQogIGludCBkbGNsb3NlKHZvaWQgKmhhbmRsZSk7DQogIHZvaWQg KmRsc3ltKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAqc3ltYm9sKTsNCiAg dm9pZCAqZGxvcGVuKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlKTsNCiAg DQogIGNoYXIgKg0KICBkbGVycm9yKHZvaWQpDQogIHsNCiEgCXJldHVybiAi ZHluYW1pYyBsb2FkIGVycm9yIjsNCiAgfQ0KICANCiAgaW50DQogIGRsY2xv c2Uodm9pZCAqaGFuZGxlKQ0KICB7DQohIAlyZXR1cm4gRnJlZUxpYnJhcnko KEhNT0RVTEUpIGhhbmRsZSkgPyAwIDogMTsNCiAgfQ0KICANCiAgdm9pZCAq DQogIGRsc3ltKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAqc3ltYm9sKQ0K ICB7DQohIAlyZXR1cm4gKHZvaWQgKikgR2V0UHJvY0FkZHJlc3MoKEhNT0RV TEUpIGhhbmRsZSwgc3ltYm9sKTsNCiAgfQ0KICANCiAgdm9pZCAqDQogIGRs b3Blbihjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSkNCiAgew0KISAJcmV0 dXJuICh2b2lkICopIExvYWRMaWJyYXJ5KHBhdGgpOw0KICB9DQotLS0gMSw4 NCAtLS0tDQogIC8qICRQb3N0Z3JlU1FMOiBwZ3NxbC9zcmMvYmFja2VuZC9w b3J0L2R5bmxvYWRlci93aW4zMi5jLHYgMS41IDIwMDQvMTIvMDIgMTk6Mzg6 NTAgbW9tamlhbiBFeHAgJCAqLw0KICANCiAgI2luY2x1ZGUgPHdpbmRvd3Mu aD4NCisgI2luY2x1ZGUgPHN0ZGlvLmg+DQogIA0KICBjaGFyICpkbGVycm9y KHZvaWQpOw0KICBpbnQgZGxjbG9zZSh2b2lkICpoYW5kbGUpOw0KICB2b2lk ICpkbHN5bSh2b2lkICpoYW5kbGUsIGNvbnN0IGNoYXIgKnN5bWJvbCk7DQog IHZvaWQgKmRsb3Blbihjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSk7DQog IA0KKyBzdGF0aWMgY2hhciBsYXN0X2R5bl9lcnJvcls1MTJdOw0KKyANCisg c3RhdGljIHZvaWQgc2V0X2RsX2Vycm9yKHZvaWQpDQorIHsNCisgCURXT1JE IGVyciA9IEdldExhc3RFcnJvcigpOw0KKyANCisgCWlmIChGb3JtYXRNZXNz YWdlKEZPUk1BVF9NRVNTQUdFX0lHTk9SRV9JTlNFUlRTIHwNCisgCQkJCUZP Uk1BVF9NRVNTQUdFX0ZST01fU1lTVEVNLA0KKyAJCQkJTlVMTCwNCisgCQkJ CWVyciwNCisgCQkJCU1BS0VMQU5HSUQoTEFOR19ORVVUUkFMLCBTVUJMQU5H X0RFRkFVTFQpLA0KKyAJCQkJbGFzdF9keW5fZXJyb3IsDQorIAkJCQlzaXpl b2YobGFzdF9keW5fZXJyb3IpLTEsDQorIAkJCQlOVUxMKSA9PSAwKQ0KKyAJ ew0KKyAJCXNucHJpbnRmKGxhc3RfZHluX2Vycm9yLCBzaXplb2YobGFzdF9k eW5fZXJyb3IpLTEsDQorIAkJCQkidW5rbm93biBlcnJvciAlbHUiLCBlcnIp Ow0KKyAJfQkNCisgfQ0KKyANCiAgY2hhciAqDQogIGRsZXJyb3Iodm9pZCkN CiAgew0KISAJaWYgKGxhc3RfZHluX2Vycm9yWzBdKQ0KISAJCXJldHVybiBs YXN0X2R5bl9lcnJvcjsNCiEgCWVsc2UNCiEgCQlyZXR1cm4gTlVMTDsNCiAg fQ0KICANCiAgaW50DQogIGRsY2xvc2Uodm9pZCAqaGFuZGxlKQ0KICB7DQoh IAlpZiAoIUZyZWVMaWJyYXJ5KChITU9EVUxFKSBoYW5kbGUpKQ0KISAJew0K ISAJCXNldF9kbF9lcnJvcigpOw0KISAJCXJldHVybiAxOw0KISAJfQ0KISAJ bGFzdF9keW5fZXJyb3JbMF0gPSAwOw0KISAJcmV0dXJuIDA7DQogIH0NCiAg DQogIHZvaWQgKg0KICBkbHN5bSh2b2lkICpoYW5kbGUsIGNvbnN0IGNoYXIg KnN5bWJvbCkNCiAgew0KISAJdm9pZCAqcHRyOw0KISAJcHRyID0gR2V0UHJv Y0FkZHJlc3MoKEhNT0RVTEUpIGhhbmRsZSwgc3ltYm9sKTsNCiEgCWlmICgh cHRyKSANCiEgCXsNCiEgCQlzZXRfZGxfZXJyb3IoKTsNCiEgCQlyZXR1cm4g TlVMTDsNCiEgCX0NCiEgCWxhc3RfZHluX2Vycm9yWzBdID0gMDsNCiEgCXJl dHVybiBwdHI7DQogIH0NCiAgDQogIHZvaWQgKg0KICBkbG9wZW4oY29uc3Qg Y2hhciAqcGF0aCwgaW50IG1vZGUpDQogIHsNCiEgCUhNT0RVTEUgaDsNCiEg CWludCBwcmV2bW9kZTsNCiEgDQohIAkvKiBEaXNhYmxlIHBvcHVwIGVycm9y IG1lc3NhZ2VzIHdoZW4gbG9hZGluZyBETExzICovDQohIAlwcmV2bW9kZSA9 IFNldEVycm9yTW9kZShTRU1fRkFJTENSSVRJQ0FMRVJST1JTIHwgU0VNX05P T1BFTkZJTEVFUlJPUkJPWCk7DQohIAloID0gTG9hZExpYnJhcnkocGF0aCk7 DQohIAlTZXRFcnJvck1vZGUocHJldm1vZGUpOw0KISAJDQohIAlpZiAoIWgp IA0KISAJew0KISAJCXNldF9kbF9lcnJvcigpOw0KISAJCXJldHVybiBOVUxM Ow0KISAJfQ0KISAJbGFzdF9keW5fZXJyb3JbMF0gPSAwOw0KISAJcmV0dXJu ICh2b2lkICopIGg7DQogIH0NCg== ------_=_NextPart_001_01C593B0.6F0410E0 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend ------_=_NextPart_001_01C593B0.6F0410E0--