Hi all, I am trying to get started with EDK2 development and I'd like to report some difficulties I had and am having.
If any of you can point to some way to fix or even better way of doing anything, I'd appreciate. I am willing to use a plain Ubuntu 12.04 64bits as development platform as it comes with GCC 4.6 which seems to be well supported by the EDK2 and BaseTools. But here comes to me the first question: which (if any) are the recommended (default) platform for development? I guess it is using Windows with VS since the configuration comes with all parameters set to use it. But I'd like to know If there is any 'better supported' Linux platform (distro, distro version+gcc version). The Project Wiki mentions Ubuntu 9.10, 10.10 and 10.04, and GCC 4.4, but doesn't recommend any. For instance, I followed this documentation: http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Using_EDK_II_with_Native_GCC_4.4 Moving on, as I want to play with network connections, I built my own OVMF with the Intel's E1000 Network drivers successfully using the sources from EDK2 trunk. I already could run qemu with network support (using tap + bridge with host physical interface) and use ping.efi (from the EDK2 Toolkit) against devices on my network, also no problems besides the latency being a bit high (>400ms, from the host I get less than 1ms). Then I started building some applications to test running in the environment. I've built the MdeModulePkg and could run some of them. But when I tried to build AppPkg I got the following error: $ build -t GCC46 -a X64 -p AppPkg/AppPkg.dsc [...] edk2/StdLib/LibC/Containers/Queues/Fifo.c:508:27: error: assignment from incompatible pointer type [-Werror] cc1: all warnings being treated as errors As it seems to be a warning promoted to an error, I manually ran the same gcc command removing the -Werror parameter and it compiled successfully. Is this a bug? Should I report? Then I ran the build command again, which brought another error: edk2/StdLib/LibC/Uefi/InteractiveIO/IIOutilities.c:269:1: error: conflicting types for ‘IIO_CursorDelta’ edk2/StdLib/LibC/Uefi/InteractiveIO/IIOutilities.h:122:1: note: previous declaration of ‘IIO_CursorDelta’ was here I opened both files looking for the definition of IIO_CursorDelta and in .h file I got: -- int EFIAPI IIO_CursorDelta ( cIIO *This, CURSOR_XY *StartXY, CURSOR_XY *EndXY ); -- while in the .c I got: -- UINT32 EFIAPI IIO_CursorDelta ( cIIO *This, CURSOR_XY *StartXY, CURSOR_XY *EndXY ) [...] -- So I changed the .h from int to UINT32 and ran the build again. This time with success. Should I report this? After that, I started to play with AppPkg/Applications/Main/Main.c, trying to poke around to see what I can or can't do and got something strange. I've changed the Main.c to just print the Argc value: -- #include <stdio.h> int EFIAPI main ( IN int Argc, IN char **Argv ) { printf("\nArgc=%d\n", Argc); return 0; } -- And whenever I run it on UEFI Shell (using qemu), I always get really big values (> 37000000) no matter with how many parameter I run and if I run with the same parameter multiple times, the value sometimes changes, as you can see on the image below: http://s1.postimage.org/dxeg7ahdr/argc.png This isn't exactly a problem, since I still can successfully run normal code but I'd like to know if am I doing something stupid, if this is some kind of bug or if it is a side effect of something I couldn't see yet. Any tips or clarifications will be really appreciated. Anyway, thanks for the good job you all have been doing on this project. =) Mauro Faccenda ------------------------------------------------------------------------------ Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122812 _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel