On 11/07/14 21:29, Scott Duplichan wrote:
> Jordan Justen [mailto:jordan.l.jus...@intel.com] wrote:
> 
> ]On 2014-11-07 08:16:23, Scott Duplichan wrote:
> ]> These are all good answers. I can't come up with a strong argument for the
> ]> mixed sysv/ms ABI. Maybe the next step is to test -mabi=ms using several 
> gcc
> ]> versions (I think -mabi=ms was introduced with gcc 4.5). If that works, I 
> could
> ]> submit a patch and see what happens..
> ]
> ]I mentioned a reason in this thread a few days back. But, we should
> ]look into -mabi=ms for RELEASE builds.
> ]
> ]-Jordan
> 
> I agree, the approach in your previous email is a good one. Prototyping
> asm functions to enforce calling convention is always a good idea. In theory
> an IA32 build could be done with a Microsoft compiler with option /Gr
> (__fastcall calling convention) and it would work. This would not be possible
> if asm function calling convention information were missing. If I make this
> patch, I will add the gcc -mabi=ms to the release build.
> 
> Now for rants...
> 1) Why do so many developers never want to test release builds? To me, code
> is not clean until both debug and release builds work smoothly.

In my experience, release (== optimized) builds are practically
unsupportable. Even the Linux kernel disables some optimizations that
make the disassembly unreadable. Unless stuff is power and/or
performance critical, I prefer if the code does exactly what I tell it
to do. (Case in point: the -Os bug with recursion + ellipsis. It works
with -O0. Compilers have bugs.)

*All* software is chock full of bugs, and having to figure out what goes
wrong at a customer's site is a question of "when", not "if". They
either won't be able, or willing, to attempt to reproduce the issue with
a debug build, or they will try and the bug might disappear.

Consequently, since I'm not keen on shipping anything but a debug build,
I don't feel like putting many resources into release builds.

> 2) Why is the NOOPT build missing from virtually every DSC file in EDK2?

I guess in OVMF we never needed it?

> The EDK NOOPT build is most like what developers call a DEBUG build. It is
> the only one setup for source level debugging, at least for Microsoft tool
> chains.

I don't use Microsoft tool chains. And source level debugging with gdb
is hardly possible even on DEBUG; you have to jump through incredible
hoops. NOOPT doesn't solve anything for Linux-based developers & users
of OVMF.

> The Duet DSC files are missing both RELEASE and NOOPT options.

It's an emulator platform, isn't it? You probably won't use it in
production.

Thanks
Laszlo

------------------------------------------------------------------------------
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://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to