From 636f2be673b2f43518167d8fddae56b714f19314 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Fri, 12 Mar 2010 10:54:01 +0000 Subject: [PATCH] Sync EDKII BaseTools to BaseTools project r1928 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10234 6f19259b-4bc3-4df7-8a09-765794883524 --- BaseTools/Bin/Win32/BootSectImage.exe | Bin 393216 -> 393216 bytes BaseTools/Bin/Win32/EfiLdrImage.exe | Bin 421888 -> 421888 bytes BaseTools/Bin/Win32/EfiRom.exe | Bin 446464 -> 446464 bytes BaseTools/Bin/Win32/GenBootSector.exe | Bin 425984 -> 425984 bytes BaseTools/Bin/Win32/GenCrc32.exe | Bin 425984 -> 425984 bytes BaseTools/Bin/Win32/GenFds.exe | Bin 1466321 -> 1466708 bytes BaseTools/Bin/Win32/GenFfs.exe | Bin 430080 -> 430080 bytes BaseTools/Bin/Win32/GenFv.exe | Bin 475136 -> 475136 bytes BaseTools/Bin/Win32/GenFw.exe | Bin 479232 -> 483328 bytes BaseTools/Bin/Win32/GenPage.exe | Bin 421888 -> 421888 bytes BaseTools/Bin/Win32/GenSec.exe | Bin 446464 -> 446464 bytes BaseTools/Bin/Win32/GenVtf.exe | Bin 446464 -> 446464 bytes BaseTools/Bin/Win32/LzmaCompress.exe | Bin 397312 -> 397312 bytes BaseTools/Bin/Win32/Split.exe | Bin 425984 -> 425984 bytes BaseTools/Bin/Win32/TianoCompress.exe | Bin 434176 -> 434176 bytes BaseTools/Bin/Win32/VfrCompile.exe | Bin 1183744 -> 1183744 bytes BaseTools/Bin/Win32/VolInfo.exe | Bin 471040 -> 471040 bytes BaseTools/Bin/Win32/build.exe | Bin 2735442 -> 2736765 bytes BaseTools/Conf/build_rule.template | 14 ++- BaseTools/Conf/tools_def.template | 61 ++++++------ BaseTools/Source/C/GenFw/GenFw.c | 93 +++++++++++++++--- BaseTools/Source/C/GenFw/elf_common.h | 2 + BaseTools/Source/Python/AutoGen/GenMake.py | 4 +- .../Source/Python/Common/DscClassObject.py | 14 ++- .../Source/Python/Common/FdfParserLite.py | 8 +- BaseTools/Source/Python/Common/Parsing.py | 16 +-- BaseTools/Source/Python/GenFds/FdfParser.py | 63 +++++++----- BaseTools/Source/Python/build/BuildReport.py | 50 +++++----- BaseTools/Source/Python/build/build.py | 75 ++++++++------ 29 files changed, 264 insertions(+), 136 deletions(-) diff --git a/BaseTools/Bin/Win32/BootSectImage.exe b/BaseTools/Bin/Win32/BootSectImage.exe index 9d041086254b550530642262ce5b5bb9b66d6021..bad78df9ca7847c8efe96aa177189e9f6e399ef4 100755 GIT binary patch delta 61 zcmZo@kZ5R-nDBr({p-xe$E}YUTOTvEK4#wfnB^l_Z2R?xEWCRJmKD11zum6lHPd;% P1ZR=1)%GuQS$UEGu__%2 delta 61 zcmZo@kZ5R-nDBu4^UVIn$E}YUTOTvEK4#wfnB^l_Z2R?xEWCRJCb6wZ*HA3;-_bI6 Px0q09^Y$-uS$UEGvu7PV diff --git a/BaseTools/Bin/Win32/EfiLdrImage.exe b/BaseTools/Bin/Win32/EfiLdrImage.exe index cc1bbd5cacfc0d8f60e7f6b8b6282dd5b73bab3d..980169d243d650d876a64bd3b4a479cf7e8bf113 100755 GIT binary patch delta 64 zcmZp8AldLha>4`VjIT2rAGbbcY<QvBlT|04h))CIA2c delta 64 zcmZp8AldLha>4`V?=$-wAGbbcY<f>-M@W_5nGHc08dIF?*IS* diff --git a/BaseTools/Bin/Win32/EfiRom.exe b/BaseTools/Bin/Win32/EfiRom.exe index 02a8851b2e69073772fe40ff2819d93acb172303..039c3d5e9115d2fb9328ba551939292e16a03670 100755 GIT binary patch delta 64 zcmZozAl(2m?@b>3{tb6YX$VKVqWiDRk Uy4HN+&xrPwueWb8VDs?@01g=+lK=n! delta 64 zcmZo@kZNd(2m?@b>3{tb6YX+|Kgq@8R+E T+Y%@AW)II?%#z$@b>G0tVbUR%zeymm6Q0- UdG51$oh#ixGHhRC#1`TU03{?K8~^|S delta 64 zcmZo@kZNd%#z$@b>G0tVbUR7)PJ-7f}`V T?%h+iYSLvh_w8$p*g|{(6lWfr diff --git a/BaseTools/Bin/Win32/GenFds.exe b/BaseTools/Bin/Win32/GenFds.exe index 6dcfc846983c109270c1b4e16a6f948cc5e63b13..d471913c805ccf27100d47f05aec55f254f628b9 100755 GIT binary patch delta 6124 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 diff --git a/BaseTools/Bin/Win32/GenFfs.exe b/BaseTools/Bin/Win32/GenFfs.exe index 0b2909522de1aea93006c2202b0f4b58fb69d3dc..13fbaef7b2b265e3ecb5d0e2607fde1a8d749d6d 100755 GIT binary patch delta 64 zcmZozAl0xyYQh8NystAGAGbbcY<&piq;qBKSvVMIau-N{C@~8J} U-PWyDtNy-%^Y!*ShuBnV0axN92mk;8 delta 64 zcmZo@kZov?o$!MB@67(j*R8J^TVFG^zGiNH&9e11>&piq;qBKSvVMIa;P*6YN`(T4 U&%#}+vZgPz%iezH5SvOZ07vg3SpWb4 diff --git a/BaseTools/Bin/Win32/GenFw.exe b/BaseTools/Bin/Win32/GenFw.exe index 727176ae2da303716caea3c1950655efdc016103..e6b1745d0a680554319e9d117268eec58de34c9c 100755 GIT binary patch delta 137244 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]_=+MM#2)k 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 SvzOm??=(pZGi;LEqyG)wF;M{k delta 132983 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 LbbA)7^NIfhxQ&PV diff --git a/BaseTools/Bin/Win32/GenPage.exe b/BaseTools/Bin/Win32/GenPage.exe index 407eb054238d70330fee0d45445f504d7af8a4d3..9e893751fbf70e1936e8e48a1f896d03f83ecf7b 100755 GIT binary patch delta 64 zcmZp8AldLha>4`VlCLuxAGbbcY<4`V|1xW~|_u)4P3%5nGHc09fE4=l}o! diff --git a/BaseTools/Bin/Win32/GenSec.exe b/BaseTools/Bin/Win32/GenSec.exe index e4c0407b2425ae4cda27667e32a24806dd79a27a..117f7ad5b3e6800bc708b73de30e0900c9d25015 100755 GIT binary patch delta 64 zcmZozAlgF=hLdBDS1Z06bnGZU6uP diff --git a/BaseTools/Bin/Win32/GenVtf.exe b/BaseTools/Bin/Win32/GenVtf.exe index 32f7dce991a66bda300d6423c0dcf51bc900fb1f..5ca6badaa3429a704a02854c4eda8ac2de4758e7 100755 GIT binary patch delta 64 zcmZozAl5jtX6x|*03J3T-~a#s delta 64 zcmZozAlYz>nCi U&QnF@*I)hmi*aQ~!AGbbcY<{ME Uzq#=TPH`Q(tGm7BGHZ&FC;@b>44tf~(LtoaPsxue$l UOu6_nM(g0Rh1+GE*q+z|0Q>76IsgCw delta 64 zcmZo@kZNd{WmbRV=hn}Rt)H1%KQp&}X4(3g^D82R@DaruY%s^Z-|Hk6RxzwmxQReazhYm}To@){hM!;qBKOS;YUgBVGUi delta 73 zcmV-P0Ji^t;2eP99FW)p2AYq7+lAW!h1&v!+XIE$1hv}*3E=|PIea7J diff --git a/BaseTools/Bin/Win32/build.exe b/BaseTools/Bin/Win32/build.exe index 0803c85e5288be225c009b151314a8ff6f5f0fef..2a575fa69dcf672201412a83747c0651e0447c9a 100755 GIT binary patch delta 18521 zcmeHv33L?I(s19N$s{v9*+??olXcRWEX|q__ALaGV2}_TmLLdmNJ1P8nJfbazQlmw zgXe~ zb?Yuwx2n4CogDq;S@zrfb!^UjHeZ}?ns1&TG~Y5mcz(!y>r1u^JHz~Qss?CRGpnMS z1tF>#e%)zvnmm`E)RkSfDIHj_{vYq!5=<-to;+;JmVyPR&nCea2GZ+y}O4EJGjnp{V&PF6~fCWY$KCu9u!z3&Ms7FG6{_)p~fk&0FD($L30M>q)m;Aq~N#Cf7X{~Y~ zQ8<0lCO1<`z*TBPQraU4<@R<}PF}^=w=_<;%ivkOfDCCAg=rSSKT2Q?MI0%C!$d*O zo77uq3gRq@7ko*?C!dSMWQ2)=PZg%(@?dEShi+jiA1|x@D=UFjr)*tAjDFGtICRRE zoEp*ESro2LI(5^+_jJB4Exf&a%2pU%ACA1uZ0PRFDDdRxmlhOziZmGXsqKDi1~Gjh z0!Vr@Nr5juwbg|Mte7vXAK{x)=dGKik2`JK!7`RGL8#Be3W0^=e>=1C|2Bld%xMl~ z3Ujb9=G1$BZW|xO4#1+XZO_N-M10RK0(%JTC9n@hoUu9CL6~~R=4Efe8)s~J>}?1= zYg-liC+fwFSQg3JPv3pk*25J0cWU%Hfnox85~wEd8raU;x=625`fmi@gdyi`8`wK= z@w_dCy#~=2kn-zr`vseueF67gu=Qmz`YRV~Ut4cEMED;Pm`=b?-~@qj2m%s<%28$I zV`kM<6nSerbExJFf!7G|!JMbmY54kQTe9OMrg@{$ch4xSp6Vars}Fd-g2XGfVM(76 z-bVy#5M;zr%1fXtfrBvriY+zfCrZCV;Aa9?2)qG%uh?F1jY z&?i`A)BkbRcFoN8KlZV-!$Je_d=6}a8Vg&Pl*7J)OHAq=;?b#Mp#aTg;c+lVlt!>q zuu_yBv3yGv7onF)I>^rJS4@&wj8$;;`2u(bQEd)^!vtiIEmF@I7u9oi+)1UF6FeV) z*CO4^hUlj)QkjXRL7q+8%}{knQbKkdHQ*F@1J1R0D(gc{lPHyisX!2dvMPUlg(nei zlO%UU0#(f+BtElbxL=aSvk%~uB=yEV9Cm31o2ct{sYr}SZYAU4Og#x3G9(!~g-dzt zDZM6K>Ston@L~sPLM$IYr%JuH<9q@nMM+~t2ZJrY*plF}D9Oci*d8UFV;5mnv@|&= z3Oo5i4~mhVWVnLM9nu{3Ex2T<2Mg85%FOI;a@gR!dgh;)nyAZg;_x2klOJplhmk*>2C z_=j6s$X+Y_v@s?HO`RY85KQ8}B@AL}K z7hvryt!k#t$azyx?y0Ep*9G|IKSks^VLL+r7E+32C=h`aMgH;`RTb^9#}SP%1f_-b zM&*zhzN&K1Dxxx;02hxhDK!N_MhK<61XL1`0L`h$%X@x{O8Zh*A}_>E-mQz&(PG0* zRzCol$jBks1W6$_|z|gOMJI4_XLIlwr zK!%yopXts@TDr}^Zo~f2ZFoydWF`s@t9^j!aowcB41KFRGNmlbQd;XzU{R)|uqarU zDW#&3c{fuk?%9u)fYh$QLRs|h{ztM{(T1h67|PegDbmWgundZ_q#>c#aD5EJWVdGO z&tyqNXeF_x_HrAD!&u^%rGG^n8r8tvKDRg zMz-W&v-MB2rDvICHDcFi!s&0+cv#m{%9l6|t}c(kPd#zJae9l4&XRgb6C+npnr7u` zN7l_2z~)}kP;niDdEJq0UD1`Kpdb$r$`Xd5-A9G_!cFM4b*C@3E zynUqZu_WhQggsNKLoU&L7^`7JAL-@D;f@iG`Htg`>q4UAu%nCPjs^97CB43{{lZ-# zN1yf$2sv}D6ZlryRnw%b$Mr?4>=TsR%dNs4Ch`hVbXt5Plv^%6=!Z=c1b-~51McmW zqi@8>K|~L0UJ&|(Phky~aeQY=;s@vK8QdN#3Q42xySOcNtm1Y6L5j~$;- ze8TVv$0q`xNPIfr6NOJSJ~4X#J&vt+g&ljkVnEZ0?pfE-4qU$*uBOU~Chxh$dVHEZ z@bPdmezf!WuB$Y|oOGq@q=l+?-zDEyT5NhIa{gENzFn5paHq$^LdAY2*kvJ#S+fWDClv1@`hRU7Xb*wZ) z&yGq)DC&w3!64ma2G?FWT0!O@PJ>G%G~^i<1%Ej5^JO{f|MXh8P5+nHVj*_?`?b)1 zw-(&$k#;40N()juRBSO`QE+UZJZ($|l$ZLR2yUrpaMcIueASh%GH-Qyz%`}9Rpzgr zSy30LD0cB=GeH4%HDBMHwVmN*|M2JS3@>q`!Sp2_lslR$ae%Zo?>$BdF{~}5#s4dP_ z6)>hKFz9W$8oHL-EYgBjC6yt;zUO2W4!SNg{iengD+$cL?*m1eS;w7vp zu=Tjy(P%LSK0hw6Vp;nApUA(8Yz*9YN?yQj*KME5lY>~Z?)yUSWMa$Vv9IOs>#j{fR{$Ii&BM{$_S<`=P5Zhp4|k-APCs7qF`!$fv>8fc*-Z2jsJSH1V1x9pF3HH$GPw79 z`DD!VL_;FblRznfJE7(Wd0Z>`cYctcVl(y1%ksk^=saKkO-?sgAsTdhTaJO8YjRLT zJ++!apnOUz5kMgL=?)If6Mq!FseV=x`Sf^&D@_cydc%$p$Iv zv0P=CWebtm`q(06y5&1catR#4eu0rpiMRYfMZZD~Q?l80Si_WJ{3QEi+$vvX^*F8xOz^o$NslNaid;rFP--JM&C2s^vHq%A znP_4^LsEz`j9r1s5XFZRI1-{bV!t88^8^^~4MWCKXiUq2S(Wa=hpFlWgDi;c1Qk{# znstELR>f`kmMSj78msa&>!T00DIYLv9Fd4e06Cw_jv&udhyz>Rle>36+;Yzf|Cm_?< zBMA&7K+4s_=kpbfH)C)KCo)={6;}J>(Tc$@wCQTT_qU7X>qoQFGqzge~!kV#%bQbB$5w%)>36 znV?9lt3Dt>=^G@CpxPn=BVmrJ)UpEjPF2o^9itWafWU_c;FGY(1khi#jew%hoDP@} z9vP|6aw{8H&_rxo4=dcLiHD{sDXbJK)082oPhUt=*0Mk8qtcZ%jGbvyDPg2*@*4sb z)%8Aq^;3Gerd+oa{z@~U4-tx1QLxJM`w@6PA_NlZJWt`ce2?cg8gm%|+IM{8jxH+l zRKWU7L0bKe@&I$GyI~OKqDMur|pt>&!kWKV_2TRtW=RN3}Z251r#UtI7 z{@s3|2BafAR|$}U@cc&LAc1QH4iLCbKoH?dcjW=mCxSOsNrq>$l@4qg?8wGVdN-WO zR+0>1ycI_GP@q*XyZ2NEuu$;#R63*Pc&4YKxDOFEzOBBd6dyGoKdDjAb_9WRSh-D( zf^$8UY3u}y>!l2K^9EGu;b>{DX9}ZTO|CufxkgF_b-@}PqrICF{DtXWib}bvC z1pdHEm@rg%p>@GVs4&_2erU80^d=b z8(cSVZuqgc0Ga)QnTAYvZV_rvfO-$6!Q4=kTnpz<^^Hcwg>vsX0nG(U4`zm!3Xl&b z!u=S|6)59}&8Bo10nWlYO3fgG6d}tXgWb-ObDcDkP+|zQ*XIumQ|@Dhdgv`mN9Jl1 z)f;Rx_(?3o_z2W8B?}f7Dw!xm+-13VtKx_rQc+w(!}V5Oz*tm0?LPrVeUKu9XSk9f z9^f89d~1_S!xdHh%?^8>a3n#GTa}D3zB#Bz?o7d4hFY%aRwcHz1$N>R?V);y5z0Cd zRo~8$O1}(liAfirb}t>3pWVG}%W(}r#bff()W#Pp+Ue| zy?LX_*h0QTji4=}p%xiUwu6f>MSzU%3R~JXz_MZ`CHhaaKKK}+06v-p@IkSXn!1o` z$XTu@H9w?qq~`%F;TiNAJP%^V^AIGBQe^fp^d6-o4qHSm@Db|CA8YOZksGB}EFG2K zI)KGD%4vV`o|jOO39he|6D%i4%s)1GCEunbvRJ*>ZOT?L>}RTQBBm!60YvUc$G$j3 zkrS?9MLkW_oiQ@EC_k^1_N?YH3^5EIqog+{P_sk=d{0cLR5gJca%>pL<J!fFQo(qj#ZMyp`nm#Qylut zu}YpfVkp(;5y&SnOn>WkXaQg3++SFL^p z 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 H!RG%0%!MGs delta 16938 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÷)f{1R*U=$w>YF|(2`WuWB~g4KO{F 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 GTK^Bz^5A&@ diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index 8a7663db27..95bb5edc28 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -131,6 +131,10 @@ "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst} + + "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} + + [C-Header-File] *.h, *.H @@ -215,7 +219,7 @@ "$(SLINK)" $(SLINK_FLAGS) ${dst} --via $(OBJECT_FILES_LIST) - + # $(OBJECT_FILES_LIST) has wrong paths for cygwin "$(SLINK)" $(SLINK_FLAGS) ${dst} $(OBJECT_FILES) @@ -239,6 +243,9 @@ "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS) "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst} + + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -) $(DLINK2_FLAGS) + "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) @@ -266,6 +273,9 @@ "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS) + + "$(DLINK)" $(DLINK_FLAGS) -( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -) $(DLINK2_FLAGS) + "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) @@ -284,7 +294,7 @@ $(DEBUG_DIR)(+)$(MODULE_NAME).efi - + GenFw -e $(MODULE_TYPE) -o ${dst} ${src} $(CP) ${dst} $(OUTPUT_DIR) $(CP) ${dst} $(BIN_DIR) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 2dbc776d94..b53826ba05 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -140,8 +140,8 @@ DEFINE IPHONE_TOOLS = /Developer/Platforms/iPhoneOS.platform/Develope DEFINE RVCT31_TOOLS_PATH = c:/Program Files/ARM/RVCT/Programs/3.1/761/win_32-pentium DEFINE RVCT31CYGWIN_TOOLS_PATH = /cygdrive/c/Program Files/ARM/RVCT/Programs/3.1/761/win_32-pentium -# Update to the location of the gcc executables -DEFINE ARMGCC_BIN = / +DEFINE SOURCERY_TOOLS = c:/Program Files/CodeSourcery/Sourcery G++ Lite/bin +DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G++ Lite/bin #################################################################################### # @@ -1589,8 +1589,8 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_UNIXGCC_*_MAKE_PATH = make *_UNIXGCC_*_ASL_PATH = DEF(UNIX_IASL_BIN) -*_UNIXGCC_IA32_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) -*_UNIXGCC_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) +*_UNIXGCC_IA32_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) --image-base=0 +*_UNIXGCC_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) --image-base=0 *_UNIXGCC_IA32_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS) *_UNIXGCC_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS) *_UNIXGCC_*_ASM_FLAGS = DEF(GCC_ASM_FLAGS) @@ -1717,8 +1717,8 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_CYGGCC_*_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe *_CYGGCC_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN) -*_CYGGCC_IA32_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) -*_CYGGCC_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) +*_CYGGCC_IA32_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) --image-base=0 +*_CYGGCC_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) --image-base=0 *_CYGGCC_IA32_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS) *_CYGGCC_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS) *_CYGGCC_*_MAKE_FLAGS = /nologo @@ -1745,10 +1745,11 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_CYGGCC_IA32_ASLPP_PATH = DEF(CYGWIN_BINIA32)gcc *_CYGGCC_IA32_ASLDLINK_PATH = DEF(CYGWIN_BINIA32)ld *_CYGGCC_IA32_RC_PATH = DEF(CYGWIN_BINIA32)objcopy -*_CYGGCC_IA32_OBJECT_PATH = DEF(CYGWIN_BINIA32)objcopy +*_CYGGCC_IA32_OBJCOPY_PATH = DEF(CYGWIN_BINIA32)objcopy *_CYGGCC_IA32_CC_FLAGS = DEF(GCC_IA32_CC_FLAGS) *_CYGGCC_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) +*_CYGGCC_IA32_OBJCOPY_FLAGS = ################## # X64 definitions @@ -1764,10 +1765,11 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_CYGGCC_X64_ASLPP_PATH = DEF(CYGWIN_BINX64)gcc *_CYGGCC_X64_ASLDLINK_PATH = DEF(CYGWIN_BINX64)ld *_CYGGCC_X64_RC_PATH = DEF(CYGWIN_BINX64)objcopy -*_CYGGCC_X64_OBJECT_PATH = DEF(CYGWIN_BINX64)objcopy +*_CYGGCC_X64_OBJCOPY_PATH = DEF(CYGWIN_BINX64)objcopy *_CYGGCC_X64_CC_FLAGS = DEF(GCC_X64_CC_FLAGS) *_CYGGCC_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) +*_CYGGCC_X64_OBJCOPY_FLAGS = ################## # IPF definitions @@ -1784,7 +1786,6 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_CYGGCC_IPF_OBJCOPY_PATH = DEF(CYGWIN_BINIPF)objcopy *_CYGGCC_IPF_SYMRENAME_PATH = DEF(CYGWIN_BINIPF)objcopy *_CYGGCC_IPF_RC_PATH = DEF(CYGWIN_BINIPF)objcopy -*_CYGGCC_IPF_OBJECT_PATH = DEF(CYGWIN_BINIPF)objcopy *_CYGGCC_IPF_CC_FLAGS = DEF(GCC_IPF_CC_FLAGS) *_CYGGCC_IPF_DLINK_FLAGS = DEF(GCC_IPF_DLINK_FLAGS) @@ -2839,13 +2840,16 @@ RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM #################################################################################### # -# ARM GCC (GCC 4.1.1, etc.) +# ARM GCC (www.codesourcery.com) # #################################################################################### # ARMGCC - ARM version of the GCC cross compiler *_ARMGCC_*_*_FAMILY = GCC -*_ARMGCC_*_MAKE_PATH = make +*_ARMGCC_*_*_BUILDRULEFAMILY = ARMGCC + +*_ARMGCC_*_MAKE_PATH = DEF(SOURCERY_TOOLS)/cs-make +*_ARMGCC_*_MAKE_FLAGS = --no-print-directory ################## # ASL definitions @@ -2861,24 +2865,24 @@ RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM # ARM definitions ################## -*_ARMGCC_ARM_ASLCC_PATH = DEF(ARMGCC_BIN)/arm-elf-gcc -*_ARMGCC_ARM_ASLDLINK_PATH = DEF(ARMGCC_BIN)/arm-elf-ld -*_ARMGCC_ARM_ASLPP_PATH = DEF(ARMGCC_BIN)/arm-elf-gcc +*_ARMGCC_ARM_ASLCC_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-gcc +*_ARMGCC_ARM_ASLDLINK_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-ld +*_ARMGCC_ARM_ASLPP_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-gcc -*_ARMGCC_ARM_CC_PATH = DEF(ARMGCC_BIN)/arm-elf-gcc -*_ARMGCC_ARM_SLINK_PATH = DEF(ARMGCC_BIN)/arm-elf-ar -*_ARMGCC_ARM_DLINK_PATH = DEF(ARMGCC_BIN)/arm-elf-ld -*_ARMGCC_ARM_ASM_PATH = DEF(ARMGCC_BIN)/arm-elf-as -*_ARMGCC_ARM_PP_PATH = DEF(ARMGCC_BIN)/arm-elf-gcc -*_ARMGCC_ARM_VFRPP_PATH = DEF(ARMGCC_BIN)/arm-elf-gcc +*_ARMGCC_ARM_CC_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-gcc +*_ARMGCC_ARM_SLINK_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-ar +*_ARMGCC_ARM_DLINK_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-ld +*_ARMGCC_ARM_ASM_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-as +*_ARMGCC_ARM_PP_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-gcc +*_ARMGCC_ARM_VFRPP_PATH = DEF(SOURCERY_TOOLS)/arm-none-eabi-gcc # # Use default values, or override in DSC file # -*_ARMGCC_ARM_ARCHCC_FLAGS = -*_ARMGCC_ARM_ARCHASM_FLAGS = +*_ARMGCC_ARM_ARCHCC_FLAGS = -march=armv7-a -mthumb +*_ARMGCC_ARM_ARCHASM_FLAGS = -march=armv7-a *_ARMGCC_ARM_ARCHDLINK_FLAGS = -*_ARMGCC_ARM_PLATFORM_FLAGS = +*_ARMGCC_ARM_PLATFORM_FLAGS = -march=armv7-a DEBUG_ARMGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) -mlittle-endian -g RELEASE_ARMGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) -mlittle-endian @@ -2886,11 +2890,12 @@ RELEASE_ARMGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) -mlittle-endian *_ARMGCC_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h *_ARMGCC_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h -*_ARMGCC_ARM_MAKE_PATH = make - -*_ARMGCC_ARM_SLINK_FLAGS = -r -*_ARMGCC_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --emit-relocs --oformat=elf32-littlearm -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map -# --gc-sections +*_ARMGCC_ARM_SLINK_FLAGS = -rc +*_ARMGCC_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --oformat=elf32-littlearm -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map +# +# Had to remove --emit-relocs to get compile working. Images don't work correctly (linked at 0, no relocations) +# --emit-relocs +# DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mfpu=fpa -mlittle-endian -g -O2 -mabi=aapcs -mapcs -fno-short-enums -save-temps -combine -fsigned-char -fshort-wchar -fno-strict-aliasing -ffunction-sections -fdata-sections -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mfpu=fpa -mlittle-endian -O2 -mabi=aapcs -mapcs -fno-short-enums -save-temps -combine -fsigned-char -fshort-wchar -fno-strict-aliasing -ffunction-sections -fdata-sections -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h diff --git a/BaseTools/Source/C/GenFw/GenFw.c b/BaseTools/Source/C/GenFw/GenFw.c index d42c88e23d..4d60814780 100644 --- a/BaseTools/Source/C/GenFw/GenFw.c +++ b/BaseTools/Source/C/GenFw/GenFw.c @@ -24,6 +24,8 @@ Abstract: #ifndef __GNUC__ #include #include +#include +#include #endif #include #include @@ -1034,14 +1036,20 @@ WriteSections( - (SecOffset - SecShdr->sh_addr); break; default: - Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info)); + Error (NULL, 0, 3000, "Invalid", "%s unsupported ELF EM_386 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info)); } } else if (Ehdr->e_machine == EM_ARM) { switch (ELF32_R_TYPE(Rel->r_info)) { case R_ARM_RBASE: // No relocation - no action required - case R_ARM_PC24: // PC-relative relocations don't require modification - case R_ARM_XPC25: // PC-relative relocations don't require modification + + // Thease are all PC-relative relocations and don't require modification + case R_ARM_PC24: + case R_ARM_XPC25: + case R_ARM_THM_PC22: + case R_ARM_THM_JUMP19: + case R_ARM_CALL: break; + case R_ARM_ABS32: case R_ARM_RABS32: // @@ -1050,7 +1058,7 @@ WriteSections( *(UINT32 *)Targ = *(UINT32 *)Targ - SymShdr->sh_addr + CoffSectionsOffset[Sym->st_shndx]; break; default: - Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, (unsigned) ELF32_R_TYPE(Rel->r_info)); + Error (NULL, 0, 3000, "Invalid", "WriteSections (): %s unsupported ELF EM_ARM relocation 0x%x.", mInImageName, (unsigned) ELF32_R_TYPE(Rel->r_info)); } } } @@ -1124,7 +1132,7 @@ GetPhdrByIndex ( VOID -WriteRelocations( +WriteRelocations ( VOID ) { @@ -1164,13 +1172,18 @@ WriteRelocations( EFI_IMAGE_REL_BASED_HIGHLOW); break; default: - Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info)); + Error (NULL, 0, 3000, "Invalid", "%s unsupported ELF EM_386 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info)); } } else if (Ehdr->e_machine == EM_ARM) { switch (ELF32_R_TYPE(Rel->r_info)) { - case R_ARM_RBASE: + case R_ARM_RBASE: // No relocation - no action required + + // Thease are all PC-relative relocations and don't require modification case R_ARM_PC24: case R_ARM_XPC25: + case R_ARM_THM_PC22: + case R_ARM_THM_JUMP19: + case R_ARM_CALL: break; case R_ARM_ABS32: case R_ARM_RABS32: @@ -1180,8 +1193,9 @@ WriteRelocations( EFI_IMAGE_REL_BASED_HIGHLOW ); break; - default: - Error (NULL, 0, 3000, "Invalid", "%s unhandled section type %x.", mInImageName, (unsigned) ELF32_R_TYPE(Rel->r_info)); + + default: + Error (NULL, 0, 3000, "Invalid", "WriteRelocations(): %s unsupported ELF EM_ARM relocation 0x%x.", mInImageName, (unsigned) ELF32_R_TYPE(Rel->r_info)); } } else { Error (NULL, 0, 3000, "Not Supported", "This tool does not support relocations for ELF with e_machine %u (processor type).", (unsigned) Ehdr->e_machine); @@ -1217,6 +1231,9 @@ WriteRelocations( case DT_RELENT: RelElementSize = Dyn->d_un.d_val; break; + + default: + break; } Dyn++; } @@ -1226,7 +1243,13 @@ WriteRelocations( for (K = 0; K < RelSize; K += RelElementSize) { - Rel = (Elf32_Rel *) ((UINT8 *) Ehdr + DynamicSegment->p_offset + RelOffset + K); + if (DynamicSegment->p_paddr == 0) { + // This seems to be how it works on armcc???? Have the email in to find out? + Rel = (Elf32_Rel *) ((UINT8 *) Ehdr + DynamicSegment->p_offset + RelOffset + K); + } else { + // This is how it reads in the ELF specification + Rel = (Elf32_Rel *) ((UINT8 *) Ehdr + RelOffset + K); + } switch (ELF32_R_TYPE (Rel->r_info)) { case R_ARM_RBASE: @@ -1242,7 +1265,8 @@ WriteRelocations( CoffAddFixup (CoffSectionsOffset[ELF32_R_SYM (Rel->r_info)] + (Rel->r_offset - TargetSegment->p_vaddr), EFI_IMAGE_REL_BASED_HIGHLOW); break; default: - Error (NULL, 0, 3000, "Invalid", "%s bad ARM dynamic relocations, unkown type.", mInImageName); + Error (NULL, 0, 3000, "Invalid", "%s bad ARM dynamic relocations, unkown type %d.", mInImageName, ELF32_R_TYPE (Rel->r_info)); + break; } } break; @@ -1993,6 +2017,9 @@ Returns: FILE *ReportFile; CHAR8 *ReportFileName; UINTN FileLen; + time_t InputFileTime; + time_t OutputFileTime; + struct stat Stat_Buf; SetUtilityName (UTILITY_NAME); @@ -2038,6 +2065,8 @@ Returns: HiiSectionHeader = NULL; NewBaseAddress = 0; NegativeAddr = FALSE; + InputFileTime = 0; + OutputFileTime = 0; if (argc == 1) { Error (NULL, 0, 1001, "Missing options", "No input options."); @@ -2434,6 +2463,14 @@ Returns: if (OutImageName != NULL) { fpOut = fopen (OutImageName, "rb"); if (fpOut != NULL) { + // + // Get Output file time stamp + // + fstat(fileno (fpOut), &Stat_Buf); + OutputFileTime = Stat_Buf.st_mtime; + // + // Get Output file data + // OutputFileLength = _filelength (fileno (fpOut)); OutputFileBuffer = malloc (OutputFileLength); if (OutputFileBuffer == NULL) { @@ -2460,6 +2497,14 @@ Returns: Error (NULL, 0, 0001, "Error opening file", mInImageName); goto Finish; } + // + // Get Iutput file time stamp + // + fstat(fileno (fpIn), &Stat_Buf); + InputFileTime = Stat_Buf.st_mtime; + // + // Get Input file data + // InputFileLength = _filelength (fileno (fpIn)); InputFileBuffer = malloc (InputFileLength); if (InputFileBuffer == NULL) { @@ -3467,6 +3512,27 @@ Returns: FileLength = FileLength + sizeof (EFI_TE_IMAGE_HEADER); memcpy (FileBuffer, &TEImageHeader, sizeof (EFI_TE_IMAGE_HEADER)); VerboseMsg ("the size of output file is %u bytes", (unsigned) (FileLength)); + } else { + + // + // Following codes are to fix the objcopy's issue: + // objcopy in binutil 2.50.18 will set PE image's charactices to "RELOC_STRIPPED" if image has no ".reloc" section + // It cause issue for EFI image which has no ".reloc" sections. + // Following codes will be removed when objcopy in binutil fix this problem for PE image. + // + if ((PeHdr->Pe32.FileHeader.Characteristics & EFI_IMAGE_FILE_RELOCS_STRIPPED) != 0) { + if (PeHdr->Pe32.OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) { + Optional32 = (EFI_IMAGE_OPTIONAL_HEADER32 *)&PeHdr->Pe32.OptionalHeader; + if (Optional32->ImageBase == 0) { + PeHdr->Pe32.FileHeader.Characteristics &= ~EFI_IMAGE_FILE_RELOCS_STRIPPED; + } + } else if (PeHdr->Pe32.OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC) { + Optional64 = (EFI_IMAGE_OPTIONAL_HEADER64 *)&PeHdr->Pe32.OptionalHeader; + if (Optional64->ImageBase == 0) { + PeHdr->Pe32.FileHeader.Characteristics &= ~EFI_IMAGE_FILE_RELOCS_STRIPPED; + } + } + } } WriteFile: @@ -3487,7 +3553,10 @@ WriteFile: VerboseMsg ("the size of output file is %u bytes", (unsigned) FileLength); } } else { - if ((FileLength != OutputFileLength) || (memcmp (FileBuffer, OutputFileBuffer, FileLength) != 0)) { + if ((OutputFileTime < InputFileTime) || (FileLength != OutputFileLength) || (memcmp (FileBuffer, OutputFileBuffer, FileLength) != 0)) { + // + // Update File when File is changed or File is old. + // fpOut = fopen (OutImageName, "wb"); if (fpOut == NULL) { Error (NULL, 0, 0001, "Error opening output file", OutImageName); diff --git a/BaseTools/Source/C/GenFw/elf_common.h b/BaseTools/Source/C/GenFw/elf_common.h index 1cd3f53907..3798c95d61 100644 --- a/BaseTools/Source/C/GenFw/elf_common.h +++ b/BaseTools/Source/C/GenFw/elf_common.h @@ -597,6 +597,8 @@ typedef struct { #define R_ARM_GOTPC 25 /* Add PC-relative GOT table address. */ #define R_ARM_GOT32 26 /* Add PC-relative GOT offset. */ #define R_ARM_PLT32 27 /* Add PC-relative PLT offset. */ +#define R_ARM_CALL 28 +#define R_ARM_THM_JUMP19 51 #define R_ARM_GNU_VTENTRY 100 #define R_ARM_GNU_VTINHERIT 101 #define R_ARM_RSBREL32 250 diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py index c5d8991e07..b58d0c641f 100644 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -1,7 +1,7 @@ ## @file # Create makefile for MS nmake and GNU make # -# Copyright (c) 2007, Intel Corporation +# Copyright (c) 2007 - 2010, Intel Corporation # All rights reserved. This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -26,7 +26,7 @@ from BuildEngine import * import Common.GlobalData as GlobalData ## Regular expression for finding header file inclusions -gIncludePattern = re.compile(r"^[ \t]*#[ \t]*include(?:[ \t]*(?:\\(?:\r\n|\r|\n))*[ \t]*)*(?:[\"<][ \t]*)([\w.\\/]+)(?:[ \t]*[\">])", re.MULTILINE|re.UNICODE) +gIncludePattern = re.compile(r"^[ \t]*#?[ \t]*include(?:[ \t]*(?:\\(?:\r\n|\r|\n))*[ \t]*)*(?:[\"<]?[ \t]*)([\w.\\/]+)(?:[ \t]*[\">]?)", re.MULTILINE|re.UNICODE) ## Regular expression for matching macro used in header file inclusion gMacroPattern = re.compile("([_A-Z][_A-Z0-9]*)[ \t]*\((.+)\)", re.UNICODE) diff --git a/BaseTools/Source/Python/Common/DscClassObject.py b/BaseTools/Source/Python/Common/DscClassObject.py index 50b6cc5bce..c25580ac37 100644 --- a/BaseTools/Source/Python/Common/DscClassObject.py +++ b/BaseTools/Source/Python/Common/DscClassObject.py @@ -1,7 +1,7 @@ ## @file # This file is used to define each component of DSC file # -# Copyright (c) 2007 ~ 2008, Intel Corporation +# Copyright (c) 2007 - 2010, Intel Corporation # All rights reserved. This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -989,10 +989,14 @@ class Dsc(DscObject): # elif PreviousIf[2] in (MODEL_META_DATA_CONDITIONAL_STATEMENT_IF, Model): List = PreviousIf[0].split(' ') - Value1 = List[0] - Value2 = List[1] - Value3 = List[2] - Value3 = SplitString(Value3) + Value1, Value2, Value3 = '', '==', '0' + if len(List) == 3: + Value1 = List[0] + Value2 = List[1] + Value3 = List[2] + Value3 = SplitString(Value3) + if len(List) == 1: + Value1 = List[0] Model = PreviousIf[2] self.TblDsc.Insert(Model, Value1, Value2, Value3, ArchList, BelongsToItem, self.FileID, PreviousIf[1], StartColumn, EndLine, EndColumn, Enabled) # diff --git a/BaseTools/Source/Python/Common/FdfParserLite.py b/BaseTools/Source/Python/Common/FdfParserLite.py index eb7b0d7514..b181e65d16 100644 --- a/BaseTools/Source/Python/Common/FdfParserLite.py +++ b/BaseTools/Source/Python/Common/FdfParserLite.py @@ -1760,8 +1760,8 @@ class FdfParser(object): if not self.__GetNextHexNumber(): raise Warning("expected Hex byte At Line ", self.FileName, self.CurrentLineNumber) - if len(self.__Token) > 4: - raise Warning("Hex byte(must be 2 digits) too long At Line ", self.FileName, self.CurrentLineNumber) + if len(self.__Token) > 18: + raise Warning("Hex string can't be converted to a valid UINT64 value", self.FileName, self.CurrentLineNumber) DataString = self.__Token DataString += "," @@ -1792,8 +1792,8 @@ class FdfParser(object): if not self.__GetNextHexNumber(): raise Warning("expected Hex byte At Line ", self.FileName, self.CurrentLineNumber) - if len(self.__Token) > 4: - raise Warning("Hex byte(must be 2 digits) too long At Line ", self.FileName, self.CurrentLineNumber) + if len(self.__Token) > 18: + raise Warning("Hex string can't be converted to a valid UINT64 value", self.FileName, self.CurrentLineNumber) DataString = self.__Token DataString += "," diff --git a/BaseTools/Source/Python/Common/Parsing.py b/BaseTools/Source/Python/Common/Parsing.py index 6ab91fbc33..3884b0521c 100644 --- a/BaseTools/Source/Python/Common/Parsing.py +++ b/BaseTools/Source/Python/Common/Parsing.py @@ -291,17 +291,17 @@ def QueryInfItem(Table, Model, BelongsToItem): # @retval truple() A truple structure as (Family, ToolChain, Flag) # def GetBuildOption(String, File, LineNo = -1): + (Family, ToolChain, Flag) = ('', '', '') if String.find(TAB_EQUAL_SPLIT) < 0: RaiseParserError(String, 'BuildOptions', File, '[:]=Flag', LineNo) - (Family, ToolChain, Flag) = ('', '', '') - List = GetSplitValueList(String, TAB_EQUAL_SPLIT, MaxSplit = 1) - if List[0].find(':') > -1: - Family = List[0][ : List[0].find(':')].strip() - ToolChain = List[0][List[0].find(':') + 1 : ].strip() else: - ToolChain = List[0].strip() - Flag = List[1].strip() - + List = GetSplitValueList(String, TAB_EQUAL_SPLIT, MaxSplit = 1) + if List[0].find(':') > -1: + Family = List[0][ : List[0].find(':')].strip() + ToolChain = List[0][List[0].find(':') + 1 : ].strip() + else: + ToolChain = List[0].strip() + Flag = List[1].strip() return (Family, ToolChain, Flag) ## Get Library Class diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py index 92d6ab64ba..1e87eb410e 100644 --- a/BaseTools/Source/Python/GenFds/FdfParser.py +++ b/BaseTools/Source/Python/GenFds/FdfParser.py @@ -1787,19 +1787,27 @@ class FdfParser: if not self.__GetNextHexNumber(): raise Warning("expected Hex byte", self.FileName, self.CurrentLineNumber) - if len(self.__Token) > 4: - raise Warning("Hex byte(must be 2 digits) too long", self.FileName, self.CurrentLineNumber) - - DataString = self.__Token - DataString += "," - - while self.__IsToken(","): - if not self.__GetNextHexNumber(): - raise Warning("Invalid Hex number", self.FileName, self.CurrentLineNumber) - if len(self.__Token) > 4: - raise Warning("Hex byte(must be 2 digits) too long", self.FileName, self.CurrentLineNumber) - DataString += self.__Token - DataString += "," + if len(self.__Token) > 18: + raise Warning("Hex string can't be converted to a valid UINT64 value", self.FileName, self.CurrentLineNumber) + + # convert hex string value to byte hex string array + AllString = self.__Token + AllStrLen = len (AllString) + DataString = "" + while AllStrLen > 4: + DataString = DataString + "0x" + AllString[AllStrLen - 2: AllStrLen] + "," + AllStrLen = AllStrLen - 2 + DataString = DataString + AllString[:AllStrLen] + "," + + # byte value array + if len (self.__Token) <= 4: + while self.__IsToken(","): + if not self.__GetNextHexNumber(): + raise Warning("Invalid Hex number", self.FileName, self.CurrentLineNumber) + if len(self.__Token) > 4: + raise Warning("Hex byte(must be 2 digits) too long", self.FileName, self.CurrentLineNumber) + DataString += self.__Token + DataString += "," if not self.__IsToken( "}"): raise Warning("expected '}'", self.FileName, self.CurrentLineNumber) @@ -1819,18 +1827,27 @@ class FdfParser: if not self.__GetNextHexNumber(): raise Warning("expected Hex byte", self.FileName, self.CurrentLineNumber) - if len(self.__Token) > 4: - raise Warning("Hex byte(must be 2 digits) too long", self.FileName, self.CurrentLineNumber) + if len(self.__Token) > 18: + raise Warning("Hex string can't be converted to a valid UINT64 value", self.FileName, self.CurrentLineNumber) - DataString = self.__Token - DataString += "," + # convert hex string value to byte hex string array + AllString = self.__Token + AllStrLen = len (AllString) + DataString = "" + while AllStrLen > 4: + DataString = DataString + "0x" + AllString[AllStrLen - 2: AllStrLen] + "," + AllStrLen = AllStrLen - 2 + DataString = DataString + AllString[:AllStrLen] + "," - while self.__IsToken(","): - self.__GetNextHexNumber() - if len(self.__Token) > 4: - raise Warning("Hex byte(must be 2 digits) too long", self.FileName, self.CurrentLineNumber) - DataString += self.__Token - DataString += "," + # byte value array + if len (self.__Token) <= 4: + while self.__IsToken(","): + if not self.__GetNextHexNumber(): + raise Warning("Invalid Hex number", self.FileName, self.CurrentLineNumber) + if len(self.__Token) > 4: + raise Warning("Hex byte(must be 2 digits) too long", self.FileName, self.CurrentLineNumber) + DataString += self.__Token + DataString += "," if not self.__IsToken( "}"): raise Warning("expected '}'", self.FileName, self.CurrentLineNumber) diff --git a/BaseTools/Source/Python/build/BuildReport.py b/BaseTools/Source/Python/build/BuildReport.py index eac21d1495..f805aae5ca 100644 --- a/BaseTools/Source/Python/build/BuildReport.py +++ b/BaseTools/Source/Python/build/BuildReport.py @@ -221,7 +221,7 @@ class LibraryReport(object): EdkIILibInfo += " C = " + LibConstructor LibDestructor = " ".join(LibraryItem[3]) if LibDestructor: - EdkIILibInfo += " D = " + LibConstructor + EdkIILibInfo += " D = " + LibDestructor LibDepex = " ".join(LibraryItem[4]) if LibDepex: EdkIILibInfo += " Depex = " + LibDepex @@ -255,7 +255,8 @@ class DepexReport(object): ModuleType = M.ModuleType if not ModuleType: ModuleType = gComponentType2ModuleType.get(M.ComponentType, "") - if ModuleType in ["SEC", "PEI_CORE", "DXE_CORE"]: + + if ModuleType in ["SEC", "PEI_CORE", "DXE_CORE", "SMM_CORE", "UEFI_APPLICATION"]: return for Source in M.SourceFileList: @@ -404,17 +405,18 @@ class ModuleReport(object): self.Size = 0 self.BuildTimeStamp = None self.DriverType = "" - ModuleType = M.ModuleType - if not ModuleType: - ModuleType = gComponentType2ModuleType.get(M.ComponentType, "") - # - # If a module complies to PI 1.1, promote Module type to "SMM_DRIVER" - # - if ModuleType == "DXE_SMM_DRIVER": - PiSpec = M.Module.Specification.get("PI_SPECIFICATION_VERSION", "0x00010000") - if int(PiSpec, 0) >= 0x0001000A: - ModuleType = "SMM_DRIVER" - self.DriverType = gDriverTypeMap.get(ModuleType, "") + if not M.IsLibrary: + ModuleType = M.ModuleType + if not ModuleType: + ModuleType = gComponentType2ModuleType.get(M.ComponentType, "") + # + # If a module complies to PI 1.1, promote Module type to "SMM_DRIVER" + # + if ModuleType == "DXE_SMM_DRIVER": + PiSpec = M.Module.Specification.get("PI_SPECIFICATION_VERSION", "0x00010000") + if int(PiSpec, 0) >= 0x0001000A: + ModuleType = "SMM_DRIVER" + self.DriverType = gDriverTypeMap.get(ModuleType, "0x2 (FREE_FORM)") self.UefiSpecVersion = M.Module.Specification.get("UEFI_SPECIFICATION_VERSION", "") self.PiSpecVersion = M.Module.Specification.get("PI_SPECIFICATION_VERSION", "") self.PciDeviceId = M.Module.Defines.get("PCI_DEVICE_ID", "") @@ -1310,9 +1312,11 @@ class PlatformReport(object): self.ModuleReportList = [] if MaList != None: + self._IsModuleBuild = True for Ma in MaList: self.ModuleReportList.append(ModuleReport(Ma, ReportType)) else: + self._IsModuleBuild = False for Pa in Wa.AutoGenObjectList: for ModuleKey in Pa.Platform.Modules: self.ModuleReportList.append(ModuleReport(Pa.Platform.Modules[ModuleKey].M, ReportType)) @@ -1343,18 +1347,20 @@ class PlatformReport(object): FileWrite(File, "Build Duration: %s" % BuildDuration) FileWrite(File, "Report Content: %s" % ", ".join(ReportType)) - if "PCD" in ReportType: - self.PcdReport.GenerateReport(File, None) - - if "FLASH" in ReportType: - for FdReportListItem in self.FdReportList: - FdReportListItem.GenerateReport(File) + if not self._IsModuleBuild: + if "PCD" in ReportType: + self.PcdReport.GenerateReport(File, None) + + if "FLASH" in ReportType: + for FdReportListItem in self.FdReportList: + FdReportListItem.GenerateReport(File) for ModuleReportItem in self.ModuleReportList: ModuleReportItem.GenerateReport(File, self.PcdReport, self.PredictionReport, ReportType) - if "EXECUTION_ORDER" in ReportType: - self.PredictionReport.GenerateReport(File, None) + if not self._IsModuleBuild: + if "EXECUTION_ORDER" in ReportType: + self.PredictionReport.GenerateReport(File, None) ## BuildReport class # @@ -1422,7 +1428,7 @@ class BuildReport(object): EdkLogger.error("BuildReport", CODE_ERROR, "Unknown fatal error when generating build report", ExtraData=self.ReportFile, RaiseError=False) EdkLogger.quiet("(Python %s on %s\n%s)" % (platform.python_version(), sys.platform, traceback.format_exc())) File.close() - + # This acts like the main() function for the script, unless it is 'import'ed into another script. if __name__ == '__main__': pass diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py index e3a3dd9f3f..6129308011 100644 --- a/BaseTools/Source/Python/build/build.py +++ b/BaseTools/Source/Python/build/build.py @@ -1090,9 +1090,10 @@ class Build(): ## Collect MAP information of all FVs # - def _CollectFvMapBuffer (self, MapBuffer, Wa): + def _CollectFvMapBuffer (self, MapBuffer, Wa, ModuleList): if self.Fdf != '': # First get the XIP base address for FV map file. + GuidPattern = re.compile("[-a-fA-F0-9]+") for FvName in Wa.FdfProfile.FvDict.keys(): FvMapBuffer = os.path.join(Wa.FvDir, FvName + '.Fv.map') if not os.path.exists(FvMapBuffer): @@ -1103,7 +1104,16 @@ class Build(): FvMap.readline() FvMap.readline() FvMap.readline() - MapBuffer.write(FvMap.read()) + for Line in FvMap: + MatchGuid = GuidPattern.match(Line) + if MatchGuid != None: + # + # Replace GUID with module name + # + GuidString = MatchGuid.group() + if GuidString.upper() in ModuleList: + Line = Line.replace(GuidString, ModuleList[GuidString.upper()].Name) + MapBuffer.write('%s' % (Line)) FvMap.close() ## Collect MAP information of all modules @@ -1124,7 +1134,8 @@ class Build(): IsIpfPlatform = False if 'IPF' in self.ArchList: IsIpfPlatform = True - for Module in ModuleList: + for ModuleGuid in ModuleList: + Module = ModuleList[ModuleGuid] GlobalData.gProcessingFile = "%s [%s, %s, %s]" % (Module.MetaFile, Module.Arch, Module.ToolChain, Module.BuildTarget) OutputImageFile = '' @@ -1259,7 +1270,8 @@ class Build(): # SaveFileOnChange(MapFilePath, MapBuffer.getvalue(), False) MapBuffer.close() - sys.stdout.write ("\nLoad Module At Fix Address Map file saved to %s\n" %(MapFilePath)) + if self.LoadFixAddress != 0: + sys.stdout.write ("\nLoad Module At Fix Address Map file saved to %s\n" %(MapFilePath)) sys.stdout.flush() ## Build active platform for different build targets and different tool chains @@ -1286,7 +1298,7 @@ class Build(): self._Build(self.Target, Wa) # Create MAP file when Load Fix Address is enabled. - if self.Target in ["", "all", "fds"] and self.LoadFixAddress != 0: + if self.Target in ["", "all", "fds"]: for Arch in self.ArchList: # # Check whether the set fix address is above 4G for 32bit image. @@ -1296,19 +1308,20 @@ class Build(): # # Get Module List # - ModuleList = [] + ModuleList = {} for Pa in Wa.AutoGenObjectList: for Ma in Pa.ModuleAutoGenList: if Ma == None: continue if not Ma.IsLibrary: - ModuleList.append (Ma) + ModuleList[Ma.Guid.upper()] = Ma MapBuffer = StringIO('') - # - # Rebase module to the preferred memory address before GenFds - # - self._CollectModuleMapBuffer(MapBuffer, ModuleList) + if self.LoadFixAddress != 0: + # + # Rebase module to the preferred memory address before GenFds + # + self._CollectModuleMapBuffer(MapBuffer, ModuleList) if self.Fdf != '': # # create FDS again for the updated EFI image @@ -1317,7 +1330,7 @@ class Build(): # # Create MAP file for all platform FVs after GenFds. # - self._CollectFvMapBuffer(MapBuffer, Wa) + self._CollectFvMapBuffer(MapBuffer, Wa, ModuleList) # # Save MAP buffer into MAP file. # @@ -1367,7 +1380,7 @@ class Build(): ExtraData=self.ModuleFile ) # Create MAP file when Load Fix Address is enabled. - if self.LoadFixAddress != 0 and self.Target == "fds" and self.Fdf != '': + if self.Target == "fds" and self.Fdf != '': for Arch in self.ArchList: # # Check whether the set fix address is above 4G for 32bit image. @@ -1377,27 +1390,28 @@ class Build(): # # Get Module List # - ModuleList = [] + ModuleList = {} for Pa in Wa.AutoGenObjectList: for Ma in Pa.ModuleAutoGenList: if Ma == None: continue if not Ma.IsLibrary: - ModuleList.append (Ma) + ModuleList[Ma.Guid.upper()] = Ma MapBuffer = StringIO('') - # - # Rebase module to the preferred memory address before GenFds - # - self._CollectModuleMapBuffer(MapBuffer, ModuleList) - # - # create FDS again for the updated EFI image - # - self._Build("fds", Wa) + if self.LoadFixAddress != 0: + # + # Rebase module to the preferred memory address before GenFds + # + self._CollectModuleMapBuffer(MapBuffer, ModuleList) + # + # create FDS again for the updated EFI image + # + self._Build("fds", Wa) # # Create MAP file for all platform FVs after GenFds. # - self._CollectFvMapBuffer(MapBuffer, Wa) + self._CollectFvMapBuffer(MapBuffer, Wa, ModuleList) # # Save MAP buffer into MAP file. # @@ -1483,7 +1497,7 @@ class Build(): EdkLogger.error("build", BUILD_ERROR, "Failed to build module", ExtraData=GlobalData.gBuildingModule) # Create MAP file when Load Fix Address is enabled. - if self.Target in ["", "all", "fds"] and self.LoadFixAddress != 0: + if self.Target in ["", "all", "fds"]: for Arch in self.ArchList: # # Check whether the set fix address is above 4G for 32bit image. @@ -1493,30 +1507,31 @@ class Build(): # # Get Module List # - ModuleList = [] + ModuleList = {} for Pa in Wa.AutoGenObjectList: for Ma in Pa.ModuleAutoGenList: if Ma == None: continue if not Ma.IsLibrary: - ModuleList.append (Ma) + ModuleList[Ma.Guid.upper()] = Ma # # Rebase module to the preferred memory address before GenFds # MapBuffer = StringIO('') - self._CollectModuleMapBuffer(MapBuffer, ModuleList) + if self.LoadFixAddress != 0: + self._CollectModuleMapBuffer(MapBuffer, ModuleList) # Generate FD image if there's a FDF file found if self.Fdf != '' and self.Target in ["", "all", "fds"]: LaunchCommand(Wa.BuildCommand + ["fds"], Wa.MakeFileDir) # Create MAP file for all platform FV after GenFds - if self.Target in ["", "all", "fds"] and self.LoadFixAddress != 0: + if self.Target in ["", "all", "fds"]: if self.Fdf != '': # # Create MAP file for all platform FVs after GenFds. # - self._CollectFvMapBuffer(MapBuffer, Wa) + self._CollectFvMapBuffer(MapBuffer, Wa, ModuleList) # # Save MAP buffer into MAP file. # -- 2.39.2