On 14/01/2016 09:47, NGie Cooper wrote:
On Jan 14, 2016, at 01:27, NGie Cooper <[email protected]> wrote:


On Jan 14, 2016, at 01:22, Steven Hartland <[email protected]> wrote:

Author: smh
Date: Thu Jan 14 09:22:01 2016
New Revision: 293903
URL: https://svnweb.freebsd.org/changeset/base/293903

Log:
Fix GCC warnings causing build failure after r293724

Disable some compiler warnings for GCC (non-standard compiler) fixing
build failures introduced by r293724, which enabled WARNS in the EFI boot
code, when compiling with none standard compiler (GCC).
Disabling warnings is wrong. Here’s how arm could be fixed:

$ svn diff sys/boot/
Index: sys/boot/common/bootstrap.h
===================================================================
--- sys/boot/common/bootstrap.h (revision 293877)
+++ sys/boot/common/bootstrap.h (working copy)
@@ -32,6 +32,7 @@
#include <sys/types.h>
#include <sys/queue.h>
#include <sys/linker_set.h>
+#include <time.h>

/*
  * Generic device specifier; architecture-dependant
@@ -332,12 +333,8 @@
extern struct arch_switch archsw;

/* This must be provided by the MD code, but should it be in the archsw? */
-void   delay(int delay);
-
void   dev_cleanup(void);

-time_t time(time_t *tloc);
-
#ifndef CTASSERT                /* Allow lint to override */
#define CTASSERT(x)             _CTASSERT(x, __LINE__)
#define _CTASSERT(x, y)         __CTASSERT(x, y)
Index: sys/boot/efi/include/efiapi.h
===================================================================
--- sys/boot/efi/include/efiapi.h       (revision 293877)
+++ sys/boot/efi/include/efiapi.h       (working copy)
@@ -532,6 +532,7 @@
typedef
EFI_STATUS
(EFIAPI *EFI_RESERVED_SERVICE) (
+    VOID
     );

typedef

amd64 is a bit trickier:

/scratch/tmp/ngie/svn/sys/boot/efi/libefi/../include/efigop.h:75: warning: 
'ms_abi' attribute directive ignored

I didn’t dig into why this is happening [yet], other than there maybe being MS 
extensions involved?

Thanks,
-NGie
This might fix amd64:

Index: /scratch/tmp/ngie/svn/sys/boot/efi/libefi/../include/amd64/efibind.h
===================================================================
--- /scratch/tmp/ngie/svn/sys/boot/efi/libefi/../include/amd64/efibind.h        
(revision 293877)
+++ /scratch/tmp/ngie/svn/sys/boot/efi/libefi/../include/amd64/efibind.h        
(working copy)
@@ -160,8 +160,10 @@
  //
#ifdef __amd64__
+#if defined(__clang__) && (__clang_major__ >= 3 && __clang_minor__ >= 5)
  #define        EFIAPI  __attribute__((ms_abi))
  #endif
+#endif
#ifndef EFIAPI // Forces EFI calling conventions reguardless of compiler options
      #ifdef _MSC_EXTENSIONS

Other implementations I've seen for this only define that when it's compiling with MS VCC, so that might be the more correct fix?
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to