sysutils/edk2@??? port futures: will need updates for gcc11 based builds
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 19 Jun 2021 22:40:33 UTC
EDK2 fails to build via lang/gcc11-devel (or lang/gcc11). But it
turns out that EDK2 uses an external git submodule that is a
source for why.
That submodule has code that changed a header to use the newer
C variably modified types for a couple of functions but did not
change the function definitions to match. gcc10 did not report
about this but gcc11 correctly rejects the combination.
brotli/c/dec/decode.c:2033:41: error: argument 2 of type 'const uint8_t *' {aka 'const unsigned char *'} declared as a pointer [-Werror=vla-parameter]
2033 | size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size,
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
In file included from brotli/c/dec/decode.c:7:
./brotli/c/include/brotli/decode.h:204:19: note: previously declared as a variable length array 'const uint8_t[*decoded_size]' {aka 'const unsigned char[*decoded_size]'}
204 | const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
brotli/c/dec/decode.c:2034:14: error: argument 4 of type 'uint8_t *' {aka 'unsigned char *'} declared as a pointer [-Werror=vla-parameter]
2034 | uint8_t* decoded_buffer) {
| ~~~~~~~~~^~~~~~~~~~~~~~
In file included from brotli/c/dec/decode.c:7:
./brotli/c/include/brotli/decode.h:206:13: note: previously declared as a variable length array 'uint8_t[encoded_size]' {aka 'unsigned char[encoded_size]'}
206 | uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]);
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(I'm not claiming that is the only issue but it is sufficient to
stop the build.)
I know that there has been activity at the projects involved to
deal with such, but I've not been tracking the progress.
NOTE:
My build tests ended up using lang/gcc11-devel instead of
lang/gcc11 because Mk/bsd.gcc.mk still has the code:
# A concrete version has been selected. Set proper ports dependencies,
# CC, CXX, CPP, and flags.
V:= ${_USE_GCC:S/.//}
. if ${V} == 11
_GCC_PORT:= gcc${V}-devel
. else
_GCC_PORT:= gcc${V}
. endif
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)