From 6780eef1f9ed0af24795708c3be7adafd7113691 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Mon, 15 Nov 2010 02:51:34 +0000 Subject: [PATCH] Sync EDKII BaseTools to BaseTools project r2093. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11057 6f19259b-4bc3-4df7-8a09-765794883524 --- BaseTools/Bin/Win32/BPDG.exe | Bin 578564 -> 578859 bytes BaseTools/Bin/Win32/BootSectImage.exe | Bin 393216 -> 434176 bytes BaseTools/Bin/Win32/EfiLdrImage.exe | Bin 421888 -> 421888 bytes BaseTools/Bin/Win32/EfiRom.exe | Bin 446464 -> 446464 bytes BaseTools/Bin/Win32/Fpd2Dsc.exe | Bin 1433869 -> 1434028 bytes BaseTools/Bin/Win32/GenBootSector.exe | Bin 425984 -> 425984 bytes BaseTools/Bin/Win32/GenCrc32.exe | Bin 425984 -> 425984 bytes BaseTools/Bin/Win32/GenDepex.exe | Bin 615937 -> 633511 bytes BaseTools/Bin/Win32/GenFds.exe | Bin 1557031 -> 1562148 bytes BaseTools/Bin/Win32/GenFfs.exe | Bin 430080 -> 430080 bytes BaseTools/Bin/Win32/GenFv.exe | Bin 479232 -> 479232 bytes BaseTools/Bin/Win32/GenFw.exe | Bin 495616 -> 495616 bytes BaseTools/Bin/Win32/GenPage.exe | Bin 421888 -> 421888 bytes BaseTools/Bin/Win32/GenPatchPcdTable.exe | Bin 609934 -> 627508 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/MigrationMsa2Inf.exe | Bin 1379610 -> 1379769 bytes BaseTools/Bin/Win32/Spd2Dec.exe | Bin 1389967 -> 1407541 bytes BaseTools/Bin/Win32/Split.exe | Bin 425984 -> 425984 bytes BaseTools/Bin/Win32/TargetTool.exe | Bin 582228 -> 582387 bytes BaseTools/Bin/Win32/TianoCompress.exe | Bin 434176 -> 434176 bytes BaseTools/Bin/Win32/Trim.exe | Bin 680394 -> 697968 bytes BaseTools/Bin/Win32/VfrCompile.exe | Bin 1187840 -> 1187840 bytes BaseTools/Bin/Win32/VolInfo.exe | Bin 471040 -> 471040 bytes BaseTools/Bin/Win32/build.exe | Bin 2636737 -> 2646789 bytes BaseTools/Conf/build_rule.template | 4 +- BaseTools/Conf/tools_def.template | 607 +++++++++++------- .../Source/C/BootSectImage/bootsectimage.c | 22 +- BaseTools/Source/C/GenVtf/GenVtf.c | 12 +- .../C/GnuGenBootSector/GnuGenBootSector.c | 9 +- .../Source/C/Include/X64/ProcessorBind.h | 6 +- BaseTools/Source/C/Makefiles/header.makefile | 112 ++-- BaseTools/Source/C/Makefiles/lib.makefile | 18 +- BaseTools/Source/Python/AutoGen/AutoGen.py | 233 ++++++- BaseTools/Source/Python/AutoGen/GenC.py | 11 +- BaseTools/Source/Python/AutoGen/StrGather.py | 93 ++- BaseTools/Source/Python/BPDG/GenVpd.py | 38 +- BaseTools/Source/Python/Common/DataType.py | 3 + BaseTools/Source/Python/Common/Misc.py | 91 ++- BaseTools/Source/Python/Common/Parsing.py | 66 +- BaseTools/Source/Python/Common/VpdInfoFile.py | 4 +- BaseTools/Source/Python/GenFds/FdfParser.py | 20 +- .../Source/Python/GenFds/FfsInfStatement.py | 8 + BaseTools/Source/Python/GenFds/GenFds.py | 13 +- BaseTools/Source/Python/GenFds/Region.py | 109 ++-- .../Source/Python/Workspace/MetaFileParser.py | 14 +- .../Python/Workspace/WorkspaceDatabase.py | 166 ++++- BaseTools/Source/Python/build/build.py | 10 +- 49 files changed, 1138 insertions(+), 531 deletions(-) diff --git a/BaseTools/Bin/Win32/BPDG.exe b/BaseTools/Bin/Win32/BPDG.exe index 29888d56ad3c73466fe6e8234eadfec86ec1e752..fc5c09a66bdcd4f9dea8f12db5cc2c2e624c50cc 100644 GIT binary patch delta 2255 zcmZWrYiv|i5S}@+dwch8cU#(0C>4;lLPc96k%C&}Wdvivx)fS#v97&axTWm&anV-q zW{YiwSbR`T4w{e%e;{a7M66n2-+3maO9))jaU+JL}gdb%alk{5Lg@xWFw?O%dKjL@SXwSXO+15OFpCb*^Glz|=63)57WnJZrV2lGUH zK2KI|D#%S?p4ePDj2e(O!85^`2M(Jq6!&@AInM{@Uk}dr!HVm_3Lji>4a|uC0w1ls zh6-58QRb!d$J`*;z}= z?4{fYcJ4&>(hryoI+f5(P|nYatkTBM(kAGVyl28!i1AcCzaTHFuDQ%>y)HxLnJXx- zDLG;J5rkp5bT)zoeqMyx>pI`-@@pG*&THQ5pYfgL6tsZ(oEH|P%5rB`gU1;d5;riJ z$7*IB41pnd-j}8;i2YaO+sb#jt+trUXDgQrfQwA3`B?#C29v>3CLM#zo7Q$z)i3Yx zcvSJS#+UOP;$1zGp=SMUhBo6(deI22talZ|0|~APfUeZuKBqUwcRNWt-rF0iX51Ck z!F`X%s&w-RRqDPGa=Ysoi#0H*m7qf|_cup<@m$HLIqRd~aQ|Y;s$LOv2IT&wkrc@W7ogN2<80MGhFb{-=oM-204>L5 z`osYm#UJ!72dQ!HKE99G9457r4zVYMJgN7`snUoI@#3fK(S!6IE=(}*XT$EqP)zRD zSBjMg*R5ZAj{2}z;{?^=ZhhMXoz%Zi&_?4sd5Kec|VctFg%LY^1$x;{NbOEzp_zJB(N4J%Y08V(hO z4%bFSrc=mEOk8>DZSH`R+|?3)yf+b>l$|v~;<{pz#*G`8FT?}KCy7UZN05iXqab^H z(rmjsdi^iBHqV)x)rFUJ?3{Ur>N=_qo--R%(_i|m%s)2j%jeA1D%qh|e9iOBt-6fdBHG_IGNXDijO>DKeS{`oU~_`JDRz4f`CKF`*++^?-E zbE8`QkbZEA{wFmXbQ|3DLLZkk7ishGf>b29Xe_=uoPn&nD;~(hvrWt?u ztp0P_yh}ZGQQtmeu2&5a?auK2aJznc##~Xo^F#h^ky4X?MVcQ7N*93@{P!;3TGy9S Gs{aAJOzVOG delta 1964 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

    ~8eP(&n0a=s_Pgw+i|SDc$~#L93W* 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 delta 63 zcmZp8AldLha>4`VoQYc-AGbbcY<^Hd$H diff --git a/BaseTools/Bin/Win32/EfiRom.exe b/BaseTools/Bin/Win32/EfiRom.exe index ab969edab3b6447809821226991cdf23fc649e5b..198f14821e6c7a01b366753e45fcf4197d1bfcc3 100755 GIT binary patch delta 64 zcmZozAl!BR+Ym6~Ty)bmws;?p?$x5G59y$BlZG zsz7K>T}GoxB`<4?^?B9QsL>?0CJHDI5tNLRq|?-<)0s@$KiYJyGv1w^Y47ZH@A`dv zpKq;w&bf0={rijGKEL?+kO(=Us8DpMPpEGwCKP+rja{ERU`P4XhQmdA(KG;#djTM~ za^=d(iqUzc)ujv8R+;;&)-FBrxA=Q5XI?K{O4Hsap1x;LtnL?w*~3ICj{ax#D7DOkXG; z33@n$08A$2Z4f|1Wq}?6>ieKGL5%`E6c220cg5s_nne>>9CDL_dM2p3U}yj&Q>kQC zWJwYgTS_9DXDONJAxnda=37c3DgiwU)B-RxBF+mfvGXFPpf}0Zi|r&^KWvGue`JZR z73kTZ9sxrmV*RKkwtmbKJ3nrTodcHGIk?0kTbF|VA*d(7(1=(swZzui5?dQfZ2e

    0k_LRmDZUx3*RW(%0D zVCp>Om;a+|1G5p#CbE4olG(lg%BOIX+kFZ*imU|Lz&nh)-Qior9lzvL_=N2Alv>Jm zMKW9VWuL-jcl#7ByT_*lx$G-GiOas~Q@HG}J>}<=?Tuu%Y?Dvnvak6RF8jJq;i_-2 z5;SD#8FAS+eT%s4Tb{C+vVC5*g|gpxSsi8jy=*IGZ%5YIrVjWNZt5MM!c85d`g9G+ z-aCxD`mJvfH+9ITa8rjprJk}QUe-X_Q7>zx?3kCmK-uxgI@?s(r%+Qtb;2icS0{Z6 zH+9OVa8vL46mIHwV5kQwc?`;;K%E9d=ZQ|seh=RR{RpTtpdSTw7W8AF&Utz8ebA4C zI`6>+&;d{%c=?B5&VV@w<~*1Wynnz)pqGHU2!=-FKmL15e1iXAiMMgd5^v#SOWgh^ z5em}dD_LCzT?*<7=mJoMU}!`NG+W{VEta@It0gXQ)e;xDW{LgVKtBPh9Sn_#bB9OM z8QHqiPO|lNOKja`iLGx~B5QnSt2;bamxH4MCr*Sn)LUI#T?=r`ygFZ7%Aa2NVDP$PvVJ&Sa#uXm@8RO5v{3~GYVM?g&! z`Y7mQppSzNgFXTJBr`_1_y3_7=96XyLqHCMZxD@wL^rMKQh^OdJF@RzqMFK@4 z#k~}R!cAvn>cIZ~_c*+CMLy(gJd5ega)$U41I==RldunWG|P$NGPX3!2c3Ec<6B5h zACCnsGRG-ggIikUSZ7Q-zDIi0y7V~wCM_-n6I$g+@fl8Om6M%{gSfVpEI-Cmtuo)4 z@DYlua!S;Z?l}BGcU%%Kx=L$%aotr}AbRlPRXNS6S%IF(4M{h^v(Raaw6D;-kNE>p$lxVc?Ua_0UOFSN@X(TOn~ za*9(q81p;m$fP{1?U0lEjxQbn71dbRAqQh`2URLww7pY~bGEO?@tt&b`fkI@PB}Je zPtyP#+B6^y+gjy7Z0VG#PDVT4>7<_ifupWdfumS;T|OxOj{EuN0)Bp77C7}myuV9M zbarmTWnFS|zh}-SK+Vb(qgR*KVAUPkG(Bgcy{e$^xM#0eaClbY|v%A2&v zS%PozZ&Vz9dQ;93w{g@hIVoyyfy7}2RO{JWbRjEd;=WsS3#?lt@tcKG;=fqkUWu8# gGTYg-3Rm>f{jwJi^wP!H5yn6E%8b4%E=X$dKR8!(5dZ)H delta 3166 zcmZXW3s6+o8OOhSmk8Ho5o8Z9gJzN%5$n*gv1p6|e8mQWn#8InF^Ha1f&oFnYHXWT z*=UqU)F%B*Of+Z{ZK_t|V`DUGeAU(mAR;0lYVBh((`4F7CgXH!`+XPpI6Gy|8NT2D zp8bFSbNB4ryYu9X`V%vj2d$tT^aP`V4+Q%Jqk}Q~otTx6_&1Iod!+xDV?tvAcqRhC z_=@uKiUnB{imQvCf3;HM`fvLSua7R|(yY4U#k_~CG|ajaH5``>@l6}7{h$TtB+$vA zQ=sGlkg1>(p~M263du4JR4QOhjgxQd0XVb98T`W%AIJ>QeV}wGs7E0Ppfg}XjRiDh zCa57Ghk?of`F&6WKn@2r6nE7)o1*E$WKiRAO3+CP=mO9H$h^=2W#Ma9UvGdOjvGXrLJp=NWplQIf_m19c zy-38?l!`ABvGsC8Y`ww|Tdy?4)-|9C0Y|KMCI)mJ=z7o%px=a&D3I$wzX5s;=(V70 zU1k0MDH}isLBCE$zY14o?{7sY9P;f5g@gY3zC!1ke$2@d?@Od`;*Ajsr+&v(R#EkC zxH4@wMJU|%y$FTdz8|4**Ub>%osgw##BH}kEaJ8wxXNm(8pD-oyEQ`Lw%Z~UZu^@E zh1-63U*Y|8+mG%`q;T8quJQ&|JKSmwRljwsTB<&FtF=`9F1*f!+8Lp6s9g~XhuVEl z3H0uqQ~f?-5r^6np>U|Zu2M(UCvH_w)jqd+ldAo0)j-vO@H!LfV1&Yy5yv zK8;w!p$!~D z{&_9Zh42jXVK>it2DR$R7BcsQI{0FE-m|Eu)MJteZ zL9N6xfvT{RP);aT|L&G;ZU)ok4rfhP)2>ol5^Lo0KgpDC5 zG1PR(c{nO+tqp*C2U+QuneB_i1xKAep^T$Wl8y1lo!Hfd#~qq|X?kfg`)J0|>_;=6 zW&+LrG!tq1LxsmhTs+R{5m9~bzgFS=W--nF>oNSiS>##;c(++(+lzK!c8eHgWnpED zc-;QV!ksN72S(ywTEw_MyB2$)q6!yw2|wmt5^47OHk^G)WP5I<$KvLJv8lM{lE}0s zVdo_=#%|h;DXru^9A~wPiT1`b_(7|9!sG9X#pbTqB>c9O*5=_um&GLONi4Z6p0qn& z!R?ntj%UwiAC_(L4aDd+kr}o9fDbV5oG%e4w~1jfyDs{ms9?raJa$&3;#+NEpl{1< zA5>OUl`gF;u6`MR!1-F+DBnIme%&T=tbEM6LiTf~V8s=YYqtk+?-h~bY!1aiHN8z% zVPz|Q#Mds;tfw%eU5vJOe~t6n#kjtszlj4~UR+w1h11Rpfv4KVK)X2^Z?}`rlJWTH zRoW>Q;=HSLzxGVWEmy^3_IE3=?JC{3k_{NwAx3!qyR{!4-qtT2=X8indwCnybx^2T zc)ml7vjq0LCLXtD;?wlcGgu|yO_h*_jn`=DSFhoPYhslB?+qB;DaLrak0rp;^0KU| z;-$F$JncTWOGM%PPTK0ai@2&&#7kCTVYe7-ANmICyG6d;^ax(-rt5d-VB&SU32h7L#aUNZR954P zD|DkyuStye(tG#4zZ7h^E+$y1*m|8dl813UBHKH!$PbGbm6esw9fAMkyQ_LArSjtP z9+7WN!1Fy~bYIUTaqrE(cRLw3=(2m?@b>3{tb6YXWY=WfY1(J* Uz2n%mgr1LjE4FVjVDs?@04NC{t^fc4 delta 64 zcmZo@kZNd(2m?@b>3{tb6YX%-Y0WFkOhj Uf5y~SWxu+`BHOnZu=)4{0O*e$F8}}l diff --git a/BaseTools/Bin/Win32/GenCrc32.exe b/BaseTools/Bin/Win32/GenCrc32.exe index 799d0be54ecd52b6348f45da180c230dd90dd4d2..689e926157110ea71c00f41296ddf6549cb88c0c 100755 GIT binary patch delta 64 zcmZo@kZNd%#z$@b>G0tVbUROh|ON`v2lT U--VkdNC|2`7Tvzah%Lky0520DBme*a delta 64 zcmZo@kZNd%#z$@b>G0tVbUR#L780{XOR4 UI{CGMO2sJCKCH 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 delta 1591 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 K7M`Yq^#1|>f62oD diff --git a/BaseTools/Bin/Win32/GenFfs.exe b/BaseTools/Bin/Win32/GenFfs.exe index 46f56abbb1f65f0e84e84d1a6c8e0ccef2309f41..76cebca4582a876f0a80c8a5c5733e442ca034f3 100755 GIT binary patch delta 64 zcmZozAl0xyYQh8Nl!NyhAGbbcY<)+gtuS+$olnxz+7(SXIdXU U-4^_6%-$Aoc+vJdm)KNl0ap_ucmMzZ delta 64 zcmZozAltA&cESthqKR7@U$?$yY<)+gtuS+$olnxfd6@=oTKY5 Ux^=`w-O;$>n7sYYB{r2>06;q-ga7~l diff --git a/BaseTools/Bin/Win32/GenFw.exe b/BaseTools/Bin/Win32/GenFw.exe index 1b299bba323787f3bd84faa962279c0681f2b475..e816b88c8124f2cf4dec627748e4c572920edda5 100755 GIT binary patch delta 67 zcmZozAlI-!Zo&iR^n>>sAGbbcY<DxhgpKY*+ctc4r0vN(mq( delta 67 zcmZozAlI-!Zo&iR(urFeAGbbcY<4`VjDzbrf35nGHc06zC1p8x;= delta 64 zcmZp8AldLha>4`V(urFeAGbbcY<Jk U-TNT?-~E1uhufDJvBlT|03gC2sQ>@~ diff --git a/BaseTools/Bin/Win32/GenPatchPcdTable.exe b/BaseTools/Bin/Win32/GenPatchPcdTable.exe index d404b476427dee92086923c5ac773d517a591801..0163b10f37b9d4d05a3bcb6e7f6b8583396ec4e0 100755 GIT binary patch delta 18518 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 L!~g_bTvmSro}+Dg diff --git a/BaseTools/Bin/Win32/GenSec.exe b/BaseTools/Bin/Win32/GenSec.exe index 4d78a1a916179c9d7e73760ad947d5afdbb5bb3c..0f322a78553c56269c05cfded182d14c7bab0a5f 100755 GIT binary patch delta 64 zcmZozAl1~B U@N4k7{g)%8Tz&hLBDS1Z03w6Ktc3JBY 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 delta 22993 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 a22#X=TEAP>@|o7iyX7>=azm{$um1xdH|wJS diff --git a/BaseTools/Bin/Win32/LzmaCompress.exe b/BaseTools/Bin/Win32/LzmaCompress.exe index c65ced3dc1f964857477a52a31b5b122da5e53ff..71af24b1e4478df18e2261ed5af2eae727b51276 100755 GIT binary patch delta 64 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 delta 2352 zcmY)w3s6+o^}f5y?(*ARU@r&?Q3Qdt@>4zv3kY#yREUGIiKxi3@4+tY4|W$=tszDd zn>L1$H|8*o)8eF4V=V@{pb1cnH9=~VG%-!5O>ttJiDH|Gt<7f=tv&Z)nCY86=biue z-Zwk?pY6T>e0=D$)N3s3Sed z#uG7IArgofp%9CR7>NYDc_${mTUtUyJ?RlhT{003iav!%4-wI*2$vEuMiDL}Vyr@> z5;2a5g+w%Q_8=iU>Xs8xP<$Ba!7|c0E5Q!h?5k0 zG3n8ex-9uhT7uC`#AGGyN+PBp0e3$a5=AM8G@)PWLIt@*#3G7_n6@CwBVsy{A{4_F z3(|ZdW)Nw$BF$Wot|4L;5sQgvUJwM(S+LZDHOLaZfXu0pIMVjg)= zQ9hR_GbthBY9gZ1ngvlQkt{?kAT5-5)I@L#M8NL1Wv;_DJMQCClPMtSHzIn}FST16 zL%A!oKMH+xB3BhzgR0ucINB;3Po+j~;lhJ+)bTc>ISVUuhb%++k-@}078 z@W1pmb;x&mRG=5tA@fj=O0dhXg{p)d@|}=9&Be`jaC8Y%*0yrW&rusk?Hu{!;l0~5 zUR1xYmj60(nd-tIB|dzyd~x)BAy)1`GbE(IupuT+Zg@Iemd;v)fc(nYeZsQPL$Cjy zVxDVbX2B&#k5?M8UsCJg=rGUbmG_J%qrv|16T%8PePTE3ZI z8g5hjl6-vP$*^aU+$?XM$`#7w15>N?eu@t5QtdA8_o6&Dl?xwqMJH%&9+%hQlw|$I z8%cHC-O7=jBVJoAk5l_Jd|IuFldoDImIKqVIO!ixFA=DGVtTz`I5;KrkZ2AjBfXoi$IIj05`r|FpoydR9%7 zF96iD^)&q*__&@G>h)Q8J6%?XGsop{NpQf=5}{}hOVPfGiY}LPUJ^hFZOeuudsrcz zEroaYuwwe38T9)v8W`45231zJ zl0Ne!c&%&=J?4U6Sy=_$|1+4ivMT!2tFWq(RYizbDY1Dxtqv@zfyKe$Ml9jwGceeQ zp^tBY>y6k&TRmjiF!ebHSZ$d4^m}m3#tP`j75LD`%2X9M)KKz;IvIMKSQJ=943RPm zyG3-VqHsiH<@Bl+{=)f|5PnKA^!~rWBNFn@66lsN8j%g&W>%~{TCF94b{s12 zXhW>d6oqH$!LvIGt~IlK%|MxsxczY3%}kJON9V&XsIjwBx^^GDU}t4vhn~}sCKzsH z>}3~I!>pYpX^-C05s%joeLhT?;y|zalThZsx~^XhhflAEF9NBZ8R58tCD9LN;dc(+ ziW9zcu%+n&*hSR>qS!F@;dg1MEgRsC^1 z5}I0Bp=#G$B>bWkXY`XCxYo+@Rqoy>xcy;NBIG)mnO-)+E+<<@cP@o~Cr<8-LipIp z9;Ru=dJ)Tk#gEa~H5zZ*|ZWfuI} z%`9|HIox#PhBkU2&BHg@2a*TnU!R0udRT?Z`H3EGcvxBZ>R1Eu2fdOH@@zQNN-s7w zvjpnB*i6+X==b6p->ZQcFDs!^J0!MYkx@T~oo%c{^MjKHzKw=9wg^VrSc-1LkO9x7 zH#i^bRvSywy)a`ScB{`mzt-jLEJbzqa|1k;XI#doZr0R(V<3URyvNCQ%>EA@yxoo^ zU(kZahuNAVV51L5usj=n>cf_r_Q4c?uRaQbAFHf54JCe7qDuXH3#)$PujOV@I)6@@SEoWx>%{|T)zp{Uoo+HldrkSpNAnKi2c1a0(C)*GH}rZM}n+e jJ27KYE`)M!ZwJxzw^3l+%M$c{;wN_&6Y^Xl|F`o$Z>r6X diff --git a/BaseTools/Bin/Win32/Split.exe b/BaseTools/Bin/Win32/Split.exe index cd4b4aff6cbef677c1096e3dc734ed9cf788559d..c3fd1a370b1818c67669c1383206becdd344e78f 100755 GIT binary patch delta 64 zcmZo@kZNd&FC;@b>44tf~(LQg_cT< U=kh#nKewxv3%1KRu|2T`03OpHZU6uP delta 64 zcmZo@kZNd&FC;@b>44tf~(L{yNuqzC5?y Ubz%J5T!CxvQnt%Du|2T`02eqQGynhq diff --git a/BaseTools/Bin/Win32/TargetTool.exe b/BaseTools/Bin/Win32/TargetTool.exe index b2837875918af122fadce87a272bbfb418be4eb3..cdfb75e4fcf29036ea22cc61f7d70965ec57a8d2 100755 GIT binary patch delta 2731 zcmZXWX;f8J6vzMf9rWFDtU$maOIHEXVCJ}5qKLByD5!NDKshIJzzG!0>Y20RKv5oN zB`3s2MW32wj%k)dS`Mkm@?)!Itv=+3maDyQyyLnB=dQPZ|9kFl?|0vW_pY35|L3Xp z^Ah% zpj$x4LdQYJqo4s~OXz46IM6K-Ysw16kOt~m$V79kP(0I7C!(MUWD;~kOzZ%afQ5ig zLf-`rXvt)#M9Al$k|3XlYHd1B6&pfnkORFFgP{6C4uE#`5M^3wL6l`FmS~uzIHKW};)$}M214dQ=Y$@rM-cu?tR88J)uSx2`c+G;e$5iA zCDb6u(a^LaLyxh<=CPK@9FpTKvO3oitMe?edOXx%$O+K2BI7|X8Z$J%!oCr-TqMl@l)sro;dWt1h7g}QVR7-5029*vu9hz3eJi}5RFapJsWB$WC=8_h`Q7g4?V{co8Pp==D8k)_(E2{WlysDZKw>$cc5uS z)bv)VCsxn1#Oik~v3kBGHZQQm=7mt1kc*(QAQwZKQ!_-Dkdlz)&?})=L9d1`M?n9XXclkDP+bSJjM9qJQb!b5%POL(Zy zs6V}ir1vi4sXq5@;-S9qB|Ow#FIh>|KCfCuRgG7bQ?=i#R#SB#vd<0`_9Zk_NFMY> zJk=pz!b2VQB|OxZzJ!N50!=ee%l#-2kY7R5eWKg4$HT9oMnfKj8Uy(a)L6)4UL86P zH4gHG2PdI&Ay0YrY3QTS$DmI@pYr|!zJyNGc>Kp=vO`J z#mMSw_9UyXTVnMMORWCI5~L+1gPXA=@}= z6XcT)$&QzZ7u)WDOmNgr`V!!%UG(AasO^v)97TCD<)(S5=-EMbb<|$SZjRaq+1*h! zQ2U_{K!u?WLLGuSjDjF!564U`6|EX6dJoVW;4}&vn@y!6IYy>B>O5p0M_qtSbJRs- zCtfn=N=2&kN;o)21OiTK_|dsyQn2mt{%N`CsTl)Cqz>qpUCdu<24!bHOv2OVi+cg5 zugP5`jy)btr*l&KYPVCT z|9(3wzv&JOxO>dqn{Ma8(i#(g%k3JN@t7ILk0Qq`yXAHdR1}#L^yu6-f8TO@IJKth zZMR3De}$QGo36^MGP`cmuC|v=-EFs*^Q(Ef*6kKpKFY{iH!UzL*KDbEJ3B|rm0EJ@ zHKy?$x3_c745f!aexX@?hc13(96-o;F!eePQ~X{H!4j8uIRr^xKmz-Fnp}`Ukx> BthN9E delta 2608 zcmZXWd2Cfh6vn@K7wAn8g0j4_R1y#=i-59g$|8tB*-?aHhclK!*_VQ-4@%2ccEzET zs_a-?5DJe?WNE<-RAf;J6wrS}O-wW~#ArO{!kgx5J2&_IzB}(b-@MGtyx+?jUn*_9 zC|Bi1O1%86>a{j?PCNe4ou}eyKs?PBWO*sc!><(en~3{=)%f0xui1C2+6!6UrY5Eq zOl_DtFj1IfWK@Q(3sVyr3Z^cix*n)5Z2nX)J!0zHYg4@@Z8NGtr@~Z0W;4*E$OTL) zdM;7mp__x6Lbm{=Lbn9fhkgvy%(j{46~_2MZ%_~DKA@h^eL>Gar-OPy_k-a9M7ecT z_jgo_X@H~JOamR&VH)Hp$~4$fGSd*yv(Q6fc!+aMtetT+>`UOW~J=~F4 zj{xqxA}f%-s?hvAX1p5REVCpr>qawN{i zkvPBTNStFCpuW(PV0a{~GaZTbWJh8>#gSNNITGusj>LKzC>?q_43C8K3`gQT6DD^5 zp;*sy55;=6Be9<2NUZ0A`a#cw;gPV;b|lvG9f|V-N8F>&1>FbdDo&UIH2boeLTWod+5Oy%c22W_s;oW);k8m^CnKkx>bH z9n5l=6)-Dd@&jf4|C9|dxiEQb{92-NfnN_P5_)4uk>GDsC^3E!B)zSWSdkTM3MsOR zf2B3<9)mw;EomVuG9eJeCc+P)nq%edN_s9f7^Aw}A5 z4=K`iM@W&jJ1Z1fzqH*|A+aKDcL&OHuJ#1g3a;J>s(h}BgK8yLdlU0qsCPq(gnBQe zNT~PkE3tbkmsB5wCP}D$Aw@!c7$~c_+8Tqb1ggO#ZB-GK6BB74Ka0YH!f(#G(I1GPJ{IwJZ_z_4$p8$=7{une0`eaa_ z0*!`_oetm(Xbf~|P?y1+fH?_s8m2UO1I~iRLZ5@-k$5pbaU^T`)R8RXGe@$7&mBqp zFC0nq^D)pk=nMCc9+O_t;7cS(8hqtQ8hq_Y8eDWF4Zd+C4K9JkLtlpBk%)f9Q7v?h z>Z=aL`dde0{hcGR{@#&TUjt2meSDtR)Hk=Ge*k6Lar3WbFc3E5uz7IUDJ70u@JUQq#bJw=nmb|28s%yQxt81 zeppeFJ)P~fZnzb?siJLs_$%5D-AvI=KJOLn;`3h7Zd+r%mo|v@gARa7KnFpGKyhRw zL3dDe7<2@56m$%99K^eXw+QbK-W;%565w`G#-&u9Dm-!aiy}{Nf=TDv5ZF`mTtVI{?qH@2h z>Ss@u`yC@c53_g6{T`7kV{Dh3emj+7XWwMcvm5Q+n|?Rd(*DA?NNJXBb&Ef|xWG=j z6?kvE#qyu$?T@$oCsnd-c-wzEa;cu3c$=R_ZP9JNZR5Yr`Is|(ika4G#)651(koYy Q-+XQOKdmaDuKG;>0?Esfa{vGU diff --git a/BaseTools/Bin/Win32/TianoCompress.exe b/BaseTools/Bin/Win32/TianoCompress.exe index 994226ab574f2c83e33a8bdba85d537693290775..e20c574f8327e9f678add70043cf164d42e44305 100755 GIT binary patch delta 64 zcmZoTAk}a{YQh8Nyo2`}AGbbcY<>QiOt6r03R$LZU6uP diff --git a/BaseTools/Bin/Win32/Trim.exe b/BaseTools/Bin/Win32/Trim.exe index 527bff8035213e46c50a4b7c5f50c6bdfb48edff..6ad1ce7bf9683ec2279ccbaa337493dd15ac01c7 100755 GIT binary patch delta 18507 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 P>&5k>IJtXmOho?z(`#`J diff --git a/BaseTools/Bin/Win32/VfrCompile.exe b/BaseTools/Bin/Win32/VfrCompile.exe index 21e66b81c723a4fb56f38add30f924ba3140b29e..5d68baa689f3bd976b11928f80abe0c2ba0d5d2d 100755 GIT binary patch delta 105 zcmZoT;L&ivW5NsOs)P3%U$?$yY<ua7!Ly+2bcO#zd?nb<|`~u!;?U`9G41L$_dNJ*f=q~Q|D~`NC%m>8$KrFERild;; FJph@3FxmhB delta 105 zcmZoT;L&ivW5NsOzKL5KU$?$yY<ua7!Ly+2bcO#zd?nb<|`~n6yGG;Hz^l;j!TMS)tR7Pp+v27Dm~Ph)f-F*COw@CM>P^~WV= diff --git a/BaseTools/Bin/Win32/build.exe b/BaseTools/Bin/Win32/build.exe index dd3a45b37c304f7a339ce20c6d6f3ea6980ab289..82049652a267f3dce80c0188b8b40d961655d155 100755 GIT binary patch delta 57048 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 delta 47195 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 N>1MQjt&fRx{|j?3<1PRI diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index c29ed563ae..7c765d46b0 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -364,7 +364,7 @@ $(MAKE_FILE) - "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src} + "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src} "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) @@ -384,7 +384,7 @@ $(MAKE_FILE) - "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src} + "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src} "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 639e20a60e..7185be2ccf 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -45,17 +45,22 @@ DEFINE WINSDKx86_BIN = c:\Program Files (x86)\Microsoft SDKs\Windows\DEF(WINS # are used by other toolchains. An example is that ICC on Windows normally # uses Microsoft's nmake.exe. -# Some MS_VS_BIN options: DEF(VS2003_BIN), DEF(VS2005_BIN), DEF(VS2005x86_BIN) -DEFINE MS_VS_BIN = DEF(VS2005_BIN) -# Some MS_VS_DLL options: DEF(VS2003_DLL), DEF(VS2005_DLL), DEF(VS2005x86_DLL) -DEFINE MS_VS_DLL = DEF(VS2005_DLL) +# Some MS_VS_BIN options: DEF(VS2003_BIN), DEF(VS2005_BIN), DEF(VS2008_BIN) +DEFINE MS_VS_BIN = DEF(VS2008_BIN) +# Some MS_VS_DLL options: DEF(VS2003_DLL), DEF(VS2005_DLL), DEF(VS2008_DLL) +DEFINE MS_VS_DLL = DEF(VS2008_DLL) + +# Some MS_VSx86_BIN options: DEF(VS2005x86_BIN), DEF(VS2008x86_BIN) +DEFINE MS_VSx86_BIN = DEF(VS2008x86_BIN) +# Some MS_VSx86_DLL options: DEF(VS2005x86_DLL), DEF(VS2008x86_DLL) +DEFINE MS_VSx86_DLL = DEF(VS2008x86_DLL) DEFINE WINDDK_BIN16 = C:\WINDDK\3790.1830\bin\bin16 DEFINE WINDDK_BIN32 = C:\WINDDK\3790.1830\bin\x86 DEFINE WINDDK_BINX64 = C:\WINDDK\3790.1830\bin\win64\x86\amd64 DEFINE WINDDK_BIN64 = C:\WINDDK\3790.1830\bin\win64\x86 -# NOTE: The Intel C++ Compiler for Windows requires one of the Microsoft C compiler +# NOTE: The Intel C++ Compiler for Windows requires one of the Microsoft C compiler # tool chains for the linker and nmake commands. # This configuration assumes a Windows 2003 Server DDK installation. DEFINE ICC_VERSION = 9.1 @@ -75,10 +80,10 @@ DEFINE ICC_BIN64x86 = C:\Program Files (x86)\Intel\Compiler\C++\DEF(ICC_VERS # Note: The Intel C++ Compiler 11.1 uses different installation path from previous versions -# We use "ICC11" tag for ICC 11.1 while "ICC" tag is dedicated for eariler versions +# We use "ICC11" tag for ICC 11.1 while "ICC" tag is dedicated for eariler versions # DEFINE ICC11_VERSION = 11.1 -DEFINE ICC11_BUILD = 065 +DEFINE ICC11_BUILD = 067 DEFINE ICC11_BIN32 = C:\Program Files\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32 DEFINE ICC11_ASM32 = C:\Program Files\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32 DEFINE ICC11_BIN32x86 = C:\Program Files (x86)\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32 @@ -131,6 +136,9 @@ DEFINE GCC44_IA32_PREFIX = /usr/bin/ DEFINE GCC44_X64_PREFIX = /usr/bin/ #DEFINE GCC44_X64_PREFIX = ENV(HOME)/programs/gcc/4.4/x64/ +DEFINE GCC45_IA32_PREFIX = /usr/bin/ +DEFINE GCC45_X64_PREFIX = /usr/bin/ + DEFINE UNIX_IASL_BIN = /usr/bin/iasl #DEFINE UNIX_IASL_BIN = $(HOME)/programs/iasl DEFINE WIN_ASL_BIN_DIR = C:\ASL @@ -150,12 +158,12 @@ DEFINE DEFAULT_WIN_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) #DEFINE DEFAULT_WIN_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS) DEFINE MSFT_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -DEFINE MSFT_ASLCC_FLAGS = /GL- /Y- /TC /Dmain=ReferenceAcpiTable -DEFINE MSFT_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +DEFINE MSFT_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable +DEFINE MSFT_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER DEFINE ICC_WIN_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -DEFINE ICC_WIN_ASLCC_FLAGS = /Y- /TC /WX- /Od /Dmain=ReferenceAcpiTable -DEFINE ICC_WIN_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE /NODEFAULTLIB:libmmt /NODEFAULTLIB:libirc +DEFINE ICC_WIN_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable +DEFINE ICC_WIN_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /NODEFAULTLIB:libmmt /NODEFAULTLIB:libirc DEFINE IPHONE_TOOLS = /Developer/Platforms/iPhoneOS.platform/Developer DEFINE RVCT31_TOOLS_PATH = c:/Program Files/ARM/RVCT/Programs/3.1/569/win_32-pentium @@ -313,8 +321,8 @@ RELEASE_VS2003_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE DEBUG_VS2003_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi RELEASE_VS2003_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd *_VS2003_IA32_SLINK_FLAGS = /nologo /LTCG - DEBUG_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # EBC definitions @@ -348,7 +356,7 @@ RELEASE_VS2003_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE # ASL definitions ################## *_VS2003xASL_*_ASL_PATH = DEF(WIN_ASL_BIN) -*_VS2003xASL_*_ASL_FLAGS = +*_VS2003xASL_*_ASL_FLAGS = *_VS2003xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS) *_VS2003xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS) *_VS2003xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS) @@ -382,8 +390,8 @@ RELEASE_VS2003xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gs32768 /Gy /D UNI DEBUG_VS2003xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi RELEASE_VS2003xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd *_VS2003xASL_IA32_SLINK_FLAGS = /nologo /LTCG - DEBUG_VS2003xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2003xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2003xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2003xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # EBC definitions @@ -458,8 +466,8 @@ RELEASE_VS2003xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OP RELEASE_VS2005_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2005_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2005_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd - DEBUG_VS2005_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2005_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2005_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2005_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -482,8 +490,8 @@ RELEASE_VS2005_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF RELEASE_VS2005_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2005_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2005_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_VS2005_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2005_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2005_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2005_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -505,8 +513,8 @@ RELEASE_VS2005_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O RELEASE_VS2005_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 DEBUG_VS2005_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_VS2005_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_VS2005_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG -RELEASE_VS2005_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + DEBUG_VS2005_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG +RELEASE_VS2005_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb ################## # EBC definitions @@ -552,7 +560,7 @@ RELEASE_VS2005_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF # ASL definitions ################## *_VS2005xASL_*_ASL_PATH = DEF(WIN_ASL_BIN) -*_VS2005xASL_*_ASL_FLAGS = +*_VS2005xASL_*_ASL_FLAGS = *_VS2005xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS) *_VS2005xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS) *_VS2005xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS) @@ -580,8 +588,8 @@ RELEASE_VS2005_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF RELEASE_VS2005xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2005xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2005xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd - DEBUG_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -604,8 +612,8 @@ RELEASE_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE RELEASE_VS2005xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2005xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2005xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_VS2005xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2005xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2005xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2005xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -627,8 +635,8 @@ RELEASE_VS2005xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE RELEASE_VS2005xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 DEBUG_VS2005xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_VS2005xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_VS2005xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG -RELEASE_VS2005xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + DEBUG_VS2005xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG +RELEASE_VS2005xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb ################## # EBC definitions @@ -702,8 +710,8 @@ RELEASE_VS2005xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF, RELEASE_VS2005x86_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2005x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2005x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd - DEBUG_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -726,8 +734,8 @@ RELEASE_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF RELEASE_VS2005x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2005x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2005x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_VS2005x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2005x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2005x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2005x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -749,8 +757,8 @@ RELEASE_VS2005x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF RELEASE_VS2005x86_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 DEBUG_VS2005x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_VS2005x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_VS2005x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG -RELEASE_VS2005x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + DEBUG_VS2005x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG +RELEASE_VS2005x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb ################## # EBC definitions @@ -796,7 +804,7 @@ RELEASE_VS2005x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,I # ASL definitions ################## *_VS2005x86xASL_*_ASL_PATH = DEF(WIN_ASL_BIN) -*_VS2005x86xASL_*_ASL_FLAGS = +*_VS2005x86xASL_*_ASL_FLAGS = *_VS2005x86xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS) *_VS2005x86xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS) *_VS2005x86xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS) @@ -824,8 +832,8 @@ RELEASE_VS2005x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,I RELEASE_VS2005x86xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2005x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2005x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd - DEBUG_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -848,8 +856,8 @@ RELEASE_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT RELEASE_VS2005x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2005x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2005x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_VS2005x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2005x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2005x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2005x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -871,8 +879,8 @@ RELEASE_VS2005x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT RELEASE_VS2005x86xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 DEBUG_VS2005x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_VS2005x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_VS2005x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG -RELEASE_VS2005x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + DEBUG_VS2005x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG +RELEASE_VS2005x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb ################## # EBC definitions @@ -948,8 +956,8 @@ RELEASE_VS2005x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R RELEASE_VS2008_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2008_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2008_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd - DEBUG_VS2008_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2008_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2008_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2008_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -972,8 +980,8 @@ RELEASE_VS2008_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF RELEASE_VS2008_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2008_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2008_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_VS2008_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2008_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2008_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2008_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -995,8 +1003,8 @@ RELEASE_VS2008_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O RELEASE_VS2008_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 DEBUG_VS2008_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_VS2008_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_VS2008_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG -RELEASE_VS2008_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + DEBUG_VS2008_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG +RELEASE_VS2008_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb ################## # EBC definitions @@ -1042,7 +1050,7 @@ RELEASE_VS2008_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF # ASL definitions ################## *_VS2008xASL_*_ASL_PATH = DEF(WIN_ASL_BIN) -*_VS2008xASL_*_ASL_FLAGS = +*_VS2008xASL_*_ASL_FLAGS = *_VS2008xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS) *_VS2008xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS) *_VS2008xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS) @@ -1070,8 +1078,8 @@ RELEASE_VS2008_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF RELEASE_VS2008xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2008xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2008xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd - DEBUG_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -1094,8 +1102,8 @@ RELEASE_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE RELEASE_VS2008xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2008xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2008xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_VS2008xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2008xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2008xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2008xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -1117,8 +1125,8 @@ RELEASE_VS2008xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE RELEASE_VS2008xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 DEBUG_VS2008xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_VS2008xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_VS2008xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG -RELEASE_VS2008xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + DEBUG_VS2008xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG +RELEASE_VS2008xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb ################## # EBC definitions @@ -1189,10 +1197,10 @@ RELEASE_VS2008xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF, *_VS2008x86_IA32_MAKE_FLAGS = /nologo DEBUG_VS2008x86_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm RELEASE_VS2008x86_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF - DEBUG_VS2008x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi + DEBUG_VS2008x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2008x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd - DEBUG_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -1210,12 +1218,12 @@ RELEASE_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF *_VS2008x86_X64_DLINK_PATH = DEF(VS2008x86_BINX64)\link.exe *_VS2008x86_X64_ASLDLINK_PATH = DEF(VS2008x86_BINX64)\link.exe - DEBUG_VS2008x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm + DEBUG_VS2008x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm RELEASE_VS2008x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2008x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2008x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_VS2008x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2008x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2008x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2008x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -1237,8 +1245,27 @@ RELEASE_VS2008x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF RELEASE_VS2008x86_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 DEBUG_VS2008x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_VS2008x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_VS2008x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG -RELEASE_VS2008x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + DEBUG_VS2008x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG +RELEASE_VS2008x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + +################## +# EBC definitions +################## +*_VS2008x86_EBC_*_FAMILY = INTEL + +*_VS2008x86_EBC_MAKE_PATH = DEF(MS_VSx86_BIN)\nmake.exe +*_VS2008x86_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe +*_VS2008x86_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe +*_VS2008x86_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe +*_VS2008x86_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe +*_VS2008x86_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe + +*_VS2008x86_EBC_MAKE_FLAGS = /nologo +*_VS2008x86_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h +*_VS2008x86_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT) +*_VS2008x86_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h +*_VS2008x86_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC +*_VS2008x86_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP #################################################################################### @@ -1289,10 +1316,10 @@ RELEASE_VS2008x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,I *_VS2008x86xASL_IA32_MAKE_FLAGS = /nologo DEBUG_VS2008x86xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm RELEASE_VS2008x86xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF - DEBUG_VS2008x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi + DEBUG_VS2008x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi RELEASE_VS2008x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd - DEBUG_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -1310,12 +1337,12 @@ RELEASE_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT *_VS2008x86xASL_X64_DLINK_PATH = DEF(VS2008x86_BINX64)\link.exe *_VS2008x86xASL_X64_ASLDLINK_PATH = DEF(VS2008x86_BINX64)\link.exe - DEBUG_VS2008x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm + DEBUG_VS2008x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm RELEASE_VS2008x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_VS2008x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_VS2008x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_VS2008x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_VS2008x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_VS2008x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_VS2008x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -1337,9 +1364,27 @@ RELEASE_VS2008x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT RELEASE_VS2008x86xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 DEBUG_VS2008x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_VS2008x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_VS2008x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG -RELEASE_VS2008x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + DEBUG_VS2008x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG +RELEASE_VS2008x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb +################## +# EBC definitions +################## +*_VS2008x86xASL_EBC_*_FAMILY = INTEL + +*_VS2008x86xASL_EBC_MAKE_PATH = DEF(MS_VSx86_BIN)\nmake.exe +*_VS2008x86xASL_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe +*_VS2008x86xASL_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe +*_VS2008x86xASL_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe +*_VS2008x86xASL_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe +*_VS2008x86xASL_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe + +*_VS2008x86_EBC_MAKE_FLAGS = /nologo +*_VS2008x86_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h +*_VS2008x86_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT) +*_VS2008x86_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h +*_VS2008x86_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC +*_VS2008x86_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP #################################################################################### # @@ -1390,8 +1435,8 @@ RELEASE_VS2008x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R RELEASE_DDK3790_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_DDK3790_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi RELEASE_DDK3790_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd - DEBUG_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # x64 definitions @@ -1411,8 +1456,8 @@ RELEASE_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF / RELEASE_DDK3790_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_DDK3790_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_DDK3790_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_DDK3790_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_DDK3790_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_DDK3790_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_DDK3790_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -1433,8 +1478,8 @@ RELEASE_DDK3790_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF / RELEASE_DDK3790_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 DEBUG_DDK3790_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_DDK3790_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_DDK3790_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG -RELEASE_DDK3790_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb + DEBUG_DDK3790_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG +RELEASE_DDK3790_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb ################## # EBC definitions @@ -1476,7 +1521,7 @@ RELEASE_DDK3790_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF # ASL definitions ################## *_DDK3790xASL_*_ASL_PATH = DEF(WIN_ASL_BIN) -*_DDK3790xASL_*_ASL_FLAGS = +*_DDK3790xASL_*_ASL_FLAGS = *_DDK3790xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS) *_DDK3790xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS) *_DDK3790xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS) @@ -1500,8 +1545,8 @@ RELEASE_DDK3790_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF RELEASE_DDK3790xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_DDK3790xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi RELEASE_DDK3790xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd - DEBUG_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # x64 definitions @@ -1521,8 +1566,8 @@ RELEASE_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:R RELEASE_DDK3790xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_DDK3790xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_DDK3790xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_DDK3790xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_DDK3790xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_DDK3790xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_DDK3790xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -1543,8 +1588,8 @@ RELEASE_DDK3790xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:R RELEASE_DDK3790xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 DEBUG_DDK3790xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_DDK3790xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_DDK3790xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG -RELEASE_DDK3790xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb + DEBUG_DDK3790xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG +RELEASE_DDK3790xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb ################## # EBC definitions @@ -1594,13 +1639,21 @@ DEFINE GCC_IPF_RC_FLAGS = -I binary -O elf64-ia64-little -B ia64 --re DEFINE GCC44_ALL_CC_FLAGS = -g -fshort-wchar -fno-stack-protector -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -malign-double -D EFI32 -DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address +DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address -mcmodel=large DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable DEFINE GCC44_IA32_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map DEFINE GCC44_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS) -melf_x86_64 --oformat=elf64-x86-64 --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) +DEFINE GCC45_IA32_CC_FLAGS = DEF(GCC44_IA32_CC_FLAGS) +DEFINE GCC45_X64_CC_FLAGS = DEF(GCC44_X64_CC_FLAGS) +DEFINE GCC45_IA32_X64_DLINK_COMMON = DEF(GCC44_IA32_X64_DLINK_COMMON) +DEFINE GCC45_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) +DEFINE GCC45_IA32_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS) +DEFINE GCC45_X64_DLINK_FLAGS = DEF(GCC44_X64_DLINK_FLAGS) +DEFINE GCC45_ASM_FLAGS = DEF(GCC44_ASM_FLAGS) + #################################################################################### # # Unix GCC And Intel Linux ACPI Compiler @@ -1622,7 +1675,7 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_UNIXGCC_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) *_UNIXGCC_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) *_UNIXGCC_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) -*_UNIXGCC_*_APP_FLAGS = +*_UNIXGCC_*_APP_FLAGS = *_UNIXGCC_*_ASL_FLAGS = DEF(IASL_FLAGS) *_UNIXGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) @@ -1702,7 +1755,7 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_GCC44_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) *_GCC44_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) *_GCC44_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) -*_GCC44_*_APP_FLAGS = +*_GCC44_*_APP_FLAGS = *_GCC44_*_ASL_FLAGS = DEF(IASL_FLAGS) *_GCC44_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) @@ -1744,11 +1797,73 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_GCC44_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 *_GCC44_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64 *_GCC44_X64_ASM_FLAGS = DEF(GCC44_ASM_FLAGS) -m64 --64 -melf_x86_64 -*_GCC44_X64_CC_FLAGS = DEF(GCC44_X64_CC_FLAGS) -Os +*_GCC44_X64_CC_FLAGS = DEF(GCC44_X64_CC_FLAGS) *_GCC44_X64_DLINK_FLAGS = DEF(GCC44_X64_DLINK_FLAGS) *_GCC44_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) +#################################################################################### +# +# GCC 4.5 - This configuration is used to compile under Linux to produce +# PE/COFF binaries using GCC 4.5. +# +#################################################################################### +*_GCC45_*_*_FAMILY = GCC + +*_GCC45_*_MAKE_PATH = make +*_GCC45_*_ASL_PATH = DEF(UNIX_IASL_BIN) + +*_GCC45_*_PP_FLAGS = DEF(GCC_PP_FLAGS) +*_GCC45_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) +*_GCC45_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) +*_GCC45_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) +*_GCC45_*_APP_FLAGS = +*_GCC45_*_ASL_FLAGS = DEF(IASL_FLAGS) +*_GCC45_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) + +################## +# GCC45 IA32 definitions +################## +*_GCC45_IA32_CC_PATH = DEF(GCC45_IA32_PREFIX)gcc +*_GCC45_IA32_SLINK_PATH = DEF(GCC45_IA32_PREFIX)ar +*_GCC45_IA32_DLINK_PATH = DEF(GCC45_IA32_PREFIX)ld +*_GCC45_IA32_ASLDLINK_PATH = DEF(GCC45_IA32_PREFIX)ld +*_GCC45_IA32_ASM_PATH = DEF(GCC45_IA32_PREFIX)gcc +*_GCC45_IA32_PP_PATH = DEF(GCC45_IA32_PREFIX)gcc +*_GCC45_IA32_VFRPP_PATH = DEF(GCC45_IA32_PREFIX)gcc +*_GCC45_IA32_ASLCC_PATH = DEF(GCC45_IA32_PREFIX)gcc +*_GCC45_IA32_ASLPP_PATH = DEF(GCC45_IA32_PREFIX)gcc +*_GCC45_IA32_RC_PATH = DEF(GCC45_IA32_PREFIX)objcopy + +*_GCC45_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 +*_GCC45_IA32_ASLDLINK_FLAGS = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -m elf_i386 +*_GCC45_IA32_ASM_FLAGS = DEF(GCC45_ASM_FLAGS) -m32 --32 -march=i386 +*_GCC45_IA32_CC_FLAGS = DEF(GCC45_IA32_CC_FLAGS) -Os +*_GCC45_IA32_DLINK_FLAGS = DEF(GCC45_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386 +*_GCC45_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) + +################## +# GCC45 X64 definitions +################## +*_GCC45_X64_CC_PATH = DEF(GCC45_X64_PREFIX)gcc +*_GCC45_X64_SLINK_PATH = DEF(GCC45_X64_PREFIX)ar +*_GCC45_X64_DLINK_PATH = DEF(GCC45_X64_PREFIX)ld +*_GCC45_X64_ASLDLINK_PATH = DEF(GCC45_X64_PREFIX)ld +*_GCC45_X64_ASM_PATH = DEF(GCC45_X64_PREFIX)gcc +*_GCC45_X64_PP_PATH = DEF(GCC45_X64_PREFIX)gcc +*_GCC45_X64_VFRPP_PATH = DEF(GCC45_X64_PREFIX)gcc +*_GCC45_X64_ASLCC_PATH = DEF(GCC45_X64_PREFIX)gcc +*_GCC45_X64_ASLPP_PATH = DEF(GCC45_X64_PREFIX)gcc +*_GCC45_X64_RC_PATH = DEF(GCC45_X64_PREFIX)objcopy + +*_GCC45_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 +*_GCC45_X64_ASLDLINK_FLAGS = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64 +*_GCC45_X64_ASM_FLAGS = DEF(GCC45_ASM_FLAGS) -m64 --64 -melf_x86_64 +*_GCC45_X64_CC_FLAGS = DEF(GCC45_X64_CC_FLAGS) +*_GCC45_X64_DLINK_FLAGS = DEF(GCC45_X64_DLINK_FLAGS) +*_GCC45_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) + + #################################################################################### # # Cygwin GCC And Intel ACPI Compiler @@ -1767,12 +1882,12 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_CYGGCC_IA32_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS) *_CYGGCC_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS) *_CYGGCC_*_MAKE_FLAGS = /nologo -*_CYGGCC_*_ASM_FLAGS = DEF(GCC_ASM_FLAGS) +*_CYGGCC_*_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_CYGGCC_*_PP_FLAGS = DEF(GCC_PP_FLAGS) *_CYGGCC_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) *_CYGGCC_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) *_CYGGCC_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) -*_CYGGCC_*_APP_FLAGS = +*_CYGGCC_*_APP_FLAGS = *_CYGGCC_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS) *_CYGGCC_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS) @@ -1877,7 +1992,7 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) # ASL definitions ################## *_CYGGCCxASL_*_ASL_PATH = DEF(WIN_ASL_BIN) -*_CYGGCCxASL_*_ASL_FLAGS = +*_CYGGCCxASL_*_ASL_FLAGS = *_CYGGCCxASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS) *_CYGGCCxASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS) *_CYGGCCxASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS) @@ -2086,7 +2201,7 @@ DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_ICC_IA32_CC_PATH = DEF(ICC_BIN32)\icl.exe *_ICC_IA32_SLINK_PATH = DEF(ICC_BIN32)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC_IA32_SLINK_DLL = DEF(MS_VS_BIN) +*_ICC_IA32_SLINK_DLL = DEF(MS_VS_DLL) *_ICC_IA32_DLINK_PATH = DEF(ICC_BIN32)\xilink.exe *_ICC_IA32_PP_PATH = DEF(ICC_BIN32)\icl.exe *_ICC_IA32_VFRPP_PATH = DEF(ICC_BIN32)\icl.exe @@ -2102,8 +2217,8 @@ RELEASE_ICC_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D UN DEBUG_ICC_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi RELEASE_ICC_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd *_ICC_IA32_SLINK_FLAGS = /nologo - DEBUG_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -2111,7 +2226,7 @@ RELEASE_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O *_ICC_X64_CC_PATH = DEF(ICC_BINX64)\icl.exe *_ICC_X64_SLINK_PATH = DEF(ICC_BINX64)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC_X64_SLINK_DLL = DEF(MS_VS_BIN) +*_ICC_X64_SLINK_DLL = DEF(MS_VS_DLL) *_ICC_X64_DLINK_PATH = DEF(ICC_BINX64)\xilink.exe *_ICC_X64_PP_PATH = DEF(ICC_BINX64)\icl.exe *_ICC_X64_VFRPP_PATH = DEF(ICC_BINX64)\icl.exe @@ -2126,8 +2241,8 @@ RELEASE_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O RELEASE_ICC_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF DEBUG_ICC_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_ICC_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_ICC_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICC_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICC_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICC_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text *_ICC_X64_SLINK_FLAGS = /nologo /LTCG @@ -2136,10 +2251,10 @@ RELEASE_ICC_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O ################## *_ICC_IPF_CC_PATH = DEF(ICC_BIN64)\icl.exe # icl.exe needs cl.exe from Visual Studio -*_ICC_IPF_CC_DLL = DEF(MS_VS_BIN) +*_ICC_IPF_CC_DLL = DEF(MS_VS_DLL) *_ICC_IPF_SLINK_PATH = DEF(ICC_BIN64)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC_IPF_SLINK_DLL = DEF(MS_VS_BIN);DEF(MS_VS_DLL) +*_ICC_IPF_SLINK_DLL = DEF(MS_VS_DLL) *_ICC_IPF_DLINK_PATH = DEF(ICC_BIN64)\xilink.exe *_ICC_IPF_PP_PATH = DEF(ICC_BIN64)\icl.exe *_ICC_IPF_VFRPP_PATH = DEF(ICC_BIN64)\icl.exe @@ -2153,8 +2268,8 @@ RELEASE_ICC_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O RELEASE_ICC_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF DEBUG_ICC_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32 RELEASE_ICC_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32 - DEBUG_ICC_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG -RELEASE_ICC_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb + DEBUG_ICC_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG +RELEASE_ICC_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb *_ICC_IPF_SLINK_FLAGS = /nologo ################## @@ -2213,7 +2328,7 @@ RELEASE_ICC_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT *_ICCxASL_IA32_CC_PATH = DEF(ICC_BIN32)\icl.exe *_ICCxASL_IA32_SLINK_PATH = DEF(ICC_BIN32)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICCxASL_IA32_SLINK_DLL = DEF(MS_VS_BIN) +*_ICCxASL_IA32_SLINK_DLL = DEF(MS_VS_DLL) *_ICCxASL_IA32_DLINK_PATH = DEF(ICC_BIN32)\xilink.exe *_ICCxASL_IA32_PP_PATH = DEF(ICC_BIN32)\icl.exe *_ICCxASL_IA32_VFRPP_PATH = DEF(ICC_BIN32)\icl.exe @@ -2229,8 +2344,8 @@ RELEASE_ICCxASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 / DEBUG_ICCxASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi RELEASE_ICCxASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd *_ICCxASL_IA32_SLINK_FLAGS = /nologo - DEBUG_ICCxASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICCxASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICCxASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICCxASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -2238,7 +2353,7 @@ RELEASE_ICCxASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:408 *_ICCxASL_X64_CC_PATH = DEF(ICC_BINX64)\icl.exe *_ICCxASL_X64_SLINK_PATH = DEF(ICC_BINX64)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICCxASL_X64_SLINK_DLL = DEF(MS_VS_BIN) +*_ICCxASL_X64_SLINK_DLL = DEF(MS_VS_DLL) *_ICCxASL_X64_DLINK_PATH = DEF(ICC_BINX64)\xilink.exe *_ICCxASL_X64_PP_PATH = DEF(ICC_BINX64)\icl.exe *_ICCxASL_X64_VFRPP_PATH = DEF(ICC_BINX64)\icl.exe @@ -2253,8 +2368,8 @@ RELEASE_ICCxASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:408 RELEASE_ICCxASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF DEBUG_ICCxASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_ICCxASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_ICCxASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICCxASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICCxASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICCxASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text *_ICCxASL_X64_SLINK_FLAGS = /nologo /LTCG @@ -2263,10 +2378,10 @@ RELEASE_ICCxASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:408 ################## *_ICCxASL_IPF_CC_PATH = DEF(ICC_BIN64)\icl.exe # icl.exe needs cl.exe from Visual Studio -*_ICCxASL_IPF_CC_DLL = DEF(MS_VS_BIN) +*_ICCxASL_IPF_CC_DLL = DEF(MS_VS_DLL) *_ICCxASL_IPF_SLINK_PATH = DEF(ICC_BIN64)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICCxASL_IPF_SLINK_DLL = DEF(MS_VS_BIN);DEF(MS_VS_DLL) +*_ICCxASL_IPF_SLINK_DLL = DEF(MS_VS_DLL) *_ICCxASL_IPF_DLINK_PATH = DEF(ICC_BIN64)\xilink.exe *_ICCxASL_IPF_PP_PATH = DEF(ICC_BIN64)\icl.exe *_ICCxASL_IPF_VFRPP_PATH = DEF(ICC_BIN64)\icl.exe @@ -2280,8 +2395,8 @@ RELEASE_ICCxASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:408 RELEASE_ICCxASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF DEBUG_ICCxASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32 RELEASE_ICCxASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32 - DEBUG_ICCxASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG -RELEASE_ICCxASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb + DEBUG_ICCxASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG +RELEASE_ICCxASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb *_ICCxASL_IPF_SLINK_FLAGS = /nologo ################## @@ -2315,15 +2430,15 @@ RELEASE_ICCxASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL # ICCx86 - Intel C Compiler V9.1 *_ICCx86_*_*_FAMILY = INTEL -*_ICCx86_*_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe -*_ICCx86_*_RC_PATH = DEF(VS2005x86_BIN)\rc.exe +*_ICCx86_*_MAKE_PATH = DEF(MS_VSx86_BIN)\nmake.exe +*_ICCx86_*_RC_PATH = DEF(MS_VSx86_BIN)\rc.exe *_ICCx86_*_MAKE_FLAGS = /nologo *_ICCx86_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h *_ICCx86_*_APP_FLAGS = /nologo /E /TC *_ICCx86_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -*_ICCxASL_*_ASM16_PATH = DEF(VS2005x86_BIN)\ml.exe +*_ICCx86_*_ASM16_PATH = DEF(MS_VSx86_BIN)\ml.exe ################## # ASL definitions @@ -2341,13 +2456,13 @@ RELEASE_ICCxASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL *_ICCx86_IA32_CC_PATH = DEF(ICC_BIN32x86)\icl.exe *_ICCx86_IA32_SLINK_PATH = DEF(ICC_BIN32x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICCx86_IA32_SLINK_DLL = DEF(VS2005x86_BIN) +*_ICCx86_IA32_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICCx86_IA32_DLINK_PATH = DEF(ICC_BIN32x86)\xilink.exe *_ICCx86_IA32_PP_PATH = DEF(ICC_BIN32x86)\icl.exe *_ICCx86_IA32_VFRPP_PATH = DEF(ICC_BIN32x86)\icl.exe *_ICCx86_IA32_APP_PATH = DEF(ICC_BIN32x86)\icl.exe -*_ICCx86_IA32_ASM_PATH = DEF(VS2005x86_BIN)\ml.exe -*_ICCx86_IA32_ASM_DLL = DEF(VS2005x86_DLL) +*_ICCx86_IA32_ASM_PATH = DEF(MS_VSx86_BIN)\ml.exe +*_ICCx86_IA32_ASM_DLL = DEF(MS_VSx86_DLL) *_ICCx86_IA32_ASLCC_PATH = DEF(ICC_BIN32x86)\icl.exe *_ICCx86_IA32_ASLPP_PATH = DEF(ICC_BIN32x86)\icl.exe *_ICCx86_IA32_ASLDLINK_PATH = DEF(ICC_BIN32x86)\xilink.exe @@ -2357,8 +2472,8 @@ RELEASE_ICCx86_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D DEBUG_ICCx86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi RELEASE_ICCx86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd *_ICCx86_IA32_SLINK_FLAGS = /nologo - DEBUG_ICCx86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICCx86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICCx86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICCx86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -2366,13 +2481,13 @@ RELEASE_ICCx86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 *_ICCx86_X64_CC_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86_X64_SLINK_PATH = DEF(ICC_BINX64x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICCx86_X64_SLINK_DLL = DEF(VS2005x86_BIN) +*_ICCx86_X64_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICCx86_X64_DLINK_PATH = DEF(ICC_BINX64x86)\xilink.exe *_ICCx86_X64_PP_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86_X64_VFRPP_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86_X64_APP_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe -*_ICCx86_X64_ASM_DLL = DEF(VS2005x86_DLL) +*_ICCx86_X64_ASM_DLL = DEF(MS_VSx86_DLL) *_ICCx86_X64_ASLCC_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86_X64_ASLPP_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86_X64_ASLDLINK_PATH = DEF(ICC_BINX64x86)\xilink.exe @@ -2381,8 +2496,8 @@ RELEASE_ICCx86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 RELEASE_ICCx86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF DEBUG_ICCx86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_ICCx86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_ICCx86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICCx86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICCx86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICCx86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text *_ICCx86_X64_SLINK_FLAGS = /nologo /LTCG @@ -2391,10 +2506,10 @@ RELEASE_ICCx86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 ################## *_ICCx86_IPF_CC_PATH = DEF(ICC_BIN64x86)\icl.exe # icl.exe needs cl.exe from Visual Studio -*_ICCx86_IPF_CC_DLL = DEF(VS2005x86_BIN) +*_ICCx86_IPF_CC_DLL = DEF(MS_VSx86_DLL) *_ICCx86_IPF_SLINK_PATH = DEF(ICC_BIN64x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICCx86_IPF_SLINK_DLL = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL) +*_ICCx86_IPF_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICCx86_IPF_DLINK_PATH = DEF(ICC_BIN64x86)\xilink.exe *_ICCx86_IPF_PP_PATH = DEF(ICC_BIN64x86)\icl.exe *_ICCx86_IPF_VFRPP_PATH = DEF(ICC_BIN64x86)\icl.exe @@ -2408,8 +2523,8 @@ RELEASE_ICCx86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 RELEASE_ICCx86_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF DEBUG_ICCx86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32 RELEASE_ICCx86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32 - DEBUG_ICCx86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG -RELEASE_ICCx86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb + DEBUG_ICCx86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG +RELEASE_ICCx86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb *_ICCx86_IPF_SLINK_FLAGS = /nologo ################## @@ -2417,12 +2532,12 @@ RELEASE_ICCx86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL / ################## *_ICCx86_EBC_*_FAMILY = INTEL -*_ICCx86_EBC_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe -*_ICCx86_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe -*_ICCx86_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe -*_ICCx86_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe -*_ICCx86_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe -*_ICCx86_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe +*_ICCx86_EBC_MAKE_PATH = DEF(MS_VSx86_BIN)\nmake.exe +*_ICCx86_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe +*_ICCx86_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe +*_ICCx86_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe +*_ICCx86_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe +*_ICCx86_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe *_ICCx86_EBC_MAKE_FLAGS = /nologo *_ICCx86_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h @@ -2443,15 +2558,15 @@ RELEASE_ICCx86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL / # ICCx86xASL - Intel C Compiler V9.1 *_ICCx86xASL_*_*_FAMILY = INTEL -*_ICCx86xASL_*_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe -*_ICCx86xASL_*_RC_PATH = DEF(VS2005x86_BIN)\rc.exe +*_ICCx86xASL_*_MAKE_PATH = DEF(MS_VSx86_BIN)\nmake.exe +*_ICCx86xASL_*_RC_PATH = DEF(MS_VSx86_BIN)\rc.exe *_ICCx86xASL_*_MAKE_FLAGS = /nologo *_ICCx86xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h *_ICCx86xASL_*_APP_FLAGS = /nologo /E /TC *_ICCx86xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -*_ICCx86ASL_*_ASM16_PATH = DEF(VS2005x86_BIN)\ml.exe +*_ICCx86xASL_*_ASM16_PATH = DEF(MS_VSx86_BIN)\ml.exe ################## # ASL definitions @@ -2469,13 +2584,13 @@ RELEASE_ICCx86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL / *_ICCx86xASL_IA32_CC_PATH = DEF(ICC_BIN32x86)\icl.exe *_ICCx86xASL_IA32_SLINK_PATH = DEF(ICC_BIN32x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICCx86xASL_IA32_SLINK_DLL = DEF(VS2005x86_BIN) +*_ICCx86xASL_IA32_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICCx86xASL_IA32_DLINK_PATH = DEF(ICC_BIN32x86)\xilink.exe *_ICCx86xASL_IA32_PP_PATH = DEF(ICC_BIN32x86)\icl.exe *_ICCx86xASL_IA32_VFRPP_PATH = DEF(ICC_BIN32x86)\icl.exe *_ICCx86xASL_IA32_APP_PATH = DEF(ICC_BIN32x86)\icl.exe -*_ICCx86xASL_IA32_ASM_PATH = DEF(VS2005x86_BIN)\ml.exe -*_ICCx86xASL_IA32_ASM_DLL = DEF(VS2005x86_DLL) +*_ICCx86xASL_IA32_ASM_PATH = DEF(MS_VSx86_BIN)\ml.exe +*_ICCx86xASL_IA32_ASM_DLL = DEF(MS_VSx86_DLL) *_ICCx86xASL_IA32_ASLCC_PATH = DEF(ICC_BIN32x86)\icl.exe *_ICCx86xASL_IA32_ASLPP_PATH = DEF(ICC_BIN32x86)\icl.exe *_ICCx86xASL_IA32_ASLDLINK_PATH = DEF(ICC_BIN32x86)\xilink.exe @@ -2485,8 +2600,8 @@ RELEASE_ICCx86xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs3276 DEBUG_ICCx86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi RELEASE_ICCx86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd *_ICCx86xASL_IA32_SLINK_FLAGS = /nologo - DEBUG_ICCx86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICCx86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICCx86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICCx86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -2494,13 +2609,13 @@ RELEASE_ICCx86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE: *_ICCx86xASL_X64_CC_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86xASL_X64_SLINK_PATH = DEF(ICC_BINX64x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICCx86xASL_X64_SLINK_DLL = DEF(VS2005x86_BIN) +*_ICCx86xASL_X64_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICCx86xASL_X64_DLINK_PATH = DEF(ICC_BINX64x86)\xilink.exe *_ICCx86xASL_X64_PP_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86xASL_X64_VFRPP_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86xASL_X64_APP_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86xASL_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe -*_ICCx86xASL_X64_ASM_DLL = DEF(VS2005x86_DLL) +*_ICCx86xASL_X64_ASM_DLL = DEF(MS_VSx86_DLL) *_ICCx86xASL_X64_ASLCC_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86xASL_X64_ASLPP_PATH = DEF(ICC_BINX64x86)\icl.exe *_ICCx86xASL_X64_ASLDLINK_PATH = DEF(ICC_BINX64x86)\xilink.exe @@ -2509,8 +2624,8 @@ RELEASE_ICCx86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE: RELEASE_ICCx86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF DEBUG_ICCx86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_ICCx86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_ICCx86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICCx86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICCx86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICCx86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text *_ICCx86xASL_X64_SLINK_FLAGS = /nologo /LTCG @@ -2519,10 +2634,10 @@ RELEASE_ICCx86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE: ################## *_ICCx86xASL_IPF_CC_PATH = DEF(ICC_BIN64x86)\icl.exe # icl.exe needs cl.exe from Visual Studio -*_ICCx86xASL_IPF_CC_DLL = DEF(VS2005x86_BIN) +*_ICCx86xASL_IPF_CC_DLL = DEF(MS_VSx86_DLL) *_ICCx86xASL_IPF_SLINK_PATH = DEF(ICC_BIN64x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICCx86xASL_IPF_SLINK_DLL = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL) +*_ICCx86xASL_IPF_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICCx86xASL_IPF_DLINK_PATH = DEF(ICC_BIN64x86)\xilink.exe *_ICCx86xASL_IPF_PP_PATH = DEF(ICC_BIN64x86)\icl.exe *_ICCx86xASL_IPF_VFRPP_PATH = DEF(ICC_BIN64x86)\icl.exe @@ -2536,8 +2651,8 @@ RELEASE_ICCx86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE: RELEASE_ICCx86xASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF DEBUG_ICCx86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32 RELEASE_ICCx86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32 - DEBUG_ICCx86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG -RELEASE_ICCx86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb + DEBUG_ICCx86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG +RELEASE_ICCx86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb *_ICCx86xASL_IPF_SLINK_FLAGS = /nologo ################## @@ -2545,12 +2660,12 @@ RELEASE_ICCx86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /D ################## *_ICCx86xASL_EBC_*_FAMILY = INTEL -*_ICCx86xASL_EBC_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe -*_ICCx86xASL_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe -*_ICCx86xASL_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe -*_ICCx86xASL_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe -*_ICCx86xASL_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe -*_ICCx86xASL_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe +*_ICCx86xASL_EBC_MAKE_PATH = DEF(MS_VSx86_BIN)\nmake.exe +*_ICCx86xASL_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe +*_ICCx86xASL_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe +*_ICCx86xASL_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe +*_ICCx86xASL_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe +*_ICCx86xASL_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe *_ICCx86xASL_EBC_MAKE_FLAGS = /nologo *_ICCx86xASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h @@ -2598,7 +2713,7 @@ RELEASE_ICCx86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /D *_ICC11_IA32_CC_PATH = DEF(ICC11_BIN32)\icl.exe *_ICC11_IA32_SLINK_PATH = DEF(ICC11_BIN32)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11_IA32_SLINK_DLL = DEF(MS_VS_BIN) +*_ICC11_IA32_SLINK_DLL = DEF(MS_VS_DLL) *_ICC11_IA32_DLINK_PATH = DEF(ICC11_BIN32)\xilink.exe *_ICC11_IA32_PP_PATH = DEF(ICC11_BIN32)\icl.exe *_ICC11_IA32_VFRPP_PATH = DEF(ICC11_BIN32)\icl.exe @@ -2614,8 +2729,8 @@ RELEASE_ICC11_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 /D DEBUG_ICC11_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi RELEASE_ICC11_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd *_ICC11_IA32_SLINK_FLAGS = /nologo - DEBUG_ICC11_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICC11_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICC11_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICC11_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -2623,7 +2738,7 @@ RELEASE_ICC11_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 *_ICC11_X64_CC_PATH = DEF(ICC11_BINX64)\icl.exe *_ICC11_X64_SLINK_PATH = DEF(ICC11_BINX64)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11_X64_SLINK_DLL = DEF(MS_VS_BIN) +*_ICC11_X64_SLINK_DLL = DEF(MS_VS_DLL) *_ICC11_X64_DLINK_PATH = DEF(ICC11_BINX64)\xilink.exe *_ICC11_X64_PP_PATH = DEF(ICC11_BINX64)\icl.exe *_ICC11_X64_VFRPP_PATH = DEF(ICC11_BINX64)\icl.exe @@ -2638,8 +2753,8 @@ RELEASE_ICC11_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 RELEASE_ICC11_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF DEBUG_ICC11_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_ICC11_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_ICC11_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICC11_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICC11_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICC11_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text *_ICC11_X64_SLINK_FLAGS = /nologo /LTCG @@ -2648,7 +2763,7 @@ RELEASE_ICC11_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 ################## *_ICC11_IPF_CC_PATH = DEF(ICC11_BIN64)\icl.exe # icl.exe needs cl.exe from Visual Studio -*_ICC11_IPF_CC_DLL = DEF(MS_VS_BIN) +*_ICC11_IPF_CC_DLL = DEF(MS_VS_DLL) *_ICC11_IPF_SLINK_PATH = DEF(ICC11_BIN64)\xilib.exe # xilib.exe needs lib.exe from Visual Studio *_ICC11_IPF_SLINK_DLL = DEF(MS_VS_BIN);DEF(MS_VS_DLL) @@ -2665,8 +2780,8 @@ RELEASE_ICC11_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 RELEASE_ICC11_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding DEBUG_ICC11_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32 RELEASE_ICC11_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32 - DEBUG_ICC11_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG -RELEASE_ICC11_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb + DEBUG_ICC11_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG +RELEASE_ICC11_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb *_ICC11_IPF_SLINK_FLAGS = /nologo ################## @@ -2727,7 +2842,7 @@ RELEASE_ICC11_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /O *_ICC11xASL_IA32_CC_PATH = DEF(ICC11_BIN32)\icl.exe *_ICC11xASL_IA32_SLINK_PATH = DEF(ICC11_BIN32)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11xASL_IA32_SLINK_DLL = DEF(MS_VS_BIN) +*_ICC11xASL_IA32_SLINK_DLL = DEF(MS_VS_DLL) *_ICC11xASL_IA32_DLINK_PATH = DEF(ICC11_BIN32)\xilink.exe *_ICC11xASL_IA32_PP_PATH = DEF(ICC11_BIN32)\icl.exe *_ICC11xASL_IA32_VFRPP_PATH = DEF(ICC11_BIN32)\icl.exe @@ -2743,8 +2858,8 @@ RELEASE_ICC11xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 DEBUG_ICC11xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi RELEASE_ICC11xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd *_ICC11xASL_IA32_SLINK_FLAGS = /nologo - DEBUG_ICC11xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICC11xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICC11xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICC11xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -2752,7 +2867,7 @@ RELEASE_ICC11xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4 *_ICC11xASL_X64_CC_PATH = DEF(ICC11_BINX64)\icl.exe *_ICC11xASL_X64_SLINK_PATH = DEF(ICC11_BINX64)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11xASL_X64_SLINK_DLL = DEF(MS_VS_BIN) +*_ICC11xASL_X64_SLINK_DLL = DEF(MS_VS_DLL) *_ICC11xASL_X64_DLINK_PATH = DEF(ICC11_BINX64)\xilink.exe *_ICC11xASL_X64_PP_PATH = DEF(ICC11_BINX64)\icl.exe *_ICC11xASL_X64_VFRPP_PATH = DEF(ICC11_BINX64)\icl.exe @@ -2767,8 +2882,8 @@ RELEASE_ICC11xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4 RELEASE_ICC11xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF DEBUG_ICC11xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_ICC11xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_ICC11xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICC11xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICC11xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICC11xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text *_ICC11xASL_X64_SLINK_FLAGS = /nologo /LTCG @@ -2777,10 +2892,10 @@ RELEASE_ICC11xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4 ################## *_ICC11xASL_IPF_CC_PATH = DEF(ICC11_BIN64)\icl.exe # icl.exe needs cl.exe from Visual Studio -*_ICC11xASL_IPF_CC_DLL = DEF(MS_VS_BIN) +*_ICC11xASL_IPF_CC_DLL = DEF(MS_VS_DLL) *_ICC11xASL_IPF_SLINK_PATH = DEF(ICC11_BIN64)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11xASL_IPF_SLINK_DLL = DEF(MS_VS_BIN);DEF(MS_VS_DLL) +*_ICC11xASL_IPF_SLINK_DLL = DEF(MS_VS_DLL) *_ICC11xASL_IPF_DLINK_PATH = DEF(ICC11_BIN64)\xilink.exe *_ICC11xASL_IPF_PP_PATH = DEF(ICC11_BIN64)\icl.exe *_ICC11xASL_IPF_VFRPP_PATH = DEF(ICC11_BIN64)\icl.exe @@ -2794,8 +2909,8 @@ RELEASE_ICC11xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4 RELEASE_ICC11xASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding DEBUG_ICC11xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32 RELEASE_ICC11xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32 - DEBUG_ICC11xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG -RELEASE_ICC11xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb + DEBUG_ICC11xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG +RELEASE_ICC11xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb *_ICC11xASL_IPF_SLINK_FLAGS = /nologo ################## @@ -2831,15 +2946,15 @@ RELEASE_ICC11xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DL # ICC11x86 - Intel C Compiler V11.1 *_ICC11x86_*_*_FAMILY = INTEL -*_ICC11x86_*_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe -*_ICC11x86_*_RC_PATH = DEF(VS2005x86_BIN)\rc.exe +*_ICC11x86_*_MAKE_PATH = DEF(MS_VSx86_BIN)\nmake.exe +*_ICC11x86_*_RC_PATH = DEF(MS_VSx86_BIN)\rc.exe *_ICC11x86_*_MAKE_FLAGS = /nologo *_ICC11x86_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h *_ICC11x86_*_APP_FLAGS = /nologo /E /TC *_ICC11x86_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -*_ICC11x86_*_ASM16_PATH = DEF(VS2005x86_BIN)\ml.exe +*_ICC11x86_*_ASM16_PATH = DEF(MS_VSx86_BIN)\ml.exe ################## # ASL definitions @@ -2857,13 +2972,13 @@ RELEASE_ICC11xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DL *_ICC11x86_IA32_CC_PATH = DEF(ICC11_BIN32x86)\icl.exe *_ICC11x86_IA32_SLINK_PATH = DEF(ICC11_BIN32x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11x86_IA32_SLINK_DLL = DEF(VS2005x86_BIN) +*_ICC11x86_IA32_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICC11x86_IA32_DLINK_PATH = DEF(ICC11_BIN32x86)\xilink.exe *_ICC11x86_IA32_PP_PATH = DEF(ICC11_BIN32x86)\icl.exe *_ICC11x86_IA32_VFRPP_PATH = DEF(ICC11_BIN32x86)\icl.exe *_ICC11x86_IA32_APP_PATH = DEF(ICC11_BIN32x86)\icl.exe -*_ICC11x86_IA32_ASM_PATH = DEF(VS2005x86_BIN)\ml.exe -*_ICC11x86_IA32_ASM_DLL = DEF(VS2005x86_DLL) +*_ICC11x86_IA32_ASM_PATH = DEF(MS_VSx86_BIN)\ml.exe +*_ICC11x86_IA32_ASM_DLL = DEF(MS_VSx86_DLL) *_ICC11x86_IA32_ASLCC_PATH = DEF(ICC11_BIN32x86)\icl.exe *_ICC11x86_IA32_ASLPP_PATH = DEF(ICC11_BIN32x86)\icl.exe *_ICC11x86_IA32_ASLDLINK_PATH = DEF(ICC11_BIN32x86)\xilink.exe @@ -2873,8 +2988,8 @@ RELEASE_ICC11x86_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32768 DEBUG_ICC11x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi RELEASE_ICC11x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd *_ICC11x86_IA32_SLINK_FLAGS = /nologo - DEBUG_ICC11x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICC11x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICC11x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICC11x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -2882,13 +2997,13 @@ RELEASE_ICC11x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:40 *_ICC11x86_X64_CC_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86_X64_SLINK_PATH = DEF(ICC11_BINX64x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11x86_X64_SLINK_DLL = DEF(VS2005x86_BIN) +*_ICC11x86_X64_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICC11x86_X64_DLINK_PATH = DEF(ICC11_BINX64x86)\xilink.exe *_ICC11x86_X64_PP_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86_X64_VFRPP_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86_X64_APP_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe -*_ICC11x86_X64_ASM_DLL = DEF(VS2005x86_DLL) +*_ICC11x86_X64_ASM_DLL = DEF(MS_VSx86_DLL) *_ICC11x86_X64_ASLCC_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86_X64_ASLPP_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86_X64_ASLDLINK_PATH = DEF(ICC11_BINX64x86)\xilink.exe @@ -2897,8 +3012,8 @@ RELEASE_ICC11x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:40 RELEASE_ICC11x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF DEBUG_ICC11x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_ICC11x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_ICC11x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICC11x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICC11x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICC11x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text *_ICC11x86_X64_SLINK_FLAGS = /nologo /LTCG @@ -2907,10 +3022,10 @@ RELEASE_ICC11x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:40 ################## *_ICC11x86_IPF_CC_PATH = DEF(ICC11_BIN64x86)\icl.exe # icl.exe needs cl.exe from Visual Studio -*_ICC11x86_IPF_CC_DLL = DEF(VS2005x86_BIN) +*_ICC11x86_IPF_CC_DLL = DEF(MS_VSx86_DLL) *_ICC11x86_IPF_SLINK_PATH = DEF(ICC11_BIN64x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11x86_IPF_SLINK_DLL = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL) +*_ICC11x86_IPF_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICC11x86_IPF_DLINK_PATH = DEF(ICC11_BIN64x86)\xilink.exe *_ICC11x86_IPF_PP_PATH = DEF(ICC11_BIN64x86)\icl.exe *_ICC11x86_IPF_VFRPP_PATH = DEF(ICC11_BIN64x86)\icl.exe @@ -2924,8 +3039,8 @@ RELEASE_ICC11x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:40 RELEASE_ICC11x86_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding DEBUG_ICC11x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32 RELEASE_ICC11x86_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32 - DEBUG_ICC11x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG -RELEASE_ICC11x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb + DEBUG_ICC11x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG +RELEASE_ICC11x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb *_ICC11x86_IPF_SLINK_FLAGS = /nologo ################## @@ -2933,12 +3048,12 @@ RELEASE_ICC11x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL ################## *_ICC11x86_EBC_*_FAMILY = INTEL -*_ICC11x86_EBC_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe -*_ICC11x86_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe -*_ICC11x86_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe -*_ICC11x86_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe -*_ICC11x86_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe -*_ICC11x86_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe +*_ICC11x86_EBC_MAKE_PATH = DEF(MS_VSx86_BIN)\nmake.exe +*_ICC11x86_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe +*_ICC11x86_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe +*_ICC11x86_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe +*_ICC11x86_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe +*_ICC11x86_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe *_ICC11x86_EBC_MAKE_FLAGS = /nologo *_ICC11x86_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h @@ -2961,15 +3076,15 @@ RELEASE_ICC11x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL # ICC11x86xASL - Intel C Compiler V11.1 *_ICC11x86xASL_*_*_FAMILY = INTEL -*_ICC11x86xASL_*_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe -*_ICC11x86xASL_*_RC_PATH = DEF(VS2005x86_BIN)\rc.exe +*_ICC11x86xASL_*_MAKE_PATH = DEF(MS_VSx86_BIN)\nmake.exe +*_ICC11x86xASL_*_RC_PATH = DEF(MS_VSx86_BIN)\rc.exe *_ICC11x86xASL_*_MAKE_FLAGS = /nologo *_ICC11x86xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h *_ICC11x86xASL_*_APP_FLAGS = /nologo /E /TC *_ICC11x86xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -*_ICC11x86xASL_*_ASM16_PATH = DEF(VS2005x86_BIN)\ml.exe +*_ICC11x86xASL_*_ASM16_PATH = DEF(MS_VSx86_BIN)\ml.exe ################## # ASL definitions @@ -2987,13 +3102,13 @@ RELEASE_ICC11x86_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL *_ICC11x86xASL_IA32_CC_PATH = DEF(ICC11_BIN32x86)\icl.exe *_ICC11x86xASL_IA32_SLINK_PATH = DEF(ICC11_BIN32x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11x86xASL_IA32_SLINK_DLL = DEF(VS2005x86_BIN) +*_ICC11x86xASL_IA32_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICC11x86xASL_IA32_DLINK_PATH = DEF(ICC11_BIN32x86)\xilink.exe *_ICC11x86xASL_IA32_PP_PATH = DEF(ICC11_BIN32x86)\icl.exe *_ICC11x86xASL_IA32_VFRPP_PATH = DEF(ICC11_BIN32x86)\icl.exe *_ICC11x86xASL_IA32_APP_PATH = DEF(ICC11_BIN32x86)\icl.exe -*_ICC11x86xASL_IA32_ASM_PATH = DEF(VS2005x86_BIN)\ml.exe -*_ICC11x86xASL_IA32_ASM_DLL = DEF(VS2005x86_DLL) +*_ICC11x86xASL_IA32_ASM_PATH = DEF(MS_VSx86_BIN)\ml.exe +*_ICC11x86xASL_IA32_ASM_DLL = DEF(MS_VSx86_DLL) *_ICC11x86xASL_IA32_ASLCC_PATH = DEF(ICC11_BIN32x86)\icl.exe *_ICC11x86xASL_IA32_ASLPP_PATH = DEF(ICC11_BIN32x86)\icl.exe *_ICC11x86xASL_IA32_ASLDLINK_PATH = DEF(ICC11_BIN32x86)\xilink.exe @@ -3003,8 +3118,8 @@ RELEASE_ICC11x86xASL_IA32_CC_FLAGS = /nologo /c /WX /W4 /Gy /Gs32 DEBUG_ICC11x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd /Zi RELEASE_ICC11x86xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Zd *_ICC11x86xASL_IA32_SLINK_FLAGS = /nologo - DEBUG_ICC11x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICC11x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICC11x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICC11x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # X64 definitions @@ -3012,13 +3127,13 @@ RELEASE_ICC11x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNOR *_ICC11x86xASL_X64_CC_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86xASL_X64_SLINK_PATH = DEF(ICC11_BINX64x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11x86xASL_X64_SLINK_DLL = DEF(VS2005x86_BIN) +*_ICC11x86xASL_X64_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICC11x86xASL_X64_DLINK_PATH = DEF(ICC11_BINX64x86)\xilink.exe *_ICC11x86xASL_X64_PP_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86xASL_X64_VFRPP_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86xASL_X64_APP_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86xASL_X64_ASM_PATH = DEF(WINDDK_BINX64)\ml64.exe -*_ICC11x86xASL_X64_ASM_DLL = DEF(VS2005x86_DLL) +*_ICC11x86xASL_X64_ASM_DLL = DEF(MS_VSx86_DLL) *_ICC11x86xASL_X64_ASLCC_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86xASL_X64_ASLPP_PATH = DEF(ICC11_BINX64x86)\icl.exe *_ICC11x86xASL_X64_ASLDLINK_PATH = DEF(ICC11_BINX64x86)\xilink.exe @@ -3027,8 +3142,8 @@ RELEASE_ICC11x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNOR RELEASE_ICC11x86xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF DEBUG_ICC11x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_ICC11x86xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_ICC11x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_ICC11x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_ICC11x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_ICC11x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text *_ICC11x86xASL_X64_SLINK_FLAGS = /nologo /LTCG @@ -3037,10 +3152,10 @@ RELEASE_ICC11x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNOR ################## *_ICC11x86xASL_IPF_CC_PATH = DEF(ICC11_BIN64x86)\icl.exe # icl.exe needs cl.exe from Visual Studio -*_ICC11x86xASL_IPF_CC_DLL = DEF(VS2005x86_BIN) +*_ICC11x86xASL_IPF_CC_DLL = DEF(MS_VSx86_DLL) *_ICC11x86xASL_IPF_SLINK_PATH = DEF(ICC11_BIN64x86)\xilib.exe # xilib.exe needs lib.exe from Visual Studio -*_ICC11x86xASL_IPF_SLINK_DLL = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL) +*_ICC11x86xASL_IPF_SLINK_DLL = DEF(MS_VSx86_DLL) *_ICC11x86xASL_IPF_DLINK_PATH = DEF(ICC11_BIN64x86)\xilink.exe *_ICC11x86xASL_IPF_PP_PATH = DEF(ICC11_BIN64x86)\icl.exe *_ICC11x86xASL_IPF_VFRPP_PATH = DEF(ICC11_BIN64x86)\icl.exe @@ -3054,8 +3169,8 @@ RELEASE_ICC11x86xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNOR RELEASE_ICC11x86xASL_IPF_CC_FLAGS = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding DEBUG_ICC11x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32 RELEASE_ICC11x86xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32 - DEBUG_ICC11x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG -RELEASE_ICC11x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb + DEBUG_ICC11x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG +RELEASE_ICC11x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb *_ICC11x86xASL_IPF_SLINK_FLAGS = /nologo ################## @@ -3063,12 +3178,12 @@ RELEASE_ICC11x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG ################## *_ICC11x86xASL_EBC_*_FAMILY = INTEL -*_ICC11x86xASL_EBC_MAKE_PATH = DEF(VS2005x86_BIN)\nmake.exe -*_ICC11x86xASL_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe -*_ICC11x86xASL_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe -*_ICC11x86xASL_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe -*_ICC11x86xASL_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe -*_ICC11x86xASL_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe +*_ICC11x86xASL_EBC_MAKE_PATH = DEF(MS_VSx86_BIN)\nmake.exe +*_ICC11x86xASL_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe +*_ICC11x86xASL_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe +*_ICC11x86xASL_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe +*_ICC11x86xASL_EBC_SLINK_PATH = DEF(EBC_BINx86)\link.exe +*_ICC11x86xASL_EBC_DLINK_PATH = DEF(EBC_BINx86)\link.exe *_ICC11x86xASL_EBC_MAKE_FLAGS = /nologo *_ICC11x86xASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h @@ -3131,8 +3246,8 @@ RELEASE_ICC11x86xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG RELEASE_MYTOOLS_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_MYTOOLS_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd /Zi RELEASE_MYTOOLS_IA32_ASM_FLAGS = /nologo /c /WX /W3 /coff /Cx /Zd - DEBUG_MYTOOLS_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb -RELEASE_MYTOOLS_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + DEBUG_MYTOOLS_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb +RELEASE_MYTOOLS_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb ################## # x64 definitions @@ -3156,8 +3271,8 @@ RELEASE_MYTOOLS_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O RELEASE_MYTOOLS_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF DEBUG_MYTOOLS_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi RELEASE_MYTOOLS_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd - DEBUG_MYTOOLS_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG -RELEASE_MYTOOLS_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text + DEBUG_MYTOOLS_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG +RELEASE_MYTOOLS_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text ################## # IPF definitions @@ -3180,8 +3295,8 @@ RELEASE_MYTOOLS_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O RELEASE_MYTOOLS_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gy /Ox /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zx /QIPF_fr32 DEBUG_MYTOOLS_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug RELEASE_MYTOOLS_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 - DEBUG_MYTOOLS_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF /OPT:ICF=10 /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG -RELEASE_MYTOOLS_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF /OPT:ICF=10 /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb + DEBUG_MYTOOLS_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF /OPT:ICF=10 /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG +RELEASE_MYTOOLS_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF /OPT:ICF=10 /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb *_MYTOOLS_IPF_SLINK_FLAGS = /nologo /LTCG ################## @@ -3189,13 +3304,13 @@ RELEASE_MYTOOLS_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT ################## *_MYTOOLS_EBC_*_FAMILY = INTEL -*_MYTOOLS_EBC_MAKE_PATH = DEF(VS2005_BIN)\nmake.exe +*_MYTOOLS_EBC_MAKE_PATH = DEF(VS2008_BIN)\nmake.exe *_MYTOOLS_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe *_MYTOOLS_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe *_MYTOOLS_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe *_MYTOOLS_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe *_MYTOOLS_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe -*_MYTOOLS_EBC_RC_PATH = DEF(VS2005_BIN)\rc.exe +*_MYTOOLS_EBC_RC_PATH = DEF(VS2008_BIN)\rc.exe *_MYTOOLS_EBC_MAKE_FLAGS = /nologo *_MYTOOLS_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h @@ -3225,7 +3340,7 @@ RELEASE_MYTOOLS_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT *_XCODE32_*_MTOC_PATH = /usr/local/bin/mtoc DEBUG_XCODE32_*_MTOC_FLAGS = -align 0x20 -d $(DEBUG_DIR)/$(MODULE_NAME).dll -RELEASE_XCODE32_*_MTOC_FLAGS = -align 0x20 +RELEASE_XCODE32_*_MTOC_FLAGS = -align 0x20 ################## # IA32 definitions @@ -3245,7 +3360,7 @@ RELEASE_XCODE32_*_MTOC_FLAGS = -align 0x20 RELEASE_XCODE32_IA32_DLINK_FLAGS = -arch i386 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map *_XCODE32_IA32_SLINK_FLAGS = -static -o DEBUG_XCODE32_IA32_ASM_FLAGS = -arch i386 -g -RELEASE_XCODE32_IA32_ASM_FLAGS = -arch i386 +RELEASE_XCODE32_IA32_ASM_FLAGS = -arch i386 *_XCODE32_IA32_PP_FLAGS = -arch i386 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h *_XCODE32_IA32_VFRPP_FLAGS = -arch i386 -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h DEBUG_XCODE32_IA32_CC_FLAGS = -arch i386 -save-temps -g -O0 -combine -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include AutoGen.h -mdynamic-no-pic -fno-stack-protector @@ -3253,11 +3368,11 @@ RELEASE_XCODE32_IA32_CC_FLAGS = -arch i386 -Oz -combine -mms-bitfields -fshor *_XCODE32_IA32_ASLCC_FLAGS = -arch i386 -x c -save-temps -g -O0 -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include AutoGen.h -mdynamic-no-pic *_XCODE32_IA32_ASLDLINK_FLAGS = -arch i386 -e _main -preload -segalign 0x20 -pie -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map -*_XCODE32_IA32_ASLPP_FLAGS = -arch i386 -x c -E +*_XCODE32_IA32_ASLPP_FLAGS = -arch i386 -x c -E *_XCODE32_IA32_ASL_FLAGS = ################## -# X64 definitions - still a work in progress. This tool chain does not produce +# X64 definitions - still a work in progress. This tool chain does not produce # the correct ABI, it is just used to compile the code.... ################## *_XCODE32_X64_CC_PATH = gcc-4.2 @@ -3275,7 +3390,7 @@ RELEASE_XCODE32_IA32_CC_FLAGS = -arch i386 -Oz -combine -mms-bitfields -fshor *_XCODE32_X64_SLINK_FLAGS = -static -o DEBUG_XCODE32_X64_ASM_FLAGS = -arch x86_64 -g -RELEASE_XCODE32_X64_ASM_FLAGS = -arch x86_64 +RELEASE_XCODE32_X64_ASM_FLAGS = -arch x86_64 *_XCODE32_X64_PP_FLAGS = -arch x86_64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h *_XCODE32_X64_VFRPP_FLAGS = -arch x86_64 -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h @@ -3287,8 +3402,8 @@ RELEASE_XCODE32_X64_CC_FLAGS = -arch x86_64 -Oz -combine -mms-bitfields -fshor ################## *_XCODE32_ARM_ARCHCC_FLAGS = -arch armv7 -march=armv7 -mthumb -*_XCODE32_ARM_ARCHASM_FLAGS = -arch armv7 -*_XCODE32_ARM_ARCHDLINK_FLAGS = -arch armv7 +*_XCODE32_ARM_ARCHASM_FLAGS = -arch armv7 +*_XCODE32_ARM_ARCHDLINK_FLAGS = -arch armv7 *_XCODE32_ARM_PLATFORM_FLAGS = *_XCODE32_ARM_CC_PATH = DEF(IPHONE_TOOLS)/usr/bin/gcc @@ -3298,13 +3413,13 @@ RELEASE_XCODE32_X64_CC_FLAGS = -arch x86_64 -Oz -combine -mms-bitfields -fshor *_XCODE32_ARM_PP_PATH = DEF(IPHONE_TOOLS)/usr/bin/gcc *_XCODE32_ARM_VFRPP_PATH = DEF(IPHONE_TOOLS)/usr/bin/gcc - DEBUG_XCODE32_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map -RELEASE_XCODE32_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map + DEBUG_XCODE32_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map +RELEASE_XCODE32_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map *_XCODE32_ARM_SLINK_FLAGS = -static -o DEBUG_XCODE32_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) -g -RELEASE_XCODE32_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) +RELEASE_XCODE32_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) *_XCODE32_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h *_XCODE32_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h @@ -3326,7 +3441,7 @@ RELEASE_XCODE32_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-inter # *_RVCT31_ARM_ARCHCC_FLAGS = --thumb --cpu 7-A *_RVCT31_ARM_ARCHASM_FLAGS = --cpu 7-A -*_RVCT31_ARM_ARCHDLINK_FLAGS = +*_RVCT31_ARM_ARCHDLINK_FLAGS = *_RVCT31_ARM_PLATFORM_FLAGS = DEBUG_RVCT31_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map --diag_style=ide @@ -3337,7 +3452,7 @@ RELEASE_RVCT31_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_PO *_RVCT31_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E --diag_style=ide *_RVCT31_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -DVFRCOMPILE --preinclude $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h *_RVCT31_ARM_MAKE_PATH = nmake -*_RVCT31_ARM_SLINK_FLAGS = --partial --diag_style=ide -o +*_RVCT31_ARM_SLINK_FLAGS = --partial --diag_style=ide -o DEBUG_RVCT31_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -g -Ospace -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_warning 167 --diag_style=ide RELEASE_RVCT31_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -Ospace -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_warning 167 --diag_style=ide @@ -3376,7 +3491,7 @@ RELEASE_RVCT31_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -Ospac # *_RVCT31CYGWIN_ARM_ARCHCC_FLAGS = --thumb --cpu 7-A *_RVCT31CYGWIN_ARM_ARCHASM_FLAGS = --cpu 7-A -*_RVCT31CYGWIN_ARM_ARCHDLINK_FLAGS = +*_RVCT31CYGWIN_ARM_ARCHDLINK_FLAGS = *_RVCT31CYGWIN_ARM_PLATFORM_FLAGS = DEBUG_RVCT31CYGWIN_ARM_DLINK_FLAGS = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list `cygpath -m $(DEST_DIR_DEBUG)/$(BASE_NAME).map` --diag_style=ide @@ -3386,7 +3501,7 @@ RELEASE_RVCT31CYGWIN_ARM_DLINK_FLAGS = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS *_RVCT31CYGWIN_ARM_PP_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E --diag_style=ide *_RVCT31CYGWIN_ARM_VFRPP_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -DVFRCOMPILE --preinclude `cygpath -m $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h` *_RVCT31CYGWIN_ARM_MAKE_PATH = make -*_RVCT31CYGWIN_ARM_SLINK_FLAGS = "$(SLINKPATH_FLAG)" --partial --diag_style=ide -o +*_RVCT31CYGWIN_ARM_SLINK_FLAGS = "$(SLINKPATH_FLAG)" --partial --diag_style=ide -o DEBUG_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -c -g -Ospace --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --preinclude AutoGen.h --diag_warning 167 --diag_style=ide RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -c -Ospace --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --preinclude AutoGen.h --diag_warning 167 --diag_style=ide @@ -3418,7 +3533,7 @@ RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM # ASL definitions ################## *_ARMGCC_*_ASL_PATH = DEF(UNIX_IASL_BIN) -*_ARMGCC_*_ASL_FLAGS = DEF(IASL_FLAGS) +*_ARMGCC_*_ASL_FLAGS = DEF(IASL_FLAGS) *_ARMGCC_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) *_ARMGCC_*_ASLPP_FLAGS = -x c -E -P *_ARMGCC_*_ASLCC_FLAGS = -x c @@ -3442,9 +3557,9 @@ RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM # # Use default values, or override in DSC file # -*_ARMGCC_ARM_ARCHCC_FLAGS = -march=armv7-a -mthumb +*_ARMGCC_ARM_ARCHCC_FLAGS = -march=armv7-a -mthumb *_ARMGCC_ARM_ARCHASM_FLAGS = -march=armv7-a -*_ARMGCC_ARM_ARCHDLINK_FLAGS = +*_ARMGCC_ARM_ARCHDLINK_FLAGS = *_ARMGCC_ARM_PLATFORM_FLAGS = -march=armv7-a DEBUG_ARMGCC_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) -mlittle-endian -g @@ -3485,13 +3600,13 @@ RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mfpu=fpa -mlitt # GenFw tool definitions ################## *_*_*_GENFW_PATH = GenFw -*_*_*_GENFW_FLAGS = +*_*_*_GENFW_FLAGS = ################## # Asl Compiler definitions ################## -*_*_*_ASLCC_FLAGS = /GL- /Y- /TC /Dmain=ReferenceAcpiTable -*_*_*_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +*_*_*_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable +*_*_*_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER *_*_*_ASLPP_FLAGS = /nologo /EP /C *_*_*_ASL_FLAGS = diff --git a/BaseTools/Source/C/BootSectImage/bootsectimage.c b/BaseTools/Source/C/BootSectImage/bootsectimage.c index a907e214f4..0d0a3cbf77 100644 --- a/BaseTools/Source/C/BootSectImage/bootsectimage.c +++ b/BaseTools/Source/C/BootSectImage/bootsectimage.c @@ -20,6 +20,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #include "fat.h" #include "mbr.h" #include "EfiUtilityMsgs.h" +#include "ParseInf.h" #define DEBUG_WARN 0x1 #define DEBUG_ERROR 0x2 @@ -845,7 +846,9 @@ main ( BOOLEAN ProcessMbr; // -m BOOLEAN DoParse; // -p SrcImage or -g SrcImage DstImage BOOLEAN Verbose; // -v - + UINT64 LogLevel; + EFI_STATUS EfiStatus; + SrcImage = DstImage = NULL; ForcePatch = FALSE; ProcessMbr = FALSE; @@ -886,6 +889,23 @@ main ( ProcessMbr = TRUE; } else if (strcmp (*argv, "-v") == 0 || strcmp (*argv, "--verbose") == 0) { Verbose = TRUE; + } else if ((stricmp (*argv, "-d") == 0) || (stricmp (*argv, "--debug") == 0)) { + argc--; argv++; + if (argc < 1) { + Usage (); + return -1; + } + EfiStatus = AsciiStringToUint64 (*argv, FALSE, &LogLevel); + if (EFI_ERROR (EfiStatus)) { + Error (NULL, 0, 1003, "Invalid option value", "%s = %s", "--debug", *argv); + return 1; + } + if (LogLevel > 9) { + Error (NULL, 0, 1003, "Invalid option value", "Debug Level range is 0-9, currnt input level is %d", (int) LogLevel); + return 1; + } + SetPrintLevel (LogLevel); + DebugMsg (NULL, 0, 9, "Debug Mode Set", "Debug Output Mode Level %s is set!", *argv); } else { Usage (); return -1; diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c index 35120f36c1..428158ebb8 100644 --- a/BaseTools/Source/C/GenVtf/GenVtf.c +++ b/BaseTools/Source/C/GenVtf/GenVtf.c @@ -105,23 +105,22 @@ ConvertVersionInfo ( /*++ Routine Description: - This function converts GUID string to GUID + This function split version to major version and minor version Arguments: Str - String representing in form XX.XX - MajorVer - The major vertion - MinorVer - The minor vertion + MajorVer - The major version + MinorVer - The minor version Returns: - EFI_SUCCESS - The fuction completed successfully. + EFI_SUCCESS - The function completed successfully. --*/ { CHAR8 StrPtr[40]; CHAR8 *Token; - UINTN Length; unsigned Major; unsigned Minor; @@ -135,10 +134,9 @@ Returns: Token = strtok (NULL, "."); } - Length = strlen (StrPtr); sscanf ( StrPtr, - "%01x%02x", + "%02d%02d", &Major, &Minor ); diff --git a/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c b/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c index 8a0952ff08..267eaa332c 100644 --- a/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c +++ b/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c @@ -235,10 +235,13 @@ ProcessBsOrMbr ( } //Process Floppy Disk - OutputFile = fopen(OutputInfo->PhysicalPath, "w"); + OutputFile = fopen(OutputInfo->PhysicalPath, "r+"); if (OutputFile == NULL) { - return ErrorFileReadWrite; - } + OutputFile = fopen(OutputInfo->PhysicalPath, "w"); + if (OutputFile == NULL) { + return ErrorFileReadWrite; + } + } if (OutputInfo->Type != PathFile) { if (ProcessMbr) { diff --git a/BaseTools/Source/C/Include/X64/ProcessorBind.h b/BaseTools/Source/C/Include/X64/ProcessorBind.h index 3c106b5fce..0bc02f043a 100644 --- a/BaseTools/Source/C/Include/X64/ProcessorBind.h +++ b/BaseTools/Source/C/Include/X64/ProcessorBind.h @@ -149,13 +149,13 @@ typedef INT64 INTN; // // Processor specific defines // -#define MAX_BIT 0x8000000000000000 -#define MAX_2_BITS 0xC000000000000000 +#define MAX_BIT 0x8000000000000000ULL +#define MAX_2_BITS 0xC000000000000000ULL // // Maximum legal Itanium-based address // -#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFF +#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFFULL // // Modifier to ensure that all protocol member functions and EFI intrinsics diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile index 841803e51d..9aa83c0390 100644 --- a/BaseTools/Source/C/Makefiles/header.makefile +++ b/BaseTools/Source/C/Makefiles/header.makefile @@ -1,10 +1,10 @@ ## @file # -# The makefile can be invoked with -# ARCH = x86_64 or x64 for EM64T build -# ARCH = ia32 or IA32 for IA32 build -# ARCH = ia64 or IA64 for IA64 build -# +# The makefile can be invoked with +# ARCH = x86_64 or x64 for EM64T build +# ARCH = ia32 or IA32 for IA32 build +# ARCH = ia64 or IA64 for IA64 build +# # 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 @@ -12,52 +12,56 @@ # http://opensource.org/licenses/bsd-license.php # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -ARCH ?= IA32 - -CYGWIN:=$(findstring CYGWIN, $(shell uname -s)) -LINUX:=$(findstring Linux, $(shell uname -s)) -DARWIN:=$(findstring Darwin, $(shell uname -s)) - -CC = gcc -CXX = g++ -AS = gcc -AR = ar -LD = ld -LINKER ?= $(CC) -ifeq ($(ARCH), IA32) -ARCH_INCLUDE = -I $(MAKEROOT)/Include/Ia32/ -endif - -ifeq ($(ARCH), X64) -ARCH_INCLUDE = -I $(MAKEROOT)/Include/X64/ -endif - -INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE) -CPPFLAGS = $(INCLUDE) -CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fno-merge-constants -nostdlib -Wall -Werror -c -g -LFLAGS = - -# -# Snow Leopard is a 32-bit and 64-bit environment. uname -m returns -i386, but gcc defaults -# to x86_64. So make sure tools match uname -m -# -uname_s = $(shell uname -s) -ifeq ($(uname_s),Darwin) - CFLAGS += -arch i386 - CPPFLAGS += -arch i386 - LFLAGS += -arch i386 -endif - -.PHONY: all -.PHONY: install -.PHONY: clean - -all: - -$(MAKEROOT)/libs: - mkdir $(MAKEROOT)/libs - -$(MAKEROOT)/bin: - mkdir $(MAKEROOT)/bin +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +ARCH ?= IA32 + +CYGWIN:=$(findstring CYGWIN, $(shell uname -s)) +LINUX:=$(findstring Linux, $(shell uname -s)) +DARWIN:=$(findstring Darwin, $(shell uname -s)) + +CC = gcc +CXX = g++ +AS = gcc +AR = ar +LD = ld +LINKER ?= $(CC) +ifeq ($(ARCH), IA32) +ARCH_INCLUDE = -I $(MAKEROOT)/Include/Ia32/ +endif + +ifeq ($(ARCH), X64) +ARCH_INCLUDE = -I $(MAKEROOT)/Include/X64/ +endif + +INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE) +CPPFLAGS = $(INCLUDE) +CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fno-merge-constants -nostdlib -Wall -Werror -c -g +LFLAGS = + +ifeq ($(ARCH), IA32) +# +# Snow Leopard is a 32-bit and 64-bit environment. uname -m returns i386, but gcc defaults +# to x86_64. So make sure tools match uname -m. You can manual have a 64-bit kernal on Snow Leopard +# so only do this is uname -m returns i386. +# +uname_s = $(shell uname -s) +ifeq ($(uname_s),Darwin) + CFLAGS += -arch i386 + CPPFLAGS += -arch i386 + LFLAGS += -arch i386 +endif +endif + + +.PHONY: all +.PHONY: install +.PHONY: clean + +all: + +$(MAKEROOT)/libs: + mkdir $(MAKEROOT)/libs + +$(MAKEROOT)/bin: + mkdir $(MAKEROOT)/bin diff --git a/BaseTools/Source/C/Makefiles/lib.makefile b/BaseTools/Source/C/Makefiles/lib.makefile index fe7a1cef8d..dc8d90ccca 100644 --- a/BaseTools/Source/C/Makefiles/lib.makefile +++ b/BaseTools/Source/C/Makefiles/lib.makefile @@ -7,12 +7,12 @@ # http://opensource.org/licenses/bsd-license.php # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -include $(MAKEROOT)/Makefiles/header.makefile - -LIBRARY = $(MAKEROOT)/libs/lib$(LIBNAME).a - -all: $(MAKEROOT)/libs $(LIBRARY) - -include $(MAKEROOT)/Makefiles/footer.makefile +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +include $(MAKEROOT)/Makefiles/header.makefile + +LIBRARY = $(MAKEROOT)/libs/lib$(LIBNAME).a + +all: $(MAKEROOT)/libs $(LIBRARY) + +include $(MAKEROOT)/Makefiles/footer.makefile diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index aaba768b4a..4ecf2eafe7 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -189,7 +189,12 @@ class WorkspaceAutoGen(AutoGen): # Pa.CollectPlatformDynamicPcds() self.AutoGenObjectList.append(Pa) - + + # + # Check PCDs token value conflict in each DEC file. + # + self._CheckAllPcdsTokenValueConflict() + self._BuildDir = None self._FvDir = None self._MakeFileDir = None @@ -248,6 +253,75 @@ class WorkspaceAutoGen(AutoGen): # BuildCommand should be all the same. So just get one from platform AutoGen self._BuildCommand = self.AutoGenObjectList[0].BuildCommand return self._BuildCommand + + ## Check the PCDs token value conflict in each DEC file. + # + # Will cause build break and raise error message while two PCDs conflict. + # + # @return None + # + def _CheckAllPcdsTokenValueConflict(self): + if len(self.BuildDatabase.WorkspaceDb.PackageList) >= 1: + for Package in self.BuildDatabase.WorkspaceDb.PackageList: + PcdList = Package.Pcds.values() + PcdList.sort(lambda x, y: cmp(x.TokenValue, y.TokenValue)) + Count = 0 + while (Count < len(PcdList) - 1) : + Item = PcdList[Count] + ItemNext = PcdList[Count + 1] + # + # Make sure in the same token space the TokenValue should be unique + # + if (Item.TokenValue == ItemNext.TokenValue): + SameTokenValuePcdList = [] + SameTokenValuePcdList.append(Item) + SameTokenValuePcdList.append(ItemNext) + RemainPcdListLength = len(PcdList) - Count - 2 + for ValueSameCount in range(RemainPcdListLength): + if PcdList[len(PcdList) - RemainPcdListLength + ValueSameCount].TokenValue == Item.TokenValue: + SameTokenValuePcdList.append(PcdList[len(PcdList) - RemainPcdListLength + ValueSameCount]) + else: + break; + # + # Sort same token value PCD list with TokenGuid and TokenCName + # + SameTokenValuePcdList.sort(lambda x, y: cmp("%s.%s"%(x.TokenSpaceGuidCName, x.TokenCName), "%s.%s"%(y.TokenSpaceGuidCName, y.TokenCName))) + SameTokenValuePcdListCount = 0 + while (SameTokenValuePcdListCount < len(SameTokenValuePcdList) - 1): + TemListItem = SameTokenValuePcdList[SameTokenValuePcdListCount] + TemListItemNext = SameTokenValuePcdList[SameTokenValuePcdListCount + 1] + + if (TemListItem.TokenSpaceGuidCName == TemListItemNext.TokenSpaceGuidCName) and (TemListItem.TokenCName != TemListItemNext.TokenCName): + EdkLogger.error( + 'build', + FORMAT_INVALID, + "The TokenValue [%s] of PCD [%s.%s] is conflict with: [%s.%s] in %s"\ + % (TemListItem.TokenValue, TemListItem.TokenSpaceGuidCName, TemListItem.TokenCName, TemListItemNext.TokenSpaceGuidCName, TemListItemNext.TokenCName, Package), + ExtraData=None + ) + SameTokenValuePcdListCount += 1 + Count += SameTokenValuePcdListCount + Count += 1 + + PcdList = Package.Pcds.values() + PcdList.sort(lambda x, y: cmp("%s.%s"%(x.TokenSpaceGuidCName, x.TokenCName), "%s.%s"%(y.TokenSpaceGuidCName, y.TokenCName))) + Count = 0 + while (Count < len(PcdList) - 1) : + Item = PcdList[Count] + ItemNext = PcdList[Count + 1] + # + # Check PCDs with same TokenSpaceGuidCName.TokenCName have same token value as well. + # + if (Item.TokenSpaceGuidCName == ItemNext.TokenSpaceGuidCName) and (Item.TokenCName == ItemNext.TokenCName) and (Item.TokenValue != ItemNext.TokenValue): + EdkLogger.error( + 'build', + FORMAT_INVALID, + "The TokenValue [%s] of PCD [%s.%s] in %s defined in two places should be same as well."\ + % (Item.TokenValue, Item.TokenSpaceGuidCName, Item.TokenCName, Package), + ExtraData=None + ) + Count += 1 + ## Create makefile for the platform and modules in it # @@ -306,7 +380,27 @@ class PlatformAutoGen(AutoGen): # _DynaPcdList_ = [] _NonDynaPcdList_ = [] - + + # + # The priority list while override build option + # + PrioList = {"0x11111" : 16, # TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE (Highest) + "0x01111" : 15, # ******_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE + "0x10111" : 14, # TARGET_*********_ARCH_COMMANDTYPE_ATTRIBUTE + "0x00111" : 13, # ******_*********_ARCH_COMMANDTYPE_ATTRIBUTE + "0x11011" : 12, # TARGET_TOOLCHAIN_****_COMMANDTYPE_ATTRIBUTE + "0x01011" : 11, # ******_TOOLCHAIN_****_COMMANDTYPE_ATTRIBUTE + "0x10011" : 10, # TARGET_*********_****_COMMANDTYPE_ATTRIBUTE + "0x00011" : 9, # ******_*********_****_COMMANDTYPE_ATTRIBUTE + "0x11101" : 8, # TARGET_TOOLCHAIN_ARCH_***********_ATTRIBUTE + "0x01101" : 7, # ******_TOOLCHAIN_ARCH_***********_ATTRIBUTE + "0x10101" : 6, # TARGET_*********_ARCH_***********_ATTRIBUTE + "0x00101" : 5, # ******_*********_ARCH_***********_ATTRIBUTE + "0x11001" : 4, # TARGET_TOOLCHAIN_****_***********_ATTRIBUTE + "0x01001" : 3, # ******_TOOLCHAIN_****_***********_ATTRIBUTE + "0x10001" : 2, # TARGET_*********_****_***********_ATTRIBUTE + "0x00001" : 1} # ******_*********_****_***********_ATTRIBUTE (Lowest) + ## The real constructor of PlatformAutoGen # # This method is not supposed to be called by users of PlatformAutoGen. It's @@ -481,12 +575,12 @@ class PlatformAutoGen(AutoGen): UnicodePcdArray = [] HiiPcdArray = [] OtherPcdArray = [] + VpdPcdDict = {} VpdFile = VpdInfoFile.VpdInfoFile() NeedProcessVpdMapFile = False if (self.Workspace.ArchList[-1] == self.Arch): for Pcd in self._DynamicPcdList: - # just pick the a value to determine whether is unicode string type Sku = Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]] Sku.VpdOffset = Sku.VpdOffset.strip() @@ -500,32 +594,47 @@ class PlatformAutoGen(AutoGen): HiiPcdArray.append(Pcd) else: OtherPcdArray.append(Pcd) - if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]: - if not (self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == ''): - # - # Fix the optional data of VPD PCD. - # - if (Pcd.DatumType.strip() != "VOID*"): - if Sku.DefaultValue == '': - Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]].DefaultValue = Pcd.MaxDatumSize - Pcd.MaxDatumSize = None - else: - EdkLogger.error("build", AUTOGEN_ERROR, "PCD setting error", - File=self.MetaFile, - ExtraData="\n\tPCD: %s.%s format incorrect in DSC: %s\n\t\t\n" - % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, self.Platform.MetaFile.Path)) - - VpdFile.Add(Pcd, Sku.VpdOffset) - # if the offset of a VPD is *, then it need to be fixed up by third party tool. - if not NeedProcessVpdMapFile and Sku.VpdOffset == "*": - NeedProcessVpdMapFile = True + VpdPcdDict[(Pcd.TokenCName, Pcd.TokenSpaceGuidCName)] = Pcd + + PlatformPcds = self.Platform.Pcds.keys() + PlatformPcds.sort() + # + # Add VPD type PCD into VpdFile and determine whether the VPD PCD need to be fixed up. + # + for PcdKey in PlatformPcds: + Pcd = self.Platform.Pcds[PcdKey] + if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]: + Pcd = VpdPcdDict[PcdKey] + Sku = Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]] + Sku.VpdOffset = Sku.VpdOffset.strip() + # + # Fix the optional data of VPD PCD. + # + if (Pcd.DatumType.strip() != "VOID*"): + if Sku.DefaultValue == '': + Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]].DefaultValue = Pcd.MaxDatumSize + Pcd.MaxDatumSize = None + else: + EdkLogger.error("build", AUTOGEN_ERROR, "PCD setting error", + File=self.MetaFile, + ExtraData="\n\tPCD: %s.%s format incorrect in DSC: %s\n\t\t\n" + % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, self.Platform.MetaFile.Path)) + + VpdFile.Add(Pcd, Sku.VpdOffset) + # if the offset of a VPD is *, then it need to be fixed up by third party tool. + if not NeedProcessVpdMapFile and Sku.VpdOffset == "*": + NeedProcessVpdMapFile = True + if self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == '': + EdkLogger.error("Build", FILE_NOT_FOUND, \ + "Fail to find third-party BPDG tool to process VPD PCDs. BPDG Guid tool need to be defined in tools_def.txt and VPD_TOOL_GUID need to be provided in DSC file.") + # # Fix the PCDs define in VPD PCD section that never referenced by module. # An example is PCD for signature usage. - # - for DscPcd in self.Platform.Pcds: + # + for DscPcd in PlatformPcds: DscPcdEntry = self.Platform.Pcds[DscPcd] if DscPcdEntry.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]: if not (self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == ''): @@ -614,7 +723,7 @@ class PlatformAutoGen(AutoGen): # just pick the a value to determine whether is unicode string type Sku = Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]] if Sku.VpdOffset == "*": - Sku.VpdOffset = VpdFile.GetOffset(Pcd)[0] + Sku.VpdOffset = VpdFile.GetOffset(Pcd)[0] else: EdkLogger.error("build", FILE_READ_FAILURE, "Can not find VPD map file %s to fix up VPD offset." % VpdMapFilePath) @@ -693,7 +802,7 @@ class PlatformAutoGen(AutoGen): if "FLAGS" in self.ToolDefinition["MAKE"]: NewOption = self.ToolDefinition["MAKE"]["FLAGS"].strip() if NewOption != '': - self._BuildCommand += SplitOption(NewOption) + self._BuildCommand += SplitOption(NewOption) return self._BuildCommand ## Get tool chain definition @@ -1220,16 +1329,86 @@ class PlatformAutoGen(AutoGen): EdkLogger.verbose("\t" + LibraryName + " : " + str(Library) + ' ' + str(type(Library))) return LibraryList + ## Calculate the priority value of the build option + # + # @param Key Build option definition contain: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE + # + # @retval Value Priority value based on the priority list. + # + def CalculatePriorityValue(self, Key): + Target, ToolChain, Arch, CommandType, Attr = Key.split('_') + PriorityValue = 0x11111 + if Target == "*": + PriorityValue &= 0x01111 + if ToolChain == "*": + PriorityValue &= 0x10111 + if Arch == "*": + PriorityValue &= 0x11011 + if CommandType == "*": + PriorityValue &= 0x11101 + if Attr == "*": + PriorityValue &= 0x11110 + + return self.PrioList["0x%0.5x"%PriorityValue] + + ## Expand * in build option key # # @param Options Options to be expanded # # @retval options Options expanded - # + # def _ExpandBuildOption(self, Options, ModuleStyle=None): BuildOptions = {} FamilyMatch = False FamilyIsNull = True + + OverrideList = {} + # + # Construct a list contain the build options which need override. + # + for Key in Options: + # + # Key[0] -- tool family + # Key[1] -- TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE + # + if Key[0] == self.BuildRuleFamily : + Target, ToolChain, Arch, CommandType, Attr = Key[1].split('_') + if Target == self.BuildTarget or Target == "*": + if ToolChain == self.ToolChain or ToolChain == "*": + if Arch == self.Arch or Arch == "*": + if Options[Key].startswith("="): + if OverrideList.get(Key[1]) != None: + OverrideList.pop(Key[1]) + OverrideList[Key[1]] = Options[Key] + + # + # Use the highest priority value. + # + if (len(OverrideList) >= 2): + KeyList = OverrideList.keys() + for Index in range(len(KeyList)): + NowKey = KeyList[Index] + Target1, ToolChain1, Arch1, CommandType1, Attr1 = NowKey.split("_") + for Index1 in range(len(KeyList) - Index - 1): + NextKey = KeyList[Index1 + Index + 1] + # + # Compare two Key, if one is included by another, choose the higher priority one + # + Target2, ToolChain2, Arch2, CommandType2, Attr2 = NextKey.split("_") + if Target1 == Target2 or Target1 == "*" or Target2 == "*": + if ToolChain1 == ToolChain2 or ToolChain1 == "*" or ToolChain2 == "*": + if Arch1 == Arch2 or Arch1 == "*" or Arch2 == "*": + if CommandType1 == CommandType2 or CommandType1 == "*" or CommandType2 == "*": + if Attr1 == Attr2 or Attr1 == "*" or Attr2 == "*": + if self.CalculatePriorityValue(NowKey) > self.CalculatePriorityValue(NextKey): + if Options.get((self.BuildRuleFamily, NextKey)) != None: + Options.pop((self.BuildRuleFamily, NextKey)) + else: + if Options.get((self.BuildRuleFamily, NowKey)) != None: + Options.pop((self.BuildRuleFamily, NowKey)) + + for Key in Options: if ModuleStyle != None and len (Key) > 2: # Check Module style is EDK or EDKII. diff --git a/BaseTools/Source/Python/AutoGen/GenC.py b/BaseTools/Source/Python/AutoGen/GenC.py index 2a133d3812..3c256c8b74 100644 --- a/BaseTools/Source/Python/AutoGen/GenC.py +++ b/BaseTools/Source/Python/AutoGen/GenC.py @@ -1860,8 +1860,10 @@ def CreateUnicodeStringCode(Info, AutoGenC, AutoGenH, UniGenCFlag, UniGenBinBuff IncList = [Info.MetaFile.Dir] # Get all files under [Sources] section in inf file for EDK-II module + EDK2Module = True SrcList = [F for F in Info.SourceFileList] if Info.AutoGenVersion < 0x00010005: + EDK2Module = False # Get all files under the module directory for EDK-I module Cwd = os.getcwd() os.chdir(Info.MetaFile.Dir) @@ -1883,7 +1885,7 @@ def CreateUnicodeStringCode(Info, AutoGenC, AutoGenH, UniGenCFlag, UniGenBinBuff CompatibleMode = False # - # -s is a temporary option dedicated for building .UNI files with ISO 639-2 lanauge codes of EDK Shell in EDK2 + # -s is a temporary option dedicated for building .UNI files with ISO 639-2 language codes of EDK Shell in EDK2 # if 'BUILD' in Info.BuildOption and Info.BuildOption['BUILD']['FLAGS'].find('-s') > -1: if CompatibleMode: @@ -1894,7 +1896,12 @@ def CreateUnicodeStringCode(Info, AutoGenC, AutoGenH, UniGenCFlag, UniGenBinBuff else: ShellMode = False - Header, Code = GetStringFiles(Info.UnicodeFileList, SrcList, IncList, Info.IncludePathList, ['.uni', '.inf'], Info.Name, CompatibleMode, ShellMode, UniGenCFlag, UniGenBinBuffer) + #RFC4646 is only for EDKII modules and ISO639-2 for EDK modules + if EDK2Module: + FilterInfo = [EDK2Module] + [Info.PlatformInfo.Platform.RFCLanguages] + else: + FilterInfo = [EDK2Module] + [Info.PlatformInfo.Platform.ISOLanguages] + Header, Code = GetStringFiles(Info.UnicodeFileList, SrcList, IncList, Info.IncludePathList, ['.uni', '.inf'], Info.Name, CompatibleMode, ShellMode, UniGenCFlag, UniGenBinBuffer, FilterInfo) if CompatibleMode or UniGenCFlag: AutoGenC.Append("\n//\n//Unicode String Pack Definition\n//\n") AutoGenC.Append(Code) diff --git a/BaseTools/Source/Python/AutoGen/StrGather.py b/BaseTools/Source/Python/AutoGen/StrGather.py index 52ab439e9b..3df493834c 100644 --- a/BaseTools/Source/Python/AutoGen/StrGather.py +++ b/BaseTools/Source/Python/AutoGen/StrGather.py @@ -284,6 +284,65 @@ def CreateCFileStringValue(Value): return Str +## GetFilteredLanguage +# +# apply get best language rules to the UNI language code list +# +# @param UniLanguageList: language code definition list in *.UNI file +# @param LanguageFilterList: language code filter list of RFC4646 format in DSC file +# +# @retval UniLanguageListFiltered: the filtered language code +# +def GetFilteredLanguage(UniLanguageList, LanguageFilterList): + UniLanguageListFiltered = [] + # if filter list is empty, then consider there is no filter + if LanguageFilterList == []: + UniLanguageListFiltered = UniLanguageList + return UniLanguageListFiltered + for Language in LanguageFilterList: + # first check for exact match + if Language in UniLanguageList: + if Language not in UniLanguageListFiltered: + UniLanguageListFiltered += [Language] + # find the first one with the same/equivalent primary tag + else: + if Language.find('-') != -1: + PrimaryTag = Language[0:Language.find('-')].lower() + else: + PrimaryTag = Language + + if len(PrimaryTag) == 3: + PrimaryTag = LangConvTable.get(PrimaryTag) + + for UniLanguage in UniLanguageList: + if UniLanguage.find('-') != -1: + UniLanguagePrimaryTag = UniLanguage[0:UniLanguage.find('-')].lower() + else: + UniLanguagePrimaryTag = UniLanguage + + if len(UniLanguagePrimaryTag) == 3: + UniLanguagePrimaryTag = LangConvTable.get(UniLanguagePrimaryTag) + + if PrimaryTag == UniLanguagePrimaryTag: + if UniLanguage not in UniLanguageListFiltered: + UniLanguageListFiltered += [UniLanguage] + break + else: + # Here is rule 3 for "get best language" + # If tag is not listed in the Unicode file, the default ("en") tag should be used for that language + # for better processing, find the one that best suit for it. + DefaultTag = 'en' + if DefaultTag not in UniLanguageListFiltered: + # check whether language code with primary code equivalent with DefaultTag already in the list, if so, use that + for UniLanguage in UniLanguageList: + if UniLanguage.startswith('en-') or UniLanguage.startswith('eng-'): + if UniLanguage not in UniLanguageListFiltered: + UniLanguageListFiltered += [UniLanguage] + break + else: + UniLanguageListFiltered += [DefaultTag] + return UniLanguageListFiltered + ## Create content of .c file # @@ -293,10 +352,11 @@ def CreateCFileStringValue(Value): # @param UniObjectClass A UniObjectClass instance # @param IsCompatibleMode Compatible mode # @param UniBinBuffer UniBinBuffer to contain UniBinary data. +# @param FilterInfo Platform language filter information # # @retval Str: A string of .c file content # -def CreateCFileContent(BaseName, UniObjectClass, IsCompatibleMode, UniBinBuffer=None): +def CreateCFileContent(BaseName, UniObjectClass, IsCompatibleMode, UniBinBuffer, FilterInfo): # # Init array length # @@ -304,13 +364,29 @@ def CreateCFileContent(BaseName, UniObjectClass, IsCompatibleMode, UniBinBuffer= Str = '' Offset = 0 + EDK2Module = FilterInfo[0] + if EDK2Module: + LanguageFilterList = FilterInfo[1] + else: + # EDK module is using ISO639-2 format filter, convert to the RFC4646 format + LanguageFilterList = [LangConvTable.get(F.lower()) for F in FilterInfo[1]] + + UniLanguageList = [] + for IndexI in range(len(UniObjectClass.LanguageDef)): + UniLanguageList += [UniObjectClass.LanguageDef[IndexI][0]] + + UniLanguageListFiltered = GetFilteredLanguage(UniLanguageList, LanguageFilterList) + + # # Create lines for each language's strings # for IndexI in range(len(UniObjectClass.LanguageDef)): Language = UniObjectClass.LanguageDef[IndexI][0] LangPrintName = UniObjectClass.LanguageDef[IndexI][1] - + if Language not in UniLanguageListFiltered: + continue + StringBuffer = StringIO() StrStringValue = '' ArrayLength = 0 @@ -428,13 +504,14 @@ def CreateCFileEnd(): # @param BaseName: The basename of strings # @param UniObjectClass A UniObjectClass instance # @param IsCompatibleMode Compatible Mode +# @param FilterInfo Platform language filter information # -# @retval CFile: A string of complete .c file +# @retval CFile: A string of complete .c file # -def CreateCFile(BaseName, UniObjectClass, IsCompatibleMode): +def CreateCFile(BaseName, UniObjectClass, IsCompatibleMode, FilterInfo): CFile = '' #CFile = WriteLine(CFile, CreateCFileHeader()) - CFile = WriteLine(CFile, CreateCFileContent(BaseName, UniObjectClass, IsCompatibleMode)) + CFile = WriteLine(CFile, CreateCFileContent(BaseName, UniObjectClass, IsCompatibleMode, None, FilterInfo)) CFile = WriteLine(CFile, CreateCFileEnd()) return CFile @@ -518,7 +595,7 @@ def SearchString(UniObjectClass, FileList, IsCompatibleMode): # This function is used for UEFI2.1 spec # # -def GetStringFiles(UniFilList, SourceFileList, IncludeList, IncludePathList, SkipList, BaseName, IsCompatibleMode = False, ShellMode = False, UniGenCFlag = True, UniGenBinBuffer = None): +def GetStringFiles(UniFilList, SourceFileList, IncludeList, IncludePathList, SkipList, BaseName, IsCompatibleMode = False, ShellMode = False, UniGenCFlag = True, UniGenBinBuffer = None, FilterInfo = [True, []]): Status = True ErrorMessage = '' @@ -540,9 +617,9 @@ def GetStringFiles(UniFilList, SourceFileList, IncludeList, IncludePathList, Ski HFile = CreateHFile(BaseName, Uni, IsCompatibleMode, UniGenCFlag) CFile = None if IsCompatibleMode or UniGenCFlag: - CFile = CreateCFile(BaseName, Uni, IsCompatibleMode) + CFile = CreateCFile(BaseName, Uni, IsCompatibleMode, FilterInfo) if UniGenBinBuffer: - CreateCFileContent(BaseName, Uni, IsCompatibleMode, UniGenBinBuffer) + CreateCFileContent(BaseName, Uni, IsCompatibleMode, UniGenBinBuffer, FilterInfo) return HFile, CFile diff --git a/BaseTools/Source/Python/BPDG/GenVpd.py b/BaseTools/Source/Python/BPDG/GenVpd.py index f0196e061a..bbe44eefa4 100644 --- a/BaseTools/Source/Python/BPDG/GenVpd.py +++ b/BaseTools/Source/Python/BPDG/GenVpd.py @@ -17,6 +17,7 @@ import os import StringIO import StringTable as st import array +import re from struct import * import Common.EdkLogger as EdkLogger @@ -338,8 +339,27 @@ class GenVPD : line = line.rstrip(os.linesep) # Skip the comment line - if (not line.startswith("#")) and len(line) > 1 : - self.FileLinesList[count] = line.split('|') + if (not line.startswith("#")) and len(line) > 1 : + # + # Enhanced for support "|" character in the string. + # + ValueList = ['', '', '', ''] + + ValueRe = re.compile(r'\s*L?\".*\|.*\"\s*$') + PtrValue = ValueRe.findall(line) + + ValueUpdateFlag = False + + if len(PtrValue) >= 1: + line = re.sub(ValueRe, '', line) + ValueUpdateFlag = True + + TokenList = line.split('|') + ValueList[0:len(TokenList)] = TokenList + + if ValueUpdateFlag: + ValueList[3] = PtrValue[0] + self.FileLinesList[count] = ValueList # Store the line number self.FileLinesList[count].append(str(count+1)) elif len(line) <= 1 : @@ -524,10 +544,8 @@ class GenVPD : if lenOfUnfixedList != 0 : countOfUnfixedList = 0 while(countOfUnfixedList < lenOfUnfixedList) : - #needFixPcdCName, needFixPcdOffset, needFixPcdSize, needFixPcdValue, needFixUnpackValue = self.PcdUnknownOffsetList[countOfUnfixedList][0:6] eachUnfixedPcd = self.PcdUnknownOffsetList[countOfUnfixedList] needFixPcdSize = eachUnfixedPcd.PcdBinSize - needFixPcdOffset = eachUnfixedPcd.PcdOffset # Not been fixed if eachUnfixedPcd.PcdOffset == '*' : # The offset un-fixed pcd can write into this free space @@ -546,18 +564,16 @@ class GenVPD : FixOffsetSizeListCount += 1 # Decrease the un-fixed pcd offset list's length - countOfUnfixedList += 1 lenOfUnfixedList -= 1 # Modify the last offset value - LastOffset += needFixPcdSize - continue + LastOffset += needFixPcdSize else : - # It can not insert into those two pcds, need to check stiil has other space can store it. + # It can not insert into those two pcds, need to check still has other space can store it. + LastOffset = NowOffset + self.PcdFixedOffsetSizeList[FixOffsetSizeListCount].PcdBinSize FixOffsetSizeListCount += 1 - break - else : - continue + break + # Set the FixOffsetSizeListCount = lenOfList for quit the loop else : FixOffsetSizeListCount = lenOfList diff --git a/BaseTools/Source/Python/Common/DataType.py b/BaseTools/Source/Python/Common/DataType.py index d9d1774e27..151f7bb1f3 100644 --- a/BaseTools/Source/Python/Common/DataType.py +++ b/BaseTools/Source/Python/Common/DataType.py @@ -22,6 +22,7 @@ TAB_EQUAL_SPLIT = '=' TAB_VALUE_SPLIT = '|' TAB_COMMA_SPLIT = ',' TAB_SPACE_SPLIT = ' ' +TAB_SEMI_COLON_SPLIT = ';' TAB_SECTION_START = '[' TAB_SECTION_END = ']' TAB_OPTION_START = '<' @@ -353,6 +354,8 @@ TAB_DSC_DEFINES_BUILD_NUMBER = 'BUILD_NUMBER' TAB_DSC_DEFINES_MAKEFILE_NAME = 'MAKEFILE_NAME' TAB_DSC_DEFINES_BS_BASE_ADDRESS = 'BsBaseAddress' TAB_DSC_DEFINES_RT_BASE_ADDRESS = 'RtBaseAddress' +TAB_DSC_DEFINES_RFC_LANGUAGES = 'RFC_LANGUAGES' +TAB_DSC_DEFINES_ISO_LANGUAGES = 'ISO_LANGUAGES' TAB_DSC_DEFINES_DEFINE = 'DEFINE' TAB_DSC_DEFINES_VPD_TOOL_GUID = 'VPD_TOOL_GUID' TAB_FIX_LOAD_TOP_MEMORY_ADDRESS = 'FIX_LOAD_TOP_MEMORY_ADDRESS' diff --git a/BaseTools/Source/Python/Common/Misc.py b/BaseTools/Source/Python/Common/Misc.py index e2dc5a5e52..7498d9e1ee 100644 --- a/BaseTools/Source/Python/Common/Misc.py +++ b/BaseTools/Source/Python/Common/Misc.py @@ -1,7 +1,7 @@ ## @file # Common routines used by all tools # -# Copyright (c) 2007, Intel Corporation. All rights reserved.
    +# 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 @@ -28,7 +28,7 @@ from UserList import UserList from Common import EdkLogger as EdkLogger from Common import GlobalData as GlobalData - +from DataType import * from BuildToolError import * ## Regular expression used to find out place holders in string template @@ -1166,6 +1166,93 @@ def ParseConsoleLog(Filename): Opr.close() Opw.close() +## AnalyzePcdData +# +# Analyze the pcd Value, Datum type and TokenNumber. +# Used to avoid split issue while the value string contain "|" character +# +# @param[in] Setting: A String contain value/datum type/token number information; +# +# @retval ValueList: A List contain value, datum type and toke number. +# +def AnalyzePcdData(Setting): + ValueList = ['', '', ''] + + ValueRe = re.compile(r'^\s*L?\".*\|.*\"') + PtrValue = ValueRe.findall(Setting) + + ValueUpdateFlag = False + + if len(PtrValue) >= 1: + Setting = re.sub(ValueRe, '', Setting) + ValueUpdateFlag = True + + TokenList = Setting.split(TAB_VALUE_SPLIT) + ValueList[0:len(TokenList)] = TokenList + + if ValueUpdateFlag: + ValueList[0] = PtrValue[0] + + return ValueList + +## AnalyzeHiiPcdData +# +# Analyze the pcd Value, variable name, variable Guid and variable offset. +# Used to avoid split issue while the value string contain "|" character +# +# @param[in] Setting: A String contain VariableName, VariableGuid, VariableOffset, DefaultValue information; +# +# @retval ValueList: A List contaian VariableName, VariableGuid, VariableOffset, DefaultValue. +# +def AnalyzeHiiPcdData(Setting): + ValueList = ['', '', '', ''] + + ValueRe = re.compile(r'^\s*L?\".*\|.*\"') + PtrValue = ValueRe.findall(Setting) + + ValueUpdateFlag = False + + if len(PtrValue) >= 1: + Setting = re.sub(ValueRe, '', Setting) + ValueUpdateFlag = True + + TokenList = Setting.split(TAB_VALUE_SPLIT) + ValueList[0:len(TokenList)] = TokenList + + if ValueUpdateFlag: + ValueList[0] = PtrValue[0] + + return ValueList + +## AnalyzeVpdPcdData +# +# Analyze the vpd pcd Value, Datum type and TokenNumber. +# Used to avoid split issue while the value string contain "|" character +# +# @param[in] Setting: A String contain value/datum type/token number information; +# +# @retval ValueList: A List contain value, datum type and toke number. +# +def AnalyzeVpdPcdData(Setting): + ValueList = ['', '', ''] + + ValueRe = re.compile(r'\s*L?\".*\|.*\"\s*$') + PtrValue = ValueRe.findall(Setting) + + ValueUpdateFlag = False + + if len(PtrValue) >= 1: + Setting = re.sub(ValueRe, '', Setting) + ValueUpdateFlag = True + + TokenList = Setting.split(TAB_VALUE_SPLIT) + ValueList[0:len(TokenList)] = TokenList + + if ValueUpdateFlag: + ValueList[2] = PtrValue[0] + + return ValueList + ## check format of PCD value against its the datum type # # For PCD value setting diff --git a/BaseTools/Source/Python/Common/Parsing.py b/BaseTools/Source/Python/Common/Parsing.py index ce1e60338e..5bea6941fd 100644 --- a/BaseTools/Source/Python/Common/Parsing.py +++ b/BaseTools/Source/Python/Common/Parsing.py @@ -18,70 +18,6 @@ from String import * from CommonDataClass.DataClass import * from DataType import * -## ParseContent -# -# Parse content of a DSC/INF/DEC file -# -def ParseContent(Lines, ): - for Line in Lines: - LineNo = LineNo + 1 - # - # Remove comments at tail and remove spaces again - # - Line = CleanString(Line) - if Line == '': - continue - - # - # Find a new section tab - # First insert previous section items - # And then parse the content of the new section - # - if Line.startswith(TAB_SECTION_START) and Line.endswith(TAB_SECTION_END): - # - # Insert items data of previous section - # - self.InsertSectionItemsIntoDatabase(FileID, Filename, CurrentSection, SectionItemList, ArchList, ThirdList, IfDefList) - # - # Parse the new section - # - SectionItemList = [] - ArchList = [] - ThirdList = [] - - LineList = GetSplitValueList(Line[len(TAB_SECTION_START):len(Line) - len(TAB_SECTION_END)], TAB_COMMA_SPLIT) - for Item in LineList: - ItemList = GetSplitValueList(Item, TAB_SPLIT) - CurrentSection = ItemList[0] - if CurrentSection.upper() not in self.KeyList: - RaiseParserError(Line, CurrentSection, Filename, '', LineNo) - ItemList.append('') - ItemList.append('') - if len(ItemList) > 5: - RaiseParserError(Line, CurrentSection, Filename, '', LineNo) - else: - if ItemList[1] != '' and ItemList[1].upper() not in ARCH_LIST_FULL: - EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo) - ArchList.append(ItemList[1].upper()) - ThirdList.append(ItemList[2]) - - continue - - # - # Not in any defined section - # - if CurrentSection == TAB_UNKNOWN: - ErrorMsg = "%s is not in any defined section" % Line - EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo) - - # - # Add a section item - # - SectionItemList.append([Line, LineNo]) - # End of parse - #End of For - - ## ParseDefineMacro # # Search whole table to find all defined Macro and replaced them with the real values @@ -940,4 +876,4 @@ def GenMetaDatSectionItem(Key, Value, List): if Key not in List: List[Key] = [Value] else: - List[Key].append(Value) \ No newline at end of file + List[Key].append(Value) diff --git a/BaseTools/Source/Python/Common/VpdInfoFile.py b/BaseTools/Source/Python/Common/VpdInfoFile.py index 5f92fa5cdd..207cc8735b 100644 --- a/BaseTools/Source/Python/Common/VpdInfoFile.py +++ b/BaseTools/Source/Python/Common/VpdInfoFile.py @@ -135,7 +135,9 @@ class VpdInfoFile: fd.write(FILE_COMMENT_TEMPLATE) # write each of PCD in VPD type - for Pcd in self._VpdArray.keys(): + Pcds = self._VpdArray.keys() + Pcds.sort() + for Pcd in Pcds: for Offset in self._VpdArray[Pcd]: PcdValue = str(Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]].DefaultValue).strip() if PcdValue == "" : diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py index d11af6c134..52d32a9e98 100644 --- a/BaseTools/Source/Python/GenFds/FdfParser.py +++ b/BaseTools/Source/Python/GenFds/FdfParser.py @@ -565,9 +565,9 @@ class FdfParser: self.Rewind() - ## PreprocessIncludeFile() method + ## PreprocessConditionalStatement() method # - # Preprocess file contents, replace !include statements with file contents. + # Preprocess conditional statement. # In the end, rewind the file buffer pointer to the beginning # # @param self The object pointer @@ -1264,6 +1264,12 @@ class FdfParser: raise Warning("expected ']'", self.FileName, self.CurrentLineNumber) while self.__GetNextWord(): + # handle the SET statement + if self.__Token == 'SET': + self.__UndoToken() + self.__GetSetStatement(None) + continue + Macro = self.__Token if not self.__IsToken("="): @@ -1489,7 +1495,7 @@ class FdfParser: for Item in Obj.BlockSizeList: if Item[0] == None or Item[1] == None: - raise Warning("expected block statement for Fd Section", self.FileName, self.CurrentLineNumber) + raise Warning("expected block statement", self.FileName, self.CurrentLineNumber) ## __GetBlockStatement() method # @@ -1508,7 +1514,7 @@ class FdfParser: raise Warning("expected '='", self.FileName, self.CurrentLineNumber) if not self.__GetNextHexNumber() and not self.__GetNextDecimalNumber(): - raise Warning("expected Hex block size", self.FileName, self.CurrentLineNumber) + raise Warning("expected Hex or Integer block size", self.FileName, self.CurrentLineNumber) BlockSize = self.__Token BlockSizePcd = None @@ -1609,7 +1615,8 @@ class FdfParser: raise Warning("expected '}'", self.FileName, self.CurrentLineNumber) Value += self.__SkippedChars - Obj.SetVarDict[PcdPair] = Value + if Obj: + Obj.SetVarDict[PcdPair] = Value self.Profile.PcdDict[PcdPair] = Value return True @@ -1904,7 +1911,8 @@ class FdfParser: self.__GetAddressStatements(FvObj) - self.__GetBlockStatement(FvObj) + while self.__GetBlockStatement(FvObj): + pass self.__GetSetStatements(FvObj) diff --git a/BaseTools/Source/Python/GenFds/FfsInfStatement.py b/BaseTools/Source/Python/GenFds/FfsInfStatement.py index 47521e08c5..d2397e07da 100644 --- a/BaseTools/Source/Python/GenFds/FfsInfStatement.py +++ b/BaseTools/Source/Python/GenFds/FfsInfStatement.py @@ -161,6 +161,14 @@ class FfsInfStatement(FfsInfStatementClassObject): # self.__InfParse__(Dict) + + # + # Allow binary type module not specify override rule in FDF file. + # + if len(self.BinFileList) >0 and not self.InDsc: + if self.Rule == None or self.Rule == "": + self.Rule = "BINARY" + # # Get the rule of how to generate Ffs file # diff --git a/BaseTools/Source/Python/GenFds/GenFds.py b/BaseTools/Source/Python/GenFds/GenFds.py index 48fe4983f8..04af6e2c67 100644 --- a/BaseTools/Source/Python/GenFds/GenFds.py +++ b/BaseTools/Source/Python/GenFds/GenFds.py @@ -351,16 +351,14 @@ class GenFds : FvObj = GenFdsGlobalVariable.FdfParser.Profile.FvDict.get(GenFds.OnlyGenerateThisFv.upper()) if FvObj != None: Buffer = StringIO.StringIO() - # Get FV base Address - FvObj.AddToBuffer(Buffer, None, GenFds.GetFvBlockSize(FvObj)) + FvObj.AddToBuffer(Buffer) Buffer.close() return elif GenFds.OnlyGenerateThisFv == None: for FvName in GenFdsGlobalVariable.FdfParser.Profile.FvDict.keys(): Buffer = StringIO.StringIO('') FvObj = GenFdsGlobalVariable.FdfParser.Profile.FvDict[FvName] - # Get FV base Address - FvObj.AddToBuffer(Buffer, None, GenFds.GetFvBlockSize(FvObj)) + FvObj.AddToBuffer(Buffer) Buffer.close() if GenFds.OnlyGenerateThisFv == None and GenFds.OnlyGenerateThisFd == None: @@ -453,7 +451,12 @@ class GenFds : TotalSizeValue = long(FvSpaceInfo[1], 0) UsedSizeValue = long(FvSpaceInfo[2], 0) FreeSizeValue = long(FvSpaceInfo[3], 0) - GenFdsGlobalVariable.InfLogger(Name + ' ' + '[' + str((UsedSizeValue+0.0)/TotalSizeValue)[0:4].lstrip('0.') + '%Full] ' + str(TotalSizeValue) + ' total, ' + str(UsedSizeValue) + ' used, ' + str(FreeSizeValue) + ' free') + if UsedSizeValue == TotalSizeValue: + Percentage = '100' + else: + Percentage = str((UsedSizeValue+0.0)/TotalSizeValue)[0:4].lstrip('0.') + + GenFdsGlobalVariable.InfLogger(Name + ' ' + '[' + Percentage + '%Full] ' + str(TotalSizeValue) + ' total, ' + str(UsedSizeValue) + ' used, ' + str(FreeSizeValue) + ' free') ## PreprocessImage() # diff --git a/BaseTools/Source/Python/GenFds/Region.py b/BaseTools/Source/Python/GenFds/Region.py index 09971b3cd0..bfa65c8054 100644 --- a/BaseTools/Source/Python/GenFds/Region.py +++ b/BaseTools/Source/Python/GenFds/Region.py @@ -1,7 +1,7 @@ ## @file # process FD Region generation # -# Copyright (c) 2007, Intel Corporation. All rights reserved.
    +# 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 @@ -62,9 +62,6 @@ class Region(RegionClassObject): # # Get Fv from FvDict # - RegionBlockSize = self.BlockSizeOfRegion(BlockSizeList) - RegionBlockNum = self.BlockNumOfRegion(RegionBlockSize) - self.FvAddress = int(BaseAddress, 16) + self.Offset FvBaseAddress = '0x%X' %self.FvAddress FvOffset = 0 @@ -95,13 +92,7 @@ class Region(RegionClassObject): # # Call GenFv tool # - BlockSize = RegionBlockSize - BlockNum = RegionBlockNum - if FvObj.BlockSizeList != []: - if FvObj.BlockSizeList[0][0] != None: - BlockSize = FvObj.BlockSizeList[0][0] - if FvObj.BlockSizeList[0][1] != None: - BlockNum = FvObj.BlockSizeList[0][1] + self.BlockInfoOfRegion(BlockSizeList, FvObj) self.FvAddress = self.FvAddress + FvOffset FvAlignValue = self.GetFvAlignValue(FvObj.FvAlignment) if self.FvAddress % FvAlignValue != 0: @@ -109,6 +100,8 @@ class Region(RegionClassObject): "FV (%s) is NOT %s Aligned!" % (FvObj.UiFvName, FvObj.FvAlignment)) FvBuffer = StringIO.StringIO('') FvBaseAddress = '0x%X' %self.FvAddress + BlockSize = None + BlockNum = None FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockSize, BlockNum, ErasePolarity, vtfDict) if FvBuffer.len > Size: FvBuffer.close() @@ -288,38 +281,74 @@ class Region(RegionClassObject): AlignValue = int(Str)*Granu return AlignValue + ## BlockSizeOfRegion() # # @param BlockSizeList List of block information - # @retval int Block size of region + # @param FvObj The object for FV # - def BlockSizeOfRegion(self, BlockSizeList): - Offset = 0x00 - BlockSize = 0 - for item in BlockSizeList: - Offset = Offset + item[0] * item[1] - GenFdsGlobalVariable.VerboseLogger ("Offset = 0x%X" %Offset) - GenFdsGlobalVariable.VerboseLogger ("self.Offset 0x%X" %self.Offset) - - if self.Offset < Offset : - if Offset - self.Offset < self.Size: - EdkLogger.error("GenFds", GENFDS_ERROR, - "Region at Offset 0x%X can NOT fit into Block array with BlockSize %X" \ - % (self.Offset, item[0])) - BlockSize = item[0] - GenFdsGlobalVariable.VerboseLogger ("BlockSize = %X" %BlockSize) - return BlockSize - return BlockSize + def BlockInfoOfRegion(self, BlockSizeList, FvObj): + Start = 0 + End = 0 + RemindingSize = self.Size + ExpectedList = [] + for (BlockSize, BlockNum, pcd) in BlockSizeList: + End = Start + BlockSize * BlockNum + # region not started yet + if self.Offset >= End: + Start = End + continue + # region located in current blocks + else: + # region ended within current blocks + if self.Offset + self.Size <= End: + ExpectedList.append((BlockSize, (RemindingSize + BlockSize - 1)/BlockSize)) + break + # region not ended yet + else: + # region not started in middle of current blocks + if self.Offset <= Start: + UsedBlockNum = BlockNum + # region started in middle of current blocks + else: + UsedBlockNum = (End - self.Offset)/BlockSize + Start = End + ExpectedList.append((BlockSize, UsedBlockNum)) + RemindingSize -= BlockSize * UsedBlockNum + + if FvObj.BlockSizeList == []: + FvObj.BlockSizeList = ExpectedList + else: + # first check whether FvObj.BlockSizeList items have only "BlockSize" or "NumBlocks", + # if so, use ExpectedList + for Item in FvObj.BlockSizeList: + if Item[0] == None or Item[1] == None: + FvObj.BlockSizeList = ExpectedList + break + # make sure region size is no smaller than the summed block size in FV + Sum = 0 + for Item in FvObj.BlockSizeList: + Sum += Item[0] * Item[1] + if self.Size < Sum: + EdkLogger.error("GenFds", GENFDS_ERROR, "Total Size of FV %s 0x%x is larger than Region Size 0x%x " + %(FvObj.UiFvName, Sum, self.Size)) + # check whether the BlockStatements in FV section is appropriate + ExpectedListData = '' + for Item in ExpectedList: + ExpectedListData += "BlockSize = 0x%x\n\tNumBlocks = 0x%x\n\t"%Item + Index = 0 + for Item in FvObj.BlockSizeList: + if Item[0] != ExpectedList[Index][0]: + EdkLogger.error("GenFds", GENFDS_ERROR, "BlockStatements of FV %s are not align with FD's, suggested FV BlockStatement" + %FvObj.UiFvName, ExtraData = ExpectedListData) + elif Item[1] != ExpectedList[Index][1]: + if (Item[1] < ExpectedList[Index][1]) and (Index == len(FvObj.BlockSizeList) - 1): + break; + else: + EdkLogger.error("GenFds", GENFDS_ERROR, "BlockStatements of FV %s are not align with FD's, suggested FV BlockStatement" + %FvObj.UiFvName, ExtraData = ExpectedListData) + else: + Index += 1 - ## BlockNumOfRegion() - # - # @param BlockSize block size of region - # @retval int Block number of region - # - def BlockNumOfRegion (self, BlockSize): - if BlockSize == 0 : - EdkLogger.error("GenFds", GENFDS_ERROR, "Region: %s is not in the FD address scope!" % self.Offset) - BlockNum = self.Size / BlockSize - GenFdsGlobalVariable.VerboseLogger ("BlockNum = 0x%X" %BlockNum) - return BlockNum + diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py index 2b25dc42ae..7f34f49c95 100644 --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py @@ -1209,7 +1209,19 @@ class DecParser(MetaFileParser): " (.|||)", File=self.MetaFile, Line=self._LineIndex+1) - ValueList = GetSplitValueList(TokenList[1]) + + ValueRe = re.compile(r'^\s*L?\".*\|.*\"') + PtrValue = ValueRe.findall(TokenList[1]) + + # Has VOID* type string, may contain "|" character in the string. + if len(PtrValue) != 0: + ptrValueList = re.sub(ValueRe, '', TokenList[1]) + ValueList = GetSplitValueList(ptrValueList) + ValueList[0] = PtrValue[0] + else: + ValueList = GetSplitValueList(TokenList[1]) + + # check if there's enough datum information given if len(ValueList) != 3: EdkLogger.error('Parser', FORMAT_INVALID, "Invalid PCD Datum information given", diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py index 9d53fa8e68..4b00dff84d 100644 --- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py +++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py @@ -74,6 +74,8 @@ class DscBuildData(PlatformBuildClassObject): TAB_DSC_DEFINES_MAKEFILE_NAME : "_MakefileName", TAB_DSC_DEFINES_BS_BASE_ADDRESS : "_BsBaseAddress", TAB_DSC_DEFINES_RT_BASE_ADDRESS : "_RtBaseAddress", + #TAB_DSC_DEFINES_RFC_LANGUAGES : "_RFCLanguages", + #TAB_DSC_DEFINES_ISO_LANGUAGES : "_ISOLanguages", } # used to compose dummy library class name for those forced library instances @@ -140,6 +142,8 @@ class DscBuildData(PlatformBuildClassObject): self._Pcds = None self._BuildOptions = None self._LoadFixAddress = None + self._RFCLanguages = None + self._ISOLanguages = None self._VpdToolGuid = None ## Get architecture @@ -194,6 +198,35 @@ class DscBuildData(PlatformBuildClassObject): self._SkuName = Record[1] elif Name == TAB_FIX_LOAD_TOP_MEMORY_ADDRESS: self._LoadFixAddress = Record[1] + elif Name == TAB_DSC_DEFINES_RFC_LANGUAGES: + if not Record[1] or Record[1][0] != '"' or Record[1][-1] != '"' or len(Record[1]) == 1: + EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'language code for RFC_LANGUAGES must have double quotes around it, for example: RFC_LANGUAGES = "en-us;zh-hans"', + File=self.MetaFile, Line=Record[-1]) + LanguageCodes = Record[1][1:-1] + if not LanguageCodes: + EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'one or more RFC4646 format language code must be provided for RFC_LANGUAGES statement', + File=self.MetaFile, Line=Record[-1]) + LanguageList = GetSplitValueList(LanguageCodes, TAB_SEMI_COLON_SPLIT) + # check whether there is empty entries in the list + if None in LanguageList: + EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'one or more empty language code is in RFC_LANGUAGES statement', + File=self.MetaFile, Line=Record[-1]) + self._RFCLanguages = LanguageList + elif Name == TAB_DSC_DEFINES_ISO_LANGUAGES: + if not Record[1] or Record[1][0] != '"' or Record[1][-1] != '"' or len(Record[1]) == 1: + EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'language code for ISO_LANGUAGES must have double quotes around it, for example: ISO_LANGUAGES = "engchn"', + File=self.MetaFile, Line=Record[-1]) + LanguageCodes = Record[1][1:-1] + if not LanguageCodes: + EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'one or more ISO639-2 format language code must be provided for ISO_LANGUAGES statement', + File=self.MetaFile, Line=Record[-1]) + if len(LanguageCodes)%3: + EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'bad ISO639-2 format for ISO_LANGUAGES', + File=self.MetaFile, Line=Record[-1]) + LanguageList = [] + for i in range(0, len(LanguageCodes), 3): + LanguageList.append(LanguageCodes[i:i+3]) + self._ISOLanguages = LanguageList elif Name == TAB_DSC_DEFINES_VPD_TOOL_GUID: # # try to convert GUID to a real UUID value to see whether the GUID is format @@ -339,6 +372,24 @@ class DscBuildData(PlatformBuildClassObject): self._LoadFixAddress = '' return self._LoadFixAddress + ## Retrieve RFCLanguage filter + def _GetRFCLanguages(self): + if self._RFCLanguages == None: + if self._Header == None: + self._GetHeaderInfo() + if self._RFCLanguages == None: + self._RFCLanguages = [] + return self._RFCLanguages + + ## Retrieve ISOLanguage filter + def _GetISOLanguages(self): + if self._ISOLanguages == None: + if self._Header == None: + self._GetHeaderInfo() + if self._ISOLanguages == None: + self._ISOLanguages = [] + return self._ISOLanguages + ## Retrieve the GUID string for VPD tool def _GetVpdToolGuid(self): if self._VpdToolGuid == None: @@ -588,13 +639,10 @@ class DscBuildData(PlatformBuildClassObject): PcdDict[Arch, PcdCName, TokenSpaceGuid] = Setting # Remove redundant PCD candidates for PcdCName, TokenSpaceGuid in PcdSet: - ValueList = ['', '', ''] Setting = PcdDict[self._Arch, PcdCName, TokenSpaceGuid] if Setting == None: continue - TokenList = Setting.split(TAB_VALUE_SPLIT) - ValueList[0:len(TokenList)] = TokenList - PcdValue, DatumType, MaxDatumSize = ValueList + PcdValue, DatumType, MaxDatumSize = AnalyzePcdData(Setting) Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject( PcdCName, TokenSpaceGuid, @@ -622,22 +670,20 @@ class DscBuildData(PlatformBuildClassObject): # PCD settings for certain ARCH and SKU # PcdDict = tdict(True, 4) - PcdSet = set() + PcdList = [] # Find out all possible PCD candidates for self._Arch RecordList = self._RawData[Type, self._Arch] for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4 in RecordList: - PcdSet.add((PcdCName, TokenSpaceGuid)) + PcdList.append((PcdCName, TokenSpaceGuid)) PcdDict[Arch, SkuName, PcdCName, TokenSpaceGuid] = Setting # Remove redundant PCD candidates, per the ARCH and SKU - for PcdCName, TokenSpaceGuid in PcdSet: - ValueList = ['', '', ''] + for PcdCName, TokenSpaceGuid in PcdList: Setting = PcdDict[self._Arch, self.SkuName, PcdCName, TokenSpaceGuid] if Setting == None: continue - TokenList = Setting.split(TAB_VALUE_SPLIT) - ValueList[0:len(TokenList)] = TokenList - PcdValue, DatumType, MaxDatumSize = ValueList - + + PcdValue, DatumType, MaxDatumSize = AnalyzePcdData(Setting) + SkuInfo = SkuInfoClass(self.SkuName, self.SkuIds[self.SkuName], '', '', '', '', '', PcdValue) Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject( PcdCName, @@ -674,13 +720,10 @@ class DscBuildData(PlatformBuildClassObject): PcdDict[Arch, SkuName, PcdCName, TokenSpaceGuid] = Setting # Remove redundant PCD candidates, per the ARCH and SKU for PcdCName, TokenSpaceGuid in PcdSet: - ValueList = ['', '', '', ''] Setting = PcdDict[self._Arch, self.SkuName, PcdCName, TokenSpaceGuid] if Setting == None: continue - TokenList = Setting.split(TAB_VALUE_SPLIT) - ValueList[0:len(TokenList)] = TokenList - VariableName, VariableGuid, VariableOffset, DefaultValue = ValueList + VariableName, VariableGuid, VariableOffset, DefaultValue = AnalyzeHiiPcdData(Setting) SkuInfo = SkuInfoClass(self.SkuName, self.SkuIds[self.SkuName], VariableName, VariableGuid, VariableOffset, DefaultValue) Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject( PcdCName, @@ -709,27 +752,24 @@ class DscBuildData(PlatformBuildClassObject): # PCD settings for certain ARCH and SKU # PcdDict = tdict(True, 4) - PcdSet = set() + PcdList = [] # Find out all possible PCD candidates for self._Arch RecordList = self._RawData[Type, self._Arch] for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4 in RecordList: - PcdSet.add((PcdCName, TokenSpaceGuid)) + PcdList.append((PcdCName, TokenSpaceGuid)) PcdDict[Arch, SkuName, PcdCName, TokenSpaceGuid] = Setting # Remove redundant PCD candidates, per the ARCH and SKU - for PcdCName, TokenSpaceGuid in PcdSet: - ValueList = ['', '', ''] + for PcdCName, TokenSpaceGuid in PcdList: Setting = PcdDict[self._Arch, self.SkuName, PcdCName, TokenSpaceGuid] if Setting == None: continue - TokenList = Setting.split(TAB_VALUE_SPLIT) - ValueList[0:len(TokenList)] = TokenList # # For the VOID* type, it can have optional data of MaxDatumSize and InitialValue # For the Integer & Boolean type, the optional data can only be InitialValue. # At this point, we put all the data into the PcdClssObject for we don't know the PCD's datumtype # until the DEC parser has been called. # - VpdOffset, MaxDatumSize, InitialValue = ValueList + VpdOffset, MaxDatumSize, InitialValue = AnalyzeVpdPcdData(Setting) SkuInfo = SkuInfoClass(self.SkuName, self.SkuIds[self.SkuName], '', '', '', '', VpdOffset, InitialValue) Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject( @@ -790,6 +830,8 @@ class DscBuildData(PlatformBuildClassObject): BsBaseAddress = property(_GetBsBaseAddress) RtBaseAddress = property(_GetRtBaseAddress) LoadFixAddress = property(_GetLoadFixAddress) + RFCLanguages = property(_GetRFCLanguages) + ISOLanguages = property(_GetISOLanguages) VpdToolGuid = property(_GetVpdToolGuid) SkuIds = property(_GetSkuIds) Modules = property(_GetModules) @@ -1083,7 +1125,6 @@ class DecBuildData(PackageBuildClassObject): PcdSet.add((PcdCName, TokenSpaceGuid)) for PcdCName, TokenSpaceGuid in PcdSet: - ValueList = ['', '', ''] # # limit the ARCH to self._Arch, if no self._Arch found, tdict # will automatically turn to 'common' ARCH and try again @@ -1091,9 +1132,9 @@ class DecBuildData(PackageBuildClassObject): Setting = PcdDict[self._Arch, PcdCName, TokenSpaceGuid] if Setting == None: continue - TokenList = Setting.split(TAB_VALUE_SPLIT) - ValueList[0:len(TokenList)] = TokenList - DefaultValue, DatumType, TokenNumber = ValueList + + DefaultValue, DatumType, TokenNumber = AnalyzePcdData(Setting) + Pcds[PcdCName, TokenSpaceGuid, self._PCD_TYPE_STRING_[Type]] = PcdClassObject( PcdCName, TokenSpaceGuid, @@ -1920,11 +1961,11 @@ class InfBuildData(ModuleBuildClassObject): def _GetPcd(self, Type): Pcds = {} PcdDict = tdict(True, 4) - PcdSet = set() + PcdList = [] RecordList = self._RawData[Type, self._Arch, self._Platform] for TokenSpaceGuid, PcdCName, Setting, Arch, Platform, Dummy1, LineNo in RecordList: PcdDict[Arch, Platform, PcdCName, TokenSpaceGuid] = (Setting, LineNo) - PcdSet.add((PcdCName, TokenSpaceGuid)) + PcdList.append((PcdCName, TokenSpaceGuid)) # get the guid value if TokenSpaceGuid not in self.Guids: Value = GuidValue(TokenSpaceGuid, self.Packages) @@ -1936,13 +1977,11 @@ class InfBuildData(ModuleBuildClassObject): self.Guids[TokenSpaceGuid] = Value # resolve PCD type, value, datum info, etc. by getting its definition from package - for PcdCName, TokenSpaceGuid in PcdSet: - ValueList = ['', ''] + for PcdCName, TokenSpaceGuid in PcdList: Setting, LineNo = PcdDict[self._Arch, self.Platform, PcdCName, TokenSpaceGuid] if Setting == None: continue - TokenList = Setting.split(TAB_VALUE_SPLIT) - ValueList[0:len(TokenList)] = TokenList + ValueList = AnalyzePcdData(Setting) DefaultValue = ValueList[0] Pcd = PcdClassObject( PcdCName, @@ -1980,6 +2019,64 @@ class InfBuildData(ModuleBuildClassObject): PcdInPackage = Package.Pcds[PcdCName, TokenSpaceGuid, PcdType] Pcd.Type = PcdType Pcd.TokenValue = PcdInPackage.TokenValue + + # + # Check whether the token value exist or not. + # + if Pcd.TokenValue == None or Pcd.TokenValue == "": + EdkLogger.error( + 'build', + FORMAT_INVALID, + "No TokenValue for PCD [%s.%s] in [%s]!" % (TokenSpaceGuid, PcdCName, str(Package)), + File =self.MetaFile, Line=LineNo, + ExtraData=None + ) + # + # Check hexadecimal token value length and format. + # + if Pcd.TokenValue.startswith("0x") or Pcd.TokenValue.startswith("0X"): + if len(Pcd.TokenValue) < 3 or len(Pcd.TokenValue) > 10: + EdkLogger.error( + 'build', + FORMAT_INVALID, + "The format of TokenValue [%s] of PCD [%s.%s] in [%s] is invalid:" % (Pcd.TokenValue, TokenSpaceGuid, PcdCName, str(Package)), + File =self.MetaFile, Line=LineNo, + ExtraData=None + ) + try: + int (Pcd.TokenValue, 16) + except: + EdkLogger.error( + 'build', + FORMAT_INVALID, + "The format of TokenValue [%s] of PCD [%s.%s] in [%s] is invalid:" % (Pcd.TokenValue, TokenSpaceGuid, PcdCName, str(Package)), + File =self.MetaFile, Line=LineNo, + ExtraData=None + ) + + # + # Check decimal token value length and format. + # + else: + try: + TokenValueInt = int (Pcd.TokenValue, 10) + if (TokenValueInt < 0 or TokenValueInt > 4294967295): + EdkLogger.error( + 'build', + FORMAT_INVALID, + "The format of TokenValue [%s] of PCD [%s.%s] in [%s] is invalid, as a decimal it should between: 0 - 4294967295!"% (Pcd.TokenValue, TokenSpaceGuid, PcdCName, str(Package)), + File =self.MetaFile, Line=LineNo, + ExtraData=None + ) + except: + EdkLogger.error( + 'build', + FORMAT_INVALID, + "The format of TokenValue [%s] of PCD [%s.%s] in [%s] is invalid, it should be hexadecimal or decimal!"% (Pcd.TokenValue, TokenSpaceGuid, PcdCName, str(Package)), + File =self.MetaFile, Line=LineNo, + ExtraData=None + ) + Pcd.DatumType = PcdInPackage.DatumType Pcd.MaxDatumSize = PcdInPackage.MaxDatumSize Pcd.InfDefaultValue = Pcd.DefaultValue @@ -1989,12 +2086,13 @@ class InfBuildData(ModuleBuildClassObject): else: EdkLogger.error( 'build', - PARSER_ERROR, + FORMAT_INVALID, "PCD [%s.%s] in [%s] is not found in dependent packages:" % (TokenSpaceGuid, PcdCName, self.MetaFile), File =self.MetaFile, Line=LineNo, ExtraData="\t%s" % '\n\t'.join([str(P) for P in self.Packages]) ) Pcds[PcdCName, TokenSpaceGuid] = Pcd + return Pcds Arch = property(_GetArch, _SetArch) diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py index 54265952d0..84f5636414 100644 --- a/BaseTools/Source/Python/build/build.py +++ b/BaseTools/Source/Python/build/build.py @@ -999,7 +999,7 @@ class Build(): EdkLogger.error("build", FILE_DELETE_FAILURE, ExtraData=str(X)) return True - ## Rebase module image and Get function address for the inpug module list. + ## Rebase module image and Get function address for the input module list. # def _RebaseModule (self, MapBuffer, BaseAddress, ModuleList, AddrIsOffset = True, ModeIsSmm = False): if ModeIsSmm: @@ -1786,7 +1786,8 @@ def Main(): else: GlobalData.gIsWindows = False - EdkLogger.quiet(time.strftime("%H:%M:%S, %b.%d %Y ", time.localtime()) + "[%s]\n" % platform.platform()) + EdkLogger.quiet("Build environment: %s" % platform.platform()) + EdkLogger.quiet(time.strftime("Build start time: %H:%M:%S, %b.%d %Y\n", time.localtime())); ReturnCode = 0 MyBuild = None try: @@ -1918,8 +1919,9 @@ def Main(): MyBuild.BuildReport.GenerateReport(BuildDuration) MyBuild.Db.Close() EdkLogger.SetLevel(EdkLogger.QUIET) - EdkLogger.quiet("\n- %s -\n%s [%s]" % (Conclusion, time.strftime("%H:%M:%S, %b.%d %Y", time.localtime()), BuildDuration)) - + EdkLogger.quiet("\n- %s -" % Conclusion) + EdkLogger.quiet(time.strftime("Build end time: %H:%M:%S, %b.%d %Y", time.localtime())) + EdkLogger.quiet("Build total time: %s\n" % BuildDuration) return ReturnCode if __name__ == '__main__': -- 2.39.2