Hello,
I'm working on enabling the standard clang3.7 build for MinnowMax open source
firmware. I meet an warning when use GNU ld linker to generate X64 image: "ld:
warning: section `.data' type changed to PROGBITS" as below. This warning only
appears on X64 binaries linking, and not on the i32 b
Hello,
I forked a edk2 branch to apply the LLVM compiler and tool chain technologies
(http://www.llvm.org/) on the edk2 codebase in below link. If you are also
interested in the LLVM/Clang support, please take a look. I welcome and
appreciate any feedback or contribution to this branch.
https:/
teven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: af...@apple.com [mailto:af...@apple.com]
> Sent: Tuesday, May 10, 2016 1:12 PM
> To: Shi, Steven
> Cc: edk2-devel@lists.01.org
> Subject: Re:
\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
From: af...@apple.com [mailto:af...@apple.com]
Sent: Wednesday, May 11, 2016 2:03 AM
To: Shi, Steven
Cc: edk2-devel@lists.01.org
Subject: Re: [edk2] edk2 llvm branch
On May 10, 2016, at 8:05 AM, Shi, Steven
mailto:steven@intel.com>> wr
i?id=20070
BTW, does XCODE linker have linux version? If yes, I'd like to try it to
co-work with clang 3.8 as CC compiler.
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: af...@apple.com [mailto:af...@a
are
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: af...@apple.com [mailto:af...@apple.com]
> Sent: Thursday, May 12, 2016 2:42 AM
> To: Shi, Steven
> Cc: edk2-devel@lists.01.org
> Subject: Re: [edk2] edk2 llvm branch
>
>
> > On May 11, 2016, at
-hda fat:.
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: af...@apple.com [mailto:af...@apple.com]
> Sent: Thursday, May 12, 2016 11:15 PM
> To: Shi, Steven
> Cc: edk2-devel@lists.01.org
> Subject: Re: [edk2]
Hello,
Where can I find the edk2 prior postings? The below Edk2-devel Archives link is
empty.
https://lists.01.org/pipermail/edk2-devel/
[cid:image001.png@01D1B125.4323EFF0]
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
___
, 2016 12:53 AM
To: Shi, Steven
Cc: Kinney, Michael D ; edk2-devel@lists.01.org;
Justen, Jordan L
Subject: Re: [edk2] edk2 llvm branch
On May 25, 2016, at 9:43 AM, Shi, Steven
mailto:steven@intel.com>> wrote:
Hi Andrew,
For the Clang LTO generate wrong code on Qemu X64 issue, I fo
B ?
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: af...@apple.com [mailto:af...@apple.com]
> Sent: Tuesday, May 31, 2016 1:26 AM
> To: Shi, Steven
> Cc: Kinney, Michael D ; Justen, Jordan L
> ; e
[Steven]: This is really interesting. Let me ask the Mac OS X
App default code model in LLVM community.
Thank you!
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
From: af...@apple.com<mailto:af...@apple.com> [mailto:af...@apple.com]
Sent: Tuesday, May 31, 2016
tel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: af...@apple.com [mailto:af...@apple.com]
> Sent: Tuesday, May 31, 2016 10:54 PM
> To: Shi, Steven
> Cc: edk2-devel@lists.01.org
> Subject: Re: [edk2] edk2 llvm branc
Hi Marvin,
For Clang Static Analyzer, you might look at this edk2 llvm branch.
https://github.com/shijunjing/edk2/tree/llvm
There is a new tool chain dedicated for clang scan-build checkers:
CLANGSCAN38: Base on CLANG38 to seamlessly integrate Clang scan-build analyzer
infrastructure into
Hi Andrew,
Good news! After enhance the GenFw tool, I finally enable the clang LTO build
on edk2 and pass test on the OVMF three platforms (OvmfPkgIa32.dsc,
OvmfPkgX64.dsc, OvmfPkgIa32X64.dsc) in my side . Below is the code size
comparing data between VS2015x86 and CLANGLTO38. You can see they a
Quark AcpiPlatform module cannot link successfully by CLANG38
with Oz optimization level. Add a work around to downgrade the
optimization to O1.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
QuarkPlatformPkg/Acpi/Dxe/AcpiPlatform/AcpiPlatform.inf | 4
Add support to convert missing Elf relocation types
(R_X86_64_PLT32, R_X86_64_GOTPCREL, R_X86_64_REX_GOTPCRELX)
to PeCoff, which are required by LTO image.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
BaseTools/Source/C/GenFw/Elf64Convert.c | 98 +
Use explicit CopyMem to replace compiler builtin to do the structure
values assignment.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
ShellPkg/Library/UefiShellTftpCommandLib/Tftp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
mode change 100644
LANG38 find a bug and give a warning that Ohci silicon code wrongly
use '||' as '|'.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
QuarkSocPkg/QuarkSouthCluster/Usb/Ohci/Pei/OhciReg.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
mode change 10064
Both GCC and LLVM 3.8 64bits support new variable argument (VA)
intrinsics for Microsoft ABI, enable these new VA intrinsics for
GNUC family 64bits code build. These VA intrinsics are only
permitted use in 64bits code, so not use them in 32bits code build.
The original 32bits GNU VA intrinsics has
R="/usr/bin/gcc"
-DLLVM_BINUTILS_INCDIR=/home/jshi19/binutils-2.26/include
$ make -j 5 LLVMgold The LLVMgold.so is in ~/llvm38build/lib/LLVMgold.so
Shi, Steven (7):
BaseTools: Enable three new toolchains
BaseTools: Add missing Elf relocation type for LTO build
MdePkg:
Enable three new toolchains: CLANG38, CLANGSCAN38 and GCC53.
(1)CLANG38 uses Clang3.8.0, enable LLVM Link Time Optimization (LTO)
and code size optimization flag (-Oz) by default for aggressive code
size improvement. CLANG38 X64 code is small code model + PIE.
(2)CLANGSCAN38 is based on CLANG38 to
The MRC use the memset() in the code and assume the compiler to offer
such builtin fuctions. Add work around to permit compiler add builtin
functions in this module. Also MRC mix some inline assembly,
e.g. asm("rdtsc":"=a"(tscL),"=d"(tscH)),in the C code, and CLANG38
could wrongly remove them if en
e Cran [mailto:br...@cran.org.uk]
> Sent: Wednesday, June 29, 2016 11:37 AM
> To: edk2-devel@lists.01.org
> Cc: Shi, Steven
> Subject: Segfault in GenFw when building driver with new CLANG38 toolchain
>
> After applying Steven's (cc'd) patch set and building our d
OK. How about GCC53? Can GCC53 build your driver?
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Bruce Cran [mailto:br...@cran.org.uk]
> Sent: Wednesday, June 29, 2016 12:12 PM
> To: Shi, Steven ; edk2-devel@
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Bruce Cran [mailto:br...@cran.org.uk]
> Sent: Wednesday, June 29, 2016 12:35 PM
> To: Shi, Steven ; edk2-devel@lists.01.org
> Subject: Re: [edk2] Segfault in GenFw when building
af...@apple.com [mailto:af...@apple.com]
> Sent: Wednesday, June 29, 2016 10:22 AM
> To: Gao, Liming
> Cc: Bruce Cran ; Shi, Steven ;
> edk2-devel@lists.01.org; Kinney, Michael D
> Subject: Re: [edk2] [PATCH 0/7] Introduce three new toolchains in edk2
>
>
> &g
Ok, will separate it. Thank you to let me know it.
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Wednesday, June 29, 2016 9:30 PM
> To: Shi, Steven
> Cc
, June 29, 2016 10:42 PM
> To: Shi, Steven
> Cc: edk2-devel-01 ; Gao, Liming
> ; Kinney, Michael D ;
> af...@apple.com
> Subject: Re: [edk2] [PATCH 2/7] BaseTools: Add missing Elf relocation type
> for LTO build
>
> On 29 June 2016 at 15:59, Shi, Steven wrote:
> > Ok
fix them on GCC44
as well in a separate patch later.
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Justen, Jordan L
> Sent: Thursday, June 30, 2016 5:47 AM
> To: Andrew Fish
> Cc: Shi, Steven ; edk2-devel@li
I will separate the Quark platform code cleanup work from this serial patches.
Thanks.
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Kinney, Michael D
> Sent: Thursday, June 30, 2016 2:10 AM
> To: af...@apple.com;
6 4:56 AM
> To: af...@apple.com; Shi, Steven ; Kinney, Michael D
>
> Cc: edk2-devel ; Gao, Liming
> ; Zimmer, Vincent ;
> Doran, Mark ; Mudusuru, Giri P
>
> Subject: RE: [edk2] [PATCH 4/7] QuarkPlatformPkg-AcpiPlatform:
> Downgrade the optimization to O1
>
> Andrew,
OK. I will separate this patch to 3 commits and post a public branch for them.
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Justen, Jordan L
> Sent: Thursday, June 30, 2016 4:55 AM
> To: Shi, Steven ; edk2-devel@
. Seperate GenFw update general part from x86 specific part and enhance the
PIE/PIC commit log.
4. Not set -D EFI32, but use MDE_CPU_IA32 instead.
Shi, Steven (7):
BaseTools-GenFw:Use EXE flag to check Elf section type
BaseTools-GenFw:Add new x86_64 Elf relocation types for PIC/PIE code
MdePkg
Hi Jordan,
I've separated this patch to 3 commits and post a public branch for them:
https://github.com/shijunjing/edk2/commits/review6 . Please take a look.
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Shi, St
. Seperate three toolchains to three different patches.
3. Seperate GenFw update general part from x86 specific part and enhance the
PIE/PIC commit log.
4. Not set -D EFI32, but use MDE_CPU_IA32 instead.
Shi, Steven (7):
BaseTools-GenFw:Use EXE flag to check Elf section type
BaseTools-GenFw:Add new
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Shi,
> Steven
> Sent: Friday, July 08, 2016 10:32 AM
> To: edk2-devel@lists.01.org; ard.biesheu...@linaro.org
> Cc: Kinney, Michael D ;
CLANGSCAN38 is based on CLANG38 to seamlessly integrate Clang
scan-build analyzer infrastructure into edk2 build infrastructure.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
BaseTools/Conf/build_rule.template | 7 ++-
BaseTools/Conf/tools_def.template |
Add SHF_EXECINSTR attribute flag in logic to check Elf Text and
Data section type. Also fix some typo in the code comments and
Debug strings.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
BaseTools/Source/C/GenFw/Elf64Convert.c | 10 +-
1 file chan
LANG38 uses Clang3.8.0, enable LLVM Link Time Optimization (LTO)
and code size optimization flag (-Oz) by default for aggressive code
size improvement. CLANG38 X64 code is small code model + PIE.
Test pass platforms: OVMF (OvmfPkgIa32.dsc, OvmfPkgX64.dsc).
Test compiler and linker version: LLVM 3.
Use explicit CopyMem to replace compiler builtin to do the structure
values assignment.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
Reviewed-by: Jaben Carsey
---
ShellPkg/Library/UefiShellTftpCommandLib/Tftp.c | 2 +-
1 file changed, 1 insertion(+), 1 dele
Both GCC and LLVM 3.8 64bits support new variable argument (VA)
intrinsics for Microsoft ABI, enable these new VA intrinsics for
GNUC family 64bits code build. These VA intrinsics are only
permitted use in 64bits code, so not use them in 32bits code build.
The original 32bits GNU VA intrinsics has
GCC5 enable GCC Link Time Optimization (LTO) and code size
optimization (–Os) for aggressive code size improvement.
GCC5 X64 code is small code model + position independent
code (PIE).
Test pass platforms: OVMF (OvmfPkgIa32.dsc, OvmfPkgX64.dsc) and
Quark (Quark.dsc).
Test compiler and linker versi
. Seperate three toolchains to three different patches.
3. Seperate GenFw update general part from x86 specific part and enhance the
PIE/PIC commit log.
4. Not set -D EFI32, but use MDE_CPU_IA32 instead.
Shi, Steven (7):
BaseTools-GenFw:Use EXE flag to check Elf section type
BaseTools-GenFw:Add new
Add support to convert new Elf relocation types
(R_X86_64_PLT32, R_X86_64_GOTPCREL, R_X86_64_GOTPCRELX,
R_X86_64_REX_GOTPCRELX) to PeCoff, which are required by
position independent code (PIC) built Elf image.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
-Original Message-
> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Friday, July 08, 2016 5:19 PM
> To: Shi, Steven
> Cc: edk2-devel-01 ; Gao, Liming
> ; af...@apple.com; Justen, Jordan L
> ; Kinney, Michael D
>
> Subject: Re: [PATCH v2 1/7] Bas
*(.got .got.*)
/*
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Friday, July 08, 2016 9:52 PM
> To: Shi, Steven
> Cc: edk2-devel-01 ; Gao, Liming
>
Hi Ard,
>
> What I am still missing here is an explanation of the
> benefit/necessity of using PIE. What does it give us that we don't
> already have? How is it different from simply linking a shared ELF
> object and running GenFw on that?
>
[Steven]:
Using PIE is necessary, at least for x8
DEBUG X64 DxeCore.efi 138KB | 273KB| 138KB | 137KB
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
Sent: Monday, July 11, 2016 10:54 PM
To: Shi, Steven
Cc: af...@apple.com; edk2-dev
From: Ronny Chevalier [mailto:chevalier.ro...@gmail.com]
> Sent: Thursday, July 07, 2016 6:15 PM
> To: Shi, Steven
> Cc: edk2-devel@lists.01.org; Gao, Liming ; Kinney,
> Michael D ; af...@apple.com
> Subject: Re: [edk2] [PATCH 1/7] BaseTools: Enable three new toolchains
>
>
line RELEASE_GCC48 (i.e., using -0O and the large
> code
> model) is
>
> SECFV [11%Full] 212992 total, 25392 used, 187600 free
> FVMAIN_COMPACT [61%Full] 1753088 total, 1076488 used, 676600 free
> DXEFV [54%Full] 10485760 total, 5743440 used, 4742320 free
> PEIFV [21%Full] 917
d Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Wednesday, July 13, 2016 11:06 PM
> To: Andrew Fish
> Cc: Shi, Steven ; edk2-devel-01 de...@lists.01.org>; Gao, Liming ; Justen, Jordan L
> ; Kinney, Michael D
>
> Subject: Re: [PATCH v2 1/7] BaseTools-GenFw:Use EXE
G/PeiCore.dll'
failed
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Thursday, July 14, 2016 9:16 PM
> To: Shi, Steven ; Zhu, Yonghong
> ; Gao,
If PIE can generate smaller code than PIC, why not use PIE? Why “We should only
enable it if we must” ?
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
Sent: Saturday, July 16, 2016 10:45 PM
To: Shi, Steven
iesheu...@linaro.org]
> Sent: Saturday, July 16, 2016 10:48 PM
> To: Shi, Steven
> Cc: Zhu, Yonghong ; Gao, Liming
> ; Kinney, Michael D ;
> Justen, Jordan L ; ler...@redhat.com;
> af...@apple.com; edk2-devel@lists.01.org
> Subject: Re: [PATCH 4/5] MdePkg X64: force 'hidden&
lto:ard.biesheu...@linaro.org]
> Sent: Monday, July 18, 2016 1:26 PM
> To: edk2-devel@lists.01.org; ler...@redhat.com; af...@apple.com; Gao,
> Liming ; Shi, Steven ; Zhu,
> Yonghong ; Kinney, Michael D
> ; Justen, Jordan L
> Cc: Ard Biesheuvel
> Subject: [RFC PATCH] BaseTools
> > diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c
> b/BaseTools/Source/C/GenFw/Elf64Convert.c
> > index 7c838f3..fc241ab 100755
> > --- a/BaseTools/Source/C/GenFw/Elf64Convert.c
> > +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c
> > @@ -755,6 +755,11 @@ WriteSections64 (
> > // Deter
> OK. Could we do that in a separate patch?
[Steven]: Yes. We could separate it in a new patch.
> >> Is this necessary? I would expect the GOT entry itself to be already
> >> covered by a R_X86_64_64 relocation, so I don't think there is a need
> >> to emit a EFI_IMAGE_REL_BASED_DIR64 PE/COFF relo
> >
> > That was not my point. With your code, how many
> > EFI_IMAGE_REL_BASED_DIR64 fixups are added to the .reloc section for
> > the GOT entry of 'n'?
> >
> > int n;
> > int f () { return n; }
> > int g () { return n; }
> > int h () { return n; }
[Steven]: If the above global " n " need GOTPCR
> >>
> >> I am also concerned about the GOTPCRELX/REX_GOTPCRELX relocations.
> >> Reading the x86_64 ABI docs, it appears that these may refer to
> >> instructions that have been modified by the linker. In that case, how
> >> do we deal with the relocation? Also, according to the doc, mov
> >> inst
> >>
> >> The fact that it works does not make it safe. Having multiple fixups
> >> for the same symbol in the .reloc section is a problem, and so is
> >> reapplying GOTPCRELX to places where the original instruction has been
> >> replaced by the linker.
> >>
> > [Steven]: I still don't understand
> On 1 August 2016 at 09:19, Shi, Steven
> mailto:steven@intel.com>> wrote:
> >> >>
> >> >> The fact that it works does not make it safe. Having multiple fixups
> >> >> for the same symbol in the .reloc section is a problem, an
> On 1 August 2016 at 09:54, Shi, Steven wrote:
> >> On 1 August 2016 at 09:19, Shi, Steven
> mailto:steven@intel.com>> wrote:
> >> >> >>
> >> >> >> The fact that it works does not make it safe. Having multiple fixups
> >&
Ard,
Where can I check out your v5 patch?
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Monday, August 01, 2016 4:01 PM
> To: Shi, Steven ; Zhu, Yonghong
>
>
> CoffAddFixup() must be used for absolute symbol references only. These
> instructions contain relative symbol references, which are
> recalculated in WriteSections64().
>
> The only absolute symbol reference is the GOT entry for 'n', and your
> code (in WriteRelocations64()) calculates the ad
Ard,
Thank you to check in GCC5!
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Tuesday, August 02, 2016 5:03 PM
> To: Shi, Steven ; Zhu, Yonghong
>
Cran,
We will send CLANG38 patch to support X86, and the new CLANG38 patch will base
on current GCC5 implementation. FYI.
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Beh
Use explicit CopyMem to replace compiler builtin to do the structure
values assignment. This change is needed to pass CLANG38 build.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
Reviewed-by: Jaben Carsey
---
ShellPkg/Library/UefiShellTftpCommandLib/Tftp.c |
Add EFIAPI in CatPrint library function. Every function which uses
variable list need explicit use EFIAPI to force use MS ABI. This change
is needed to pass CLANG38 build.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
ShellPkg/Library/UefiShellCommandLib/C
This adds support for LLVM 3.8.x in LTO mode for IA32 and X64.
CLANG38 enable LLVM Link Time Optimization (LTO) and code size
optimization flag (-Oz) by default for aggressive code size
improvement. CLANG38 X64 code is small code model + PIE.
CLANG LTO needs PIE in link flags to generate PIE code
$ qemu-system-x86_64.exe -bios OVMF.fd -serial file:serial.log -m 4096
-hda fat:.
Shi, Steven (4):
BaseTools-Conf:Remove short dash in ar flag for LLVM
BaseTools-Conf:Introduce CLANG38 new toolchain for x86
ShellPkg-UefiShellTftpCommandLib: Replace compiler builtin
ShellPkg
Both binutils ar and LLVM ar support "cr", but LLVM ar doens't
support add "-" in the flags, and llvm-ar cannot accept "-cr".
So remove the short dash "-" to make llvm archives work.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
BaseTools/Conf/build_rule.t
Hello Ard,
>
> Hello Steven,
>
> On 3 August 2016 at 08:48, Shi, Steven wrote:
> > This adds support for LLVM 3.8.x in LTO mode for IA32 and X64.
> > CLANG38 enable LLVM Link Time Optimization (LTO) and code size
> > optimization flag (-Oz) by default for aggres
Use explicit CopyMem to replace compiler builtin to do the structure
values assignment. This change is needed to pass CLANG38 build.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
Reviewed-by: Jaben Carsey
---
ShellPkg/Library/UefiShellTftpCommandLib/Tftp.c |
Add EFIAPI in CatPrint library function. Every function which uses
variable list need explicit use EFIAPI to force use MS ABI. This change
is needed to pass CLANG38 build.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
ShellPkg/Library/UefiShellCommandLib/C
Both binutils ar and LLVM ar support "cr", but LLVM ar doens't
support add "-" in the flags, and llvm-ar cannot accept "-cr".
So remove the short dash "-" to make llvm archives work.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
Reviewed-by: Ard Biesheuvel
---
This adds support for LLVM 3.8.x in LTO mode for IA32 and X64.
CLANG38 enable LLVM Link Time Optimization (LTO) and code size
optimization flag (-Oz) by default for aggressive code size
improvement. CLANG38 X64 code is small code model + PIE.
CLANG LTO needs PIE in link flags to generate PIE code
os OVMF.fd -serial file:serial.log -m 4096 -hda
fat:.
Shi, Steven (4):
BaseTools-Conf:Remove short dash in ar flag for LLVM
BaseTools-Conf:Introduce CLANG38 new toolchain for x86
ShellPkg-UefiShellTftpCommandLib: Replace compiler builtin
ShellPkg-UefiShellCommandLib: Add EFIAPI in VA_Li
\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Thursday, August 04, 2016 4:55 AM
> To: Justen, Jordan L
> Cc: Shi, Steven ; Kinney, Michael D
> ; edk2-devel-01 ;
> af...@a
\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Thursday, August 04, 2016 4:46 PM
> To: Shi, Steven ; Zhu, Yonghong
> ; Gao, Liming ; Justen,
> Jordan L ; edk2-devel@lists.01.org
OK, it is. But it is a bit not very clear.
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
> Sent: Thursday, August 04, 2016 4:55 PM
> To: Shi, Steven
Hi Ard,
CLANG38 has a build failure as below for this patch. This failure is because
the CLANG38 enable the LTO through LLVMgold.so linker plugin, but the
LLVMgold.so plugin cannot accept the clang -Oz cc flag as build option. After
CC_FLAG is added in the link rule, the LLVMgold.so plugin repo
>
> Could you try putting -O2 in the DLINK2_FLAGS for Clang 38? (i.e., so
> that the last -O option the linker sees is not -Oz)
>
Ard,
Add -O2 or -O3 in DLINK2_FLAGS works as below, thank your suggestion!
"/home/jshi19/clang38/bin/clang" -o
/home/jshi19/edk2-fork/Build/OvmfX64/RELEASE_CLAN
CLANG38 build fail after CC_FLAG is added in the link rule.
This failure is because the CLANG38 enable the LTO through LLVMgold.so
linker plugin, but the LLVMgold.so plugin cannot accept the clang -Oz
CC flag as build option. After CC_FLAG is added in the link rule,
the LLVMgold.so plugin reports l
Hi Cran,
I build OVMF GCC X64 image, can boot Qemu into shell with below commands. I can
enter shell, reconnect -r, exit to setup, and the vga display looks good to me.
What build command did you use?
build -t GCC5 -a X64 -p OvmfPkg/OvmfPkgX64.dsc -n 5 -b DEBUG
-DDEBUG_ON_SERIAL_PORT
qemu-s
CLANG38 build fail after CC_FLAG is added in the link rule.
This failure is because the CLANG38 enable the LTO through LLVMgold.so
linker plugin, but the LLVMgold.so plugin cannot accept the clang -Oz
CC flag as build option. After CC_FLAG is added in the link rule,
the LLVMgold.so plugin reports l
August 19, 2016 10:47 PM
> To: Shi, Steven ; Michael Zimmermann
>
> Cc: edk2-devel-01
> Subject: Re: [edk2] OVMF not booting when built with GCC5 toolset?
>
> On 8/19/2016 8:35 AM, Bruce Cran wrote:
> > When I built and ran it using the same commands (with the exception of
to copy it into the PE/COFF binary, regardless
> > of whether we inspect its contents or not.
> >
> > --
> > Ard.
> >
> > >
> > > Thanks
> > > Liming
> > >> -Original Message-
> > >> From: Ard Biesheuvel [mailto:ard.bie
PM
> To: edk2-devel@lists.01.org; Gao, Liming ; Shi,
> Steven ; Zhu, Yonghong
> Cc: Ard Biesheuvel
> Subject: [PATCH] BaseTools/GenFw: ignore dynamic RELA sections
>
> When building PIE (ET_DYN) executables, an additional RELA section is
> emitted (in addition to the per-sec
Hi Cran,
This issue might be a GCC6 LTO regression bug, and I've filed a bug to GCC
community as below. Please don't use the GCC6 with edk2 GCC5 toolchain for now,
the GCC5 (gcc-5) should works.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77341
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=5
It's confirmed it is a GCC6 regression bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70955
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
From: Shi, Steven
Sent: Tuesday, August 23, 2016 4:10 PM
To: 'Bruce Cran' ; 'Michael Zimmermann
/show_bug.cgi?id=70955
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
From: Shi, Steven
Sent: Tuesday, August 23, 2016 4:10 PM
To: 'Bruce Cran' mailto:br...@cran.org.uk>>; 'Michael
Zimmermann' mailto:sigmaepsilo...@gmail.com>>
Cc: '
Hi Laszlo,
I wonder if you could offer a Ubuntu version wiki for the
Testing-SMM-with-QEMU,-KVM-and-libvirt? I'm trying to port your steps to my
Ubuntu 16.04, but meet lots of troubles. The Ubuntu apt-get virsh version is
too old to support smm feature in your ovmf.fedora.q35.template, and I ha
to:ler...@redhat.com]
> Sent: Tuesday, February 21, 2017 6:18 PM
> To: Shi, Steven ; edk2-devel-01 de...@ml01.01.org>
> Cc: Tian, Feng ; Justen, Jordan L
> ; Yao, Jiewen ; Kinney,
> Michael D ; Fan, Jeff ; Zeng,
> Star
> Subject: Re: [edk2] Testing SMM with QEMU, KVM and libvi
Reviewed-by: Steven Shi
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Zeng, Star
> Sent: Monday, June 19, 2017 6:24 PM
> To: edk2-devel@lists.01.org
> Cc: Shi, Steven ; Yao, Jiewen ;
> Gao, Liming ; Zen
Reviewed-by: Steven Shi
Thanks
Steven Shi
> -Original Message-
> From: Ni, Ruiyu
> Sent: Wednesday, July 26, 2017 4:22 PM
> To: edk2-devel@lists.01.org
> Cc: Shi, Steven
> Subject: [PATCH] ShellPkg: Avoid buffer out-of-bound access
>
> PathSize is the number o
Hi Laszlo,
I'm trying to reproduce your boot failure with OVMF in my Ubuntu system, but
not succeed. My GCC was built from GCC main trunk code in 20170601, and my ld
linker is version 2.28. Could you try the ld 2.28 with your gcc-7.1 and check
whether it works in your side? Or, do you know wh
ntUnitsWrapper;
//
// Get the BSP's data of GDT and IDT
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Laszlo Ersek [mailto:ler...@redhat.com]
> Sent: Friday, August 11, 2017 7:18 PM
> To: Shi, Steven ; edk2-dev
(GCC48_ARM_ASM_FLAGS)
Steven Shi
Intel\SSG\STO\UEFI Firmware
Tel: +86 021-61166522
iNet: 821-6522
> -Original Message-
> From: Laszlo Ersek [mailto:ler...@redhat.com]
> Sent: Tuesday, August 15, 2017 11:46 PM
> To: Shi, Steven
> Cc: edk2-devel-01 ; Alex Will
From: "Shi, Steven"
Add LLVM39 and LLVM40 support in CLANG38 toolchain
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi
---
BaseTools/Conf/tools_def.template | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Base
Hi Laszlo,
I happen to have a question about how to correctly get the system memory size
on Qemu.
In the QemuInitializeRam() of OvmfPkg\PlatformPei\MemDetect.c, I add debug info
as below to trace the GetSystemMemorySizeBelow4gb() and
GetSystemMemorySizeAbove4gb() output. But the output results
1 - 100 of 123 matches
Mail list logo