Hello Sergey,
How about trying a sample build environment: get file gcc-lto.7z from http://notabs.org/uefi/tmp/ The archive was built this way: 1) Get standard EDK2 2) Apply the patch from here: http://sourceforge.net/projects/edk2developertoolsforwindows/files/Patches/Link%20Time%20Optimization/ 3) Run build-python.bat to rebuild build.exe. 4) Run build.bat > buildlog.txt 2>&1 The result is shell.efi for IA32, X64, and AARCH64 built with GCC49 LTO. Unzip the archive and run build.bat. All 3 shell builds should complete. I deleted the build directory and other temps to reduce archive size. Compilers and all other required build tools are included. Thanks, Scott From: Sergey Isakov [mailto:isakov...@bk.ru] Sent: Friday, November 07, 2014 01:52 PM To: edk2-devel@lists.sourceforge.net Subject: Re: [edk2] Status of gcc link time optimization for EDK2 use Comments online On 07 нояб. 2014 г., at 22:20, Jordan Justen <jordan.l.jus...@intel.com <mailto:jordan.l.jus...@intel.com> > wrote: On 2014-11-07 07:33:24, Scott Duplichan wrote: The summary of the 4 changes needed is not detailed enough for easy application. Instead, apply this patch: http://sourceforge.net/projects/edk2developertoolsforwindows/files/Patches/ Link%20Time%20Optimization/ Even with these patches I can’t compile with -flto. /Users/sergey/src/edk2/MdePkg/Library/UefiApplicationEntryPoint/ApplicationEntryPoint.c:48: undefined reference to `_gUefiDriverRevision' /Users/sergey/src/edk2/MdePkg/Library/UefiApplicationEntryPoint/ApplicationEntryPoint.c:60: undefined reference to `ProcessLibraryConstructorList' /Users/sergey/src/edk2/MdePkg/Library/UefiApplicationEntryPoint/ApplicationEntryPoint.c:65: undefined reference to `ProcessModuleEntryPointList' /Users/sergey/src/edk2/MdePkg/Library/UefiApplicationEntryPoint/ApplicationEntryPoint.c:70: undefined reference to `ProcessLibraryDestructorList' collect2: error: ld returned 1 exit status These symbols stripped? Patches should be contributed using the process documented in BaseTools/Contributions.txt. Otherwise, we cannot use the contribution. The work looks promising though! :) Other feedback: What is up with all the environment variables? It seems to be to allow GCC49 to be used with/without lto... Instead, I think we should do one of these: * Convert GCC49 to LTO only * Wait for GCC50 to enable LTO * Add GCC49LTO I think it may be like conditional compilation ./build.sh -D WITH_LTO By default no. -Jordan From: Sergey Isakov [mailto:isakov...@bk.ru] Sent: Friday, November 07, 2014 07:06 AM To: edk2-devel@lists.sourceforge.net <mailto:edk2-devel@lists.sourceforge.net> Subject: Re: [edk2] Status of gcc link time optimization for EDK2 use It is very interesting and I hope someone can apply this to EDK2. I failed. I created gcc-4.9.2 for linux-gnu target with --enable-plugin. And binutils with --enable-plugins. Success. But option -flto brakes building. This advice --------- 2) Use gcc to launch the ld instead of invoking ld directly ----------- failed because of build options for ld ----- x86_64-linux-gnu-gcc: error: unrecognized command line option '-Map' x86_64-linux-gnu-gcc: error: unrecognized command line option '-melf_x86_64' x86_64-linux-gnu-gcc: error: unrecognized command line option '--oformat= elf64-x86-64' x86_64-linux-gnu-gcc: error: unrecognized command line option '-(' ----- and so on. Using ld I got another problems like error adding symbols: Bad value As well as losing _ModuleEntryPoint or .text section at all. I pass waiting for a good news. On 07.11.2014, at 9:05, Scott Duplichan wrote: http://notabs.org/uefi/gcc-lto.htm Thanks, Scott ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net <mailto:edk2-devel@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net <mailto:edk2-devel@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
_______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel