ARM and AARCH64 have a compiler intrinsic lib that is linked against all modules.
[LibraryClasses.ARM, LibraryClasses.AARCH64] # # It is not possible to prevent ARM compiler calls to generic intrinsic functions. # This library provides the instrinsic functions generated by a given compiler. # [LibraryClasses.ARM] and NULL mean link this library into all ARM images. # NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf Can we use this same technique for IA32/X64 VS builds? Mike > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On > Behalf Of Laszlo Ersek > Sent: Tuesday, March 31, 2020 5:42 AM > To: Ard Biesheuvel <ard.biesheu...@linaro.org>; edk2- > devel-groups-io <devel@edk2.groups.io>; > mac...@microsoft.com > Subject: Re: [edk2-devel] [PATCH] CryptoPkg/FltUsedLib: > Add FltUsedLib for float. > > On 03/30/20 23:41, Ard Biesheuvel wrote: > > On Mon, 30 Mar 2020 at 23:29, Matthew Carlson via > Groups.Io > > <macarl=microsoft....@groups.io> wrote: > >> > >> So it's not required by OpenSSL, it's required by the > compiler whenever floating point is used, which can be in > multiple places. For example, this is used in mu_plus > (the Microsoft UEFI value add to EDK2) by the > OnScreenKeyboard driver as well as the UiToolKit driver. > > OK, so this is the part that was not obvious to me. This > is basically > code that exists on top of edk2 (consumes edk2) *AND* > uses floating > point *internally*. > > > If you happen to use BaseCryptLib or the intrinsic in a > driver that happens to need crypto as well, it can break > due to multiple. > >> > >> I do agree, this only applies to MSVC and requiring > every platform to add a line in their DSC would be a > situation I would prefer to avoid if possible. Is there a > way to specify a library dependency only if a toolchain > is being used? > > > > Yes, so this either belongs in one of the > IntrinsicsLibs we have, or > > in the various Entrypoint libraries we have for PEIMs, > DXEs, etc. > > > > However, given that we are talking about static > libraries here, adding > > a source file that *only* defines __fltused (and > nothing else) to any > > library should also work, as the resulting object file > will only be > > incorporated by the linker if it is needed to satisfy a > symbol > > dependency, and so it can never cause a conflict if it > is the only > > symbol in the object. > > IMO: if edk2 intends to support out-of-tree modules that > themselves > utilize floating point, *with or without* a dependency on > OpensslLib, > then we should add Ard's suggestion: > > [Sources] > + FloatUsed.c | MSFT > > to some of the "most core" edk2 library instances, i.e. > those that *all* > modules of the given module type inevitably depend on. > The entry point > libs look like a great idea to me. > > That should link the _fltused external definition exactly > once into all > modules built with MSVC, regardless of whether each such > module uses > floating point or not. > > Thanks > Laszlo > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#56768): https://edk2.groups.io/g/devel/message/56768 Mute This Topic: https://groups.io/mt/72648022/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-