svn commit: r293903 - in head/sys/boot: arm/uboot efi/fdt efi/libefi

Steven Hartland steven at multiplay.co.uk
Thu Jan 14 09:58:30 UTC 2016



On 14/01/2016 09:47, NGie Cooper wrote:
>> On Jan 14, 2016, at 01:27, NGie Cooper <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
>
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?


More information about the svn-src-all mailing list