From: khan AT xraylith DOT wisc DOT edu (Mumit Khan) Subject: user dll initialization patch 31 Aug 1998 13:40:03 -0700 Message-ID: Mime-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="1915750185-1199345912-904590276=:4217" To: cygwin32-developers AT cygnus DOT com This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime AT docserver DOT cac DOT washington DOT edu for more info. --1915750185-1199345912-904590276=:4217 Content-Type: TEXT/PLAIN; charset=US-ASCII The following changes make life a bit easier for users to create DLLs that work under cygwin32. The changes are trivial; it adds two files: dll_entry.cc which provides __cygwin32_dll_entry AT 12, the default user DLL entry point, and dll_main.cc, which provides _DllMain AT 12, the default user callback routine. If this is acceptable, the next step is add a '-mdll' option to GCC et al that will automatically pick __cygwin32_dll_entry AT 12 as the entry point, and the users can then do application specific stuff by overriding DllMain. See the mingw32 setup for something similar. Regards, Mumit --1915750185-1199345912-904590276=:4217 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=Changes Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: ChangeLog entry TW9uIEF1ZyAzMSAxMzozMzoyOCAxOTk4ICBNdW1pdCBLaGFuICA8a2hhbkB4 cmF5bGl0aC53aXNjLmVkdT4NCgkNCgkqIGRsbF9lbnRyeS5jYzogTmV3IGZp bGUgZm9yIHVzZXIgRExMIGVudHJ5IHBvaW50Lg0KCSogZGxsX21haW4uY2M6 IE5ldyBmaWxlIGZvciB1c2VyIERMTCBtYWluLg0KCSogTWFrZWZpbGUuaW4g KExJQkNPUyk6IEFkZCBkbGxfZW50cnkubyBhbmQgZGxsX21haW4uby4NCiAN CkluZGV4OiBNYWtlZmlsZS5pbg0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K UkNTIGZpbGU6IC9tb3VudHMvc2RhNy9zcmMvZ251L0NWU1JPT1QvY3lnd2lu MzIvd2luc3VwL01ha2VmaWxlLmluLHYNCnJldHJpZXZpbmcgcmV2aXNpb24g MS4xLjEuMQ0KZGlmZiAtdSAtMyAtcCAtcjEuMS4xLjEgTWFrZWZpbGUuaW4N Ci0tLSBNYWtlZmlsZS5pbgkxOTk4LzA4LzMwIDAzOjQ2OjQzCTEuMS4xLjEN CisrKyBNYWtlZmlsZS5pbgkxOTk4LzA4LzMxIDE1OjM0OjAzDQpAQCAtOTcs NyArOTcsOCBAQCBHTU9OX1NUQVJUID0gZ2NydDAubw0KICMgZGF0YSB3aGlj aCBhcHBzIGNhbiBnZXQgdG8sIHdoaWNoIGlzIGEgcGFpbiBpbiB0aGUgZGxs LCBzbyB3ZQ0KICMgaW5jbHVkZSB0aGVtIGRpcmVjdGx5IGludG8gdGhlIGxp YnJhcnkuDQogDQotTElCQ09TPWxpYmNjcnQwLm8gbGliY2N0eXBlLm8gbGli Y2Vyci5vIGxpYmNtYWluLm8gZ2V0b3B0Lm8NCitMSUJDT1M9bGliY2NydDAu byBsaWJjY3R5cGUubyBsaWJjZXJyLm8gbGliY21haW4ubyBnZXRvcHQubyBc DQorICAgICAgIGRsbF9lbnRyeS5vIGRsbF9tYWluLm8NCiANCiAjIEJ1aWxk IGFzIG1hbnkgLmEgZmlsZXMgYXMgd2UgaGF2ZSAuZGVmIGZpbGVzDQogDQo= --1915750185-1199345912-904590276=:4217 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="dll_entry.cc" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: dll_entry.cc Ly8NCi8vIGRsbF9lbnRyeS5jYzogUHJvdmlkZSB0aGUgZGVmYXVsdCB1c2Vy IERMTCBsaW5rZXIgZW50cnkgcG9pbnQuDQovLw0KLy8gSGVyZSB3ZSBzaW1w bHkgaW5zdGFudGlhdGUgdGhlIERFQ0xBUkVfQ1lHV0lOX0RMTCB0byBkZWZp bmUgdGhlDQovLyBsaW5rZXIgZW50cnkgcG9pbnQsIF9fY3lnd2luMzJfZGxs X2VudHJ5QDEyLCB3aGljaCBpbiB0dXJuIGNhbGxzDQovLyBfRGxsTWFpbkAx MiB0byBkbyB1c2VyLXNwZWNpZmljIGluaXRpYWxpemF0aW9uLCBpZiBhbnku IFRoZXJlIGlzIGEgDQovLyBkZWZhdWx0IERsbE1haW4gc3R1YiBpbiB0aGUg bGlicmFyeSBpZiB0aGVyZSBpcyBubyB1c2VyIHN1cHBsaWVkDQovLyBvbmUu DQovLw0KDQojaW5jbHVkZSAiY3lnd2luMzIvY3lnd2luX2RsbC5oIg0KDQpE RUNMQVJFX0NZR1dJTl9ETEwgKERsbE1haW4pOw0KDQoNCg== --1915750185-1199345912-904590276=:4217 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="dll_main.cc" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: dll_main.cc Ly8NCi8vIGRsbF9tYWluLmNjOiBQcm92aWRlIHRoZSBEbGxNYWluIHN0dWIg dGhhdCB0aGUgdXNlciBjYW4gb3ZlcnJpZGUuDQovLw0KDQojaW5jbHVkZSA8 d2luZG93cy5oPg0KDQojZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4NCiNp bmNsdWRlIDx3aW5kb3dzLmg+DQojdW5kZWYgV0lOMzJfTEVBTl9BTkRfTUVB Tg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQoNCmV4dGVybiAiQyINCkJPT0wgQVBJ RU5UUlkgRGxsTWFpbiAoSElOU1RBTkNFIGhJbnN0LCBEV09SRCByZWFzb24s IA0KICAgICAgICAgICAgICAgICAgICAgICBMUFZPSUQgcmVzZXJ2ZWQgLyog Tm90IHVzZWQuICovICk7DQoNCkJPT0wgQVBJRU5UUlkNCkRsbE1haW4gKA0K CSBISU5TVEFOQ0UgaEluc3QgLyogTGlicmFyeSBpbnN0YW5jZSBoYW5kbGUu ICovICwNCgkgRFdPUkQgcmVhc29uIC8qIFJlYXNvbiB0aGlzIGZ1bmN0aW9u IGlzIGJlaW5nIGNhbGxlZC4gKi8gLA0KCSBMUFZPSUQgcmVzZXJ2ZWQgLyog Tm90IHVzZWQuICovICkNCnsNCiAgc3dpdGNoIChyZWFzb24pDQogICAgew0K ICAgIGNhc2UgRExMX1BST0NFU1NfQVRUQUNIOg0KICAgICAgYnJlYWs7DQoN CiAgICBjYXNlIERMTF9QUk9DRVNTX0RFVEFDSDoNCiAgICAgIGJyZWFrOw0K DQogICAgY2FzZSBETExfVEhSRUFEX0FUVEFDSDoNCiAgICAgIGJyZWFrOw0K DQogICAgY2FzZSBETExfVEhSRUFEX0RFVEFDSDoNCiAgICAgIGJyZWFrOw0K ICAgIH0NCiAgcmV0dXJuIFRSVUU7DQp9DQoNCg== --1915750185-1199345912-904590276=:4217--