Link C++ programs against target libraries, not host ones

Remove most of <linkerflag> usage

svn path=/trunk/; revision=34187
This commit is contained in:
Hervé Poussineau 2008-06-29 12:47:22 +00:00
parent d595a43107
commit 7689eddcc2
26 changed files with 40 additions and 83 deletions

View file

@ -3,9 +3,9 @@
<module name="sol" type="win32gui" installbase="system32" installname="sol.exe" unicode="no" allowwarnings="true"> <module name="sol" type="win32gui" installbase="system32" installname="sol.exe" unicode="no" allowwarnings="true">
<include base="sol">.</include> <include base="sol">.</include>
<include base="sol">cardlib</include> <include base="sol">cardlib</include>
<linkerflag>-lstdc++</linkerflag>
<define name="_WIN32_IE">0x0501</define> <define name="_WIN32_IE">0x0501</define>
<define name="_WIN32_WINNT">0x0501</define> <define name="_WIN32_WINNT">0x0501</define>
<library>advapi32</library>
<library>kernel32</library> <library>kernel32</library>
<library>user32</library> <library>user32</library>
<library>gdi32</library> <library>gdi32</library>

View file

@ -9,7 +9,6 @@
<define name="_DISABLE_TIDENTS" /> <define name="_DISABLE_TIDENTS" />
<define name="_WIN32_WINNT">0x0502</define> <define name="_WIN32_WINNT">0x0502</define>
<define name="__NO_CTYPE_INLINES" /> <define name="__NO_CTYPE_INLINES" />
<linkerflag>-lgcc</linkerflag>
<library>zlib</library> <library>zlib</library>
<library>inflib</library> <library>inflib</library>
<library>ext2lib</library> <library>ext2lib</library>

View file

@ -1,16 +1,15 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
<group xmlns:xi="http://www.w3.org/2001/XInclude"> <group xmlns:xi="http://www.w3.org/2001/XInclude">
<module name="explorer" type="win32gui" installname="explorer.exe" allowwarnings="true"> <module name="explorer" type="win32gui" installname="explorer.exe" allowwarnings="true" unicode="yes">
<linkerflag>-fexceptions</linkerflag>
<compilerflag compiler="cpp">-Wno-non-virtual-dtor</compilerflag> <compilerflag compiler="cpp">-Wno-non-virtual-dtor</compilerflag>
<include base="explorer">.</include> <include base="explorer">.</include>
<define name="UNICODE" />
<define name="WIN32" /> <define name="WIN32" />
<define name="_WIN32_IE">0x0600</define> <define name="_WIN32_IE">0x0600</define>
<define name="_WIN32_WINNT">0x0501</define> <define name="_WIN32_WINNT">0x0501</define>
<define name="WINVER">0x0500</define> <define name="WINVER">0x0500</define>
<define name="__WINDRES__" /> <define name="__WINDRES__" />
<library>advapi32</library>
<library>kernel32</library> <library>kernel32</library>
<library>gdi32</library> <library>gdi32</library>
<library>user32</library> <library>user32</library>

View file

@ -7,7 +7,6 @@
<library>nt</library> <library>nt</library>
<library>smlib</library> <library>smlib</library>
<library>ntdll</library> <library>ntdll</library>
<linkerflag>-lgcc</linkerflag>
<pch>smss.h</pch> <pch>smss.h</pch>
<compilationunit name="unit.c"> <compilationunit name="unit.c">
<file>client.c</file> <file>client.c</file>

View file

@ -2,7 +2,6 @@
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="mesa32" type="win32dll" entrypoint="0" baseaddress="${BASEADDRESS_MESA32}" installbase="system32" installname="mesa32.dll" allowwarnings="true"> <module name="mesa32" type="win32dll" entrypoint="0" baseaddress="${BASEADDRESS_MESA32}" installbase="system32" installname="mesa32.dll" allowwarnings="true">
<importlibrary definition="src/drivers/windows/icd/mesa.def" /> <importlibrary definition="src/drivers/windows/icd/mesa.def" />
<linkerflag>-Wl,--enable-stdcall-fixup</linkerflag>
<library>ntdll</library> <library>ntdll</library>
<library>kernel32</library> <library>kernel32</library>
<library>msvcrt</library> <library>msvcrt</library>

