kumquat-buildroot/package/swupdate/0001-swupdate-core-bootloader.c-fix-build-without-reallocarray.patch
Ben Hutchings 2e766f73c4 package/swupdate: add upstream patch to fix build with uclibc
Fix the following build failure with uclibc:

core/bootloader.c: In function 'register_bootloader':
core/bootloader.c:28:15: warning: implicit declaration of function 'reallocarray' [-Wimplicit-function-declaration]
   28 |  entry *tmp = reallocarray(available, num_available + 1, sizeof(entry));
      |               ^~~~~~~~~~~~
core/bootloader.c:28:15: warning: initialization of 'entry *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
[...]
.../arm-buildroot-linux-uclibcgnueabi/bin/ld: core/built-in.o: in function `register_bootloader':
(.text.register_bootloader+0x2c): undefined reference to `reallocarray'

Fixes:

  http://autobuild.buildroot.net/results/46dc484759549162ec246e0bff2647995c307ab5/

Signed-off-by: Ben Hutchings <ben.hutchings@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-22 23:03:41 +02:00

36 lines
1.3 KiB
Diff

From f30c4771e93cad7e77d7f2add94327865d226553 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Sun, 15 May 2022 14:53:35 +0200
Subject: [PATCH] core/bootloader.c: fix build without reallocarray
Use realloc instead of reallocarray to avoid the following build failure
with uclibc raised since version 2022.05 and
https://github.com/sbabic/swupdate/commit/b8897ed695e1cd954859142b14ec8546d2e7994a:
microblaze-buildroot-linux-uclibc/bin/ld: core/built-in.o: in function `register_bootloader':
(.text.register_bootloader+0x30): undefined reference to `reallocarray'
Fixes:
- http://autobuild.buildroot.org/results/7208e8189b4a6f35aaa4ed7777ecdd37421a7c7f
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Backported from: f30c4771e93cad7e77d7f2add94327865d226553
Signed-off-by: Ben Hutchings <ben.hutchings@mind.be>
---
core/bootloader.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/bootloader.c b/core/bootloader.c
index f34cb414..5694d43d 100644
--- a/core/bootloader.c
+++ b/core/bootloader.c
@@ -25,7 +25,7 @@ static unsigned int num_available = 0;
int register_bootloader(const char *name, bootloader *bl)
{
- entry *tmp = reallocarray(available, num_available + 1, sizeof(entry));
+ entry *tmp = realloc(available, (num_available + 1) * sizeof(entry));
if (!tmp) {
return -ENOMEM;
}