The problem with the uninitialized at line 382 is actually a correct
error. There is a problem with two header files. gdtoaimp.h and gdtoa.h -
they should be using int32_t and uint32_t for the Long and ULong defines
and not EFI_ types because under X64 builds the EFI_ types are 64bit
numbers which throws off the routines which are accessing the two 32 bit
values in the 64bit double types (word0 and word1 macros for example).
On Sun, Feb 3, 2013 at 1:40 AM, David F. <[email protected]> wrote:
> i was also getting some weird results (vs2008x64) on link with missing
> external _fltused - if I defined it in the app it would complain that it's
> already defined (errno.c), if I /force:multiple it still couldn't find
> _fltused, so I went to dump the .obj file (isnand_ieee754.obj) it kept
> referring to but couldn't because the tool said it couldn't dump whole
> program optimization, so I changed tools to disable whole program
> optimization and went to rebuild after clean, now the build failed because
> warning that in gdtoa.c eps was being used uninitialized at line 382, so I
> changed tools to not use /WX (treat warning as errors to at least get it
> built) and then it completed. The point of this is of course to make the
> next stdlib to handle builds without requiring /Zc:wchar_t and without
> whole program optimization.
>
>
> On Sat, Feb 2, 2013 at 11:43 PM, David F. <[email protected]> wrote:
>
>> Thanks that will be great - and I've noticed the way stdlib is currently
>> implemented, it conflicts with trying to build with a .cpp module. Things
>> like /Zc:wchar_t conflicts with other things that specifically need
>> /Zc:wchar_t- (#error in EfiCdefs.h) and then attempting to use <wchar.h>
>> causes issues because it doesn't define the wchar_t type.
>>
>>
>> On Fri, Feb 1, 2013 at 5:15 PM, Mcdaniel, Daryl <[email protected]
>> > wrote:
>>
>>> Currently, StdLib is only for building applications which run under
>>> the Shell. StdLib also constructs an environment, as specified by ISO/IEC
>>> 9899:199409 (the C Language Specification), to support the signal(),
>>> abort(), exit handlers, and environment variables (NOT EFI variables).
>>> Currently, this environment is monolithic and, even though dynamically
>>> generated, a bit too large for drivers.****
>>>
>>> ** **
>>>
>>> A version suitable for writing device drivers as well as OS loaders
>>> should be available later this year.****
>>>
>>> ** **
>>>
>>> Please examine the ReadMe.txt files in StdLib and AppPkg. Also, the
>>> AppPkg.dsc file and StdLib.dsc files are intended to be used as examples
>>> that can be copied to become the basis of new projects. There are numerous
>>> comments pertaining to use with StdLib in them. The applications in AppPkg
>>> are examples of several types of applications with varying complexity.**
>>> **
>>>
>>> ** **
>>>
>>> Daryl McDaniel****
>>>
>>> ** **
>>>
>>> *From:* David F. [mailto:[email protected]]
>>> *Sent:* Friday, February 01, 2013 4:02 PM
>>> *To:* [email protected]
>>> *Subject:* Re: [edk2] Adding printf via StdLib****
>>>
>>> ** **
>>>
>>> Okay, I found some of the examples in AppPkg and got my hello to work by
>>> setting the ENTRY_POINT to ShellCEntryLib and the other stuff below. But
>>> then looking at what ShellCEntryLib does is use a protocol
>>> gEfiShellParametersProtocolGuid which is setup by the Shell when it
>>> executes the application. So does that mean you can only use StdLib
>>> through the Shell or is it simply that the sample apps used the shell to
>>> take care of command line arguments and the rest of StdLib doesn't rely on
>>> anything from the shell?
>>>
>>> The Other Stuff mentioned above:
>>> [Packages]
>>> StdLib/StdLib.dec
>>> MdePkg/MdePkg.dec
>>> ShellPkg/ShellPkg.dec
>>>
>>> [LibraryClasses]
>>> LibC
>>> LibStdio
>>> DevShell****
>>>
>>> ** **
>>>
>>> On Fri, Feb 1, 2013 at 11:06 AM, Andrew Fish <[email protected]> wrote:***
>>> *
>>>
>>> ** **
>>>
>>> On Feb 1, 2013, at 10:46 AM, "David F." <[email protected]> wrote:****
>>>
>>>
>>>
>>> ****
>>>
>>> Is that an optional thing some packages may include, some type of .inc
>>> file? Anyway, did that and that leads to:****
>>>
>>> ** **
>>>
>>> Yes that .inc is just connivence, and not common. ****
>>>
>>>
>>>
>>> ****
>>>
>>> c:\edk2\testpkg\testpkg.dsc(...): error 4000: Instance of library class
>>> [HiiLib] is not found
>>> in [c:\edk2\ShellPkg\Library\UefiShellLib\UefiShellLib.inf] [X64]
>>> consumed by module [c:\edk2\testpkg\hello\hello.inf]
>>>
>>> ****
>>>
>>> But I didn't see any .inc file in the EdkCompatibilityPkg folder which
>>> is the only place I found HiiLib via:****
>>>
>>> ** **
>>>
>>> Don't use the EdkCompatiblityPkg it is for backwards compatibility with
>>> EDK code, not new code.****
>>>
>>> ** **
>>>
>>> C:\edk2>dir hiilib /s
>>> Volume in drive C is Windows 7
>>> Volume Serial Number is 5233-4330
>>>
>>> Directory of
>>> C:\edk2\EdkCompatibilityPkg\Foundation\Library\EdkIIGlueLib\Library
>>>
>>> 01/31/2013 06:37 PM <DIR> HiiLib
>>> 0 File(s) 0 bytes****
>>>
>>> ** **
>>>
>>> ** **
>>>
>>> You need to search .INF files for a LIBRARY_CLASS = HiiLib statement in
>>> the [Defines] section. ****
>>>
>>>
>>> https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
>>> ****
>>>
>>> ** **
>>>
>>> A library class is a name (HiiLib) that is associated with a public
>>> include file (
>>> https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/MdeModulePkg/Include/Library/HiiLib.h
>>> ).****
>>>
>>> ** **
>>>
>>> There can be a large number of instances of the lib (
>>> https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf).
>>> The instance is the implementation of the lib. ****
>>>
>>> ** **
>>>
>>> The DSC file maps the library class to the library implementation that
>>> you want to use when you compile your application/driver. ****
>>>
>>> ** **
>>>
>>> Thanks,****
>>>
>>> ** **
>>>
>>> Andrew Fish****
>>>
>>>
>>>
>>> ****
>>>
>>> ** **
>>>
>>> On Fri, Feb 1, 2013 at 10:16 AM, Tim Lewis <[email protected]> wrote:
>>> ****
>>>
>>> David –****
>>>
>>> ****
>>>
>>> The easiest way is just to put****
>>>
>>> ****
>>>
>>> !include StdLib\StdLib.inc****
>>>
>>> ****
>>>
>>> At the end of your testpkg.dsc****
>>>
>>> ****
>>>
>>> ****
>>>
>>> ****
>>>
>>> *From:* David F. [mailto:[email protected]]
>>> *Sent:* Friday, February 01, 2013 10:11 AM
>>> *To:* [email protected]
>>> *Subject:* [edk2] Adding printf via StdLib****
>>>
>>> ****
>>>
>>> Hi,****
>>>
>>> Still learning the build system - I used the driver wizard to create a
>>> new package and driver, modified to be application, and used the
>>> SystemTable to print out some text. That all worked fine, so my next step
>>> is to use printf instead. So I added Stdio|StdLib/LibC/Stdio/Stdio.inf to
>>> the .dsc file and in the .inf file added StdLib/StdLib.dec under
>>> [Packages] and Stdio under [LibraryClasses], changed code to use
>>> printf(L"text"), then tried to build but it stops with
>>>
>>> c:\edk2\testpkg\testpkg.dsc(...): error 4000: Instance of library class
>>> [LibC] is not found
>>> in [c:\edk2\StdLib\LibC\Stdio\Stdio.inf] [X64]
>>> consumed by module [c:\edk2\testpkg\hello\hello.inf]****
>>>
>>> Do I have to somehow figure out all the different library classes and
>>> add them to the .dsc file, or can't it just find itself??
>>>
>>> TIA!!****
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Everyone hates slow websites. So do we.
>>> Make your web apps faster with AppDynamics
>>> Download AppDynamics Lite for free today:
>>> http://p.sf.net/sfu/appdyn_d2d_jan
>>> _______________________________________________
>>> edk2-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/edk2-devel****
>>>
>>> ** **
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Everyone hates slow websites. So do we.
>>> Make your web apps faster with AppDynamics
>>> Download AppDynamics Lite for free today:
>>>
>>> http://p.sf.net/sfu/appdyn_d2d_jan_______________________________________________
>>> edk2-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/edk2-devel****
>>>
>>> ** **
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Everyone hates slow websites. So do we.
>>> Make your web apps faster with AppDynamics
>>> Download AppDynamics Lite for free today:
>>> http://p.sf.net/sfu/appdyn_d2d_jan
>>> _______________________________________________
>>> edk2-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/edk2-devel****
>>>
>>> ** **
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Everyone hates slow websites. So do we.
>>> Make your web apps faster with AppDynamics
>>> Download AppDynamics Lite for free today:
>>> http://p.sf.net/sfu/appdyn_d2d_jan
>>> _______________________________________________
>>> edk2-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>>>
>>>
>>
>
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel