X-Spam-Check-By: sourceware.org Date: Tue, 16 Jan 2007 11:37:46 +0000 From: Robin Walker Reply-To: Robin Walker To: cygwin AT cygwin DOT com Subject: Re: Cygwin Python/PIL TCL/TK fork rebase solution Message-ID: <3D1F5241A4BA56B7EBA1D30B@qjunbur.quns.cam.ac.uk> In-Reply-To: <87ejpvluvj.fsf@superfluity.lefae.org> References: <87ejpvluvj DOT fsf AT superfluity DOT lefae DOT org> X-Mailer: Mulberry/4.0.7 (Win32) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=sha1; protocol="application/pkcs7-signature"; boundary="==========43756107872189E140F3==========" X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --==========43756107872189E140F3========== Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: quoted-printable Content-Disposition: inline --On 15 January 2007 15:42 -0800 Ross Patterson wrote: > But I'm also curious about rebase and to understand more about how one > chooses what base address and offset to use. My curiosity is deeper than that. I would welcome some instruction or=20 elucidation on this issue. My understanding (please correct me if I get this wrong) of normal Windows= =20 DLLs is that, when they need to be loaded into memory (or mapped into an=20 address space), if their preferred base address and range is not free, then= =20 Windows will slot them in elsewhere and automatically fix-up all the=20 embedded pointers in RAM to be consistent with the actual assigned run-time= =20 DLL base. So, usually, no-one need be too concerned about DLL base addresses: DLLs=20 just work, even if their preferred base is not available. Things are more= =20 efficient if the preferred base is free, but they still work, albeit slower= =20 and less efficiently, if the preferred base is not free. So, what is it about Cygwin DLLs that makes them apparently sensitive to=20 base address in a way that normal Windows DLLs are not? What is it that Cygwin "rebase" does, that Windows dynamic run-time=20 rebasing cannot or does not do? --=20 Robin Walker (Junior Bursar), Queens' College, Cambridge CB3 9ET, UK rdhw AT cam DOT ac DOT uk http://www.queens.cam.ac.uk/ Tel:+44 1223 335528 --==========43756107872189E140F3========== Content-Type: application/pkcs7-signature Content-Transfer-Encoding: base64 MIIPuwYJKoZIhvcNAQcCoIIPrDCCD6gCAQExCzAJBgUrDgMCGgUAMAsGCSqG SIb3DQEHAaCCDYAwggPnMIIDUKADAgECAhB/XB5Eipwh6JZtd6i9RCwoMA0G CSqGSIb3DQEBBAUAMIHUMR4wHAYDVQQKExVTdHVkZW50IExvYW5zIENvbXBh bnkxHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxPDA6BgNVBAsT M1Rlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy50cnVzdHdpc2UuY29tL3Jw YSAoYykwMzEwMC4GA1UECxMnQ2xhc3MgMiBPblNpdGUgSW5kaXZpZHVhbCBT dWJzY3JpYmVyIENBMSEwHwYDVQQDExhTdHVkZW50IExvYW5zIENvbXBhbnkg Q0EwHhcNMDYwODE3MDAwMDAwWhcNMDcwOTE1MjM1OTU5WjCB/jELMAkGA1UE BhMCR0IxEjAQBgNVBAcUCUNhbWJyaWRnZTEqMCgGA1UEChQhVGhlIFN0dWRl bnQgTG9hbnMgQ29tcGFueSBMaW1pdGVkMR4wHAYDVQQLExV3d3cudHJ1c3R3 aXNlLmNvbS9ycGExIzAhBgNVBAsUGk1haWxTdG9wIC0gUXVlZW5zJyBDb2xs ZWdlMRwwGgYDVQQLFBNMRUEvSEVJIENvZGUgLSBDQUVFMRYwFAYDVQQMFA1K dW5pb3IgQnVyc2FyMRUwEwYDVQQDEwxSb2JpbiBXYWxrZXIxHTAbBgkqhkiG 9w0BCQEWDnJkaHdAY2FtLmFjLnVrMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB ANk5fuWXoV1q2IIIUCYLVs0wM5bHBQ0dEF0AGFe/JdQrJNj4jUdsQSejp8HJ +csNokcUY0MDdiFvksGyuszn/CMCAwEAAaOB0TCBzjAJBgNVHRMEAjAAMEQG A1UdIAQ9MDswOQYKYIZIAYb4RQEHCTArMCkGCCsGAQUFBwIBFh1odHRwczov L3d3dy50cnVzdHdpc2UuY29tL3JwYTALBgNVHQ8EBAMCBaAwEQYJYIZIAYb4 QgEBBAQDAgeAMFsGA1UdHwRUMFIwUKBOoEyGSmh0dHA6Ly9vbnNpdGVjcmwu dHJ1c3R3aXNlLmNvbS9UaGVTdHVkZW50TG9hbnNDb21wYW55TGltaXRlZC9M YXRlc3RDUkwuY3JsMA0GCSqGSIb3DQEBBAUAA4GBAEdZ4gUFj7rMntVJAyxI LcOdhDgMlbFKp+4dmbAjachVQy0ZK6iaIxpit2SW5xvl7u0YyE5meLzRMMkq 7IXX+GNSEIcr13c0PQksem6i/vTcYCw1nK9JNafSG6snytqmJ0cTVp7E0vAP CRLTDUBYYgeGUDFwqQlKjaAKdMNKvk8KMIIDYjCCAsugAwIBAgIQZlpoaaRJ nbo/tOG5fY8NkzANBgkqhkiG9w0BAQQFADBkMScwJQYDVQQKEx5Ccml0aXNo IFRlbGVjb21tdW5pY2F0aW9ucyBwbGMxHzAdBgNVBAsTFlZlcmlTaWduIFRy dXN0IE5ldHdvcmsxGDAWBgNVBAMTD0JUIFRydXN0V2lzZSBDQTAeFw0wMzA5 MTgwMDAwMDBaFw0wODA5MTcyMzU5NTlaMIHUMR4wHAYDVQQKExVTdHVkZW50 IExvYW5zIENvbXBhbnkxHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv cmsxPDA6BgNVBAsTM1Rlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy50cnVz dHdpc2UuY29tL3JwYSAoYykwMzEwMC4GA1UECxMnQ2xhc3MgMiBPblNpdGUg SW5kaXZpZHVhbCBTdWJzY3JpYmVyIENBMSEwHwYDVQQDExhTdHVkZW50IExv YW5zIENvbXBhbnkgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALa0 MyhCbExYSe88SbETURStgVHxxboMuzV0TOSMUS76PTT9cnpy5IqCWt6NndWy fVcOPtCCCAgoOH1yDS3F4kIlKnOBCIIXv7ExFFBOESPBp6aNQ4Zek8gu16wZ 0v1ruYF1kOsyyuKcitlJIvhjKvx5lmQFa9FYUqSiF9U1TNsDAgMBAAGjgaMw gaAwDwYDVR0TBAgwBgEB/wIBADBFBgNVHSAEPjA8MDoGC2CGSAGG+EUBBxcC MCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vd3d3LnRydXN0d2lzZS5jb20vcnBh MAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAQYwJgYDVR0RBB8wHaQb MBkxFzAVBgNVBAMTDmJ0YzJvbnNpdGUxLTEzMA0GCSqGSIb3DQEBBAUAA4GB AKFq2zZnXaspVfkukjegQ1qYS//0eqE5lvxndZJLIwqgfQ55K/BQL38NX6Qu NiiGf/GU7pixSiCE5rVCsOX7hP712Jhbb2/BHmdd4andkd7Odo2bUV6nmNjY Rp7g30Z1trEjAEXCvpTD2Nb9VkijBe/jvuTDuiWtl6qnryiSULCcMIIDJDCC Ao2gAwIBAgIQcFoaAbh84F1u3DpAgpiMGDANBgkqhkiG9w0BAQQFADCBwTEL MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTwwOgYDVQQL EzNDbGFzcyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y aXR5IC0gRzIxOjA4BgNVBAsTMShjKSAxOTk4IFZlcmlTaWduLCBJbmMuIC0g Rm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlTaWduIFRy dXN0IE5ldHdvcmswHhcNOTkwODE5MDAwMDAwWhcNMTQwMTA2MjM1OTU5WjBk MScwJQYDVQQKEx5Ccml0aXNoIFRlbGVjb21tdW5pY2F0aW9ucyBwbGMxHzAd BgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxGDAWBgNVBAMTD0JUIFRy dXN0V2lzZSBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApUGJBlbV EdU4veD4N0zAH/2RvFDs/tU3/gXxOzFO/AD0N/O+1RnlJWN/g94GyVghgcEZ O7BA1SEFlTjOs6u+Bq6B/STxkPddlURpOOC3q31YSPiHkdqtQsb40RFE7ZW9 kZooaxnJM9/dUQsBDYeBkNpLaorYZLwBCwSKDfI/l3UCAwEAAaN5MHcwEQYJ YIZIAYb4QgEBBAQDAgEGMEQGA1UdIAQ9MDswOQYKYIZIAYb4RQEHCTArMCkG CCsGAQUFBwIBFh1odHRwczovL3d3dy50cnVzdHdpc2UuY29tL1JQQTAPBgNV HRMECDAGAQH/AgEBMAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQQFAAOBgQBf qGorIHXS8AcaIMa/suA2DF0ZFtq2ULNHvkV4E1uIeee1nwlFKpQ5/G0tWTfM KThNyIQuE7IdYuBhiZUELtJbJd3M3dvrYxx0g98EY4V1RBM4ZK33tc5n3keQ Kb+yzBjyLm1/32SH1EqmSCS8cD/x3t0L6V5Vrp0NevQFOA1UQTCCAwMwggJs AhEAuS9gzIifoXpGCbhbcGyKrzANBgkqhkiG9w0BAQUFADCBwTELMAkGA1UE BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTwwOgYDVQQLEzNDbGFz cyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0g RzIxOjA4BgNVBAsTMShjKSAxOTk4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1 dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5l dHdvcmswHhcNOTgwNTE4MDAwMDAwWhcNMjgwODAxMjM1OTU5WjCBwTELMAkG A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTwwOgYDVQQLEzND bGFzcyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 IC0gRzIxOjA4BgNVBAsTMShjKSAxOTk4IFZlcmlTaWduLCBJbmMuIC0gRm9y IGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 IE5ldHdvcmswgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKeIASF0LOca A/CY4Zc8DyEI8Zzbl+ma/MIEBhO+X1LIzB4sElYsuAFpLMyZH62wlq55BPIT OcF7mLoILOjChBMsqmnpCfTHqQKkQsIjT0rY8A6i+zFsyeZvmScH9eb0THie betGhvq5hslU8rLEr9RGHFrJFTD/DWz1LQ5tzn93AgMBAAEwDQYJKoZIhvcN AQEFBQADgYEAci75f9HxcfvEnvbFXlGKQJi4aPibHIPY4p29/+2h5mbqLwn0 ytfqpSuV9iRghk1ELoOlxC2g0654aW9y2myuCPBjkjfmu8QwF613zEk1qs/Y j9G+txiWR3NqVCI0ZC22FptZW7RRWTqzCxT0Et9noPStMmResUZyJ4wSe8VE tK4xggIDMIIB/wIBATCB6TCB1DEeMBwGA1UEChMVU3R1ZGVudCBMb2FucyBD b21wYW55MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTwwOgYD VQQLEzNUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cudHJ1c3R3aXNlLmNv bS9ycGEgKGMpMDMxMDAuBgNVBAsTJ0NsYXNzIDIgT25TaXRlIEluZGl2aWR1 YWwgU3Vic2NyaWJlciBDQTEhMB8GA1UEAxMYU3R1ZGVudCBMb2FucyBDb21w YW55IENBAhB/XB5Eipwh6JZtd6i9RCwoMAkGBSsOAwIaBQCggbEwGAYJKoZI hvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDcwMTE2MTEz NzQ2WjAjBgkqhkiG9w0BCQQxFgQUruNf9N8c8JSsirmntqkj8jeVpoMwUgYJ KoZIhvcNAQkPMUUwQzAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYI KoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwDQYJKoZIhvcN AQEBBQAEQEBWRGxl5rxMzkINEnYAg/G19Ufq44VkQ53tFpkPb1DhXtX6cIA0 ArEnZunpmnRQVs/wX8coUCePLG8YjaLoRrw= --==========43756107872189E140F3==========--