For release note since version 38, see [1].
This commit introduces changes in package patches:
- 0001: Patch dropped. An similar change is included in this release.
See [2].
- 0002: Patch no longer needed since the package build recipe sets
CFLAGS without -Werror, and the package makefile sets -Werror only
by default. See [3], included since version 38.
- 0003: Rebased on version 39 and renamed to 0001. The patch is also
flagged as "Upstream: Not applicable".
- 0004: Patch dropped. Included in this release. See [4].
This commit also removes all patch entries in ".checkpackageignore"
(since the remaining patch has its "Upstream:" tag).
This version 39 also fixes few build failures. Those can be seen by
running the command "utils/test-pkg -a -p efivar". The first group
of build failures is:
br-arm-basic [28/45]: FAILED
br-i386-pentium4-full [31/45]: FAILED
br-mips64-n64-full [33/45]: FAILED
br-mips64r6-el-hf-glibc [34/45]: FAILED
linaro-aarch64 [38/45]: FAILED
linaro-arm [39/45]: FAILED
Fixes:
/buildroot/host/opt/ext-toolchain/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: .data not found for insert
collect2: error: ld returned 1 exit status
efivar 38 was using linker scripts, which was not working in all
cases. Those issues are fixed by the upstream commit [5] which
removes the use of this linker script (included in this release).
The "test-pkg -a -p efivar" also caught another kind of build
failures:
br-i386-pentium-mmx-musl [32/45]: FAILED
Fixes:
In file included from efivar.h:18,
from efisec.h:24,
from secdb-dump.c:7:
list.h: In function 'list_sort':
list.h:152:2: warning: implicit declaration of function 'qsort_r'; did you mean 'qsort'? [-Wimplicit-function-declaration]
152 | qsort_r(array, nmemb, sizeof(*array), cmp, state);
| ^~~~~~~
| qsort
Those failures were introduced in commit f24029b561 "package/efivar:
bump to version 38". This is because efivar introduced a usage of the
qsort_r() libc function, in upstream commit [6], first included in
version 38.
Musl libc added the qsort_r() function in upstream commit [7], included in
version v1.2.3 (2022-04-07). So external toolchains including a Musl older
than this version will fail. But given how old this issue is (musql 1.2.3
is included in Buildroot since 2022.05), this issue is ignored.
uClibc-ng external toolchains are also not affected, since it added
the qsort_r() function in commit [8] included since its first version
v1.0.0 (2015-02-02). So there is no need to exclude external uclibc
toolchains.
[1] https://github.com/rhboot/efivar/releases/tag/39
[2] 4f3da3dc35
[3] 998f617cec
[4] cece3ffd5b
[5] cfd686de51
[6] 62afa2aa58
[7] https://git.musl-libc.org/cgit/musl/commit/?id=b76f37fd5625d038141b52184956fb4b7838e9a5
[8] 515d544331
Signed-off-by: Julien Olivain <ju.o@free.fr>
[Peter: drop dependency on !external musl]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>