Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ALT-TEST #6228

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft

ALT-TEST #6228

wants to merge 7 commits into from

Conversation

mikebeaton
Copy link
Contributor

No description provided.

This is part of a sequence of commits to restore build on the XCODE5
toolchain.

The definition is required on other toolchains, but on XCODE5 results
in a macro redefined error (from the existing value 255) from
/usr/include/stdint.h.

Signed-off-by: Mike Beaton <[email protected]>
Addresses https://bugzilla.tianocore.org/show_bug.cgi?id=3704

Without these changes, we get the error:

  error: variable '__DebugCodeLocal' set but not used

from the DebugLib.h DEBUG_CODE_BEGIN()/END() macros on XCODE5.

Similarly, in NOOPT builds only, we get:

  error: variable '__PerformanceCodeLocal' set but not used

from the PerformanceLib.h PERF_CODE_BEGIN()/END() macros on XCODE5.

The modified versions work on all toolchains.

The previous definitions of DEBUG_CODE_BEGIN() and DEBUG_CODE_END() use
the local variable __DebugCodeLocal as an attempt to track parity: if
DEBUG_CODE_END() is used without a preceding DEBUG_CODE_BEGIN(),
__DebugCodeLocal will not have been declared and a compilation error
will be issued. These mutations of the variable are not used to track
nesting or similar. As the value of this variable is never actually
used, recent Clang versions issue an "unused-but-set-variable" warning
for it.

To solve this, redefine __DebugCodeLocal as a BOOLEAN that is always
FALSE and use it in a do-while loop condition as done explicitly in
many places. As in the previous solution, DEBUG_CODE_END() cannot be
used without DEBUG_CODE_BEGIN(), as __DebugCodeLocal will be not have
been defined.

Also make the matching change in the PERF_CODE_BEGIN()/END() macros.

Signed-off-by: Marvin Häuser <[email protected]>
Signed-off-by: Mikhail Krichanov <[email protected]>
Signed-off-by: Mike Beaton <[email protected]>
Without this change we get:

  error: equality comparison with extraneous parentheses

when building on XCODE5.

Signed-off-by: Mike Beaton <[email protected]>
REF: https://edk2.groups.io/g/devel/message/88179

Without this change, we get:

  fatal error: 'Availability.h' file not found

when building on XCODE5.

The workaround uses a define present in openssl/include/crypto/rand.h
which modifies openssl behaviour on Apple only, causing the library
to default to a non-system specific source of entropy in syscall_random()
in rand_unix.c.

Signed-off-by: Savva Mitrofanov <[email protected]>
Signed-off-by: Mike Beaton <[email protected]>
Without this change we get:

  error: variable 'Index' set but not used

when building on XCODE5.

Signed-off-by: Savva Mitrofanov <[email protected]>
Signed-off-by: Mike Beaton <[email protected]>
Without this change we get:

  error: equality comparison with extraneous parentheses

when building with -D NETWORK_IP6_ENABLE on XCODE5.

Signed-off-by: Mike Beaton <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant