public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Leif Lindholm" <leif@nuviainc.com>
To: Pete Batard <pete@akeo.ie>
Cc: devel@edk2.groups.io, ard.biesheuvel@arm.com
Subject: Re: [PATCH 1/1] EmbeddedPkg/TimeBaseLib: Add macros to get build year/month/day
Date: Mon, 3 Aug 2020 13:09:11 +0100	[thread overview]
Message-ID: <20200803120911.GX31778@vanye> (raw)
In-Reply-To: <20200724163742.5828-1-pete@akeo.ie>

Hi Pete,

Well prodded (off-list).

I expect I saw that arrive, expected the corresponding RPi
resubmission to arrive shortly afterwards for me to test with and put
it soundly at the back of my mind. Presumably you were waiting for
this to be merged before resubmitting that one?

Anyway:
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
Pushed as bbb8a8185838.

Regards,

Leif

On Fri, Jul 24, 2020 at 17:37:42 +0100, Pete Batard wrote:
> These can be used, for instance, to automate the population of an SMBIOS
> Type 0 BIOS Release Date when building a UEFI firmware (which is how we
> plan to use these macros for the Raspberry Pi platform).
> 
> These macros should work for any compiler that follows ISO/IEC 9899, but
> we add a check for the compiler we have tested to be on the safe side.
> 
> Note that we decided against adding a #error or #warn for compilers that
> haven't been validated, as we don't want to introduce breakage for people
> who may already be using the header with something else than gcc, MSVC or
> Clang. Instead, we expect those to send a patch that adds their compiler
> to the list, once they have tested the macros there.
> 
> Signed-off-by: Pete Batard <pete@akeo.ie>
> ---
>  EmbeddedPkg/Include/Library/TimeBaseLib.h | 32 ++++++++++++++++++++
>  1 file changed, 32 insertions(+)
> 
> diff --git a/EmbeddedPkg/Include/Library/TimeBaseLib.h b/EmbeddedPkg/Include/Library/TimeBaseLib.h
> index 4103c89b3891..ee2f191d985b 100644
> --- a/EmbeddedPkg/Include/Library/TimeBaseLib.h
> +++ b/EmbeddedPkg/Include/Library/TimeBaseLib.h
> @@ -12,6 +12,38 @@
>  
>  #include <Uefi/UefiBaseType.h>
>  
> +//
> +// Convenience macros to obtain a build date
> +//
> +// These macros should work for any compiler that follows ISO/IEC 9899,
> +// in which case __DATE__ is defined as a "Mmm dd yyyy" 11 chars string,
> +// but add an explicit filter for compilers that have been validated.
> +//
> +#if (defined(__GNUC__) || defined(_MSC_VER) || defined(__clang__))
> +#define TIME_BUILD_YEAR  (__DATE__[7] == '?' ? 1900 \
> +          : (((__DATE__[7] - '0') * 1000 )          \
> +          + (__DATE__[8] - '0') * 100               \
> +          + (__DATE__[9] - '0') * 10                \
> +          + __DATE__[10] - '0'))
> +#define TIME_BUILD_MONTH ( __DATE__ [2] == '?' ? 1  \
> +          : __DATE__ [2] == 'n' ? (                 \
> +            __DATE__ [1] == 'a' ? 1 : 6)            \
> +          : __DATE__ [2] == 'b' ? 2                 \
> +          : __DATE__ [2] == 'r' ? (                 \
> +            __DATE__ [0] == 'M' ? 3 : 4)            \
> +          : __DATE__ [2] == 'y' ? 5                 \
> +          : __DATE__ [2] == 'l' ? 7                 \
> +          : __DATE__ [2] == 'g' ? 8                 \
> +          : __DATE__ [2] == 'p' ? 9                 \
> +          : __DATE__ [2] == 't' ? 10                \
> +          : __DATE__ [2] == 'v' ? 11                \
> +          : 12)
> +#define TIME_BUILD_DAY ( __DATE__[4] == '?' ? 1     \
> +          : ((__DATE__[4] == ' ' ? 0 :              \
> +            ((__DATE__[4] - '0') * 10))             \
> +          + __DATE__[5] - '0'))
> +#endif
> +
>  // Define EPOCH (1970-JANUARY-01) in the Julian Date representation
>  #define EPOCH_JULIAN_DATE                               2440588
>  
> -- 
> 2.21.0.windows.1
> 

  reply	other threads:[~2020-08-03 12:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-24 16:37 [PATCH 1/1] EmbeddedPkg/TimeBaseLib: Add macros to get build year/month/day Pete Batard
2020-08-03 12:09 ` Leif Lindholm [this message]
2020-08-03 12:21   ` Pete Batard
2020-08-03 13:00     ` Leif Lindholm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200803120911.GX31778@vanye \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox