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

Reply via email to