summaryrefslogtreecommitdiff
path: root/BaseTools/ChangeLog.txt
blob: 7465051eb5fb6acd6f2ea90db9aa9fd4a001bc2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
##########################################################################################
!!!!!!!!!!!!!!!!!               Notes for this ChangeLog.txt             !!!!!!!!!!!!!!!!!

This log file is used to record two kinds of important information:
 a) "Non-Compatible Changes": all non-compatible changes should be recorded. These info
    will help the package user to merge this package; and some non-compatible changes
    can also be added into release notes as news features when we release this package.
    Normally Non-Compatible Changes contains the following types:
      1) Package's external services were changed/updated
      2) Package's common .h file is renamed, deleted, or the file path is changed.
      3) The definition of package's common data structure is changed
      ...

 b) "Important Compatible Changes": some important compatible changes can aslo be recorded
    in this file, and we can add these updating into release notes when we release this
    package.

Non-Compatible and Compatible example format:
==========================================================================================
EDK_0010: Non-Compatible: owner

      Class_HFile: PPI A of MdePkg has been removed.

        Code Change :
        1) Removed the .h file: MdePkg\Include\Ppi\A.h

        Possible Impacts:
        1) All modules that used this PPI A should be updated.

==========================================================================================
EDK_0000: Compatible: owner

      Class_BuildTool: with the EDK_0000 build.exe, the build performance is enhanced great.

        Code Change :
        1) BaseTools\Bin\Win32\build.exe

!!!!!!!!!!!!!!!!!!                     End of Notes                     !!!!!!!!!!!!!!!!!!

##########################################################################################

##########################################################################################
##########       Revision number of tools source code                           ##########
    BaseTools/Bin/Win32/build.exe
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Autogen
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/build
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/CommonDataClass
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/GenFds
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Workspace

    BaseTools/Bin/Win32/GenFds.exe
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/CommonDataClass
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/GenFds
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Workspace

    BaseTools/Bin/Win32/GenDepex.exe
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/AutoGen
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common

    BaseTools/Bin/Win32/Trim.exe
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Trim
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common

    BaseTools/Bin/Win32/MigrationMsa2Inf.exe
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/MigrationMsa2Inf
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common

    BaseTools/Bin/Win32/TargetTool.exe
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/TargetTool
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/Common

    BaseTools/Bin/Win32/Spd2Dec.exe
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/spd2dec

    BaseTools/Bin/Win32/Fpd2Dsc.exe
        r1655 https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/Source/Python/fpd2dsc

==========================================================================================
                       Binary Tool checkin log
==========================================================================================
EDK_7529: Non-Compatible: jwang36

      Class_BuildTool:
        1) Use FAMILY defined in *_TAGNAME_*_*_FAMILY as the toolchain family
        2) Force file name case check in Windows
        3) Consolidate file/path operations
        4) Support binary file type in build_rule.txt
        5) Generate $(FILE_TYPES) macro only when it's used in build_rule.txt
        6) Use build_rule.txt to solve customized build for USER_DEFINED module
        7) Re-design TemplateString to make it faster
        8) Improve performance of Trim tool
        9) Fix undefined variables issue
        10) Fix HSD202142 and HSD202144

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/build.exe
        2) /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
        3) /trunk/edk2/BaseTools/Bin/Win32/Trim.exe
        4) /trunk/edk2/BaseTools/Conf/build_rule.template

        Possible Impacts:
        1) To build Nt32Pkg.dsc correctly, the local version build_rule.txt must
           updated with the change in new build_rule.template.
        2) The case of file path must be the same as in file system, or the build
           will break.

EDK_7159: Non-Compatible: jwang36

      Class_BuildTool:
        1) Re-fine and fully test the mechanism of getting over the long command
           line limitation
        2) Change the -s option of build from "SpawnMode" to be "SilentMode"
        3) Change the prototype of PeiCoreEntryPoint in AutoGen-ed code
        4) Remove CalcDeps module since it's no longer needed.
        5) Remove "-k", "-g" and "-l" switches from build
        6) Remove MULTIPLE_THREAD in target.template. Use MAX_CONCURRENT_THREAD_NUMBER
           to get the same functionality.

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/build.exe
        1) /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe

        Possible Impacts:
        1) The local version build_rule.txt must be updated with changes in build_rule.template
        2) Use "build -s" to pass "-s" switch to "make" tool to do silent "make".
           To suppress all message from stdout, use "build -q" instead.
        3) To get over the long command line limitation, use "@$(<FILE_TYPE>S_LIST)"
           in the place of ${src} for those commands encountering such kind of
           problem.

