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=ziuZc/og; spf=pass (domain: linaro.org, ip: 209.85.221.65, mailfrom: leif.lindholm@linaro.org) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by groups.io with SMTP; Wed, 08 May 2019 07:26:53 -0700 Received: by mail-wr1-f65.google.com with SMTP id s15so27458650wra.12 for ; Wed, 08 May 2019 07:26:52 -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=+k56IWVrGSUzobDWj7zty3A7MfxtBuYFwiPxLDPC5jg=; b=ziuZc/ogy10sBl/0SqQi5AlxQQssjBw+hpUux4es+oK6TyWTW2zWolO4bAoXi33TbM foq52RgkHCwP9/XMehAssLySqEz3J5P5tfnCODwWAsW7twMPKaZ9eS1rStDTJ0mWWHUs KWAFQkKHHlqDRcewUCBAcp/JmgalLXBagShNhEJ/nPidKvV5IxMBYkL2Hi4W2dLTmcR8 qoJgBCCAzEXayTcm2FyepnS26UmaR7h6dzi06noA+05igtNAMaf/NiFKzwR3fUBdXbWi pltfD5Ljd6lK/1pxSwm3v3+XjCdSydBolNyqhPWq1CAoXAsMd1Vkqr3zEap9XbSFzUpK ldSQ== 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=+k56IWVrGSUzobDWj7zty3A7MfxtBuYFwiPxLDPC5jg=; b=IJmN33FZRaiot2cjCH90tl2dF5EBXYZ2TIl7CBs7TBbiKsdwcdcvE/Jn51B3+11SwV UKEnFW490z0nPH0t+wnF+KpWoxcK/ZRPIpYXrc1+zQ5A60k7qCP12UWmy2jZZHwfAXji MNjFC8loJ0YjxDRm92GME90B3EWoZGpZcqg4j0JcDoCwg3+zDXNpm7VnjH5ds3fK2omZ 29L8Xyq6if+PmWS9kIqUjpzCf/C0qpfQ/yuV+6OLDuy0Vqqin0No1Obmrs+Cz5Oy0mVF uf61KUZE6YC8AbXyZ42+/vSevYU7tccpQjFMYj7yJnqwksG5R/Pra9cXmUpA2Uw6bonU RbPw== X-Gm-Message-State: APjAAAV+L5Uk2899YX6HEh7vv2YoRbGgp9Uba3mHrqJMGcGOCLlWxrUl sj5qBs7Ylv6fd7VLw5VGerkfwA== X-Google-Smtp-Source: APXvYqzyzL6dOKulz2hRdbamg/bbDb3QC8Ky0yazBKHVw6Q0m4EKJ6FJlLQcC48QFJRBqbUTCOmQVA== X-Received: by 2002:a5d:4707:: with SMTP id y7mr2659841wrq.59.1557325611461; Wed, 08 May 2019 07:26:51 -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 d14sm14294067wre.78.2019.05.08.07.26.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 08 May 2019 07:26:50 -0700 (PDT) Date: Wed, 8 May 2019 15:26:49 +0100 From: "Leif Lindholm" To: Andrew Fish Cc: devel@edk2.groups.io, "Fan, ZhijuX" , "Gao, Liming" , "Feng, Bob C" , Laszlo Ersek , Mike Kinney Subject: Re: [edk2-devel] [PATCH V2] BaseTools:improve code to support C files with .C suffixes Message-ID: <20190508142649.uf5rouol6f3tnmsv@bivouac.eciton.net> References: <5C1A24BA-648D-4A3F-AE88-034073AB5C13@apple.com> <20190507144002.gq3rdtappd3rupmd@bivouac.eciton.net> <55FC6AA1-43B5-4557-8A17-0E3B00E3EE9A@apple.com> <20190508090926.4r4e6jqlg45yg6yp@bivouac.eciton.net> <20190508120823.urob54m7tojotq7n@bivouac.eciton.net> <6EF320BA-7D16-4370-9F37-1618CDE01CBD@apple.com> MIME-Version: 1.0 In-Reply-To: <6EF320BA-7D16-4370-9F37-1618CDE01CBD@apple.com> User-Agent: NeoMutt/20170113 (1.7.2) Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, May 08, 2019 at 06:59:40AM -0700, Andrew Fish wrote: > > > > On May 8, 2019, at 5:08 AM, Leif Lindholm wrote: > > > > Hi Fan Zhiju, > > > > I understand your reasoning, but that strengthens my view that we > > should leave this change out. > > > > Actually, could we consider *dropping* support for .C files > > altogether, since we are striving to support multiple toolchains, and > > the two major families of toolchains we use consider .C files to be > > fundamentally different things? > > > > Andrew, Laszlo, Mike? > > > > Leif, > > I missed that ARM had extra restrictions on file extensions. > > [C-Code-File] > > ?.c > ?.C > ?.cc > ?.CC > ?.cpp > ?.Cpp > ?.CPP > > [C-Code-File.BASE.AARCH64,C-Code-File.SEC.AARCH64,C-Code-File.PEI_CORE.AARCH64,C-Code-File.PEIM.AARCH64,C-Code-File.BASE.ARM,C-Code-File.SEC.ARM,C-Code-File.PEI_CORE.ARM,C-Code-File.PEIM.ARM] > > ?.c > So did I :) Still... > I think there are people who try to roll there own C++ support and > that is why the build system will pass the C++ files to the C > compiler. > > At this point I think we should probably act more like a > compiler. First add a warning, and down the road remove the support? Yeah, that would work for me. It's just I've had a few instances of people moving existing drivers developed with VS (for x86) to GCC and run across issues - so getting a warning would at least convey the fact that there *is* a portability issue here. Regards, Leif > > Thanks, > > Andrew Fish > > > Best Regards, > > > > Leif > > > > On Wed, May 08, 2019 at 10:57:09AM +0000, Fan, ZhijuX wrote: > >> Hi Leif, > >> > >> This patch is going to fix the bug in commit 05217d210e. > >> this patch and commit 05217d210e is just for MSVC. It doesn't have any effect on GCC. > >> this patch does not imply to compile .C as C instead of C++. > >> We just found out that they build break because the.C file was in the source file, > >> But the MSVC compiler allows.C files,So I fixed this bug to Change the original logic to support.C files. > >> > >> > >> Any question, please let me know. Thanks. > >> > >> Best Regards > >> Fan Zhiju > >> > >> > >> > >> > >>> -----Original Message----- > >>> From: Leif Lindholm [mailto:leif.lindholm@linaro.org] > >>> Sent: Wednesday, May 8, 2019 5:09 PM > >>> To: Andrew Fish > >>> Cc: devel@edk2.groups.io; Fan, ZhijuX ; Gao, Liming > >>> ; Feng, Bob C > >>> Subject: Re: [edk2-devel] [PATCH V2] BaseTools:improve code to support C > >>> files with .C suffixes > >>> > >>> On Tue, May 07, 2019 at 07:01:26PM -0700, Andrew Fish wrote: > >>>> > >>>> > >>>>> On May 7, 2019, at 7:40 AM, Leif Lindholm > >>> wrote: > >>>>> > >>>>> Hi Fan Zhiju, > >>>>> > >>>>> But where does the string come from that contains a .C suffix? > >>>>> Is the tool internally converting things to uppercase, or is some > >>>>> source file in the build incorrectly named? > >>>>> > >>>> > >>>> Leif, > >>>> > >>>> Our build system defines .C as correct! I think it has been that way a very > >>> long time. > >>> > >>> .C is valid, but at least for GCC it is equivalent to all of the other non-.c > >>> options - i.e., interpret as c++. Which is why I am wondering about the case > >>> that ends up with the build system internally processing this. > >>> > >>> If it is changed to permitting .C files to be compiled as C instead of > >>> C++ (which the patch seems to imply), that sounds incorrect to me. > >>> > >>> / > >>> Leif > >>> > >>>> > >>> https://github.com/tianocore/edk2/blob/master/BaseTools/Conf/build_rul > >>>> e.template#L109 > >>>> > >>>> [C-Code-File] > >>>> > >>>> ?.c > >>>> ?.C > >>>> ?.cc > >>>> ?.CC > >>>> ?.cpp > >>>> ?.Cpp > >>>> ?.CPP > >>>> > >>>> Thanks, > >>>> > >>>> Andrew Fish > >>>> > >>>> > >>>>> I am asking because it is not clear to me whether the patch resolves > >>>>> a problem or hides one. > >>>>> > >>>>> Best Regards, > >>>>> > >>>>> Leif > >>>>> > >>>>> On Tue, May 07, 2019 at 03:05:02AM +0000, Fan, ZhijuX wrote: > >>>>>> This problem has nothing to do with the file system, We just use > >>>>>> the filename as a string to compare with other strings Our unittest > >>>>>> tested minplatform, Ovmf. This problem was found when building a > >>>>>> platform inside Intel. > >>>>>> We've tested it on Linux and Windows. > >>>>>> > >>>>>> Any question, please let me know. Thanks. > >>>>>> > >>>>>> Best Regards > >>>>>> Fan Zhiju > >>>>>> > >>>>>> -----Original Message----- > >>>>>> From: afish@apple.com [mailto:afish@apple.com] > >>>>>> Sent: Tuesday, May 7, 2019 10:31 AM > >>>>>> To: devel@edk2.groups.io; Fan, ZhijuX > >>>>>> Cc: Gao, Liming ; Feng, Bob C > >>>>>> > >>>>>> Subject: Re: [edk2-devel] [PATCH V2] BaseTools:improve code to > >>>>>> support C files with .C suffixes > >>>>>> > >>>>>> This brings up a question? Do we tests on a file system that is case > >>> sensitive? Is this just lack of a test case? > >>>>>> > >>>>>> Thanks, > >>>>>> > >>>>>> Andrew Fish > >>>>>> > >>>>>>> On May 6, 2019, at 7:22 PM, Fan, ZhijuX wrote: > >>>>>>> > >>>>>>> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1773 > >>>>>>> > >>>>>>> Build break if C file suffixes of named .C instead of .c Code not > >>>>>>> recognize filenames with .C suffixes. > >>>>>>> > >>>>>>> This patch adds code to Support both .c file and .C file > >>>>>>> > >>>>>>> Cc: Bob Feng > >>>>>>> Cc: Liming Gao > >>>>>>> Signed-off-by: Zhiju.Fan > >>>>>>> --- > >>>>>>> BaseTools/Source/Python/AutoGen/GenMake.py | 3 ++- > >>>>>>> 1 file changed, 2 insertions(+), 1 deletion(-) > >>>>>>> > >>>>>>> diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py > >>>>>>> b/BaseTools/Source/Python/AutoGen/GenMake.py > >>>>>>> index 0e0f9fd9b0..858ddedf8e 100644 > >>>>>>> --- a/BaseTools/Source/Python/AutoGen/GenMake.py > >>>>>>> +++ b/BaseTools/Source/Python/AutoGen/GenMake.py > >>>>>>> @@ -1035,7 +1035,8 @@ cleanlib: > >>>>>>> CmdTargetDict[CmdSign] = "%s %s" % > >>> (CmdTargetDict[CmdSign], SingleCommandList[-1]) > >>>>>>> Index = CommandList.index(Item) > >>>>>>> CommandList.pop(Index) > >>>>>>> - if SingleCommandList[-1].endswith("%s%s.c" % (TAB_SLASH, > >>> CmdSumDict[CmdSign.lstrip('/Fo').rsplit(TAB_SLASH, 1)[0]])): > >>>>>>> + if SingleCommandList[-1].endswith("%s%s.c" % > >>> (TAB_SLASH, CmdSumDict[T.Target.SubDir])) or \ > >>>>>>> + SingleCommandList[-1].endswith("%s%s.C" % > >>> (TAB_SLASH, CmdSumDict[T.Target.SubDir])): > >>>>>>> Cpplist = CmdCppDict[T.Target.SubDir] > >>>>>>> Cpplist.insert(0, '$(OBJLIST_%d): $(COMMON_DEPS)' % > >>> list(self.ObjTargetDict.keys()).index(T.Target.SubDir)) > >>>>>>> T.Commands[Index] = '%s\n\t%s' % (' > >>>>>>> \\\n\t'.join(Cpplist), CmdTargetDict[CmdSign]) > >>>>>>> -- > >>>>>>> 2.14.1.windows.1 > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>> > >>>>> > >>>> > > > > >