svn commit: r293903 - in head/sys/boot: arm/uboot efi/fdt efi/libefi
Steven Hartland
steven at multiplay.co.uk
Thu Jan 14 17:03:05 UTC 2016
On 14/01/2016 16:53, Warner Losh wrote:
>
>
> On Thu, Jan 14, 2016 at 2:47 AM, NGie Cooper <yaneurabeya at gmail.com
> <mailto:yaneurabeya at gmail.com>> wrote:
>
>
> > On Jan 14, 2016, at 01:27, NGie Cooper <yaneurabeya at gmail.com
> <mailto:yaneurabeya at gmail.com>> wrote:
> >
> >
> >> On Jan 14, 2016, at 01:22, Steven Hartland <smh at FreeBSD.org> 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
>
>
>
> Sure this fix is right? If you aren't marking the ABI correctly, how
> could this possibly work?
>
> Warner
No I don't think it is, Andrew's fix is the most appropriate (disable
building of all EFI on none supported platforms).
Currently I intend to backout 293903 and apply this change instead. I'm
just waiting on a full tinderbox under GCC to finish.
Regards
Steve
More information about the svn-src-head
mailing list