From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=209.132.183.28; helo=mx1.redhat.com; envelope-from=lersek@redhat.com; receiver=edk2-devel@lists.01.org Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B6CA62095E519 for ; Mon, 25 Sep 2017 01:10:19 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 58C29C0587EB; Mon, 25 Sep 2017 08:13:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 58C29C0587EB Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=lersek@redhat.com Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-161.rdu2.redhat.com [10.10.120.161]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5133E69FDA; Mon, 25 Sep 2017 08:13:29 +0000 (UTC) To: "Gao, Liming" , =?UTF-8?Q?Marvin_H=c3=a4user?= , "edk2-devel@lists.01.org" References: <20170823070107.38848-1-steven.shi@intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14D7815F7@shsmsx102.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E15CC86@SHSMSX152.ccr.corp.intel.com> From: Laszlo Ersek Message-ID: <741cbf78-704b-b5f7-b49f-7e58b9231488@redhat.com> Date: Mon, 25 Sep 2017 10:13:23 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14E15CC86@SHSMSX152.ccr.corp.intel.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Mon, 25 Sep 2017 08:13:30 +0000 (UTC) Subject: Re: [PATCH] BaseTools/Conf: Support LLVM39 and LLVM40 in CLANG38 toolchain X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Sep 2017 08:10:19 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 09/25/17 06:59, Gao, Liming wrote: > Marvin: > My concern is that the fix is an incompatible change. It requires to modify library API. In fact, this is an undefined behavior. But, current compiler (VS, GCC and Clang) makes it work. So, I prefer to keep the code as-is, and disable this warning first. If you find any real issue, we can return back and figure out the solution. I think we can draw a parallel here to GetVariable() and GetVariable2(). GetVariable() is now unavailable if DISABLE_NEW_DEPRECATED_INTERFACES is defined. I think the right solution would be to - introduce GetBestLanguage2(), - migrate all the current call sites to GetBestLanguage2() -- I counted 18, and the updates should be easy --, - and then make GetVariable() conditional on not-DISABLE_NEW_DEPRECATED_INTERFACES. CHAR8 * EFIAPI GetBestLanguage2 ( IN CONST CHAR8 *SupportedLanguages, IN INTN Iso639Language, ... ); I don't feel strongly about this question, I just think technically this would be best. CLANG warnings are valuable. Thanks Laszlo >> -----Original Message----- >> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of >> Marvin H?user >> Sent: Friday, September 22, 2017 11:53 PM >> To: edk2-devel@lists.01.org >> Cc: Gao, Liming >> Subject: Re: [edk2] [PATCH] BaseTools/Conf: Support LLVM39 and LLVM40 in >> CLANG38 toolchain >> >> Hey, >> >> I just noticed this patch as it recently has been pushed. I found this has been a >> reaction to https://bugzilla.tianocore.org/show_bug.cgi?id=410 >> Though as Clang correctly detected, this is Undefined Behavior per the C >> specification, so why was the warning hidden? >> In context of the issue in UefiLib, providing the first element of the VA list as a >> prototyped argument, would have solved the issue without UB. >> >> Do you wish such a patch? >> >> Thanks, >> Marvin. >> >>> -----Original Message----- >>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of >>> Gao, Liming >>> Sent: Monday, August 28, 2017 9:19 AM >>> To: Shi, Steven ; edk2-devel@lists.01.org >>> Subject: Re: [edk2] [PATCH] BaseTools/Conf: Support LLVM39 and LLVM40 >> in >>> CLANG38 toolchain >>> >>> Reviewed-by: Liming Gao >>> >>>> -----Original Message----- >>>> From: Shi, Steven >>>> Sent: Wednesday, August 23, 2017 3:01 PM >>>> To: edk2-devel@lists.01.org; Gao, Liming >>>> Cc: Zhu, Yonghong ; Shi, Steven >>>> >>>> Subject: [PATCH] BaseTools/Conf: Support LLVM39 and LLVM40 in >> CLANG38 >>>> toolchain >>>> >>>> From: "Shi, Steven" >>>> >>>> Add LLVM39 and LLVM40 support in CLANG38 toolchain >>>> >>>> Contributed-under: TianoCore Contribution Agreement 1.0 >>>> Signed-off-by: Steven Shi >>>> --- >>>> BaseTools/Conf/tools_def.template | 5 +++-- >>>> 1 file changed, 3 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/BaseTools/Conf/tools_def.template >>>> b/BaseTools/Conf/tools_def.template >>>> index 1fa3ca3..2f83341 100755 >>>> --- a/BaseTools/Conf/tools_def.template >>>> +++ b/BaseTools/Conf/tools_def.template >>>> @@ -380,7 +380,8 @@ DEFINE SOURCERY_CYGWIN_TOOLS = >>> /cygdrive/c/Program >>>> Files/CodeSourcery/Sourcery G >>>> # Intel(r) ACPI Compiler from >>>> # https://acpica.org/downloads >>>> # CLANG38 -Linux- Requires: >>>> -# Clang v3.8 or later, LLVMgold plugin and GNU binutils 2.26 >>>> targeting x86_64-linux-gnu >>>> +# Clang v3.8, LLVMgold plugin and GNU binutils 2.26 >>> targeting >>>> x86_64-linux-gnu >>>> +# Clang v3.9 or later, LLVMgold plugin and GNU binutils 2.28 >>>> targeting x86_64-linux-gnu >>>> # Optional: >>>> # Required to build platforms or ACPI tables: >>>> # Intel(r) ACPI Compiler from >>>> @@ -5512,7 +5513,7 @@ DEFINE CLANG38_X64_PREFIX = >>>> ENV(CLANG38_BIN) >>>> DEFINE CLANG38_IA32_TARGET = -target i686-pc-linux-gnu >>>> DEFINE CLANG38_X64_TARGET = -target x86_64-pc-linux-gnu >>>> >>>> -DEFINE CLANG38_ALL_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) - >> Wno- >>>> empty-body -fno-stack-protector -mms-bitfields -Wno-address -Wno- >> shift- >>>> negative-value -Wno-parentheses-equality -Wno-unknown-pragmas - >>> Wno- >>>> tautological-constant-out-of-range-compare -Wno-incompatible-library- >>>> redeclaration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx - >>> msoft- >>>> float -mno-implicit-float -ftrap- >>>> function=undefined_behavior_has_been_optimized_away_by_clang - >>>> funsigned-char -fno-ms-extensions -Wno-null-dereference -Wno- >>>> tautological-compare -Wno-unknown-warning-option >>>> +DEFINE CLANG38_ALL_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) - >>> Wno- >>>> empty-body -fno-stack-protector -mms-bitfields -Wno-address -Wno- >> shift- >>>> negative-value -Wno-parentheses-equality -Wno-unknown-pragmas - >>> Wno- >>>> tautological-constant-out-of-range-compare -Wno-incompatible-library- >>>> redeclaration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx - >>> msoft- >>>> float -mno-implicit-float -ftrap- >>>> function=undefined_behavior_has_been_optimized_away_by_clang - >>>> funsigned-char -fno-ms-extensions -Wno-null-dereference -Wno- >>>> tautological-compare -Wno-unknown-warning-option -Wno-varargs >>>> >>>> ########################### >>>> # CLANG38 IA32 definitions >>>> -- >>>> 2.7.4 >>> >>> _______________________________________________ >>> edk2-devel mailing list >>> edk2-devel@lists.01.org >>> https://lists.01.org/mailman/listinfo/edk2-devel >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel >