? scripttempl/pep.sc_new Index: pe-dll.c =================================================================== RCS file: /cvs/src/src/ld/pe-dll.c,v retrieving revision 1.99 diff -b -u -r1.99 pe-dll.c --- pe-dll.c 6 Jul 2007 14:09:41 -0000 1.99 +++ pe-dll.c 2 Aug 2007 11:40:16 -0000 @@ -203,12 +203,21 @@ { STRING_COMMA_LEN (".text") }, /* Entry point symbols, and entry hooks. */ { STRING_COMMA_LEN ("cygwin_crt0") }, +#ifdef pe_use_x86_64 + { STRING_COMMA_LEN ("DllMain") }, + { STRING_COMMA_LEN ("DllEntryPoint") }, + { STRING_COMMA_LEN ("DllMainCRTStartup") }, + { STRING_COMMA_LEN ("_cygwin_dll_entry") }, + { STRING_COMMA_LEN ("_cygwin_crt0_common") }, + { STRING_COMMA_LEN ("_cygwin_noncygwin_dll_entry") }, +#else { STRING_COMMA_LEN ("DllMain@12") }, { STRING_COMMA_LEN ("DllEntryPoint@0") }, { STRING_COMMA_LEN ("DllMainCRTStartup@12") }, { STRING_COMMA_LEN ("_cygwin_dll_entry@12") }, { STRING_COMMA_LEN ("_cygwin_crt0_common@8") }, { STRING_COMMA_LEN ("_cygwin_noncygwin_dll_entry@12") }, +#endif { STRING_COMMA_LEN ("cygwin_attach_dll") }, { STRING_COMMA_LEN ("cygwin_premain0") }, { STRING_COMMA_LEN ("cygwin_premain1") }, Index: emultempl/pep.em =================================================================== RCS file: /cvs/src/src/ld/emultempl/pep.em,v retrieving revision 1.4 diff -b -u -r1.4 pep.em --- emultempl/pep.em 19 Jul 2007 19:56:10 -0000 1.4 +++ emultempl/pep.em 2 Aug 2007 11:40:16 -0000 @@ -106,7 +106,7 @@ static lang_assignment_statement_type *image_base_statement = 0; #ifdef DLL_SUPPORT -static int pep_enable_stdcall_fixup = -1; /* 0=disable 1=enable. */ +static int pep_enable_stdcall_fixup = 1; /* 0=disable 1=enable (default). */ static char * pep_out_def_filename = NULL; static char * pep_implib_filename = NULL; static int pep_enable_auto_image_base = 0; @@ -1305,19 +1305,8 @@ #ifdef TARGET_IS_i386pep pep_dll_id_target ("pei-x86-64"); #endif - if (bfd_get_format (entry->the_bfd) == bfd_object) - { - char fbuf[LD_PATHMAX + 1]; - const char *ext; - - if (REALPATH (entry->filename, fbuf) == NULL) - strncpy (fbuf, entry->filename, sizeof (fbuf)); - - ext = fbuf + strlen (fbuf) - 4; - - if (strcmp (ext, ".dll") == 0 || strcmp (ext, ".DLL") == 0) - return pep_implied_import_dll (fbuf); - } + if (pep_bfd_is_dll (entry->the_bfd)) + return pep_implied_import_dll (entry->filename); #endif return FALSE; } =