* emultempl/pe.em (set_pe_subsystem): When setting the subsystem
to windows, set the entry point.
This commit is contained in:
parent
99283e8779
commit
d0d63887aa
2 changed files with 26 additions and 0 deletions
|
@ -1,5 +1,8 @@
|
||||||
Tue Oct 8 12:07:13 1996 Ian Lance Taylor <ian@cygnus.com>
|
Tue Oct 8 12:07:13 1996 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
* emultempl/pe.em (set_pe_subsystem): When setting the subsystem
|
||||||
|
to windows, set the entry point.
|
||||||
|
|
||||||
* Makefile.in (ldlex.c): Don't pass any options to $(LEX).
|
* Makefile.in (ldlex.c): Don't pass any options to $(LEX).
|
||||||
|
|
||||||
Mon Oct 7 17:29:05 1996 Ian Lance Taylor <ian@cygnus.com>
|
Mon Oct 7 17:29:05 1996 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
|
@ -192,6 +192,29 @@ set_pe_subsystem ()
|
||||||
if (!strcmp (optarg, v[i].name))
|
if (!strcmp (optarg, v[i].name))
|
||||||
{
|
{
|
||||||
set_pe_name ("__subsystem__", v[i].value);
|
set_pe_name ("__subsystem__", v[i].value);
|
||||||
|
|
||||||
|
/* If the subsystem is windows, we use a different entry
|
||||||
|
point. We also register the entry point as an undefined
|
||||||
|
symbol. The reason we do this is so that the user
|
||||||
|
doesn't have to because they would have to use the -u
|
||||||
|
switch if they were specifying an entry point other than
|
||||||
|
_mainCRTStartup. Specifically, if creating a windows
|
||||||
|
application, entry point _WinMainCRTStartup must be
|
||||||
|
specified. What I have found for non console
|
||||||
|
applications (entry not _mainCRTStartup) is that the .obj
|
||||||
|
that contains mainCRTStartup is brought in since it is
|
||||||
|
the first encountered in libc.lib and it has other
|
||||||
|
symbols in it which will be pulled in by the link
|
||||||
|
process. To avoid this, adding -u with the entry point
|
||||||
|
name specified forces the correct .obj to be used. We
|
||||||
|
can avoid making the user do this by always adding the
|
||||||
|
entry point name as an undefined symbol. */
|
||||||
|
if (v[i].value == 2)
|
||||||
|
{
|
||||||
|
lang_add_entry ("_WinMainCRTStartup", 1);
|
||||||
|
ldlang_add_undef ("_WinMainCRTStartup");
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue