Jordan Justen [mailto:[email protected]] wrote:
]On 2014-10-24 02:56:46, Gao, Liming wrote:
]> Jordan:
]> Before deprecate those tool chains, I still want to make them work
]> with the updated Build Tools.
]
]I think CYGGCC was able to build in (our internal) build pool.
]
]I'm not saying that CYGGCC was useful, or easy to setup, but just that
]I don't think it was totally broken. :)
]
]> If there is no one to use them, I think we can remove them. Could
]> you raise your proposal in this mail list to collect more
]> feedbacks?
]
]Well, I can't see the purpose for the ELFGCC toolchain. It was only
]used with UnixPkg, which is now deprecated. So I tried to remove it
]August 2013, but this was rejected.
]
]Anyway, I think we should consider adding
]BaseTools/Conf/tools_def.deprecated for older unused and unsupported
]toolchains. (Of course, we could just delete them too, because source
]control keeps them available in the history.)
]
]So, I think ELFGCC is a clear candidate for deprecation.
]
]Regarding CYGGCC, I think it should also be deprecated in favor of
]running GCC44-GCC49 under a full cygwin environment. (bash shell, not
]cmd.exe)
I tried $ build -p ShellPkg/ShellPkg.dsc -b RELEASE -t GCC49 -a X64
from the Cygwin bash shell and fails because the Cygwin linker only
makes PE images:
ld: unrecognised emulation mode: elf_x86_64
Supported emulations: i386pep i386pe
Thanks,
Scott
]
]-Jordan
]
> -----Original Message-----
> From: Jordan Justen [mailto:[email protected]]
> Sent: Friday, October 24, 2014 8:27 AM
> To: [email protected]
> Subject: Re: [edk2] EDK2 Developer Tools for Windows
>
> On Thu, Oct 23, 2014 at 6:46 AM, Gao, Liming <[email protected]> wrote:
> > Scott:
> > Yes. GenMake.py change is also required. But, this change will impact
> > CYGGCC tool chain. So, CYGGCC Make path should be changed to
> > DEF(CYGWIN_BIN)\make.exe instead of DEF(MS_VS_BIN)\nmake.exe.
>
> Can we change CYGGCC like this?
>
> I basically think CYGGCC is pointless, but I thought that the strange fact
> that it used nmake was one of the main characteristics of it.
>
> And, if we can change a toolchain so drastically, why can't we deprecate
> toolchains? (For example, I think we should just deprecate CYGGCC and
> ELFGCC...)
>
> -Jordan
>
> > Next, could you create the full patch and send it for review?
> >
> > Thanks
> > Liming
> > -----Original Message-----
> > From: Scott Duplichan [mailto:[email protected]]
> > Sent: Wednesday, October 22, 2014 12:04 PM
> > To: [email protected]
> > Subject: Re: [edk2] EDK2 Developer Tools for Windows
> >
> > Hello Liming,
> >
> > Ah, yes. Why didn't I think of that! I retested on Windows and Linux using
> > your patch below and it all passes. The GenMake.py patch and the
> > corresponding update of build.exe are still needed.
> >
> > Thanks,
> > Scott
> >
> > -----Original Message-----
> > From: Gao, Liming [mailto:[email protected]]
> > Sent: Tuesday, October 21, 2014 10:21 PM
> > To: [email protected]
> > Subject: Re: [edk2] EDK2 Developer Tools for Windows
> >
> > Scott:
> > Could we configure GCC49_DLL like below to resolve this issue?
> >
> > set GCC49_DLL=D:\edk2build ools\gcc491-x86\dll;
> > D:\edk2build ools\gcc491-x86\bin
> >
> > Thanks
> > Liming
> > -----Original Message-----
> > From: Scott Duplichan [mailto:[email protected]]
> > Sent: Wednesday, October 22, 2014 3:28 AM
> > To: [email protected]
> > Subject: Re: [edk2] EDK2 Developer Tools for Windows
> >
> > Hello Liming,
> >
> > The build_rule.template part of this revised patch looks good. It removes
> > the need for the non-ipf symrename echo work around, and makes the build
> > output easier to look at.
> >
> > The new tools_def.template patch almost works. I get an echo fail for
> > Windows hosted ARM/AARCH64 builds:
> > "echo" objcopy not needed for
> > d:\edk2build\edk2\Build\Shell\RELEASE_GCC49\ARM\ShellPkg\Application\S
> > hell\Shell\DEBUG\Shell.dll '"echo"' is not recognized as an internal
> > or external command.
> >
> > One solution would be to treat Windows hosted builds of ARM/AARCH64 same as
> > x86: let it invoke objcopy with no flags.
> > Here is the reason the echo.exe in the gcc bin directory is no longer
> > invoked: When the build system tries to invoke "echo", it adds only the gcc
> > dll directory (*_GCC49_*_*_DLL) to the path. It does not add the gcc bin
> > directory to the path. The original patch solves this problem by 'abusing'
> > the purpose of *_GCC49_*_*_DLL and putting both DLL and BIN paths there.
> > Other solutions are putting echo.exe in the DLL directory (confusing), or
> > in the pre-existing path, or in BaseTools\Bin\Win32. But these methods add
> > extra steps when setting up the build environment.
> >
> > IA32 X64 ARM ARCH64
> > Windows host pass pass fail fail
> > Linux host pass pass
> >
> > Here are the commands I used for testing on Windows:
> >
> > cd /d D:\edk2build\edk2
> > Edk2Setup.bat
> > set NASM_PREFIX=D:\edk2build ools\nasm211\
> > set GCC49_BIN=D:\edk2build ools\gcc491-x86\bin\
> > set GCC49_DLL=D:\edk2build ools\gcc491-x86\dll\
> > set GCC49_ARM_PREFIX=D:\edk2build ools\gcc491-arm\bin\
> > set GCC49_AARCH64_PREFIX=D:\edk2build ools\gcc491-aarch64\bin\
> > build.exe -p ShellPkg\ShellPkg.dsc -b RELEASE -t GCC49 -n 16 -a IA32
> > build.exe -p ShellPkg\ShellPkg.dsc -b RELEASE -t GCC49 -n 16 -a X64
> > build.exe -p ShellPkg\ShellPkg.dsc -b RELEASE -t GCC49 -n 16 -a ARM
> > build.exe -p ShellPkg\ShellPkg.dsc -b RELEASE -t GCC49 -n 16 -a
> > AARCH64
> >
> > Though I didn't test Linux hosted ARM/AARCH64 builds, they should still
> > work.
> >
> > Thanks,
> > Scott
> >
> > -----Original Message-----
> > From: Gao, Liming [mailto:[email protected]]
> > Sent: Tuesday, October 21, 2014 04:27 AM
> > To: [email protected]
> > Subject: Re: [edk2] EDK2 Developer Tools for Windows
> >
> > Scott:
> > Update the patch for BaseTools/Conf files.
> > 1. Update build_rule.template to add the specific rule for IPF arch.
> > Then, the specific echo is not required.
> > 2. Update tools_def.template to configure GCC49_BIN and GCC49_DLL. It is
> > the compatible change.
> >
> > Index: build_rule.template
> > ===================================================================
> > --- build_rule.template (revision 16124)
> > +++ build_rule.template (working copy)
> > @@ -131,12 +131,34 @@
> > <Command.GCC, Command.RVCT>
> > # For RVCTCYGWIN CC_FLAGS must be first to work around pathing
> > issues
> > "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}
> > - "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst}
> >
> > <Command.ARMGCC, Command.ARMLINUXGCC, command.XCODE>
> > "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}
> >
> > +[C-Code-File.COMMON.IPF]
> > + <InputFile>
> > + ?.c
> > + ?.C
> > + ?.cc
> > + ?.CC
> > + ?.cpp
> > + ?.Cpp
> > + ?.CPP
> >
> > + <ExtraDependency>
> > + $(MAKE_FILE)
> > +
> > + <OutputFile>
> > + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
> > +
> > + <Command.MSFT, Command.INTEL>
> > + "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src}
> > +
> > + <Command.GCC, Command.RVCT>
> > + # For RVCTCYGWIN CC_FLAGS must be first to work around pathing
> > issues
> > + "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}
> > + "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst}
> > +
> > [C-Header-File]
> > <InputFile>
> > *.h, *.H
> > Index: tools_def.template
> > ===================================================================
> > --- tools_def.template (revision 16124)
> > +++ tools_def.template (working copy)
> > @@ -182,8 +182,8 @@
> > DEFINE GCC48_IA32_PREFIX = /usr/bin/
> > DEFINE GCC48_X64_PREFIX = /usr/bin/
> >
> > -DEFINE GCC49_IA32_PREFIX = /usr/bin/
> > -DEFINE GCC49_X64_PREFIX = /usr/bin/
> > +DEFINE GCC49_IA32_PREFIX = ENV(GCC49_BIN)
> > +DEFINE GCC49_X64_PREFIX = ENV(GCC49_BIN)
> >
> > DEFINE UNIX_IASL_BIN = ENV(IASL_PREFIX)iasl
> > DEFINE WIN_ASL_BIN_DIR = C:\ASL
> > @@ -4489,7 +4489,8 @@
> >
> > ####################################################################################
> > *_GCC49_*_*_FAMILY = GCC
> >
> > -*_GCC49_*_MAKE_PATH = make
> > +*_GCC49_*_MAKE_PATH = DEF(GCC49_IA32_PREFIX)make
> > +*_GCC49_*_*_DLL = ENV(GCC49_DLL)
> > *_GCC49_*_ASL_PATH = DEF(UNIX_IASL_BIN)
> >
> > *_GCC49_*_PP_FLAGS = DEF(GCC_PP_FLAGS)
> >
> > Thanks
> > Liming
> > -----Original Message-----
> > From: Gao, Liming [mailto:[email protected]]
> > Sent: Tuesday, October 21, 2014 4:22 PM
> > To: [email protected]
> > Subject: Re: [edk2] EDK2 Developer Tools for Windows
> >
> > Scott:
> > I will download them and try again.
> >
> > For the patch, I provide another compatible version in previous mail.
> > Have you any comment for it?
> >
> > Linux user doesn't need to set GCC49_BIN, GCC49_DLL env, because /usr/bin/
> > is the default system PATH. Windows user need to set GCC49_BIN, GCC49_DLL
> > and IASL_PREFIX env to use this tool chain.
> > Index: Conf/tools_def.template
> > ===================================================================
> > --- Conf/tools_def.template (revision 16124)
> > +++ Conf/tools_def.template (working copy)
> > @@ -182,8 +182,8 @@
> > DEFINE GCC48_IA32_PREFIX = /usr/bin/
> > DEFINE GCC48_X64_PREFIX = /usr/bin/
> >
> > -DEFINE GCC49_IA32_PREFIX = /usr/bin/
> > -DEFINE GCC49_X64_PREFIX = /usr/bin/
> > +DEFINE GCC49_IA32_PREFIX = ENV(GCC49_BIN)
> > +DEFINE GCC49_X64_PREFIX = ENV(GCC49_BIN)
> >
> > -*_GCC49_*_MAKE_PATH = make
> > +*_GCC49_*_MAKE_PATH = DEF(GCC49_BIN)make
> > +*_GCC49_*_*_DLL = DEF(GCC49_DLL)
> > *_GCC49_*_ASL_PATH = DEF(UNIX_IASL_BIN)
> >
> > Thanks
> > Liming
> > -----Original Message-----
> > From: Scott Duplichan [mailto:[email protected]]
> > Sent: Tuesday, October 21, 2014 1:14 PM
> > To: [email protected]
> > Subject: [edk2] EDK2 Developer Tools for Windows
> >
> > Here are Windows hosted gcc tool chains for EDK2 builds:
> >
> > https://sourceforge.net/projects/edk2developertoolsforwindows/files/
> >
> > I will add more readme files tomorrow.
> >
> > The tools build IA32, X64, IPF, ARM, and AARCH64 from Windows. X64 builds
> > are well tested. I have not yet boot tested IA32 builds but plan to. I
> > don't have a way to boot test IPF, ARM, and AARCH64 builds.
> >
> > Only gcc 4.9.1 tool chains are uploaded. Older gcc versions can be built if
> > needed. A patch is included to add support for IA32, X64, ARM, and AARCH64.
> > If there is any interest in IPF it can be added too.
> >
> > This patch "breaks" non-Windows builds. The fix is to execute:
> >
> > export GCC49_X86=/usr
> >
> > .. before building. I think logic needs to be added to edksetup.sh to set
> > GCC49_X86 if it is not already set. Linux guys, what is the best way?
> >
> > Thanks,
> > Scott
> >
> >
> >
> > ----------------------------------------------------------------------
> > -------- Comprehensive Server Monitoring with Site24x7.
> > Monitor 10 servers for $9/Month.
> > Get alerted through email, SMS, voice calls or mobile push notifications.
> > Take corrective actions from your mobile device.
> > http://p.sf.net/sfu/Zoho
> > _______________________________________________
> > edk2-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/edk2-devel
> >
> > ----------------------------------------------------------------------
> > -------- Comprehensive Server Monitoring with Site24x7.
> > Monitor 10 servers for $9/Month.
> > Get alerted through email, SMS, voice calls or mobile push notifications.
> > Take corrective actions from your mobile device.
> > http://p.sf.net/sfu/Zoho
> > _______________________________________________
> > edk2-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/edk2-devel
> >
> > ----------------------------------------------------------------------
> > -------- Comprehensive Server Monitoring with Site24x7.
> > Monitor 10 servers for $9/Month.
> > Get alerted through email, SMS, voice calls or mobile push notifications.
> > Take corrective actions from your mobile device.
> > http://p.sf.net/sfu/Zoho
> > _______________________________________________
> > edk2-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/edk2-devel
> >
> >
> > ----------------------------------------------------------------------
> > -------- Comprehensive Server Monitoring with Site24x7.
> > Monitor 10 servers for $9/Month.
> > Get alerted through email, SMS, voice calls or mobile push notifications.
> > Take corrective actions from your mobile device.
> > http://p.sf.net/sfu/Zoho
> > _______________________________________________
> > edk2-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/edk2-devel
> >
> > ----------------------------------------------------------------------
> > -------- Comprehensive Server Monitoring with Site24x7.
> > Monitor 10 servers for $9/Month.
> > Get alerted through email, SMS, voice calls or mobile push notifications.
> > Take corrective actions from your mobile device.
> > http://p.sf.net/sfu/Zoho
> > _______________________________________________
> > edk2-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/edk2-devel
> >
> >
> > ----------------------------------------------------------------------
> > -------- Comprehensive Server Monitoring with Site24x7.
> > Monitor 10 servers for $9/Month.
> > Get alerted through email, SMS, voice calls or mobile push notifications.
> > Take corrective actions from your mobile device.
> > http://p.sf.net/sfu/Zoho
> > _______________________________________________
> > edk2-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/edk2-devel
> >
> > ----------------------------------------------------------------------
> > -------- _______________________________________________
> > edk2-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
> ------------------------------------------------------------------------------
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
> ------------------------------------------------------------------------------
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel