From b609c89b77876ef144a2acdb31defbf1881437c2 Mon Sep 17 00:00:00 2001 From: qouyang Date: Thu, 16 Nov 2006 10:19:07 +0000 Subject: [PATCH] Fixed EDKT419. Removing C Pre-Processing from VfrCompile Tool. Now the input file for VfrCompile tool should be *.i file which was preprocessed by compiler. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1964 6f19259b-4bc3-4df7-8a09-765794883524 --- EdkNt32Pkg/Dxe/PlatformBds/PlatformBds.msa | 6 +- Tools/CCode/Source/VfrCompile/VfrCompile.g | 120 +++++++++--------- Tools/CCode/Source/VfrCompile/VfrServices.cpp | 4 +- Tools/Conf/BuildMacro.xml | 13 +- Tools/Conf/tools_def.template | 13 +- 5 files changed, 89 insertions(+), 67 deletions(-) diff --git a/EdkNt32Pkg/Dxe/PlatformBds/PlatformBds.msa b/EdkNt32Pkg/Dxe/PlatformBds/PlatformBds.msa index bca2117a93..3508095ad7 100644 --- a/EdkNt32Pkg/Dxe/PlatformBds/PlatformBds.msa +++ b/EdkNt32Pkg/Dxe/PlatformBds/PlatformBds.msa @@ -88,7 +88,7 @@ Generic\FrontPage.h Generic\FrontPage.c Generic\FrontPageStrings.uni - Generic\FrontPageVfr.vfr + Generic\FrontPageVfr.Vfr Generic\Language.h Generic\Language.c Generic\String.h @@ -114,11 +114,11 @@ Generic\BootMngr\BootManager.h Generic\BootMngr\BootManager.c Generic\BootMngr\BootManagerStrings.uni - Generic\BootMngr\BootManagerVfr.vfr + Generic\BootMngr\BootManagerVfr.Vfr Generic\DeviceMngr\DeviceManager.h Generic\DeviceMngr\DeviceManager.c Generic\DeviceMngr\DeviceManagerStrings.uni - Generic\DeviceMngr\DeviceManagerVfr.vfr + Generic\DeviceMngr\DeviceManagerVfr.Vfr Generic\Bds.dxs diff --git a/Tools/CCode/Source/VfrCompile/VfrCompile.g b/Tools/CCode/Source/VfrCompile/VfrCompile.g index 44820bc31b..9fdd7caca6 100644 --- a/Tools/CCode/Source/VfrCompile/VfrCompile.g +++ b/Tools/CCode/Source/VfrCompile/VfrCompile.g @@ -172,69 +172,69 @@ Returns: // on it. // fclose (VfrFptr); - Len = strlen (PREPROCESSOR_OPTIONS) + strlen (gOptions.VfrFileName) + 10; - if (gOptions.CPreprocessorOptions != NULL) { - Len += strlen (gOptions.CPreprocessorOptions) + 1; - } - if (gOptions.IncludePaths != NULL) { - Len += strlen (gOptions.IncludePaths) + 1; - } - Cmd = (char *)malloc (Len); - if (Cmd == NULL) { - Error (PROGRAM_NAME, 0, 0, NULL, "could not allocate memory"); - Cleanup(); - return STATUS_ERROR; - } - strcpy (Cmd, PREPROCESSOR_OPTIONS); - if (gOptions.IncludePaths != NULL) { - strcat (Cmd, gOptions.IncludePaths); - strcat (Cmd, " "); - } - if (gOptions.CPreprocessorOptions != NULL) { - strcat (Cmd, gOptions.CPreprocessorOptions); - strcat (Cmd, " "); - } - strcat (Cmd, gOptions.VfrFileName); -#ifndef __GNUC__ - Status = _spawnlp (_P_WAIT, PREPROCESSOR_COMMAND, Cmd, NULL); -#else - { - char CommandLine[1000]; - char *p; - - // - // Lean the slashes forward. - // - for (p = gOptions.PreprocessorOutputFileName; *p; p++) { - if (*p=='\\') { - *p=FILE_SEP_CHAR; - } - } - - // - // Lean the slashes forward. - // - for (p = Cmd; *p; p++) { - if (*p=='\\') { - *p=FILE_SEP_CHAR; - } - } - - sprintf(CommandLine, "%s %s > %s", PREPROCESSOR_COMMAND, Cmd, gOptions.PreprocessorOutputFileName); - Status = system (CommandLine); - } -#endif - if (Status != 0) { - Error (PROGRAM_NAME, 0, 0, gOptions.VfrFileName, "failed to spawn C preprocessor on VFR file"); - printf ("Command: '%s %s'\n", PREPROCESSOR_COMMAND, Cmd); - Cleanup(); - return STATUS_ERROR; - } - free (Cmd); +// Len = strlen (PREPROCESSOR_OPTIONS) + strlen (gOptions.VfrFileName) + 10; +// if (gOptions.CPreprocessorOptions != NULL) { +// Len += strlen (gOptions.CPreprocessorOptions) + 1; +// } +// if (gOptions.IncludePaths != NULL) { +// Len += strlen (gOptions.IncludePaths) + 1; +// } +// Cmd = (char *)malloc (Len); +// if (Cmd == NULL) { +// Error (PROGRAM_NAME, 0, 0, NULL, "could not allocate memory"); +// Cleanup(); +// return STATUS_ERROR; +// } +// strcpy (Cmd, PREPROCESSOR_OPTIONS); +// if (gOptions.IncludePaths != NULL) { +// strcat (Cmd, gOptions.IncludePaths); +// strcat (Cmd, " "); +// } +// if (gOptions.CPreprocessorOptions != NULL) { +// strcat (Cmd, gOptions.CPreprocessorOptions); +// strcat (Cmd, " "); +// } +// strcat (Cmd, gOptions.VfrFileName); +//#ifndef __GNUC__ +// Status = _spawnlp (_P_WAIT, PREPROCESSOR_COMMAND, Cmd, NULL); +//#else +// { +// char CommandLine[1000]; +// char *p; +// +// // +// // Lean the slashes forward. +// // +// for (p = gOptions.PreprocessorOutputFileName; *p; p++) { +// if (*p=='\\') { +// *p=FILE_SEP_CHAR; +// } +// } +// +// // +// // Lean the slashes forward. +// // +// for (p = Cmd; *p; p++) { +// if (*p=='\\') { +// *p=FILE_SEP_CHAR; +// } +// } +// +// sprintf(CommandLine, "%s %s > %s", PREPROCESSOR_COMMAND, Cmd, gOptions.PreprocessorOutputFileName); +// Status = system (CommandLine); +// } +//#endif +// if (Status != 0) { +// Error (PROGRAM_NAME, 0, 0, gOptions.VfrFileName, "failed to spawn C preprocessor on VFR file"); +// printf ("Command: '%s %s'\n", PREPROCESSOR_COMMAND, Cmd); +// Cleanup(); +// return STATUS_ERROR; +// } +// free (Cmd); // // Open the preprocessor output file // - if ((VfrFptr = fopen (gOptions.PreprocessorOutputFileName, "r")) == NULL) { + if ((VfrFptr = fopen (gOptions.VfrFileName, "r")) == NULL) { Error (PROGRAM_NAME, 0, 0, "failed to open input VFR preprocessor output file", gOptions.PreprocessorOutputFileName); Cleanup(); diff --git a/Tools/CCode/Source/VfrCompile/VfrServices.cpp b/Tools/CCode/Source/VfrCompile/VfrServices.cpp index 359256a358..d338672060 100644 --- a/Tools/CCode/Source/VfrCompile/VfrServices.cpp +++ b/Tools/CCode/Source/VfrCompile/VfrServices.cpp @@ -332,8 +332,8 @@ Returns: // // Open the input VFR file and the output list file // - if ((InFptr = fopen (gOptions.PreprocessorOutputFileName, "r")) == NULL) { - Warning (PROGRAM_NAME, 0, 0, gOptions.PreprocessorOutputFileName, "could not open file for creating a list file"); + if ((InFptr = fopen (gOptions.VfrFileName, "r")) == NULL) { + Warning (PROGRAM_NAME, 0, 0, gOptions.VfrFileName, "could not open file for creating a list file"); } else { if ((OutFptr = fopen (gOptions.VfrListFileName, "w")) == NULL) { Warning (PROGRAM_NAME, 0, 0, gOptions.VfrListFileName, "could not open output list file for writing"); diff --git a/Tools/Conf/BuildMacro.xml b/Tools/Conf/BuildMacro.xml index 679a57744d..2e1eec1fa8 100644 --- a/Tools/Conf/BuildMacro.xml +++ b/Tools/Conf/BuildMacro.xml @@ -709,7 +709,18 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - + + + + + + + + + + + diff --git a/Tools/Conf/tools_def.template b/Tools/Conf/tools_def.template index 98898d41f9..99d9a7b941 100644 --- a/Tools/Conf/tools_def.template +++ b/Tools/Conf/tools_def.template @@ -59,6 +59,7 @@ IDENTIFIER = Default TOOL_CHAIN_CONF *_VS2003_IA32_*_FAMILY = MSFT *_VS2003_IA32_CC_NAME = cl.exe +*_VS2003_IA32_VFR_NAME = cl.exe *_VS2003_IA32_SLINK_NAME = lib.exe *_VS2003_IA32_DLINK_NAME = link.exe *_VS2003_IA32_ASMLINK_NAME = link.exe @@ -74,6 +75,7 @@ IDENTIFIER = Default TOOL_CHAIN_CONF *_VS2003_IA32_*_DPATH = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE *_VS2003_IA32_PP_FLAGS = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h +*_VS2003_IA32_VFR_FLAGS = /nologo /P /TC /DVFRCOMPILE DEBUG_VS2003_IA32_CC_FLAGS = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h /Zi /Gm RELEASE_VS2003_IA32_CC_FLAGS = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h DEBUG_VS2003_IA32_PCH_FLAGS = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC /Zi /Gm @@ -93,6 +95,7 @@ RELEASE_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O *_WINDDK3790x1830_*_*_FAMILY = MSFT *_WINDDK3790x1830_*_CC_NAME = cl.exe +*_WINDDK3790x1830_*_VFR_NAME = cl.exe *_WINDDK3790x1830_*_SLINK_NAME = lib.exe *_WINDDK3790x1830_*_DLINK_NAME = link.exe *_WINDDK3790x1830_*_ASMLINK_NAME = link.exe @@ -100,7 +103,7 @@ RELEASE_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O *_WINDDK3790x1830_*_PCH_NAME = cl.exe *_WINDDK3790x1830_*_SLINK_FLAGS = /nologo /LTCG - +*_WINDDK3790x1830_*_VFR_FLAGS = /nologo /P /TC /DVFRCOMPILE ################## # IA32 definitions ################## @@ -202,10 +205,12 @@ RELEASE_WINDDK3790x1830_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OP *_VS2005PRO_*_DLINK_NAME = link.exe *_VS2005PRO_*_ASMLINK_NAME = link.exe *_VS2005PRO_*_PP_NAME = cl.exe +*_VS2005PRO_*_VFR_NAME = cl.exe *_VS2005PRO_*_PCH_NAME = cl.exe *_VS2005PRO_*_SLINK_FLAGS = /NOLOGO /LTCG *_VS2005PRO_*_PP_FLAGS = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h +*_VS2005PRO_*_VFR_FLAGS = /nologo /P /TC /DVFRCOMPILE ################## # IA32 definitions @@ -287,11 +292,13 @@ RELEASE_VS2005PRO_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF *_UNIXGCC_IA32_DLINK_NAME = ld *_UNIXGCC_IA32_ASM_NAME = gcc *_UNIXGCC_IA32_PP_NAME = gcc +*_UNIXGCC_IA32_VFR_NAME = gcc *_UNIXGCC_IA32_CC_FLAGS = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include ${DEST_DIR_DEBUG}/AutoGen.h *_UNIXGCC_*_DLINK_FLAGS = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT} *_UNIXGCC_IA32_ASM_FLAGS = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h *_UNIXGCC_*_PP_FLAGS = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h +*_UNIXGCC_*_VFR_FLAGS = -x c -E -P -DVFRCOMPILE *_UNIXGCC_IA32_ASM_EXT = .S *_UNIXGCC_IA32_*_PATH = /opt/tiano/i386-tiano-pe/i386-tiano-pe/bin @@ -343,6 +350,7 @@ RELEASE_VS2005PRO_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF *_CYGWINGCC_IA32_DLINK_NAME = ld *_CYGWINGCC_IA32_ASM_NAME = gcc *_CYGWINGCC_IA32_PP_NAME = gcc +*_CYGWINGCC_IA32_VFR_NAME = gcc *_CYGWINGCC_X64_CC_NAME = gcc *_CYGWINGCC_X64_SLINK_NAME = ar @@ -355,6 +363,7 @@ RELEASE_VS2005PRO_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF *_CYGWINGCC_*_DLINK_FLAGS = -nostdlib -O2 --gc-sections --dll --export-all-symbols --entry _${ENTRYPOINT} *_CYGWINGCC_*_ASM_FLAGS = -c -imacros ${DEST_DIR_DEBUG}/AutoGen.h *_CYGWINGCC_*_PP_FLAGS = -E -x assembler-with-cpp -include ${DEST_DIR_DEBUG}/AutoGen.h +*_CYGWINGCC_*_VFR_FLAGS = -x c -E -P -DVFRCOMPILE *_CYGWINGCC_*_ASM_EXT = .S *_CYGWINGCC_IA32_*_PATH = c:/Cygwin/opt/tiano/i386-tiano-pe/i386-tiano-pe/bin @@ -452,9 +461,11 @@ RELEASE_MIXED_X64_ASM_FLAGS = /nologo /W3 /WX /c /Cx /Zd *_MYTOOLS_*_DLINK_NAME = link.exe *_MYTOOLS_*_ASMLINK_NAME = link.exe *_MYTOOLS_*_PP_NAME = cl.exe +*_MYTOOLS_*_VFR_NAME = cl.exe *_MYTOOLS_*_APP_NAME = cl.exe *_MYTOOLS_*_ASM_NAME = ml.exe +*_MYTOOLS_*_VFR_FLAGS = /nologo /P /TC /DVFRCOMPILE ################## # IA32 definitions ################## -- 2.39.2