View file

@ -16,9 +16,6 @@
<library>ntdllsys</library> <library>ntdllsys</library>
<library>libcntpr</library> <library>libcntpr</library>
<library>pseh</library> <library>pseh</library>
<linkerflag>-lgcc</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<linkerflag>-nostartfiles</linkerflag>
<dependency>ntstatus</dependency> <dependency>ntstatus</dependency>
<directory name="csr"> <directory name="csr">
<file>api.c</file> <file>api.c</file>

View file

@ -1,9 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="cfgmgr32" type="win32dll" baseaddress="${BASEADDRESS_CFGMGR32}" entrypoint="0" installbase="system32" installname="cfgmgr32.dll"> <module name="cfgmgr32" type="win32dll" baseaddress="${BASEADDRESS_CFGMGR32}" entrypoint="0" installbase="system32" installname="cfgmgr32.dll">
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<linkerflag>-lgcc</linkerflag>
<importlibrary definition="cfgmgr32.def" /> <importlibrary definition="cfgmgr32.def" />
<file>cfgmgr32.rc</file> <file>cfgmgr32.rc</file>
</module> </module>

View file

@ -1,6 +1,4 @@
<module name="crtdll" type="win32dll" baseaddress="${BASEADDRESS_CRTDLL}" mangledsymbols="true" installbase="system32" installname="crtdll.dll"> <module name="crtdll" type="win32dll" baseaddress="${BASEADDRESS_CRTDLL}" mangledsymbols="true" installbase="system32" installname="crtdll.dll">
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>-lgcc</linkerflag>
<importlibrary definition="crtdll.def" /> <importlibrary definition="crtdll.def" />
<include base="crtdll">.</include> <include base="crtdll">.</include>
<include base="crt">include</include> <include base="crt">include</include>

View file

@ -50,8 +50,5 @@
<file>utils.c</file> <file>utils.c</file>
<file>path.c</file> <file>path.c</file>
</directory> </directory>
<linkerflag>-lgcc</linkerflag>
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<file>gdi32.rc</file> <file>gdi32.rc</file>
</module> </module>

View file

@ -131,9 +131,6 @@
<library>wine</library> <library>wine</library>
<library>pseh</library> <library>pseh</library>
<library>ntdll</library> <library>ntdll</library>
<linkerflag>-lgcc</linkerflag>
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<file>kernel32.rc</file> <file>kernel32.rc</file>
</module> </module>
</group> </group>

View file

@ -13,8 +13,5 @@
<file>dllmain.c</file> <file>dllmain.c</file>
<file>stub.c</file> <file>stub.c</file>
<linkerflag>-lgcc</linkerflag>
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<file>lpk.rc</file> <file>lpk.rc</file>
</module> </module>

View file

@ -4,8 +4,6 @@
<include base="lsa_server">.</include> <include base="lsa_server">.</include>
<define name="WINVER">0x600</define> <define name="WINVER">0x600</define>
<define name="_WIN32_WINNT">0x0600</define> <define name="_WIN32_WINNT">0x0600</define>
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<library>lsa_server</library> <library>lsa_server</library>
<library>ntdll</library> <library>ntdll</library>
<library>kernel32</library> <library>kernel32</library>

View file

@ -1,8 +1,4 @@
<module name="msvcrt" type="win32dll" baseaddress="${BASEADDRESS_MSVCRT}" mangledsymbols="true" installbase="system32" installname="msvcrt.dll"> <module name="msvcrt" type="win32dll" baseaddress="${BASEADDRESS_MSVCRT}" mangledsymbols="true" installbase="system32" installname="msvcrt.dll">
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>--enable-stdcall-fixup</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<linkerflag>-lgcc</linkerflag>
<importlibrary definition="msvcrt.def" /> <importlibrary definition="msvcrt.def" />
<include base="msvcrt">.</include> <include base="msvcrt">.</include>
<include base="crt">include</include> <include base="crt">include</include>

View file

@ -3,8 +3,6 @@
<module name="samsrv" type="win32dll" baseaddress="${BASEADDRESS_SAMSRV}" entrypoint="0" installbase="system32" installname="samsrv.dll" unicode="yes"> <module name="samsrv" type="win32dll" baseaddress="${BASEADDRESS_SAMSRV}" entrypoint="0" installbase="system32" installname="samsrv.dll" unicode="yes">
<importlibrary definition="samsrv.def" /> <importlibrary definition="samsrv.def" />
<include base="samsrv">.</include> <include base="samsrv">.</include>
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<library>ntdll</library> <library>ntdll</library>
<library>kernel32</library> <library>kernel32</library>
<file>samsrv.c</file> <file>samsrv.c</file>

View file

@ -74,8 +74,5 @@
<file>window.c</file> <file>window.c</file>
<file>winpos.c</file> <file>winpos.c</file>
</directory> </directory>
<linkerflag>-lgcc</linkerflag>
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<file>user32.rc</file> <file>user32.rc</file>
</module> </module>

View file

@ -3,7 +3,6 @@
<module name="ext2fs" type="kernelmodedriver" installbase="system32/drivers" installname="ext2.sys" allowwarnings="true"> <module name="ext2fs" type="kernelmodedriver" installbase="system32/drivers" installname="ext2.sys" allowwarnings="true">
<bootstrap installbase="$(CDOUTPUT)" /> <bootstrap installbase="$(CDOUTPUT)" />
<include base="ext2fs">inc</include> <include base="ext2fs">inc</include>
<linkerflag>-lgcc</linkerflag>
<library>ntoskrnl</library> <library>ntoskrnl</library>
<library>hal</library> <library>hal</library>
<directory name="src"> <directory name="src">

View file

@ -3,7 +3,6 @@
<module name="fastfat" type="kernelmodedriver" installbase="system32/drivers" installname="fastfat.sys"> <module name="fastfat" type="kernelmodedriver" installbase="system32/drivers" installname="fastfat.sys">
<bootstrap installbase="$(CDOUTPUT)" /> <bootstrap installbase="$(CDOUTPUT)" />
<include base="fastfat">.</include> <include base="fastfat">.</include>
<linkerflag>-lgcc</linkerflag>
<library>ntoskrnl</library> <library>ntoskrnl</library>
<library>hal</library> <library>hal</library>
<file>blockdev.c</file> <file>blockdev.c</file>

View file

@ -2,7 +2,6 @@
<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
<module name="disk" type="kernelmodedriver" installbase="system32/drivers" installname="disk.sys"> <module name="disk" type="kernelmodedriver" installbase="system32/drivers" installname="disk.sys">
<bootstrap installbase="$(CDOUTPUT)" /> <bootstrap installbase="$(CDOUTPUT)" />
<linkerflag>-lgcc</linkerflag>
<library>ntoskrnl</library> <library>ntoskrnl</library>
<library>hal</library> <library>hal</library>
<library>class2</library> <library>class2</library>

View file

@ -2,7 +2,6 @@
<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
<module name="ramdisk" type="kernelmodedriver" installbase="system32/drivers" installname="ramdisk.sys"> <module name="ramdisk" type="kernelmodedriver" installbase="system32/drivers" installname="ramdisk.sys">
<bootstrap installbase="$(CDOUTPUT)" /> <bootstrap installbase="$(CDOUTPUT)" />
<linkerflag>-lgcc</linkerflag>
<library>ntoskrnl</library> <library>ntoskrnl</library>
<library>hal</library> <library>hal</library>
<library>class2</library> <library>class2</library>

View file

@ -20,6 +20,4 @@
<file>ros_glue.cpp</file> <file>ros_glue.cpp</file>
<file>ros_glue_asm.s</file> <file>ros_glue_asm.s</file>
</directory> </directory>
<linkerflag>-lgcc</linkerflag>
</module> </module>

View file

@ -9,7 +9,6 @@
--> -->
<module name="mpu401" type="kernelmodedriver" installbase="system32/drivers" installname="mpu401.sys" allowwarnings="true" entrypoint="DriverEntry"> <module name="mpu401" type="kernelmodedriver" installbase="system32/drivers" installname="mpu401.sys" allowwarnings="true" entrypoint="DriverEntry">
<linkerflag>-Wl,--entry,_DriverEntry@8</linkerflag>
<include base="mpu401">.</include> <include base="mpu401">.</include>
<include base="mpu401">..</include> <include base="mpu401">..</include>
<library>ntoskrnl</library> <library>ntoskrnl</library>

View file

@ -4,7 +4,6 @@
<importlibrary definition="unbzip2.def" /> <importlibrary definition="unbzip2.def" />
<define name="BZ_NO_STDIO" /> <define name="BZ_NO_STDIO" />
<define name="BZ_DECOMPRESS_ONLY" /> <define name="BZ_DECOMPRESS_ONLY" />
<linkerflag>-lgcc</linkerflag>
<library>ntoskrnl</library> <library>ntoskrnl</library>
<library>hal</library> <library>hal</library>
<file>bzlib.c</file> <file>bzlib.c</file>

View file

@ -458,8 +458,5 @@
<file>wmi.c</file> <file>wmi.c</file>
</directory> </directory>
<file>ntoskrnl.rc</file> <file>ntoskrnl.rc</file>
<linkerflag>-nostartfiles</linkerflag>
<linkerflag>-nostdlib</linkerflag>
<linkerflag>-lgcc</linkerflag>
<linkerscript>ntoskrnl_$(ARCH).lnk</linkerscript> <linkerscript>ntoskrnl_$(ARCH).lnk</linkerscript>
</group> </group>

View file

@ -526,8 +526,9 @@ MingwBackend::GenerateGlobalVariables () const
fprintf ( fMakefile, "PROJECT_RCFLAGS := $(PROJECT_CFLAGS) $(PROJECT_CDEFINES)\n" ); fprintf ( fMakefile, "PROJECT_RCFLAGS := $(PROJECT_CFLAGS) $(PROJECT_CDEFINES)\n" );
fprintf ( fMakefile, "PROJECT_WIDLFLAGS := $(PROJECT_CFLAGS) $(PROJECT_CDEFINES)\n" ); fprintf ( fMakefile, "PROJECT_WIDLFLAGS := $(PROJECT_CFLAGS) $(PROJECT_CDEFINES)\n" );
fprintf ( fMakefile, "PROJECT_LFLAGS := %s\n", fprintf ( fMakefile, "PROJECT_LFLAGS := \"$(shell ${TARGET_CC} -print-libgcc-file-name)\" %s\n",
GenerateProjectLFLAGS ().c_str () ); GenerateProjectLFLAGS ().c_str () );
fprintf ( fMakefile, "PROJECT_LPPFLAGS := \"$(shell ${TARGET_CPP} -print-file-name=libstdc++.a)\" \"$(shell ${TARGET_CPP} -print-file-name=libgcc.a)\" \"$(shell ${TARGET_CPP} -print-file-name=libmingw32.a)\" \"$(shell ${TARGET_CPP} -print-file-name=libmingwex.a)\"\n" );
fprintf ( fMakefile, "PROJECT_CFLAGS += -Wall\n" ); fprintf ( fMakefile, "PROJECT_CFLAGS += -Wall\n" );
fprintf ( fMakefile, "ifneq ($(OARCH),)\n" ); fprintf ( fMakefile, "ifneq ($(OARCH),)\n" );
fprintf ( fMakefile, "PROJECT_CFLAGS += -march=$(OARCH)\n" ); fprintf ( fMakefile, "PROJECT_CFLAGS += -march=$(OARCH)\n" );

View file