EDK_7009: Non-Compatible: jwang36

      Class_BuildTool:
        1) Search value of Guid/Protocol/PPI in inf file only in the same category in dec file.
        2) Pass all files in a module's directory to StrGather for R8 modules.

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/build.exe

        Possible Impacts:
        1) Those inf files in which the PPI/Protocol/Guid are put in incorrect
           section will encounter build break.

==========================================================================================
EDK_6930: Non-Compatible: jwang36

      Class_BuildTool:
        1) Separate the AutoGen code for PCDs between module and its library instances.
           Only macros for module's PCDs will be put in AutoGen.h. Others will be put
           in AutoGen.c. This is intended to catch missed PCDs in inf file more easily.
        2) For better compatibile between C standards or C compiler, add type cast for
           PCD constants in AutoGen.h according to the PCD datum type.
        3) Add incremental generation capability for FV in GenFds tool.

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/build.exe
        2) /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe

        Possible Impacts:
        1) If there're PCDs used in a module but not declared in the module's inf file,
           and occasionally they are declared in the library instances, there must be
           a build break. Adding necessary PCDs declarations in the module's inf file
           will solve it.

==========================================================================================
EDK_6828: Compatible: jwang36

      Class_BuildTool:
        1) Add a feature to allow override tools option via "==" in metafile.
        2) Remove the AutoGen.c generation for R8 module without unicode file.


        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/build.exe

==========================================================================================
EDK_6772: Non-Compatible: jwang36

      Class_BuildTool:
        1) Add /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT) in EBC_CC_FLAGS to ensure
           correct R8's module entry point for EBC arch.

        Code Change :
        1) /trunk/edk2/BaseTools/Conf/tools_def.template

        Possible Impacts:
           The local version of tools_def.txt must be updated with the change in
           tools_def.template.

==========================================================================================
EDK_6762: Non-Compatible: lgao4

      Class_BuildTool:
        1) Declare entry point, constructor into AutoGen.h
        2) Create <ModuleName>StrDefs.h to contain uni code string ID.


        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/build.exe
        2) /trunk/edk2/BaseTools/Conf/tools_def.template

        Possible Impacts:
           The local version of tools_def.txt must be updated with change in
           tools_def.tempalte.

==========================================================================================
EDK_6671: Compatible: qwang12

      Class_BuildTool:
        1) StrGather (Build.exe) in compatible mode add a Framework Package Header
           to replace the original ¡°ArrayLength¡± generated in the output.
        2) VfrCompiler in compatible mode add a Framework Package Header to replace
           the original ¡°ArrayLength¡± generated in the output.

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/VfrCompile.exe
        2) /trunk/edk2/BaseTools/Bin/Win32/build.exe


==========================================================================================
EDK_6666: Compatible: lgao4

      Class_BuildTool:
        1) Enhance GenFv WriteFvMap function to print basic debug information
           (entrypoint, baseaddress, .text, .data section base address)  when no
           map can be referred.
        2) Enhance GenFv tool to create the non PI file system firmware volume.
        3) Update VfrComile
           - Set the first framework var store name to ¡°Setup¡±
           - Support DEFAULT and MANUFACTURING for framework CheckBox flags value

        Code Change :
           /trunk/edk2/BaseTools/Bin/Win32/GenFv.exe
           /trunk/edk2/BaseTools/Bin/Win32/VfrCompile.exe

==========================================================================================
EDK_6640: Compatible: jwang36

      Class_BuildTool:
        1) Change file line format of AutoGen files to native style.

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/build.exe

==========================================================================================
EDK_6613: Non-Compatible: qwang12

      Class_BuildTool:
        1) Generate data for ConfigAccess.ExtractConfig() impl

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/VfrCompile.exe

==========================================================================================
EDK_6490: Compatible: jwang36

      Class_BuildTool:
        1) Add ImportTool.bat script
        2) Add more error check for Trim.exe


        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/ImportTool.bat
        2) /trunk/edk2/BaseTools/Bin/Win32/Trim.exe

==========================================================================================
EDK_6452: Compatible: jwang36

      Class_BuildTool:
        1) Allow the flags of tools not defined tools_def.txt
        2) Add BUILD as internal tool to pass compatible mode of unicode to build tool.
        3) Add support of [Depex.common.<ModuleType>] in inf file
        4) Add more optimization, especially for architecture protocols, in GeDepex tool
        5) Fix the generation of _gPeimRevision and _gDxeRevision global variables in
           AutoGen.c according to new MdePkg spec.
        6) Change the header file of DxeSmmeEntryPoint.h to UefiDriverEntryPoint.h
           in AutoGen.c since it's no longer exist.
        7) Fix $(PROCESSOR) macro replacement issue in [nmake] section

        Code Change :
           /trunk/edk2/BaseTools/Bin/Win32/GenDepex.exe
           /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
           /trunk/edk2/BaseTools/Bin/Win32/build.exe

==========================================================================================
EDK_6289: Compatible: jwang36

      Class_BuildTool:
        1) Performance improvement on startup of build.exe

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
        2) /trunk/edk2/BaseTools/Bin/Win32/build.exe

==========================================================================================
EDK_6269: Compatible: jwang36

      Class_BuildTool:
        1) Bug fixes
        2) Improve the screen output when in quiet build mode
        3) Add "tbuild" target in makefile in order to not created directories in
           makefile. Instead, they will be created in build tool. This will give
           better build performance, especially in incremental build.
        4) Add space check in WORKSPACE and OUTPUT_DIRECTORY (in dsc file) directory
           name and give error message if found.

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/build.exe

==========================================================================================
EDK_5762: Compatible: jlin16

      Class_BuildTool:
        1) Enhance the tool to build R8 module via ECP.

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
        2) /trunk/edk2/BaseTools/Bin/Win32/build.exe

==========================================================================================
EDK_5635: Compatible: lgao4

      Class_BuildTool:
        1) Enhance GenFv tool to print Fv Size and Length, and Get module map by
           module pdb pointer and get module guid by module FFS guid.
        2) And Enhance VfrCompiler to handle framework vfr file, and print more
           debug information into .lst file.

        Code Change :
        1) /trunk/edk2/BaseTools/Bin/Win32/GenFv.exe
        2) /trunk/edk2/BaseTools/Bin/Win32/VfrCompile.exe

==========================================================================================
EDK_5634: Non-Compatible: jwang36

      Class_BuildTool:
        1) Enhance the format of build_rule.txt to allow module type and arch information.
        2) Enhance Trim to convert ASL style of include to C style of include
        3) Enhance Trim to convert some EDK coding convention to EDK2 ECP convention
        4) Add warning message when encountering unrecognized content in DSC/DEC/INF File
        5) Enhance the GenDepex to ignore everything outside DEPENDENCY_STANT and DEPENDENCY_END in dxs file

        Code Change :
           /trunk/edk2/BaseTools/Bin/Win32/GenDepex.exe
           /trunk/edk2/BaseTools/Bin/Win32/Trim.exe
           /trunk/edk2/BaseTools/Bin/Win32/build.exe
           /trunk/edk2/BaseTools/Conf/build_rule.template
           /trunk/edk2/BaseTools/Conf/tools_def.template

        Possible Impacts:
           The local version tools_def.txt and build_rule.txt must be updated with
           the changes in tools_def.template and build_rule.template respectively.

==========================================================================================
EDK_5193: Compatible: jwang36

      Class_BuildTool:
        1) Add incremental support in GenFds

        Code Change :
          /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
          /trunk/edk2/BaseTools/Bin/Win32/build.exe

==========================================================================================
EDK_5186: Compatible: jwang36

      Class_BuildTool:
        1) Add explicit banner for pass/fail indication of build
        2) Fix the issue which cause error message from FDF parser won't be printed out.
        3) Fix the error message format of FDF parser
        4) Change the exit code of build tool from always 1 to error code, if error occurred

        Code Change :
           /trunk/edk2/BaseTools/Bin/Win32/GenFds.exe
           /trunk/edk2/BaseTools/Bin/Win32/build.exe

==========================================================================================
EDK_4971: Compatible: lgao4

      Class_BuildTool:
        1) Enhance GenFw tool to always zero .pdata section for PE32 and PE32+ image in
           order to improve compression ratio for them.

        Code Change :
           /trunk/edk2/BaseTools/Bin/Win32/GenFw.exe

==========================================================================================
EDK_4918: Compatible: lgao4

      Class_BuildTool:
        1) Correct Error Message format for these C tools according to the Tool Design Spec.

        Code Change :
           /trunk/edk2/BaseTools/Bin/Win32/EfiLdrImage.exe
           /trunk/edk2/BaseTools/Bin/Win32/GenFv.exe
           /trunk/edk2/BaseTools/Bin/Win32/TianoCompress.exe
           /trunk/edk2/BaseTools/Bin/Win32/VfrCompile.exe
           /trunk/edk2/BaseTools/Bin/Win32/VolInfo.exe

==========================================================================================
EDK_4859: Non-Compatible: jwang36

      Class_BuildTool:
        1) Changed VfrCompile.exe to be UEFI HII compatible
        2) Improved R8 module build
        3) Added binary file build
        4) Removed "extern int __make_me_compile_correctly" in AutoGen code for
           R9 modules, but kept for R8 modules
        5) Enfored more error check and introduced a optimization for GenDepex
        6) Added BUILD_RULE_CONF in target.txt to specify build rules file
        7) Rebuilt all Python tools with Python2.5.2

        Code Change :
        1) build.exe
        2) VfrCompile.exe
        3) GenFds.exe
        4) GenDepex.exe
        5) target.template


        Possible Impacts:
        1) All EFI code needs to be UEFI HII compatible.
        2) Conf/target.txt needs to be replaced by new target.template

==========================================================================================
EDK_4251: Non-Compatible: jwang36

      Class_BuildTool:
        1) Changed MYTOOLS to use Visual Studio Team Suite for IA32 and X64. IPF is still use WINDKK.
        2) Re-generated build.exe and GenFds.exe to incorporate new changes of build tools
        3) Enabled multi-thread build mode by default (can be disabled by using "-n 0" option or changing
           MULTIPLE_THREAD in target.txt to Disabled)
        4) Fixed an incorrect command (no leading tab/space) generated in top level Makefile.

        Code Change :
        1) BaseTools/Bin/Win32/GenFds.exe
        2) BaseTools/Bin/Win32/build.exe
        3) BaseTools/Conf/target.template
        4) BaseTools/Conf/tools_def.template

        Possible Impacts:
        1) Install Visual Studio 2005 Team Suite Edition.

==========================================================================================
EDK_4190: Non-Compatible: jwang36

      Class_BuildTool:
        1) Added support of using PCD default value from DEC/INF file if one
           PCD is declared in INF file but not found in DSC file.
        2) Added support of breaking build if no library instance is found for
           a library class.

        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe

        Possible Impacts:
        1) All packages/platforms/modules, which have wrong library classes
           declared or have no library instance for some library classes, must be
           changed to make sure each library class declared in INF file has
           corresponding library instance.

==========================================================================================
EDK_4096: Non-Compatible: jwang36

      Class_BuildTool:
        1) Removed the calling of vsvars32.bat in edksetup.bat, unless
           "--nt32" switch is used.
        2) Added MAKE command in tools_def.txt. This is used to locate where
           the nmake.exe or make.exe is because it will not be in PATH any more.
        3) Removed the calling of vsvars32.bat in toolsetup.bat.
        4) Solved the hang issue of build.exe when error occurred or Ctrl+C is
           pressed.
        5) Passed "-v/-d/-q" command line option to GenFds.exe in makefile if
           it's used by build.exe.

        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe
        3) BaseTools/Conf/tools_def.template
        4) BaseTools/toolsetup.bat
        5) edksetup.bat

        Possible Impacts:
        1) Nt32Pkg build needs to run vsvars32.bat before edksetup.bat or run
           edksetup.bat with "--nt32" option, like

           edksetup.bat --nt32 newbuild

        2) $(WORKSPACE)/Conf/tools_def.txt must be deleted before running
           edksetup.bat because of new tools_def.template. Otherwise the
           build.exe cannot find the nmake.exe to call.

