diff mbox series

[v2,2/2] barebox: upgrade 2024.12.0 -> 2025.01.0

Message ID 20250127153944.676370-2-ejo@pengutronix.de
State New
Headers show
Series [v2,1/2] barebox: drop patch file left over during last upgrade | expand

Commit Message

Enrico Jörns Jan. 27, 2025, 3:39 p.m. UTC
Changes:

* Added LLVM/Clang support for the sandbox architecture.
* Enabled command execution from the sandbox command line.
* Improved TFTP with dentry caching and default-disabled window size.
* Introduced hardening features: register zeroing, stack variable
  initialization, and malloc buffer zeroing.
* Enhanced AM625 support with network support, watchdog driver, and
  bootsource detection.

Changelog: https://lore.barebox.org/barebox/Z4oUYdHXEAtnkySC@pengutronix.de/T/#u

Also adds a new patch created for fixing barebox-tools build with musl.

Signed-off-by: Enrico Jörns <ejo@pengutronix.de>
---
v1 -> v2:
  * added barebox patch file to fix musl build (by Ahmad Fatoum)
  * minor wording change in 'Changes'
  [* added patch to remove old barebox .patch file]

 meta/recipes-bsp/barebox/barebox-common.inc   |  6 +-
 ...linux-types.h-define-loff_t-for-musl.patch | 57 +++++++++++++++++++
 2 files changed, 61 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch

Comments

Khem Raj Jan. 27, 2025, 7:06 p.m. UTC | #1
On Mon, Jan 27, 2025 at 7:40 AM Enrico Jörns via
lists.openembedded.org <ejo=pengutronix.de@lists.openembedded.org>
wrote:
>
> Changes:
>
> * Added LLVM/Clang support for the sandbox architecture.
> * Enabled command execution from the sandbox command line.
> * Improved TFTP with dentry caching and default-disabled window size.
> * Introduced hardening features: register zeroing, stack variable
>   initialization, and malloc buffer zeroing.
> * Enhanced AM625 support with network support, watchdog driver, and
>   bootsource detection.
>
> Changelog: https://lore.barebox.org/barebox/Z4oUYdHXEAtnkySC@pengutronix.de/T/#u
>
> Also adds a new patch created for fixing barebox-tools build with musl.
>
> Signed-off-by: Enrico Jörns <ejo@pengutronix.de>
> ---
> v1 -> v2:
>   * added barebox patch file to fix musl build (by Ahmad Fatoum)
>   * minor wording change in 'Changes'
>   [* added patch to remove old barebox .patch file]
>
>  meta/recipes-bsp/barebox/barebox-common.inc   |  6 +-
>  ...linux-types.h-define-loff_t-for-musl.patch | 57 +++++++++++++++++++
>  2 files changed, 61 insertions(+), 2 deletions(-)
>  create mode 100644 meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch
>
> diff --git a/meta/recipes-bsp/barebox/barebox-common.inc b/meta/recipes-bsp/barebox/barebox-common.inc
> index fce3b825ae..13f1d81289 100644
> --- a/meta/recipes-bsp/barebox/barebox-common.inc
> +++ b/meta/recipes-bsp/barebox/barebox-common.inc
> @@ -3,6 +3,8 @@ SECTION = "bootloaders"
>
>  LIC_FILES_CHKSUM = "file://COPYING;md5=f5125d13e000b9ca1f0d3364286c4192"
>
> -PV = "2024.12.0"
> +PV = "2025.01.0"
>  SRC_URI = "https://barebox.org/download/barebox-${PV}.tar.bz2"
> -SRC_URI[sha256sum] = "717a2416b37942f584b0bb2eb61ccbf85dc0f1a5c841318f47cd6967b9c4dcab"
> +SRC_URI[sha256sum] = "288a838e6fe8897ea46dabd112e42287177353c88a7d442cefc8be8d1a85f5b5"
> +
> +SRC_URI += "file://0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch"
> diff --git a/meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch b/meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch
> new file mode 100644
> index 0000000000..bce9d2ebf5
> --- /dev/null
> +++ b/meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch
> @@ -0,0 +1,57 @@
> +From e46f4add079bbae4ac0926ed113e393786e89bef Mon Sep 17 00:00:00 2001
> +From: Ahmad Fatoum <a.fatoum@pengutronix.de>
> +Date: Mon, 27 Jan 2025 15:31:46 +0100
> +Subject: [PATCH] scripts: include/linux/types.h: define loff_t for musl
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +musl doesn't define loff_t, but glibc does and both of them define
> +__linux__. This leads to build errors with musl when code makes it into
> +scripts/ that uses loff_t. This was already fixed once e.g. in commit
> +c0d065fb0aa0 ("scripts: bareboximd: remove usage of loff_t").
> +
> +Instead of playing whack-a-mole in future, let's just define loff_t
> +for non-glibc builds of scripts/.
> +

loff_t is not posix defined but it is available in musl.
you need to add -D_GNU_SOURCE to the compiler cmdline.

> +Also, make sure <linux/types.h> is always included for scripts/common.h,
> +which is the only header currently making use of loff_t.
> +
> +Fixes: 5171f4d0696f ("scripts: implement read_fd and pread_full for tools")
> +Upstream-Status: Submitted [https://lore.barebox.org/barebox/20250127143146.2965544-1-a.fatoum@pengutronix.de/T/#u]
> +Reported-by: Enrico Jörns <ejo@pengutronix.de>
> +Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> +---
> + scripts/common.h              | 2 ++
> + scripts/include/linux/types.h | 2 +-
> + 2 files changed, 3 insertions(+), 1 deletion(-)
> +
> +diff --git a/scripts/common.h b/scripts/common.h
> +index a0d16606b5..21ec576a5b 100644
> +--- a/scripts/common.h
> ++++ b/scripts/common.h
> +@@ -1,6 +1,8 @@
> + #ifndef __COMMON_H
> + #define __COMMON_H
> +
> ++#include <linux/types.h>
> ++
> + int read_file_2(const char *filename, size_t *size, void **outbuf, size_t max_size);
> + void *read_file(const char *filename, size_t *size);
> + void *read_fd(int fd, size_t *out_size);
> +diff --git a/scripts/include/linux/types.h b/scripts/include/linux/types.h
> +index e81d7e8101..02a330cd4e 100644
> +--- a/scripts/include/linux/types.h
> ++++ b/scripts/include/linux/types.h
> +@@ -14,7 +14,7 @@ typedef int16_t __s16;
> + typedef uint8_t __u8;
> + typedef int8_t __s8;
> +
> +-#ifndef __linux__
> ++#ifndef __GLIBC__
> + typedef long long loff_t;
> + #endif
> +
> +--
> +2.39.5
> +
> --
> 2.39.5
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#210302): https://lists.openembedded.org/g/openembedded-core/message/210302
> Mute This Topic: https://lists.openembedded.org/mt/110840770/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Ahmad Fatoum Jan. 27, 2025, 8:01 p.m. UTC | #2
On 27.01.25 20:06, Khem Raj wrote:
> On Mon, Jan 27, 2025 at 7:40 AM Enrico Jörns via
> lists.openembedded.org <ejo=pengutronix.de@lists.openembedded.org>
> wrote:
>>
>> Changes:
>>
>> * Added LLVM/Clang support for the sandbox architecture.
>> * Enabled command execution from the sandbox command line.
>> * Improved TFTP with dentry caching and default-disabled window size.
>> * Introduced hardening features: register zeroing, stack variable
>>   initialization, and malloc buffer zeroing.
>> * Enhanced AM625 support with network support, watchdog driver, and
>>   bootsource detection.
>>
>> Changelog: https://lore.barebox.org/barebox/Z4oUYdHXEAtnkySC@pengutronix.de/T/#u
>>
>> Also adds a new patch created for fixing barebox-tools build with musl.
>>
>> Signed-off-by: Enrico Jörns <ejo@pengutronix.de>
>> ---
>> v1 -> v2:
>>   * added barebox patch file to fix musl build (by Ahmad Fatoum)
>>   * minor wording change in 'Changes'
>>   [* added patch to remove old barebox .patch file]
>>
>>  meta/recipes-bsp/barebox/barebox-common.inc   |  6 +-
>>  ...linux-types.h-define-loff_t-for-musl.patch | 57 +++++++++++++++++++
>>  2 files changed, 61 insertions(+), 2 deletions(-)
>>  create mode 100644 meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch
>>
>> diff --git a/meta/recipes-bsp/barebox/barebox-common.inc b/meta/recipes-bsp/barebox/barebox-common.inc
>> index fce3b825ae..13f1d81289 100644
>> --- a/meta/recipes-bsp/barebox/barebox-common.inc
>> +++ b/meta/recipes-bsp/barebox/barebox-common.inc
>> @@ -3,6 +3,8 @@ SECTION = "bootloaders"
>>
>>  LIC_FILES_CHKSUM = "file://COPYING;md5=f5125d13e000b9ca1f0d3364286c4192"
>>
>> -PV = "2024.12.0"
>> +PV = "2025.01.0"
>>  SRC_URI = "https://barebox.org/download/barebox-${PV}.tar.bz2"
>> -SRC_URI[sha256sum] = "717a2416b37942f584b0bb2eb61ccbf85dc0f1a5c841318f47cd6967b9c4dcab"
>> +SRC_URI[sha256sum] = "288a838e6fe8897ea46dabd112e42287177353c88a7d442cefc8be8d1a85f5b5"
>> +
>> +SRC_URI += "file://0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch"
>> diff --git a/meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch b/meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch
>> new file mode 100644
>> index 0000000000..bce9d2ebf5
>> --- /dev/null
>> +++ b/meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch
>> @@ -0,0 +1,57 @@
>> +From e46f4add079bbae4ac0926ed113e393786e89bef Mon Sep 17 00:00:00 2001
>> +From: Ahmad Fatoum <a.fatoum@pengutronix.de>
>> +Date: Mon, 27 Jan 2025 15:31:46 +0100
>> +Subject: [PATCH] scripts: include/linux/types.h: define loff_t for musl
>> +MIME-Version: 1.0
>> +Content-Type: text/plain; charset=UTF-8
>> +Content-Transfer-Encoding: 8bit
>> +
>> +musl doesn't define loff_t, but glibc does and both of them define
>> +__linux__. This leads to build errors with musl when code makes it into
>> +scripts/ that uses loff_t. This was already fixed once e.g. in commit
>> +c0d065fb0aa0 ("scripts: bareboximd: remove usage of loff_t").
>> +
>> +Instead of playing whack-a-mole in future, let's just define loff_t
>> +for non-glibc builds of scripts/.
>> +
> 
> loff_t is not posix defined but it is available in musl.
> you need to add -D_GNU_SOURCE to the compiler cmdline.

I somehow thought _GNU_SOURCE was already being set globally, but you're
right: Not all files were setting it.

I just Cc'd you on a patch[1] to define it on the compiler command line instead.

[1]: https://lore.kernel.org/barebox/20250127195109.3928003-1-a.fatoum@pengutronix.de/T/#u

Thanks,
Ahmad

> 
>> +Also, make sure <linux/types.h> is always included for scripts/common.h,
>> +which is the only header currently making use of loff_t.
>> +
>> +Fixes: 5171f4d0696f ("scripts: implement read_fd and pread_full for tools")
>> +Upstream-Status: Submitted [https://lore.barebox.org/barebox/20250127143146.2965544-1-a.fatoum@pengutronix.de/T/#u]
>> +Reported-by: Enrico Jörns <ejo@pengutronix.de>
>> +Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
>> +---
>> + scripts/common.h              | 2 ++
>> + scripts/include/linux/types.h | 2 +-
>> + 2 files changed, 3 insertions(+), 1 deletion(-)
>> +
>> +diff --git a/scripts/common.h b/scripts/common.h
>> +index a0d16606b5..21ec576a5b 100644
>> +--- a/scripts/common.h
>> ++++ b/scripts/common.h
>> +@@ -1,6 +1,8 @@
>> + #ifndef __COMMON_H
>> + #define __COMMON_H
>> +
>> ++#include <linux/types.h>
>> ++
>> + int read_file_2(const char *filename, size_t *size, void **outbuf, size_t max_size);
>> + void *read_file(const char *filename, size_t *size);
>> + void *read_fd(int fd, size_t *out_size);
>> +diff --git a/scripts/include/linux/types.h b/scripts/include/linux/types.h
>> +index e81d7e8101..02a330cd4e 100644
>> +--- a/scripts/include/linux/types.h
>> ++++ b/scripts/include/linux/types.h
>> +@@ -14,7 +14,7 @@ typedef int16_t __s16;
>> + typedef uint8_t __u8;
>> + typedef int8_t __s8;
>> +
>> +-#ifndef __linux__
>> ++#ifndef __GLIBC__
>> + typedef long long loff_t;
>> + #endif
>> +
>> +--
>> +2.39.5
>> +
>> --
>> 2.39.5
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#210302): https://lists.openembedded.org/g/openembedded-core/message/210302
>> Mute This Topic: https://lists.openembedded.org/mt/110840770/1997914
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
>
diff mbox series

Patch

diff --git a/meta/recipes-bsp/barebox/barebox-common.inc b/meta/recipes-bsp/barebox/barebox-common.inc
index fce3b825ae..13f1d81289 100644
--- a/meta/recipes-bsp/barebox/barebox-common.inc
+++ b/meta/recipes-bsp/barebox/barebox-common.inc
@@ -3,6 +3,8 @@  SECTION = "bootloaders"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=f5125d13e000b9ca1f0d3364286c4192"
 
-PV = "2024.12.0"
+PV = "2025.01.0"
 SRC_URI = "https://barebox.org/download/barebox-${PV}.tar.bz2"
-SRC_URI[sha256sum] = "717a2416b37942f584b0bb2eb61ccbf85dc0f1a5c841318f47cd6967b9c4dcab"
+SRC_URI[sha256sum] = "288a838e6fe8897ea46dabd112e42287177353c88a7d442cefc8be8d1a85f5b5"
+
+SRC_URI += "file://0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch"
diff --git a/meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch b/meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch
new file mode 100644
index 0000000000..bce9d2ebf5
--- /dev/null
+++ b/meta/recipes-bsp/barebox/files/0001-scripts-include-linux-types.h-define-loff_t-for-musl.patch
@@ -0,0 +1,57 @@ 
+From e46f4add079bbae4ac0926ed113e393786e89bef Mon Sep 17 00:00:00 2001
+From: Ahmad Fatoum <a.fatoum@pengutronix.de>
+Date: Mon, 27 Jan 2025 15:31:46 +0100
+Subject: [PATCH] scripts: include/linux/types.h: define loff_t for musl
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+musl doesn't define loff_t, but glibc does and both of them define
+__linux__. This leads to build errors with musl when code makes it into
+scripts/ that uses loff_t. This was already fixed once e.g. in commit
+c0d065fb0aa0 ("scripts: bareboximd: remove usage of loff_t").
+
+Instead of playing whack-a-mole in future, let's just define loff_t
+for non-glibc builds of scripts/.
+
+Also, make sure <linux/types.h> is always included for scripts/common.h,
+which is the only header currently making use of loff_t.
+
+Fixes: 5171f4d0696f ("scripts: implement read_fd and pread_full for tools")
+Upstream-Status: Submitted [https://lore.barebox.org/barebox/20250127143146.2965544-1-a.fatoum@pengutronix.de/T/#u]
+Reported-by: Enrico Jörns <ejo@pengutronix.de>
+Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
+---
+ scripts/common.h              | 2 ++
+ scripts/include/linux/types.h | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/scripts/common.h b/scripts/common.h
+index a0d16606b5..21ec576a5b 100644
+--- a/scripts/common.h
++++ b/scripts/common.h
+@@ -1,6 +1,8 @@
+ #ifndef __COMMON_H
+ #define __COMMON_H
+ 
++#include <linux/types.h>
++
+ int read_file_2(const char *filename, size_t *size, void **outbuf, size_t max_size);
+ void *read_file(const char *filename, size_t *size);
+ void *read_fd(int fd, size_t *out_size);
+diff --git a/scripts/include/linux/types.h b/scripts/include/linux/types.h
+index e81d7e8101..02a330cd4e 100644
+--- a/scripts/include/linux/types.h
++++ b/scripts/include/linux/types.h
+@@ -14,7 +14,7 @@ typedef int16_t __s16;
+ typedef uint8_t __u8;
+ typedef int8_t __s8;
+ 
+-#ifndef __linux__
++#ifndef __GLIBC__
+ typedef long long loff_t;
+ #endif
+ 
+-- 
+2.39.5
+