From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 9A9201A1E28 for ; Fri, 21 Oct 2016 15:10:23 -0700 (PDT) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga103.fm.intel.com with ESMTP; 21 Oct 2016 15:10:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,526,1473145200"; d="scan'208";a="22652979" Received: from jessica1-mobl.amr.corp.intel.com (HELO localhost) ([10.252.136.91]) by orsmga004.jf.intel.com with ESMTP; 21 Oct 2016 15:10:22 -0700 MIME-Version: 1.0 To: Laszlo Ersek , "Andrew Fish" Message-ID: <147708782254.15094.11260195572460159641@jljusten-ivb> From: Jordan Justen In-Reply-To: Cc: "Mike Kinney" , "edk2-devel-01" , "Gao, Liming" , "Leif Lindholm" , "Ard Biesheuvel" References: <147707992484.13791.10042868456965197315@jljusten-ivb> <147708236992.14194.656313834108120082@jljusten-ivb> User-Agent: alot/0.3.7 Date: Fri, 21 Oct 2016 15:10:22 -0700 Subject: Re: [Bug 164] Add the build option "/D DISABLE_NEW_DEPRECATED_INTERFACES" in package DSC files X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Oct 2016 22:10:23 -0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On 2016-10-21 14:02:44, Laszlo Ersek wrote: > On 10/21/16 22:39, Jordan Justen wrote: > > On 2016-10-21 13:20:49, Andrew Fish wrote: > >> Thus the option is to DISABLE_DEPRECATED_INTERFACES as that maintai= ns > >> backward compatibility. > > = > > In order to support UDK releases, maybe ENABLE_UDK2014_INTERFACES would= be > > something to consider. Or ENABLE_UDK_INTERFACE=3D2014 so we can use <= =3D. > > = > > But, I still think that EDK II platforms (as a goal) should represent > > the best, cleanest examples of using EDK II. And, I think having every > > platform accumulate cruft like CFLAGS to disable deprecated interfaces > > works against that goal. > > = > > Another point. What about when we want to deprecate more interfaces? > > Oh know, we better not break platforms that only specified > > DISABLE_NEW_DEPRECATED_INTERFACES! Let's add > > DISABLE_NEW_DEPRECATED_INTERFACES2! :) > = > Honestly, I imagined that DISABLE_NEW_DEPRECATED_INTERFACES would be > temporary in the edk2 tree. That is, it's a means so we can gradually > transition with all the in-tree stuff to a deprecationless code base. > Once that's done -- i.e., *all* platform DSCs within the edk2 tree > specify this feature test macro under their respective [BuildOptions] > sections --, then whatever the macro excises from the core packages can > be removed permanently, together with those platform [BuildOptions]. > That could be reasonable, although I'd argue that we could flip it around. Opt-in to the deprecated interfaces on all platforms, and then start marking deprecated interfaces. Finally we could clean up platforms and removed the override. But ... I think DISABLE_NEW_DEPRECATED_INTERFACES was first added in: commit bf4a3dbd4751b6411bdfc98bf3ac2c4f928bdfdf Author: ydong10 Date: Wed May 30 07:36:00 2012 +0000 So, I guess it is not going to be removed anytime soon. :( -Jordan > I think this should prevent the accumulation of cruft in edk2. Yes, > downstreams will have to catch up (or use UDK for a while longer). If > that's inconvenient, I have a solution: upstream your codebase, and then > the community will take care of keeping it in sync with the rest ;) > = > (This is the standard Linux suggestion BTW, not my idea.) > = > NB, we're not talking about protocols or PPIs (they're ABI); this is > about (statically linked) edk2-only libraries. > = > Thanks! > Laszlo