[openssl] master update

tomas at openssl.org tomas at openssl.org
Fri Jan 21 11:45:11 UTC 2022


The branch master has been updated
       via  f59d72f027da90edcccad5cc78c94d3099fadecf (commit)
       via  619c9bad41d041bab2ac6ba3933d526b48ceee2a (commit)
      from  e278f18563dd3dd67c00200ee30402f48023c6ef (commit)


- Log -----------------------------------------------------------------
commit f59d72f027da90edcccad5cc78c94d3099fadecf
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Wed Jan 12 10:30:15 2022 +0100

    crypto/bio: drop float formating for UEFI
    
    Using floating point is not supported in UEFI and can cause build
    problems, for example due to SSE being disabled and x64 calling
    convention passing floats in SSE registers.
    
    Avoid those problems by not compiling the formating code for floating
    point numbers.
    
    Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
    
    Reviewed-by: Paul Dale <pauli at openssl.org>
    Reviewed-by: Tomas Mraz <tomas at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/17547)

commit 619c9bad41d041bab2ac6ba3933d526b48ceee2a
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Wed Jan 12 12:35:16 2022 +0100

    Revert "crypto/bio: fix build on UEFI"
    
    This reverts commit 328bf5adf9e23da523d4195db309083aa02403c4.
    
    Turned out it isn't that simple, the fix is incomplete.
    So revert and try again with another approach.
    
    Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
    
    Reviewed-by: Paul Dale <pauli at openssl.org>
    Reviewed-by: Tomas Mraz <tomas at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/17547)

-----------------------------------------------------------------------

Summary of changes:
 crypto/bio/bio_print.c | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/crypto/bio/bio_print.c b/crypto/bio/bio_print.c
index 60b28c61ff..101c2a841a 100644
--- a/crypto/bio/bio_print.c
+++ b/crypto/bio/bio_print.c
@@ -32,8 +32,10 @@ static int fmtstr(char **, char **, size_t *, size_t *,
                   const char *, int, int, int);
 static int fmtint(char **, char **, size_t *, size_t *,
                   int64_t, int, int, int, int);
+#ifndef OPENSSL_SYS_UEFI
 static int fmtfp(char **, char **, size_t *, size_t *,
                  LDOUBLE, int, int, int, int);
+#endif
 static int doapr_outch(char **, char **, size_t *, size_t *, int);
 static int _dopr(char **sbuffer, char **buffer,
                  size_t *maxlen, size_t *retlen, int *truncated,
@@ -89,7 +91,9 @@ _dopr(char **sbuffer,
 {
     char ch;
     int64_t value;
+#ifndef OPENSSL_SYS_UEFI
     LDOUBLE fvalue;
+#endif
     char *strvalue;
     int min;
     int max;
@@ -260,6 +264,7 @@ _dopr(char **sbuffer,
                             min, max, flags))
                     return 0;
                 break;
+#ifndef OPENSSL_SYS_UEFI
             case 'f':
                 if (cflags == DP_C_LDOUBLE)
                     fvalue = va_arg(args, LDOUBLE);
@@ -293,6 +298,16 @@ _dopr(char **sbuffer,
                            flags, G_FORMAT))
                     return 0;
                 break;
+#else
+            case 'f':
+            case 'E':
+            case 'e':
+            case 'G':
+            case 'g':
+                /* not implemented for UEFI */
+                ERR_raise(ERR_LIB_BIO, ERR_R_UNSUPPORTED);
+                return 0;
+#endif
             case 'c':
                 if (!doapr_outch(sbuffer, buffer, &currlen, maxlen,
                                  va_arg(args, int)))
@@ -513,11 +528,9 @@ fmtint(char **sbuffer,
     return 1;
 }
 
-#ifdef OPENSSL_SYS_UEFI
-static LDOUBLE EFIAPI abs_val(LDOUBLE value)
-#else
+#ifndef OPENSSL_SYS_UEFI
+
 static LDOUBLE abs_val(LDOUBLE value)
-#endif
 {
     LDOUBLE result = value;
     if (value < 0)
@@ -525,11 +538,7 @@ static LDOUBLE abs_val(LDOUBLE value)
     return result;
 }
 
-#ifdef OPENSSL_SYS_UEFI
-static LDOUBLE EFIAPI pow_10(int in_exp)
-#else
 static LDOUBLE pow_10(int in_exp)
-#endif
 {
     LDOUBLE result = 1;
     while (in_exp) {
@@ -816,6 +825,8 @@ fmtfp(char **sbuffer,
     return 1;
 }
 
+#endif /* OPENSSL_SYS_UEFI */
+
 #define BUFFER_INC  1024
 
 static int


More information about the openssl-commits mailing list