Stephen,

Thank you for reporting this.
I have added the issue to the queue of things to work on for StdLib.
The fix will depend upon whether GCC4.6 is actually calling this an error or it 
is a warning being promoted to an error.  If a promoted warning, the fix will 
be to just turn off that specific warning. If GCC4.6 actually reports it as an 
error, I will probably have to do as you suggest and create va_utimes(const 
char *path, ...) and have utimes call it.


Happy Holidays,
Daryl McDaniel 
  
"Software is like entropy.
 It is difficult to grasp, weighs nothing, and obeys the second law of 
thermodynamics;
 i.e. it always increases."
-- Norman R. Augustine


-----Original Message-----
From: Stephen Polkowski [mailto:[email protected]] 
Sent: Monday, December 03, 2012 10:28 AM
To: [email protected]
Subject: [edk2] StdLib is broken with GCC4.6

Hello,

        I'm trying to build the AppPkg on Ubuntu 12.04 using the
native installed complier.  GCC4.6 fails with the following message:

/UDK2010.SR1/StdLib/LibC/Uefi/SysCalls.c: In function 'utimes':
/UDK2010.SR1/StdLib/LibC/Uefi/SysCalls.c:1250:11: error: 'va_start' used 
in function with fixed args

        Apparently, the utimes() function in SysCalls.c is using a bad form of 
va_list.  It is attempting to create a fake va_list to pass on
to the kernel.  GCC expects the utimes() to have a variadic input.
        
int
utimes(
   const char *path,
   const struct timeval *times
   )
{
   struct __filedes   *filp;
   va_list             ap;
   int                 fd;
   int                 retval  = -1;

   va_start(ap, path);
   fd = open(path, O_RDWR, 0);
   if(fd >= 0) {
     filp = &gMD->fdarray[fd];
     retval = filp->f_ops->fo_ioctl( filp, FIOSETIME, ap);
     close(fd);
   }
   va_end(ap);
   return retval;

}

        To my knowledge, the only way to fix this is to have utimes() call a 
fake variadic function that finally calls the kernel.


Thanks,

Stephen



------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
BUILD Helping you discover the best ways to construct your parallel projects.
http://goparallel.sourceforge.net
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to