mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
m4: Upgrade to 1.4.20 release
This has been 4 years in making, it has fixes to build with gcc-15
and some patches are upstream [1] [2]
This release collects several years of portability improvements, as
well as a couple of minor optimizations to performance. Notable
improvements in this release include faster execution of the 'eval'
builtin. More details [3]
[1] 2d830e4a79
[2] https://git.savannah.gnu.org/gitweb/?p=libsigsegv.git;a=commitdiff;h=a6ff69873110c0a8ba6f7fd90532dbc11224828c
[3] https://lists.gnu.org/archive/html/m4-announce/2025-05/msg00000.html
(From OE-Core rev: b30b952d82af8d505728123023344aac3d9204b8)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
af8b70d359
commit
0f13d6f48b
|
@ -7,15 +7,12 @@ GNU M4 also has built-in functions for including files, running shell commands,
|
|||
inherit autotools texinfo ptest gettext
|
||||
|
||||
SRC_URI = "${GNU_MIRROR}/m4/m4-${PV}.tar.gz \
|
||||
file://ac_config_links.patch \
|
||||
file://0001-sigsegv-Fix-build-on-ppc-musl.patch \
|
||||
file://0001-Define-alignof_slot-using-_Alignof-when-using-C11-or.patch \
|
||||
"
|
||||
SRC_URI:append:class-target = " file://run-ptest \
|
||||
file://serial-tests-config.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70"
|
||||
SRC_URI[sha256sum] = "6ac4fc31ce440debe63987c2ebbf9d7b6634e67a7c3279257dc7361de8bdb3ef"
|
||||
|
||||
LICENSE = "GPL-3.0-only"
|
||||
|
||||
|
@ -26,8 +23,6 @@ EXTRA_OECONF += "--without-libsigsegv-prefix"
|
|||
|
||||
EXTRA_OEMAKE += "'infodir=${infodir}'"
|
||||
|
||||
CFLAGS += "-std=gnu17"
|
||||
|
||||
do_compile_ptest() {
|
||||
cd ${B}/tests
|
||||
sed -i '/^buildtest-TESTS: /c buildtest-TESTS: $(TESTS) $(check_LIBRARIES) $(check_PROGRAMS)' Makefile
|
||||
|
@ -37,15 +32,15 @@ do_compile_ptest() {
|
|||
do_install_ptest() {
|
||||
cp -r ${B}/tests ${D}${PTEST_PATH}
|
||||
cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests/
|
||||
cp -r ${S}/build-aux ${D}${PTEST_PATH}/tests/
|
||||
sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile
|
||||
find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {}
|
||||
cp ${S}/build-aux/update-copyright ${D}${PTEST_PATH}/tests/
|
||||
sed -i 's;update-copyright;./update-copyright;g' ${D}${PTEST_PATH}/tests/test-update-copyright.sh
|
||||
chmod 0755 ${D}${PTEST_PATH}/tests/test-mbrtowc-w32-1.sh ${D}${PTEST_PATH}/tests/test-spawn-pipe-main \
|
||||
chmod 0755 ${D}${PTEST_PATH}/tests/test-spawn-pipe-main \
|
||||
${D}${PTEST_PATH}/tests/test-spawn-pipe-child ${D}${PTEST_PATH}/tests/test-version-etc \
|
||||
${D}${PTEST_PATH}/tests/test-xalloc-die
|
||||
|
||||
ln -s ptest ${D}${libdir}/${BPN}/${BP}
|
||||
ln -sf ptest ${D}${libdir}/${BPN}/${BP}
|
||||
sed -i -e 's/@BP@/${BP}/g' ${D}${PTEST_PATH}/run-ptest
|
||||
}
|
||||
|
||||
do_install_ptest:append:libc-glibc() {
|
||||
|
@ -59,4 +54,3 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = "\
|
|||
locale-base-fr-fr.iso-8859-1 \
|
||||
glibc-gconv-iso8859-1 \
|
||||
"
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
From b0fd3a58354b1f5ead891907979dfd3dd36840d5 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 14 Jan 2023 14:55:03 -0800
|
||||
Subject: [PATCH] Define alignof_slot using _Alignof when using C11 or newer
|
||||
|
||||
WG14 N2350 made very clear that it is an UB having type definitions
|
||||
within "offsetof" [1]. This patch enhances the implementation of macro
|
||||
alignof_slot to use builtin "_Alignof" to avoid undefined behavior on
|
||||
when using std=c11 or newer
|
||||
|
||||
clang 16+ has started to flag this [2]
|
||||
|
||||
Fixes build when using -std >= gnu11 and using clang16+ [3]
|
||||
|
||||
[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm
|
||||
[2] https://reviews.llvm.org/D133574
|
||||
[3] https://public-inbox.org/bug-gnulib/20230114232744.215167-1-raj.khem@gmail.com/T/#u
|
||||
|
||||
Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=2d404c7dd974cc65f894526f4a1b76bc1dcd8d82]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
lib/alignof.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/lib/alignof.h
|
||||
+++ b/lib/alignof.h
|
||||
@@ -18,19 +18,19 @@
|
||||
#define _ALIGNOF_H
|
||||
|
||||
#include <stddef.h>
|
||||
+#include "stdalign.h"
|
||||
|
||||
/* alignof_slot (TYPE)
|
||||
Determine the alignment of a structure slot (field) of a given type,
|
||||
at compile time. Note that the result depends on the ABI.
|
||||
- This is the same as alignof (TYPE) and _Alignof (TYPE), defined in
|
||||
- <stdalign.h> if __alignof_is_defined is 1.
|
||||
+ This is the same as alignof (TYPE).
|
||||
Note: The result cannot be used as a value for an 'enum' constant,
|
||||
due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc. */
|
||||
#if defined __cplusplus
|
||||
template <class type> struct alignof_helper { char __slot1; type __slot2; };
|
||||
# define alignof_slot(type) offsetof (alignof_helper<type>, __slot2)
|
||||
#else
|
||||
-# define alignof_slot(type) offsetof (struct { char __slot1; type __slot2; }, __slot2)
|
||||
+# define alignof_slot(type) alignof (type)
|
||||
#endif
|
||||
|
||||
/* alignof_type (TYPE)
|
|
@ -1,37 +0,0 @@
|
|||
From 36d5e26f606e070553eb0fff1f738e61970be5d7 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 9 Mar 2022 20:22:20 -0800
|
||||
Subject: [PATCH] sigsegv: Fix build on ppc/musl
|
||||
|
||||
mcontext is not a standard layout so glibc and musl differ sadly.
|
||||
|
||||
Fixes
|
||||
../../m4-1.4.19/lib/sigsegv.c: In function 'sigsegv_handler': ../../m4-1.4.19/lib/sigsegv.c:223:75: error: 'mcontext_t' has no member named 'uc_regs'; did you mean 'gregs'? 223 | # define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.uc_regs->gregs[1] | ^~~~~~~
|
||||
|
||||
Upstream-Status: Submitted [https://lists.gnu.org/archive/html/m4-patches/2022-03/msg00000.html]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
lib/sigsegv.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/lib/sigsegv.c b/lib/sigsegv.c
|
||||
index 696a152..fa0c465 100644
|
||||
--- a/lib/sigsegv.c
|
||||
+++ b/lib/sigsegv.c
|
||||
@@ -217,10 +217,10 @@ int libsigsegv_version = LIBSIGSEGV_VERSION;
|
||||
# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.gp_regs[1]
|
||||
# else /* 32-bit */
|
||||
/* both should be equivalent */
|
||||
-# if 0
|
||||
-# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.regs->gpr[1]
|
||||
+# if ! defined __GLIBC__
|
||||
+# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_regs->gregs[1]
|
||||
# else
|
||||
-# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.uc_regs->gregs[1]
|
||||
+# define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.uc_regs->gregs[1]
|
||||
# endif
|
||||
# endif
|
||||
|
||||
--
|
||||
2.35.1
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
This patch fixes a build problem for m4-native experienced on Ubuntu 9.10,
|
||||
where autoconf/automake (AC_CONFIG_LINKS) ends up making GNUmakefile a
|
||||
symlink to itself.
|
||||
|
||||
The patch comments out ac_config_links directly in configure,
|
||||
as autoreconf is not actually run for m4-native.
|
||||
|
||||
I believe it should be safe, as GNUmakefile is actually unpacked from
|
||||
source, and what we want is to is to not touch it.
|
||||
|
||||
Tested on x86_64_linux (Ubuntu 8.04 and 9.10).
|
||||
|
||||
2009-11-10 Esben Haabendal <eha@doredevelopment.dk>
|
||||
---
|
||||
configure | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 883336a..6343a34 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -37061,8 +37061,8 @@ printf "%s\n" "#define GNULIB_TEST_GETRANDOM 1" >>confdefs.h
|
||||
# only, it does not matter if we skip the link with older autoconf.
|
||||
# Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
|
||||
# builds, so use a shell variable to bypass this.
|
||||
- GNUmakefile=GNUmakefile
|
||||
- ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
|
||||
+# GNUmakefile=GNUmakefile
|
||||
+# ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
|
||||
|
||||
|
||||
LIB_HARD_LOCALE="$LIB_SETLOCALE_NULL"
|
||||
--
|
||||
2.25.1
|
||||
|
|
@ -2,4 +2,4 @@
|
|||
#
|
||||
#This script is used to run m4 test suites
|
||||
cd tests
|
||||
make -k runtest-TESTS top_srcdir=.. srcdir=.
|
||||
make -k runtest-TESTS abs_aux_dir=../../@BP@/tests/build-aux abs_top_srcdir=../../@BP@/tests abs_srcdir=../../@BP@/tests top_srcdir=.. srcdir=.
|
||||
|
|
|
@ -12,19 +12,14 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com>
|
|||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 78b8788..931fa6f 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -22,7 +22,7 @@ AC_INIT([GNU M4], m4_esyscmd([build-aux/git-version-gen .tarball-version]),
|
||||
@@ -22,7 +22,7 @@ AC_INIT([GNU M4], m4_esyscmd([build-aux/
|
||||
[bug-m4@gnu.org])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
|
||||
-AM_INIT_AUTOMAKE([1.11.6 dist-bzip2 dist-xz color-tests parallel-tests
|
||||
+AM_INIT_AUTOMAKE([1.11.6 dist-bzip2 dist-xz color-tests serial-tests
|
||||
-AM_INIT_AUTOMAKE([1.14 dist-bzip2 dist-xz color-tests parallel-tests
|
||||
+AM_INIT_AUTOMAKE([1.14 dist-bzip2 dist-xz color-tests serial-tests
|
||||
silent-rules subdir-objects gnu])
|
||||
AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user