@ -743,10 +743,9 @@ MingwModuleHandler::GenerateMacro (
size_t i; size_t i;
bool generateAssignment; bool generateAssignment;
if ( generatingCompilerMacro )
generateAssignment = (use_pch && module.pch != NULL ) || data.includes.size () > 0 || data.defines.size () > 0 || data.compilerFlags.size () > 0;
else
generateAssignment = (use_pch && module.pch != NULL ) || data.includes.size () > 0 || data.defines.size () > 0; generateAssignment = (use_pch && module.pch != NULL ) || data.includes.size () > 0 || data.defines.size () > 0;
if ( generatingCompilerMacro )
generateAssignment |= data.compilerFlags.size () > 0;
if ( generateAssignment ) if ( generateAssignment )
{ {
fprintf ( fMakefile, fprintf ( fMakefile,
@ -1581,7 +1580,8 @@ MingwModuleHandler::GenerateLinkerCommand (
{ {
const FileLocation *target_file = GetTargetFilename ( module, NULL ); const FileLocation *target_file = GetTargetFilename ( module, NULL );
const FileLocation *definitionFilename = GetDefinitionFilename (); const FileLocation *definitionFilename = GetDefinitionFilename ();
string linker = module.cplusplus ? "${gpp}" : "${gcc}"; const FileLocation temp_obj ( TemporaryDirectory, "", module.name + ".temp.ld" );
string linker = "${ld}";
string objectsMacro = GetObjectsMacro ( module ); string objectsMacro = GetObjectsMacro ( module );
string libsMacro = GetLibsMacro (); string libsMacro = GetLibsMacro ();
@ -1590,7 +1590,7 @@ MingwModuleHandler::GenerateLinkerCommand (
string linkerScriptArgument; string linkerScriptArgument;
if ( module.linkerScript != NULL ) if ( module.linkerScript != NULL )
linkerScriptArgument = ssprintf ( " -Wl,-T,%s", backend->GetFullName ( *module.linkerScript->file ).c_str () ); linkerScriptArgument = ssprintf ( " -T=%s", backend->GetFullName ( *module.linkerScript->file ).c_str () );
else else
linkerScriptArgument = ""; linkerScriptArgument = "";
@ -1603,17 +1603,23 @@ MingwModuleHandler::GenerateLinkerCommand (
fprintf ( fMakefile, "\t$(ECHO_LD)\n" ); fprintf ( fMakefile, "\t$(ECHO_LD)\n" );
string targetName ( module.output->name ); string targetName ( module.output->name );
fprintf ( fMakefile, "\t@echo $(subst $(SEP),/,%s) > %s\n",
objectsMacro.c_str (),
backend->GetFullName ( temp_obj ).c_str () );
CLEAN_FILE ( temp_obj );
if ( !module.IsDLL () ) if ( !module.IsDLL () )
{ {
fprintf ( fMakefile, fprintf ( fMakefile,
"\t%s %s%s -o %s %s %s %s\n", "\t%s %s%s @%s %s%s %s -o %s\n",
linker.c_str (), linker.c_str (),
linkerParameters.c_str (), linkerParameters.c_str (),
linkerScriptArgument.c_str (), linkerScriptArgument.c_str (),
target_macro.c_str (), backend->GetFullName ( temp_obj ).c_str (),
objectsMacro.c_str (), module.cplusplus ? "$(PROJECT_LPPFLAGS) " : "",
libsMacro.c_str (), libsMacro.c_str (),
GetLinkerMacro ().c_str () ); GetLinkerMacro ().c_str (),
target_macro.c_str () );
} }
else if ( module.HasImportLibrary () ) else if ( module.HasImportLibrary () )
{ {
@ -1631,15 +1637,16 @@ MingwModuleHandler::GenerateLinkerCommand (
module.underscoreSymbols ? " --add-underscore" : "" ); module.underscoreSymbols ? " --add-underscore" : "" );
fprintf ( fMakefile, fprintf ( fMakefile,
"\t%s %s%s %s -o %s %s %s %s\n", "\t%s %s%s %s @%s %s%s %s -o %s\n",
linker.c_str (), linker.c_str (),
linkerParameters.c_str (), linkerParameters.c_str (),
linkerScriptArgument.c_str (), linkerScriptArgument.c_str (),
backend->GetFullName ( temp_exp ).c_str (), backend->GetFullName ( temp_exp ).c_str (),
target_macro.c_str (), backend->GetFullName ( temp_obj ).c_str (),
objectsMacro.c_str (), module.cplusplus ? "$(PROJECT_LPPFLAGS) " : "",
libsMacro.c_str (), libsMacro.c_str (),
GetLinkerMacro ().c_str () ); GetLinkerMacro ().c_str (),
target_macro.c_str () );
fprintf ( fMakefile, fprintf ( fMakefile,
"\t$(Q)$(PEFIXUP_TARGET) %s -exports%s\n", "\t$(Q)$(PEFIXUP_TARGET) %s -exports%s\n",
@ -1659,14 +1666,15 @@ MingwModuleHandler::GenerateLinkerCommand (
//printf ( "%s will have all its functions exported\n", //printf ( "%s will have all its functions exported\n",
// module.target->name.c_str () ); // module.target->name.c_str () );
fprintf ( fMakefile, fprintf ( fMakefile,
"\t%s %s%s -o %s %s %s %s\n", "\t%s %s%s @%s %s%s %s -o %s\n",
linker.c_str (), linker.c_str (),
linkerParameters.c_str (), linkerParameters.c_str (),
linkerScriptArgument.c_str (), linkerScriptArgument.c_str (),
target_macro.c_str (), backend->GetFullName ( temp_obj ).c_str (),
objectsMacro.c_str (), module.cplusplus ? "$(PROJECT_LPPFLAGS) " : "",
libsMacro.c_str (), libsMacro.c_str (),
GetLinkerMacro ().c_str () ); GetLinkerMacro ().c_str (),
target_macro.c_str () );
} }
GenerateBuildMapCode (); GenerateBuildMapCode ();
@ -2529,7 +2537,7 @@ MingwKernelModuleHandler::GenerateKernelModuleTarget ()
string dependencies = linkDepsMacro + " " + objectsMacro; string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s", string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s",
module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (), module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (),
module.baseaddress.c_str () ); module.baseaddress.c_str () );
@ -2652,7 +2660,7 @@ MingwKernelModeDLLModuleHandler::GenerateKernelModeDLLModuleTarget ()
string dependencies = linkDepsMacro + " " + objectsMacro; string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -shared", string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000 -shared",
module.GetEntryPoint(true).c_str (), module.GetEntryPoint(true).c_str (),
module.baseaddress.c_str () ); module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies, GenerateLinkerCommand ( dependencies,
@ -2701,7 +2709,7 @@ MingwKernelModeDriverModuleHandler::GenerateKernelModeDriverModuleTarget ()
string dependencies = linkDepsMacro + " " + objectsMacro; string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -shared", string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000 -shared",
module.GetEntryPoint(true).c_str (), module.GetEntryPoint(true).c_str (),
module.baseaddress.c_str () ); module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies, GenerateLinkerCommand ( dependencies,
@ -2749,7 +2757,7 @@ MingwNativeDLLModuleHandler::GenerateNativeDLLModuleTarget ()
string dependencies = linkDepsMacro + " " + objectsMacro; string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib -shared", string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000 -shared",
module.GetEntryPoint(true).c_str (), module.GetEntryPoint(true).c_str (),
module.baseaddress.c_str () ); module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies, GenerateLinkerCommand ( dependencies,
@ -2797,7 +2805,7 @@ MingwNativeCUIModuleHandler::GenerateNativeCUIModuleTarget ()
string dependencies = linkDepsMacro + " " + objectsMacro; string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib", string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000",
module.GetEntryPoint(true).c_str (), module.GetEntryPoint(true).c_str (),
module.baseaddress.c_str () ); module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies, GenerateLinkerCommand ( dependencies,
@ -2922,7 +2930,7 @@ MingwWin32DLLModuleHandler::GenerateWin32DLLModuleTarget ()
string dependencies = linkDepsMacro + " " + objectsMacro; string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-Wl,--subsystem,console -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -shared", string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000 -shared",
module.GetEntryPoint(true).c_str (), module.GetEntryPoint(true).c_str (),
module.baseaddress.c_str () ); module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies, GenerateLinkerCommand ( dependencies,
@ -2964,7 +2972,7 @@ MingwWin32OCXModuleHandler::GenerateWin32OCXModuleTarget ()
string dependencies = linkDepsMacro + " " + objectsMacro; string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-Wl,--subsystem,console -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -shared", string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000 -shared",
module.GetEntryPoint(true).c_str (), module.GetEntryPoint(true).c_str (),
module.baseaddress.c_str () ); module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies, GenerateLinkerCommand ( dependencies,
@ -3013,7 +3021,7 @@ MingwWin32CUIModuleHandler::GenerateWin32CUIModuleTarget ()
string dependencies = linkDepsMacro + " " + objectsMacro; string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-Wl,--subsystem,console -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000", string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000",
module.GetEntryPoint(true).c_str (), module.GetEntryPoint(true).c_str (),
module.baseaddress.c_str () ); module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies, GenerateLinkerCommand ( dependencies,
@ -3062,7 +3070,7 @@ MingwWin32GUIModuleHandler::GenerateWin32GUIModuleTarget ()
string dependencies = linkDepsMacro + " " + objectsMacro; string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-Wl,--subsystem,windows -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000", string linkerParameters = ssprintf ( "-subsystem=windows -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000",
module.GetEntryPoint(true).c_str (), module.GetEntryPoint(true).c_str (),
module.baseaddress.c_str () ); module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies, GenerateLinkerCommand ( dependencies,
@ -3684,7 +3692,7 @@ MingwTestModuleHandler::GenerateTestModuleTarget ()
string dependencies = linkDepsMacro + " " + objectsMacro; string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-Wl,--subsystem,console -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000", string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000",
module.GetEntryPoint(true).c_str (), module.GetEntryPoint(true).c_str (),
module.baseaddress.c_str () ); module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies, GenerateLinkerCommand ( dependencies,

View file

@ -250,7 +250,6 @@ public:
MingwKernelModeDLLModuleHandler ( const Module& module ); MingwKernelModeDLLModuleHandler ( const Module& module );
virtual HostType DefaultHost() { return HostFalse; } virtual HostType DefaultHost() { return HostFalse; }
virtual void Process (); virtual void Process ();
std::string TypeSpecificLinkerFlags() { return "-nostartfiles -nostdlib"; }
void AddImplicitLibraries ( Module& module ); void AddImplicitLibraries ( Module& module );
private: private:
void GenerateKernelModeDLLModuleTarget (); void GenerateKernelModeDLLModuleTarget ();
@ -264,7 +263,6 @@ public:
virtual HostType DefaultHost() { return HostFalse; } virtual HostType DefaultHost() { return HostFalse; }
virtual void Process (); virtual void Process ();
std::string TypeSpecificCFlags() { return "-D__NTDRIVER__"; } std::string TypeSpecificCFlags() { return "-D__NTDRIVER__"; }
std::string TypeSpecificLinkerFlags() { return "-nostartfiles -nostdlib"; }
void AddImplicitLibraries ( Module& module ); void AddImplicitLibraries ( Module& module );
private: private:
void GenerateKernelModeDriverModuleTarget (); void GenerateKernelModeDriverModuleTarget ();
@ -277,7 +275,6 @@ public:
MingwNativeDLLModuleHandler ( const Module& module ); MingwNativeDLLModuleHandler ( const Module& module );
virtual HostType DefaultHost() { return HostFalse; } virtual HostType DefaultHost() { return HostFalse; }
virtual void Process (); virtual void Process ();
std::string TypeSpecificLinkerFlags() { return "-nostartfiles -nostdlib"; }
void AddImplicitLibraries ( Module& module ); void AddImplicitLibraries ( Module& module );
private: private:
void GenerateNativeDLLModuleTarget (); void GenerateNativeDLLModuleTarget ();
@ -291,7 +288,6 @@ public:
virtual HostType DefaultHost() { return HostFalse; } virtual HostType DefaultHost() { return HostFalse; }
virtual void Process (); virtual void Process ();
std::string TypeSpecificCFlags() { return "-D__NTAPP__"; } std::string TypeSpecificCFlags() { return "-D__NTAPP__"; }
std::string TypeSpecificLinkerFlags() { return "-nostartfiles -nostdlib"; }
void AddImplicitLibraries ( Module& module ); void AddImplicitLibraries ( Module& module );
private: private:
void GenerateNativeCUIModuleTarget (); void GenerateNativeCUIModuleTarget ();
@ -304,7 +300,6 @@ public:
MingwWin32DLLModuleHandler ( const Module& module ); MingwWin32DLLModuleHandler ( const Module& module );
virtual HostType DefaultHost() { return HostFalse; } virtual HostType DefaultHost() { return HostFalse; }
virtual void Process (); virtual void Process ();
std::string TypeSpecificLinkerFlags() { return module.cplusplus ? "-nostartfiles -lgcc" : "-nostartfiles -nostdlib -lgcc"; }
void AddImplicitLibraries ( Module& module ); void AddImplicitLibraries ( Module& module );
private: private:
void GenerateWin32DLLModuleTarget (); void GenerateWin32DLLModuleTarget ();
@ -317,7 +312,6 @@ public:
MingwWin32OCXModuleHandler ( const Module& module ); MingwWin32OCXModuleHandler ( const Module& module );
virtual HostType DefaultHost() { return HostFalse; } virtual HostType DefaultHost() { return HostFalse; }
virtual void Process (); virtual void Process ();
std::string TypeSpecificLinkerFlags() { return module.cplusplus ? "-nostartfiles -lgcc" : "-nostartfiles -nostdlib -lgcc"; }
void AddImplicitLibraries ( Module& module ); void AddImplicitLibraries ( Module& module );
private: private:
void GenerateWin32OCXModuleTarget (); void GenerateWin32OCXModuleTarget ();
@ -330,7 +324,6 @@ public:
MingwWin32CUIModuleHandler ( const Module& module ); MingwWin32CUIModuleHandler ( const Module& module );
virtual HostType DefaultHost() { return HostFalse; } virtual HostType DefaultHost() { return HostFalse; }
virtual void Process (); virtual void Process ();
std::string TypeSpecificLinkerFlags() { return module.cplusplus ? "-nostartfiles -lgcc" : "-nostartfiles -nostdlib -lgcc"; }
void AddImplicitLibraries ( Module& module ); void AddImplicitLibraries ( Module& module );
private: private:
void GenerateWin32CUIModuleTarget (); void GenerateWin32CUIModuleTarget ();
@ -343,7 +336,6 @@ public:
MingwWin32GUIModuleHandler ( const Module& module ); MingwWin32GUIModuleHandler ( const Module& module );
virtual HostType DefaultHost() { return HostFalse; } virtual HostType DefaultHost() { return HostFalse; }
virtual void Process (); virtual void Process ();
std::string TypeSpecificLinkerFlags() { return module.cplusplus ? "-nostartfiles -lgcc" : "-nostartfiles -nostdlib -lgcc"; }
void AddImplicitLibraries ( Module& module ); void AddImplicitLibraries ( Module& module );
private: private:
void GenerateWin32GUIModuleTarget (); void GenerateWin32GUIModuleTarget ();
@ -431,7 +423,6 @@ public:
MingwTestModuleHandler ( const Module& module ); MingwTestModuleHandler ( const Module& module );
virtual HostType DefaultHost() { return HostFalse; } virtual HostType DefaultHost() { return HostFalse; }
virtual void Process (); virtual void Process ();
std::string TypeSpecificLinkerFlags() { return "-nostartfiles -nostdlib"; }
protected: protected:
virtual void GetModuleSpecificCompilationUnits ( std::vector<CompilationUnit*>& compilationUnits ); virtual void GetModuleSpecificCompilationUnits ( std::vector<CompilationUnit*>& compilationUnits );
private: private: