From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@linaro.org header.s=google header.b=vdkBDmax; spf=pass (domain: linaro.org, ip: 209.85.221.66, mailfrom: leif.lindholm@linaro.org) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by groups.io with SMTP; Fri, 31 May 2019 06:09:30 -0700 Received: by mail-wr1-f66.google.com with SMTP id d18so6502465wrs.5 for ; Fri, 31 May 2019 06:09:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=P6yPdra6FasX6MF9A2Cj30Ek/Fbo378Njtr6fGs3Ah0=; b=vdkBDmax4leEX5fUksyKTfN0oqK0YQrSYaM6FLKT7pylJuzYsP/yGt7c8rnGOM8ydA S4bOSUYs9qCnRiIfCJZw8lNF6BF3979pvCPNgi8SxYDIJbu1WZJqBF76A5U77sHa4OdD AjdbQ75trqaAHZHwoRIaDAUMSzlB6Q1Ts91bClXEEUdBPSbBDgkQdI1bPN/hN7l2H62C 2H6R8DfLFoK0Ckt0E2B72tmZh+BtfuFbC5bqeV0HJ83v8IqvmTIR2Q6mRyOaAmPQxqoQ bhVJAE4Q9R7nSf2Ax6mDw5YYWwFGh05GLzRUNCCAF5soq1piOJQsNexojXn76tX+6nRi 4WXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=P6yPdra6FasX6MF9A2Cj30Ek/Fbo378Njtr6fGs3Ah0=; b=e5jVPQ63nj7emnKbRO8srR3I990v2lxiEu+PHouCCXw5zc3I/VK3EolNvFa70vszvw EBhMgYEgHP+W2L70NFMysH/w6J5YXWV7buPCm+Np2Ei03LCMemyahSpwhwKWIfye0NV0 TJfOPii0IB0vrySHZI8zFzpbfr0TETpa5ZiHjd3bYC42swhMJy62XzOts8KSaqZhz9QY AQ6uI+V4A2WwjLaAPvWmiG7vFLu0v7wwmKrlWVaEMXYv7puZpA6Xb+dliDzMSmWPGSXs MLtLmsrWzyBXgxyEF8oNvm6glBfn8oy5rBrKx+zviToocg3dHx/cEicmBP5CpI5rOohM 540Q== X-Gm-Message-State: APjAAAVV/3pG7ti6dgvccVDfh8/wPUKU9vYHXOvcNWQn5/crBA8rqI9U pSZ9wSHSXriW0nTCN9+JnAv9FQ== X-Google-Smtp-Source: APXvYqxI+sumJolxLIXh2UB4dubz4zobdg/ahdF1/QCHnxlgC3GDdA8o1yxGc31u4M8cZXsEmy0Ozw== X-Received: by 2002:adf:90e7:: with SMTP id i94mr5706017wri.213.1559308168326; Fri, 31 May 2019 06:09:28 -0700 (PDT) Return-Path: Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id 65sm11422566wro.85.2019.05.31.06.09.25 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 31 May 2019 06:09:26 -0700 (PDT) Date: Fri, 31 May 2019 14:09:24 +0100 From: "Leif Lindholm" To: Ard Biesheuvel Cc: devel@edk2.groups.io, Laszlo Ersek , "Gao, Liming" , "Wang, Jian J" , Michael D Kinney Subject: Re: [PATCH v3 0/7] update ArmSoftFloatLib to latest upstream version Message-ID: <20190531130924.szfyed247nks7gii@bivouac.eciton.net> References: <20190531124958.8421-1-ard.biesheuvel@linaro.org> MIME-Version: 1.0 In-Reply-To: <20190531124958.8421-1-ard.biesheuvel@linaro.org> User-Agent: NeoMutt/20170113 (1.7.2) Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, May 31, 2019 at 02:49:51PM +0200, Ard Biesheuvel wrote: > Currently, our move to OpenSSL 1.1.1b is being blocked by an issue in > the ARM software floating point library, which lacks some intrinsics > that the ARM EABI spec defines. > > Since the code was in pretty sorry state, let's fix this by upgrading > to the very latest version of the core library this code is based on, > dated January 2018 (whereas the NetBSD fork of the old code dates back > to 2002) It is worth mentioning that there is exactly one patch on top of 3e release, and that resolves a syntax error in RICV code (currently unused). I have a couple of really tiny comments on later patches, but many thanks for unbundling this conundrum (and preventing yet anoher fork). / Leif > Note that this drops support for RVCT, but this toolchain is untested > and will likely be removed. [0] > > Code can be found here: > https://github.com/ardbiesheuvel/edk2/tree/arm-softfloat-upgrade-v3 > > Changes since v2: > - dodge the license debate by importing the external project as a Git > submodule (which turns out to be maintained by the author/owner of > the project) > - drop file deletion and SPDX header changes that are no longer needed > - drop tested-by tags > - add Laszlo's ack where appropriate > - add new patches to fix some protocol headers that deviate from the > normal pattern of how we define protocols, which breaks C99 and > therefore Clang with the atomics workaround in #4 applied > > Changes since v1: > - Update the INLINE macro to pass __attribute__((always_inline)), to work > around a build issue that occurs when optimization is disabled. > - Add a patch to remove the unused files. As it turns out, 385 of the ~450 > files are unused (which is a lot more than Laszlo reported), and so it > makes sense to merge patch #4 into patch #1 > - Add a patch to add SPDX identifiers to the files that we are keeping (#5). > This patch can be merged into #1 as well. > - Add patches to work around issues that prevent the new code to build with > Clang. Patch #6 is actually related to the OpenSSL upgrade, while patch #7 > is related to Clang 7 (and has been posted already 6 months ago) > > Note that another issue popped up, which affects the OpenSSL 1.1.1b upgrade: > > .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:71:12: > error: variable 'ret' is uninitialized when used here [-Werror,-Wuninitialized] > return ret; > ^~~ > .../CryptoPkg/Library/OpensslLib/openssl/crypto/conf/conf_sap.c:44:12: > note: initialize the variable 'ret' to silence this warning > int ret; > ^ > = 0 > 1 error generated. > > This appears to be a regression in the OpenSSL upstream code (commit > 25eb9299cec), which no longer initializes ret if OPENSSL_SYS_UEFI is #defined. > > Cc: Laszlo Ersek > Cc: "Gao, Liming" > Cc: "Wang, Jian J" > Cc: Leif Lindholm > Cc: Michael D Kinney > > [0] https://bugzilla.tianocore.org/show_bug.cgi?id=1750 > > Ard Biesheuvel (7): > ArmPkg: import Berkeley Softfloat library as git submodule > ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library > ArmPkg/ArmSoftFloatLib: remove source files that are no longer used > BaseTools/tools_def CLANG3x ARM AARCH64: force use of C99 standard > ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S > MdeModulePkg/PeCoffImageEmulator: avoid redeclaration of typedef > MdePkg: avoid redeclaration of typedefs > > .gitmodules | 3 + > ArmPkg/Library/ArmLib/Arm/ArmV7Support.S | 2 + > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm | 41 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm | 37 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c | 30 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c | 28 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c | 30 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c | 30 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c | 30 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c | 35 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c | 30 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c | 30 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c | 30 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c | 30 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c | 30 - > ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c | 35 - > ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h | 345 --- > ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c | 283 +++ > ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf | 83 +- > ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h | 108 - > ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 | 1 + > ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros | 648 ------ > ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c | 2354 -------------------- > ArmPkg/Library/ArmSoftFloatLib/milieu.h | 38 - > ArmPkg/Library/ArmSoftFloatLib/platform.h | 11 + > ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h | 242 -- > ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize | 525 ----- > BaseTools/Conf/tools_def.template | 8 +- > MdeModulePkg/Include/Protocol/PeCoffImageEmulator.h | 4 +- > MdePkg/Include/Protocol/HiiPopup.h | 4 +- > MdePkg/Include/Protocol/ResetNotification.h | 4 +- > 31 files changed, 374 insertions(+), 4735 deletions(-) > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cdcmp.asm > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_cfcmp.asm > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpeq.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpge.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpgt.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmple.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmplt.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_dcmpun.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpeq.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpge.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpgt.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmple.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmplt.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/__aeabi_fcmpun.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/Arm/softfloat.h > create mode 100644 ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/arm-gcc.h > create mode 160000 ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat-macros > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/bits32/softfloat.c > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/milieu.h > create mode 100644 ArmPkg/Library/ArmSoftFloatLib/platform.h > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/softfloat-for-gcc.h > delete mode 100644 ArmPkg/Library/ArmSoftFloatLib/softfloat-specialize > > -- > 2.20.1 >