On 2014-11-07 20:03:09, Andrew Fish wrote:
> > On Nov 7, 2014, at 7:43 PM, Jordan Justen <jordan.l.jus...@intel.com> wrote:
> > On 2014-11-07 15:53:55, Andrew Fish wrote:
> >> I was having lunch today with Mike Kinney, and Vincent Zimmer
> >> (unfortunately no Tanqueray involved) and I think I’ve distilled the
> >> issue down to a new feature that we need from the build system.  I
> >> want to be able to have an Xcode (or VC++, or Intel compiler) target
> >> that uses .S (.asm) if both .S (.asm) and .nasm are present. I was
> >> want to be able to have an Xcode target that uses .nasm if both the
> >> .S and .nasm are present.  Mike was going to go talk to the
> >> BaseTools maintainers and figure out the best way to do this.
> > 
> > Hmm. If we are considering a BaseTools change, then one thought I had
> > was let a toolchain (or maybe family) select a preference list for
> > certain extensions.
> > 
> > *_GCC49_*_*_EXTENSIONS = nasm S
> > *_VS2013_*_*_EXTENSIONS = nasm asm
> > *_XCODE5_*_*_EXTENSIONS = S nasm
> > 
> > I don't see rules like this in tools_def, so I'm not sure it is
> > supported, but it would be nice too:
> > GCC:*_*_*_*_EXTENSIONS = nasm S
> > 
> > Basically this would only be used if 2 source files have the same base
> > name. In that case, the extension listed first would be used.
> > 
> > This would still allow XCODE to build modules that had .nasm
> > only. But, for modules where a .S is available, then NASM wouldn't be
> > required.
> > 
> 
> That is an interesting idea! Much less impact than doing it in the
> INF file. Not to mention the BUILDRULEFAMILY is more about the
> backend.
> 
> I’m not sure I like EXTENSIONS as the names, but then agent the edk2
> is the poster child for it is hard to name things…. But then again
> maybe it is the more future proof concept?

I'm not sure of a good name here. EXTORDER, EXTSEARCH and
EXTPREFERENCE where some other (not great) thoughts.

> I do think you are getting to the root of the issue. The BaseTools
> was never designed to deal with a case where there were multiple
> options for what file extension to use for a file type for a
> target. Adding a “universal assembler” does introduce this class of
> challenge.
> 
> I’m not saying this is the right solution, but we should ask the
> question should we tie the override to the build_rule.template file
> sections vs. trying to override the contents of these actions. That
> is just a good thing for all of use to think about. For example are
> we overriding .S or Assembly-Code-File?

Yeah. I see that build_rule has some interaction. But, I'm not sure
exactly what mechanism causes '.asm' files to get ignored when
building with GCC toolchains. It is certainly convenient. :)

Anyway, I thought that something like this would make it more
explicit. (Yet, not be too burdensome to configure.)

-Jordan

------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to