==========================================================================================
EDK_3947: Compatible: jwang36

      Class_BuildTool:
        1) Improved spawn mode (multi-thread) build performance (build -s)
        2) Changed the error/debug/warning message format
        3) Added "--log" command line option to support storing log in file

        Code Change :
        1) BaseTools/Bin/Win32/build.exe


==========================================================================================
EDK_3936: Compatible: klu2

      Class_BuildTool:
        1) The first parameter of PEIM's entry point in autogen.c has been changed to
           EFI_PEI_FILE_HANDLE

        Code Change :
        1) BaseTools/Bin/Win32/build.exe

==========================================================================================
EDK_3926: Compatible: jlin16

      Class_BuildTool:
        1) Added support of Capsule generation from FDF file.

        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe

        Possible Impacts:
        1) To generate capsule, insert [Capsule] section after [FV] sections and specifying
        what FV will be put into capsule, For example:
        [Capsule.Fob]
        CAPSULE_GUID = 3B6686BD-0D76-4030-B70E-B5519E2FC5A0
        CAPSULE_FLAG = PersistAcrossReset
        FV = BiosUpdate

==========================================================================================
EDK_3911: Compatible: jlin16

      Class_BuildTool:
        1) Added support of Apriori file generation from FDF file.
        2) Added support of INF that describes binary files to put binary into FV.
        3) Fixed single FV/FD generation error when specifying -i/-r option in GenFds.


        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe

        Possible Impacts:
        1) To generate Apriori file in FV, insert APRIORI statement just before the INF or
        FILE statement list of the FV, For example:
        APRIORI PEI {
          INF  MdeModulePkg/Universal/PCD/Pei/Pcd.inf
          FILE PEIM = B7A5041A-78BA-49e3-B73B-54C757811FB6 {
                  SECTION PE32 = MyBinPkg\bin\ia32\PeimAfterPcd.efi
          }
          INF  IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf
        }
        2) To add binary file described by INF file into FV, only insert the INF statement
        into the INF statements list of that FV, like this:

        INF RuleOverride=Test MdeModulePkg/Logo/Logo.inf

        Specifying how to process the binary file by defining corresponding Rule like this:
        [Rule.Common.Base.Test]
         FILE FREEFORM = $(NAMED_GUID) {
           COMPRESS PI_STD {
             GUIDED {
                RAW BIN |.bmp
             }
           }
         }

==========================================================================================
EDK_3832: Non-Compatible: jwang36

      Class_BuildTool:
        1) Added support of MACRO in tools_def.txt
        2) Merged PATH and NAME attributes in tools_def.txt
        3) Changed DPATH attribute to DLL in tools_def.txt
        4) Removed SPATH attribute in tools_def.txt
        5) Added support for library instance without library class
        6) Fixed the issue in Trim tool which zero file will be generated if the trimmed
           file has not line directive

        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe
        3) BaseTools/Bin/Win32/Trim.exe
        4) BaseTools/Conf/tools_def.template

        Possible Impacts:
        1) All platforms and modules build

==========================================================================================
EDK_3801: Compatible: jwang36

      Class_BuildConfiguration: Added makefile as dependency for "Dynamic-Library-File" to
        solve the incremental build issue occurred when there's library changes

        Code Change :
        1) BaseTools/Conf/build_rule.template

==========================================================================================
EDK_3800: Compatible: lgao4

      Class_BuildTool: Update EfiRom tool to fix checksum and PCI3.0 data structure

        Code Change :
        1) BaseTools/Bin/Win32/EfiRom.exe

==========================================================================================
EDK_3795: Compatible: htao

      Class_BuildTool: GenVtf tool open/write file with "r+b"/"w+b" attribute, but this cause
                       the RO attribute of the file changed. Fix this issue by changing
                       "r+b"/"w+b" to "rb"/"wb".

        Code Change :
        1) BaseTools/Bin/Win32/GenVtf.exe

==========================================================================================
EDK_3791: Compatible: jlin16

      Class_BuildTool:
        1) use '#' to indicate flash generation progress.
        2) use -v to switch on detail output messages.

        Code Change :
        1) BaseTools/Bin/Win32/GenFds.exe

==========================================================================================
EDK_3789: Non-Compatible: lgao4

      Class_BuildTool: support new Rules format and PCD format defined in FDF file

        Code Change :
        1) BaseTools/Bin/Win32/build.exe
        2) BaseTools/Bin/Win32/GenFds.exe

        Possible Impacts:
        1) All platform's FDF file, if any, must be changed to new format.
          a) PCD format is changed from old PcdName to new PcdTokenSpaceGuid.PcdName,
             for example PcdWinNtFdBaseAddress in old FDF file will be replaced
             by gEfiNt32PkgTokenSpaceGuid.PcdWinNtFdBaseAddres.
          b) Rule format adds binary file type and file postfix name support,
             and doesn't require the full file path. Examples for Peim and AcpiTable module:
          Old Peim Rule:
          [Rule.Common.PEIM]
          FILE PEIM = $(NAMED_GUID) {
             PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).Depex
             PE32                      $(INF_OUTPUT)/$(MODULE_NAME).efi
             UI Optional               $(MODULE_NAME)
             VERSION Optional          BUILD_NUM=$(BUILD_NUMBER) $(INF_VERSION)
          }
          New Peim Rule:
          [Rule.Common.PEIM]
            FILE PEIM = $(NAMED_GUID) {
               PEI_DEPEX PEI_DEPEX Optional        |.Depex
               PE32      PE32                      |.efi
               UI       STRING="$(MODULE_NAME)" Optional
               VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
            }

          Old AcpiTable Rule:
          [Rule.Common.DXE_DRIVER.ACPITABLE]
            FILE FREEFORM = $(NAMED_GUID) {
              RAW                    $(INF_OUTPUT)/Madt.acpi
              RAW                    $(INF_OUTPUT)/Fadt.acpi
              RAW                    $(INF_OUTPUT)/Facs.acpi
              RAW                    $(INF_OUTPUT)/Spcr.acpi
              RAW                    $(INF_OUTPUT)/Dsdt.aml
            }
          New AcpiTable Rule:
          [Rule.Common.DXE_DRIVER.ACPITABLE]
            FILE FREEFORM = $(NAMED_GUID) {
              RAW ACPI |.acpi
              RAW ASL  |.aml
            }

==========================================================================================
EDK_3786: Compatible: vjeff

      Class_BuildConfiguration:
        1) Redirect ICC_IA32_*_PATH from C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
           to C:\Program Files\Intel\Compiler\C++\9.1\IA32\Bin.
        2) Add ICC X64 definition to enable ICC X64 build.

        Code Change :
        1) BaseTools/Conf/tools_def.template

==========================================================================================
EDK_3785: Non-Compatible: klu2

      Class_BuildTool: Upgrade the format of EFI_PEIM_ENTRY_POINT to
                       EFI_PEIM_ENTRY_POINT2 according to PI specification.


        Code Change :
        1) BaseTools/Bin/Win32/build.exe

        Possible Impacts:
        1) All modules build


==========================================================================================
EDK_3780: Non-Compatible: qhuang8

      Class_MigrationTool: Update the syntax of PCD section.
                           Update the syntax of binary INF file
                           The generated Extended INF file should follow Extended INF spec 0.44

        Code Change :
        1) BaseTools/Bin/Win32/MigrationMsa2Inf.exe

        Possible Impacts:
        1) New module migrated from old R9


==========================================================================================
EDK_3766: Non-Compatible: lgao4

      Class_BuildConfiguration: Update Acpi Asl file Build rule to remove trim step.

        Code Change :
        1) Conf/build_rule.template

        Possible Impacts:
        1) Platform with ACPI module. Acpi module needs to set /EP preprocessor compiler option
        for APP_FLAGS in module inf to override the default /E option defined in tools_def.txt file.