Index: src/ld/emulparams/arm_epoc_pe.sh =================================================================== --- src.orig/ld/emulparams/arm_epoc_pe.sh 2009-10-28 10:19:00.277475000 +0100 +++ src/ld/emulparams/arm_epoc_pe.sh 2009-10-28 10:19:32.485370800 +0100 @@ -4,7 +4,6 @@ LITTLE_OUTPUT_FORMAT="epoc-pei-arm-little" BIG_OUTPUT_FORMAT="epoc-pei-arm-big" TEMPLATE_NAME=pe -ENTRY="_mainCRTStartup" SUBSYSTEM=PE_DEF_SUBSYSTEM INITIAL_SYMBOL_CHAR=\"_\" TARGET_PAGE_SIZE=0x1000 Index: src/ld/emulparams/arm_wince_pe.sh =================================================================== --- src.orig/ld/emulparams/arm_wince_pe.sh 2009-10-28 10:19:00.279475000 +0100 +++ src/ld/emulparams/arm_wince_pe.sh 2009-10-28 10:19:32.485370800 +0100 @@ -8,7 +8,6 @@ RELOCATEABLE_OUTPUT_FORMAT="pe-arm-wince-little" TEMPLATE_NAME=pe -ENTRY="WinMainCRTStartup" SUBSYSTEM=PE_DEF_SUBSYSTEM INITIAL_SYMBOL_CHAR=\"\" TARGET_PAGE_SIZE=0x1000 Index: src/ld/emulparams/i386pe.sh =================================================================== --- src.orig/ld/emulparams/i386pe.sh 2009-10-28 10:19:00.281475000 +0100 +++ src/ld/emulparams/i386pe.sh 2009-10-28 10:19:32.485370800 +0100 @@ -3,7 +3,6 @@ OUTPUT_FORMAT="pei-i386" RELOCATEABLE_OUTPUT_FORMAT="pe-i386" TEMPLATE_NAME=pe -ENTRY="_mainCRTStartup" SUBSYSTEM=PE_DEF_SUBSYSTEM INITIAL_SYMBOL_CHAR=\"_\" TARGET_PAGE_SIZE=0x1000 Index: src/ld/emulparams/i386pe_posix.sh =================================================================== --- src.orig/ld/emulparams/i386pe_posix.sh 2009-10-28 10:19:00.284475000 +0100 +++ src/ld/emulparams/i386pe_posix.sh 2009-10-28 10:19:32.485370800 +0100 @@ -3,7 +3,6 @@ OUTPUT_FORMAT="pei-i386" RELOCATEABLE_OUTPUT_FORMAT="pe-i386" TEMPLATE_NAME=pe -ENTRY="___PosixProcessStartup" SUBSYSTEM=7 EXECUTABLE_NAME=a.out INITIAL_SYMBOL_CHAR=\"_\" Index: src/ld/emulparams/mcorepe.sh =================================================================== --- src.orig/ld/emulparams/mcorepe.sh 2009-10-28 10:19:00.285475000 +0100 +++ src/ld/emulparams/mcorepe.sh 2009-10-28 10:19:32.485370800 +0100 @@ -4,7 +4,6 @@ LITTLE_OUTPUT_FORMAT="pei-mcore-little" BIG_OUTPUT_FORMAT="pei-mcore-big" TEMPLATE_NAME=pe -ENTRY="_mainCRTStartup" SUBSYSTEM=PE_DEF_SUBSYSTEM INITIAL_SYMBOL_CHAR=\"_\" TARGET_PAGE_SIZE=0x1000 Index: src/ld/emulparams/mipspe.sh =================================================================== --- src.orig/ld/emulparams/mipspe.sh 2009-10-28 10:19:00.286475000 +0100 +++ src/ld/emulparams/mipspe.sh 2009-10-28 10:19:32.485370800 +0100 @@ -6,5 +6,4 @@ TEMPLATE_NAME=pe SUBSYSTEM=PE_DEF_SUBSYSTEM INITIAL_SYMBOL_CHAR=\"_\" -ENTRY="_mainCRTStartup" TARGET_PAGE_SIZE=0x1000 Index: src/ld/emulparams/ppcpe.sh =================================================================== --- src.orig/ld/emulparams/ppcpe.sh 2009-10-28 10:19:00.287475000 +0100 +++ src/ld/emulparams/ppcpe.sh 2009-10-28 10:19:32.485370800 +0100 @@ -2,7 +2,6 @@ SCRIPT_NAME=ppcpe OUTPUT_FORMAT="pei-powerpcle" TEMPLATE_NAME=pe -ENTRY="_mainCRTStartup" SUBSYSTEM=PE_DEF_SUBSYSTEM INITIAL_SYMBOL_CHAR=\"_\" TARGET_PAGE_SIZE=0x1000 Index: src/ld/emulparams/shpe.sh =================================================================== --- src.orig/ld/emulparams/shpe.sh 2009-10-28 10:19:00.289475000 +0100 +++ src/ld/emulparams/shpe.sh 2009-10-28 10:19:32.485370800 +0100 @@ -4,7 +4,4 @@ TEMPLATE_NAME=pe SUBSYSTEM=PE_DEF_SUBSYSTEM INITIAL_SYMBOL_CHAR=\"_\" -ENTRY="_mainCRTStartup" -SUBSYSTEM=PE_DEF_SUBSYSTEM -INITIAL_SYMBOL_CHAR=\"_\" TARGET_PAGE_SIZE=0x1000 Index: src/ld/emultempl/pe.em =================================================================== --- src.orig/ld/emultempl/pe.em 2009-10-28 10:19:00.291475000 +0100 +++ src/ld/emultempl/pe.em 2009-10-28 12:10:54.233246600 +0100 @@ -1,6 +1,5 @@ # This shell script emits a C file. -*- C -*- # It does some substitutions. -test -z "${ENTRY}" && ENTRY="_mainCRTStartup" if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH} else @@ -122,6 +121,8 @@ static struct internal_extra_pe_aouthdr pe; static int dll; +static int is_linked_dll = 0; +static int pe_subsystem = ${SUBSYSTEM}; static flagword real_flags = 0; static int support_old_code = 0; static char * thumb_entry_symbol = NULL; @@ -162,16 +163,6 @@ fragment <