Mike, Thanks for the clarification. I failed to find it in the specs, but the code of the BaseTools kind of gave me such a suspect. Is there any particular reason why this limitation was added? At the moment I do not see a good reason why this is done.
If there is one, I guess we could consider some other approach, for example, we can factor out these functions to a separate DebugHelperLib/DebugBaseLib/DebugCommonLib, which every DebugLib will depend on. This will make sense to me as a workaround of such limitation, as neither us, nor Andrew, as he mentioned previously, are happy of having to duplicate code in DebugLib implementations and update them for a minor Pcd change. If there is no good reason, to be honest, it feels like we should just fix this. After reading the spec I do not see what kind of compiler issue could arise here with normal PCDs. Best regards, Vitaly > 18 марта 2020 г., в 23:35, Kinney, Michael D <michael.d.kin...@intel.com> > написал(а): > > Vitaly, > > The break you are seeing is because you are not using functions to eval the > PCD. This is a known restriction in how PCDs work between libs and modules > and is why the current design uses the XxxEnabled() functions. > > I have not reviewed this issue in a very long time, so I do not know if there > are any attributes of newer compilers that would allow a different design now. > > Best regards, > > Mike > > From: devel@edk2.groups.io <mailto:devel@edk2.groups.io> > <devel@edk2.groups.io <mailto:devel@edk2.groups.io>> On Behalf Of Vitaly > Cheptsov > Sent: Wednesday, March 18, 2020 12:36 PM > To: Laszlo Ersek <ler...@redhat.com <mailto:ler...@redhat.com>>; Andrew Fish > <af...@apple.com <mailto:af...@apple.com>>; Kinney, Michael D > <michael.d.kin...@intel.com <mailto:michael.d.kin...@intel.com>>; Marvin > Häuser <mhaeu...@outlook.de <mailto:mhaeu...@outlook.de>>; Gao, Liming > <liming....@intel.com <mailto:liming....@intel.com>>; Gao, Zhichao > <zhichao....@intel.com <mailto:zhichao....@intel.com>> > Cc: devel@edk2.groups.io <mailto:devel@edk2.groups.io> > Subject: Re: [edk2-devel] Disabling safe string constraint assertions > > Hello! > > I have a prototype of the patch, but there currently is an issue with the > current EDK II build system. > I attached the patch to this e-mail, however, it will not compile for > reasonably obscure causes. > > From what I understand: > - DebugLib header now directly uses PCDs from DebugLib, like > PcdDebugPropertyMask. > - Any library implementing DebugLib should now depend on these PCDs, which > seems fairly natural (and I fixed that in BaseDebugLibNull). > - Any library using DebugLib header should depend on DebugLib, which also > depend on DebugLib to get its PCDs (that already looks fine). > > However, for some reason DebugLib PCDs are not included in Autogen.h header > for other libraries some reason, and we get errors like: > MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.c:1151:9: > error: use of undeclared identifier '_PCD_GET_MODE_8_PcdDebugPropertyMask' > > I am not familiar with the build system well enough to resolve this, so I > either need guidance on where to look first or it will be great if somebody > else handles that. > I do not believe it is a great idea to abandon the idea of dropping > DebugAssertEnabled-like functions, so I suggest us to focus on resolving the > build system limitation rather than trying a new approach. > > Best regards, > Vitaly > > > > > > 11 марта 2020 г., в 16:14, Laszlo Ersek <ler...@redhat.com > <mailto:ler...@redhat.com>> напиÑал(а): > > On 03/11/20 14:09, Vitaly Cheptsov wrote: > > Hi everyone, > > So, I believe that by now we mostly agreed to let the original > proposition land as a short-term solution. We end up with: > > 1. A PCD condition within SAFE_STRING_COSTRAINT_CHECK macro. > 2. Make this condition evaluate to TRUE by default (i.e. ASSERT). > 3. Update documentation for BaseLib functions to include the information > about this behaviour. > > The only thing in question is whether this should be a separate PCD or > an extra bit in PcdDebugPropertyMask. I believe that we almost agreed on > two things: > > 1. Adding an extra bit to PcdDebugPropertyMask is cleaner. > 2. Extending DebugLib interface with a new function is not a good idea. > > Therefore I suggest: > > 1.Add #define DEBUG_PROPERTY_ASSERT_CONSTRAINT_ENABLED 0x40. > 2. Create header-only macros to replace functions like > DebugAssertEnabled. We can then use these macros in new code and > deprecate the original functions. > 3. Enable DEBUG_PROPERTY_ASSERT_CONSTRAINT_ENABLED bit in MdePkg by default. > > I will submit the new version of the patch soon unless there is an > immediate opposing opinion. > > Not sure about any particular deprecation timeline, but to me the above > certainly sounds worth submitting for review. > > (NB I don't plan to review in detail -- I just meant to comment on the > design, since I was asked to.) > > Thanks! > Laszlo > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#55964): https://edk2.groups.io/g/devel/message/55964 Mute This Topic: https://groups.io/mt/71711587/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
signature.asc
Description: Message signed with OpenPGP