From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 089A39418B9 for ; Wed, 7 Feb 2024 15:40:19 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=57o4CWnoRh1sqkl/5LWRn4Js4xkoRF9y8KfPGsjiV+I=; c=relaxed/simple; d=groups.io; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:In-Reply-To:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1707320418; v=1; b=Hp/dODMWL6B3De9GL6KpyUId5PFqqHE8u8nInVgEcz1SSAX14G6WVmmEu6Hvq2YyHCq5wN4n cNNmc3zmLMRVfGqW0NWHr2fZAgEgMLDhWpRUgifg61GiGAlbUESX2GE19PQne4amK+K2afMWrA5 olxb3tAiBO8mszjPW3GIzYLw= X-Received: by 127.0.0.2 with SMTP id xyjJYY7687511xNoVRNNUwiy; Wed, 07 Feb 2024 07:40:18 -0800 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.groups.io with SMTP id smtpd.web11.454.1707320417893298484 for ; Wed, 07 Feb 2024 07:40:18 -0800 X-Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-599-hJB_hbaINNe6Z2vqwkzuUg-1; Wed, 07 Feb 2024 10:40:12 -0500 X-MC-Unique: hJB_hbaINNe6Z2vqwkzuUg-1 X-Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7C53210201E9; Wed, 7 Feb 2024 15:40:10 +0000 (UTC) X-Received: from [10.39.195.126] (unknown [10.39.195.126]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CE27340C9444; Wed, 7 Feb 2024 15:40:01 +0000 (UTC) Message-ID: Date: Wed, 7 Feb 2024 16:40:00 +0100 MIME-Version: 1.0 Subject: Re: [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules To: "Kinney, Michael D" , edk2-devel-groups-io Cc: Abdul Lateef Attar , Abner Chang , "Warkentin, Andrei" , Andrew Fish , Ard Biesheuvel , "S, Ashraf Ali" , Bibo Mao , "Feng, Bob C" , "West, Catharine" , Chao Li , "Chiu, Chasel" , "Duggapu, Chinni B" , Duke Zhai , "Aktas, Erdem" , Eric Xing , Gerd Hoffmann , "Guo, Gua" , "Dong, Guo" , Igniculus Fu , "Lu, James" , "Yao, Jiewen" , Kelly Steele , Ken Yao , Leif Lindholm , Liming Gao , Michael Roth , "Xu, Min M" , "Desimone, Nathaniel L" , Paul Grimes , "Kumar, Rahul R" , "Ni, Ray" , Rebecca Cran , "Chaganty, Rangasai V" , Sami Mujawar , "Rhodes, Sean" , "Zeng, Star" , Sunil V L , "Mohapatra, Susovan" , "Kuo, Ted" , Tom Lendacky , USER0FISH , Xianglai li , "Chen, Christine" , caiyuqing379 , dahogn , meng-cz References: <36593e23-d3e8-b71a-808d-ef94260b5fd0@redhat.com> From: "Laszlo Ersek" In-Reply-To: X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,lersek@redhat.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 9zvwnWvvskJBzWKn3eqV70Ggx7686176AA= Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b="Hp/dODMW"; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=redhat.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io On 2/7/24 02:16, Kinney, Michael D wrote: > Hi Laszlo, >=20 > The main issue is that a non-backwards compatible change is being > proposed to BaseTools. >=20 > In order for this to work, BaseTools needs to support both the=20 > old style and new style SEC autogen. >=20 > The guarantee of backwards compatibility is something that is required > for BaseTools. Similar to constrains on compilers/linkers. New features > can be added, but the old behavior has to always be supported. Removing > old behavior takes a very long time. This change consists of three parts: (1) generate the SEC ProcessLibraryConstructorList() declaration in "AutoGen.h" (2) in those modules that declare SEC ProcessLibraryConstructorList() themselves *properly*, remove the (now superfluous, but certainly *not conflicting*) manual declarations (3) in those modules that declare SEC ProcessLibraryConstructorList() themselves *incorrectly*, either manually, or by way of including , remove the *now-conflicting* manual declarations / inclusions. For modules that fall in category (2), the AutoGen change (1) is compatible. The AutoGen change (1) is incompatible only with modules that fall into category (3) -- that is, with modules that already declare SEC ProcessLibraryConstructorList() incorrectly. In other words, the compatibility we're talking about here is *bug compatibility*. If bug compat is a goal, then the AutoGen patch cannot be merged at all. If bug compat is not a goal, then: (a) the AutoGen change could be / should be merged into the separate BaseTools repository at first, (b) for edk2, I should rework this series such that: - modules from category (3) be brought to category (2) at first (i.e., replacing the bogus calls / manual declarations with proper calls / manual declarations), - the edk2-basetools dependency in "pip-requirements.txt" be bumped from 0.1.48 to the new version, - finally, the manual (but otherwise, now-correct) declarations in the modules of category (2) be eliminated. Therefore, my question is: do we intend to preserve bug compatibility? Thanks! Laszlo >=20 > Mike >=20 >> -----Original Message----- >> From: Laszlo Ersek >> Sent: Tuesday, February 6, 2024 4:51 PM >> To: edk2-devel-groups-io >> Cc: Abdul Lateef Attar ; Abner Chang >> ; Warkentin, Andrei ; >> Andrew Fish ; Ard Biesheuvel >> ; S, Ashraf Ali ; >> Bibo Mao ; Feng, Bob C ; >> West, Catharine ; Chao Li >> ; Chiu, Chasel ; Duggapu, >> Chinni B ; Duke Zhai ; >> Aktas, Erdem ; Eric Xing ; >> Gerd Hoffmann ; Guo, Gua ; Dong, >> Guo ; Igniculus Fu ; Lu, >> James ; Yao, Jiewen ; Kelly >> Steele ; Ken Yao ; Leif >> Lindholm ; Liming Gao >> ; Kinney, Michael D >> ; Michael Roth ; Xu, >> Min M ; Desimone, Nathaniel L >> ; Paul Grimes ; >> Kumar, Rahul R ; Ni, Ray ; >> Rebecca Cran ; Chaganty, Rangasai V >> ; Sami Mujawar ; >> Rhodes, Sean ; Zeng, Star ; >> Sunil V L ; Mohapatra, Susovan >> ; Kuo, Ted ; Tom >> Lendacky ; USER0FISH ; >> Xianglai li ; Chen, Christine >> ; caiyuqing379 ; dahogn >> ; meng-cz >> Subject: BaseTools/AutoGen: declare ProcessLibraryConstructorList() for >> SEC modules >> >> Bugzillas: >> - https://bugzilla.tianocore.org/show_bug.cgi?id=3D990 >> - https://bugzilla.tianocore.org/show_bug.cgi?id=3D991 >> >> Personal build: >> - https://github.com/tianocore/edk2/pull/5354 >> >> I'll follow up with two series, in response to this message. One of >> those sets makes AutoGen declare ProcessLibraryConstructorList() for >> SEC >> modules (as Liming suggested), and cleans up the buggy or superfluous >> manual declarations in edk2. The other set cleans up edk2-platforms >> similarly. The edk2 set is intended to be bisectable. The edk2- >> platforms >> set can't be like that (separate repo anyway). I build-tested >> everything >> that I could, but the coverage is not complete in edk2-platforms. >> >> Note that the personal build (PR#5354) failed. The reason is that CI >> uses an out-of-tree BaseTools installation / package (version 0.1.48 at >> the moment). This just goes on to show why it's a bad idea to develop >> BaseTools in separation from edk2: even though the edk2 series *is* >> fully bisectable, it's impossible to get it through CI (because CI >> ignores the BaseTools update inside the series); and if we get the >> central BaseTools patch from the edk2 series into "that other" >> (separate) project *first*, then the series will not be bisectable any >> longer (because the BaseTools/AutoGen update at the front, without >> further patches in the series applied, will trigger build errors). >> >> Laszlo >=20 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#115238): https://edk2.groups.io/g/devel/message/115238 Mute This Topic: https://groups.io/mt/104210524/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-