You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After updating between various VS2022 versions such as 17.4 to
17.5, , linker failures began to appear in several modules because
`memset` is an unresolved symbol.
The following functions in BaseMemoryLib/MemLibGeneric.c have their
loop pattern replaced with the `memset` intrinsic function:
- `InternalMemSetMem16()`
- `InternalMemSetMem32()`
- `InternalMemSetMem64()`
An example of an error related to `InternalMemSetMem64()` in
VariableSmmRuntimeDxe is shown below:
```
INFO - BaseMemoryLib.lib(MemLibGeneric.obj) : error LNK2001:
unresolved external symbol memset
INFO - <...>\VariableSmmRuntimeDxe.dll : fatal error LNK1120:
1 unresolved externals
```
This was reproduced in several environments including:
- Public VM image:
https://github.com/actions/runner-images/blob/win22/20230226.1/images/win/Windows2022-Readme.md
- Locally when updating from 17.4.4 to 17.5.1
> Note: This image (with 17.4) does not have this issue
https://github.com/actions/runner-images/blob/win22/20230219.1/images/win/Windows2022-Readme.md
This change updates the type cast for the destination buffer to be
a pointer to `volatile` data to prevent this optimization with a
relatively minimum delta to prior implementation.
Signed-off-by: Michael Kubacki <[email protected]>
(cherry picked from commit c46bc0e)
0 commit comments