summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwangmy <wangmy@fujitsu.com>2021-06-15 10:12:14 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-06-17 00:07:05 +0100
commit3f51d9e627503d6e744dbf327106940d1b3020c0 (patch)
tree4fc9f3c299681f5eb79c53803353c13e4adfa925
parent3d76fca34b3ff2984b06560faa8399515d19b6e2 (diff)
downloadpoky-3f51d9e627503d6e744dbf327106940d1b3020c0.tar.gz
m4: upgrade 1.4.18 -> 1.4.19
0001-Unset-need_charset_alias-when-building-for-musl.patch 0001-c-stack-stop-using-SIGSTKSZ.patch 0001-test-getopt-posix-fix.patch m4-1.4.18-glibc-change-work-around.patch deleted since they are included in 1.4.19 refresh ac_config_links.patch License-update: URL of license changed (From OE-Core rev: c61358d84d83f0fbd8b2fbe2659ed547e0c046a4) Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/m4/m4-1.4.19.inc (renamed from meta/recipes-devtools/m4/m4-1.4.18.inc)14
-rw-r--r--meta/recipes-devtools/m4/m4-native_1.4.19.bb (renamed from meta/recipes-devtools/m4/m4-native_1.4.18.bb)0
-rw-r--r--meta/recipes-devtools/m4/m4/0001-Unset-need_charset_alias-when-building-for-musl.patch33
-rw-r--r--meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch84
-rw-r--r--meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch41
-rw-r--r--meta/recipes-devtools/m4/m4/ac_config_links.patch24
-rw-r--r--meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch130
-rw-r--r--meta/recipes-devtools/m4/m4_1.4.19.bb (renamed from meta/recipes-devtools/m4/m4_1.4.18.bb)0
8 files changed, 20 insertions, 306 deletions
diff --git a/meta/recipes-devtools/m4/m4-1.4.18.inc b/meta/recipes-devtools/m4/m4-1.4.19.inc
index 6475b02f8b..c28e301d50 100644
--- a/meta/recipes-devtools/m4/m4-1.4.18.inc
+++ b/meta/recipes-devtools/m4/m4-1.4.19.inc
@@ -4,25 +4,21 @@ DESCRIPTION = "GNU m4 is an implementation of the traditional Unix macro process
4compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). \ 4compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). \
5GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc." 5GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc."
6 6
7inherit autotools texinfo ptest 7inherit autotools texinfo ptest gettext
8 8
9SRC_URI = "${GNU_MIRROR}/m4/m4-${PV}.tar.gz \ 9SRC_URI = "${GNU_MIRROR}/m4/m4-${PV}.tar.gz \
10 file://ac_config_links.patch \ 10 file://ac_config_links.patch \
11 file://m4-1.4.18-glibc-change-work-around.patch \
12 file://0001-c-stack-stop-using-SIGSTKSZ.patch \
13 " 11 "
14SRC_URI_append_class-target = " file://0001-Unset-need_charset_alias-when-building-for-musl.patch \ 12SRC_URI_append_class-target = " file://run-ptest \
15 file://run-ptest \
16 file://serial-tests-config.patch \ 13 file://serial-tests-config.patch \
17 file://0001-test-getopt-posix-fix.patch \
18 " 14 "
19 15
20SRC_URI[md5sum] = "a077779db287adf4e12a035029002d28" 16SRC_URI[md5sum] = "f4a2b0284d80353b995f8ef2385ed73c"
21SRC_URI[sha256sum] = "ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab" 17SRC_URI[sha256sum] = "3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70"
22 18
23LICENSE = "GPLv3" 19LICENSE = "GPLv3"
24 20
25LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\ 21LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464\
26 file://examples/COPYING;md5=4031593b2166d6c47cae282d944a7ede" 22 file://examples/COPYING;md5=4031593b2166d6c47cae282d944a7ede"
27 23
28# Fix "Argument list too long" error when len(TMPDIR) = 410 24# Fix "Argument list too long" error when len(TMPDIR) = 410
diff --git a/meta/recipes-devtools/m4/m4-native_1.4.18.bb b/meta/recipes-devtools/m4/m4-native_1.4.19.bb
index 407ad89330..407ad89330 100644
--- a/meta/recipes-devtools/m4/m4-native_1.4.18.bb
+++ b/meta/recipes-devtools/m4/m4-native_1.4.19.bb
diff --git a/meta/recipes-devtools/m4/m4/0001-Unset-need_charset_alias-when-building-for-musl.patch b/meta/recipes-devtools/m4/m4/0001-Unset-need_charset_alias-when-building-for-musl.patch
deleted file mode 100644
index ba1a4bab4c..0000000000
--- a/meta/recipes-devtools/m4/m4/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From b9565dc2fe0c4f7daaec91b7e83bc7313dee2f4a Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 13 Apr 2015 17:02:13 -0700
4Subject: [PATCH] Unset need_charset_alias when building for musl
5
6localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4
7which actually shoudl be fixed in gnulib and then all downstream
8projects will get it eventually. For now we apply the fix to
9coreutils
10
11Upstream-Status: Pending
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 lib/gnulib.mk | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/lib/gnulib.mk b/lib/gnulib.mk
19index e1d74db..c0e92dd 100644
20--- a/lib/gnulib.mk
21+++ b/lib/gnulib.mk
22@@ -1882,7 +1882,7 @@ install-exec-localcharset: all-local
23 case '$(host_os)' in \
24 darwin[56]*) \
25 need_charset_alias=true ;; \
26- darwin* | cygwin* | mingw* | pw32* | cegcc*) \
27+ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \
28 need_charset_alias=false ;; \
29 *) \
30 need_charset_alias=true ;; \
31--
322.1.4
33
diff --git a/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch b/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch
deleted file mode 100644
index 883b8a2075..0000000000
--- a/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch
+++ /dev/null
@@ -1,84 +0,0 @@
1From 69238f15129f35eb4756ad8e2004e0d7907cb175 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 30 Apr 2021 17:40:36 -0700
4Subject: [PATCH] c-stack: stop using SIGSTKSZ
5
6This patch is required with glibc 2.34+
7based on gnulib [1]
8
9[1] https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=f9e2b20a12a230efa30f1d479563ae07d276a94b
10
11Upstream-Status: Pending
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 lib/c-stack.c | 22 +++++++++++++---------
15 1 file changed, 13 insertions(+), 9 deletions(-)
16
17diff --git a/lib/c-stack.c b/lib/c-stack.c
18index 5353c08..863f764 100644
19--- a/lib/c-stack.c
20+++ b/lib/c-stack.c
21@@ -51,13 +51,14 @@
22 typedef struct sigaltstack stack_t;
23 #endif
24 #ifndef SIGSTKSZ
25-# define SIGSTKSZ 16384
26-#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
27+#define get_sigstksz() (16384)
28+#elif HAVE_LIBSIGSEGV
29 /* libsigsegv 2.6 through 2.8 have a bug where some architectures use
30 more than the Linux default of an 8k alternate stack when deciding
31 if a fault was caused by stack overflow. */
32-# undef SIGSTKSZ
33-# define SIGSTKSZ 16384
34+#define get_sigstksz() ((SIGSTKSZ) < 16384 ? 16384 : (SIGSTKSZ))
35+#else
36+#define get_sigstksz() ((SIGSTKSZ))
37 #endif
38
39 #include <stdlib.h>
40@@ -131,7 +132,8 @@ die (int signo)
41 /* Storage for the alternate signal stack. */
42 static union
43 {
44- char buffer[SIGSTKSZ];
45+ /* allocate buffer with size from get_sigstksz() */
46+ char *buffer;
47
48 /* These other members are for proper alignment. There's no
49 standard way to guarantee stack alignment, but this seems enough
50@@ -203,10 +205,11 @@ c_stack_action (void (*action) (int))
51 program_error_message = _("program error");
52 stack_overflow_message = _("stack overflow");
53
54+ alternate_signal_stack.buffer = malloc(get_sigstksz());
55 /* Always install the overflow handler. */
56 if (stackoverflow_install_handler (overflow_handler,
57 alternate_signal_stack.buffer,
58- sizeof alternate_signal_stack.buffer))
59+ get_sigstksz()))
60 {
61 errno = ENOTSUP;
62 return -1;
63@@ -279,14 +282,15 @@ c_stack_action (void (*action) (int))
64 stack_t st;
65 struct sigaction act;
66 st.ss_flags = 0;
67+ alternate_signal_stack.buffer = malloc(get_sigstksz());
68 # if SIGALTSTACK_SS_REVERSED
69 /* Irix mistakenly treats ss_sp as the upper bound, rather than
70 lower bound, of the alternate stack. */
71- st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ - sizeof (void *);
72- st.ss_size = sizeof alternate_signal_stack.buffer - sizeof (void *);
73+ st.ss_sp = alternate_signal_stack.buffer + get_sigstksz() - sizeof (void *);
74+ st.ss_size = get_sigstksz() - sizeof (void *);
75 # else
76 st.ss_sp = alternate_signal_stack.buffer;
77- st.ss_size = sizeof alternate_signal_stack.buffer;
78+ st.ss_size = get_sigstksz();
79 # endif
80 r = sigaltstack (&st, NULL);
81 if (r != 0)
82--
832.31.1
84
diff --git a/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch b/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch
deleted file mode 100644
index 11508ee0e2..0000000000
--- a/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From 75bea7c72a919859674f493548653de88f96c798 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Mon, 22 Apr 2019 10:36:13 +0800
4Subject: [PATCH] test-getopt-posix fix
5
6fix below problem:
7test-getopt.h:754: assertion 'strcmp (argv[1], "donald") == 0' failed
8
9get this patch from
10https://github.com/habitat-sh/core-plans/blob/master/m4/fix-test-getopt-posix-with-glibc-2.26.patch
11
12Upstream-Status: Pending
13
14have report this bug to m4-discuss@gnu.org
15
16Signed-off-by: Changqing Li <changqing.li@windriver.com>
17---
18 tests/test-getopt-posix.c | 7 +++++++
19 1 file changed, 7 insertions(+)
20
21diff --git a/tests/test-getopt-posix.c b/tests/test-getopt-posix.c
22index 5532271..2a3d511 100644
23--- a/tests/test-getopt-posix.c
24+++ b/tests/test-getopt-posix.c
25@@ -22,6 +22,13 @@
26 ftell link warning if we are not using the gnulib ftell module. */
27 #define _GL_NO_LARGE_FILES
28
29+/*
30+ * Glibc 2.26 does hard include bits/getopt_posix.h which causes the system
31+ * to use glibc's getopt but the tests expect gnulib behavior. Until a better
32+ * fix is available this avoids that mis-resolution.
33+ */
34+#include <getopt.h>
35+
36 /* POSIX and glibc provide the getopt() function in <unistd.h>, see
37 http://pubs.opengroup.org/onlinepubs/9699919799/functions/getopt.html
38 https://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html
39--
402.7.4
41
diff --git a/meta/recipes-devtools/m4/m4/ac_config_links.patch b/meta/recipes-devtools/m4/m4/ac_config_links.patch
index 71edf59512..39fcd91896 100644
--- a/meta/recipes-devtools/m4/m4/ac_config_links.patch
+++ b/meta/recipes-devtools/m4/m4/ac_config_links.patch
@@ -12,20 +12,26 @@ source, and what we want is to is to not touch it.
12 12
13Tested on x86_64_linux (Ubuntu 8.04 and 9.10). 13Tested on x86_64_linux (Ubuntu 8.04 and 9.10).
14 14
152009-11-10 Esben Haabendal <eha@doredevelopment.dk> 152009-11-10 Esben Haabendal <eha@doredevelopment.dk>
16---
17 configure | 4 ++--
18 1 file changed, 2 insertions(+), 2 deletions(-)
16 19
17Index: m4-1.4.18/configure 20diff --git a/configure b/configure
18=================================================================== 21index 883336a..6343a34 100755
19--- m4-1.4.18.orig/configure 22--- a/configure
20+++ m4-1.4.18/configure 23+++ b/configure
21@@ -24415,8 +24415,8 @@ $as_echo "#define GNULIB_TEST_GETTIMEOFD 24@@ -37061,8 +37061,8 @@ printf "%s\n" "#define GNULIB_TEST_GETRANDOM 1" >>confdefs.h
22 # only, it does not matter if we skip the link with older autoconf. 25 # only, it does not matter if we skip the link with older autoconf.
23 # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH 26 # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
24 # builds, so use a shell variable to bypass this. 27 # builds, so use a shell variable to bypass this.
25- GNUmakefile=GNUmakefile 28- GNUmakefile=GNUmakefile
26- ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" 29- ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
27+ # GNUmakefile=GNUmakefile 30+# GNUmakefile=GNUmakefile
28+ # ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" 31+# ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
29 32
30 33
31 : 34 LIB_HARD_LOCALE="$LIB_SETLOCALE_NULL"
35--
362.25.1
37
diff --git a/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch b/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch
deleted file mode 100644
index c10bcbf693..0000000000
--- a/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch
+++ /dev/null
@@ -1,130 +0,0 @@
1update for glibc libio.h removal in 2.28+
2
3see
4https://src.fedoraproject.org/rpms/m4/c/814d592134fad36df757f9a61422d164ea2c6c9b?branch=master
5
6Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=4af4a4a718]
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8
9Index: m4-1.4.18/lib/fflush.c
10===================================================================
11--- m4-1.4.18.orig/lib/fflush.c
12+++ m4-1.4.18/lib/fflush.c
13@@ -33,7 +33,7 @@
14 #undef fflush
15
16
17-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
18+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
19
20 /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
21 static void
22@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
23
24 #endif
25
26-#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
27+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
28
29 # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
30 /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
31@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
32 if (stream == NULL || ! freading (stream))
33 return fflush (stream);
34
35-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
36+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
37
38 clear_ungetc_buffer_preserving_position (stream);
39
40Index: m4-1.4.18/lib/fpending.c
41===================================================================
42--- m4-1.4.18.orig/lib/fpending.c
43+++ m4-1.4.18/lib/fpending.c
44@@ -32,7 +32,7 @@ __fpending (FILE *fp)
45 /* Most systems provide FILE as a struct and the necessary bitmask in
46 <stdio.h>, because they need it for implementing getc() and putc() as
47 fast macros. */
48-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
49+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
50 return fp->_IO_write_ptr - fp->_IO_write_base;
51 #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
52 /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
53Index: m4-1.4.18/lib/fpurge.c
54===================================================================
55--- m4-1.4.18.orig/lib/fpurge.c
56+++ m4-1.4.18/lib/fpurge.c
57@@ -62,7 +62,7 @@ fpurge (FILE *fp)
58 /* Most systems provide FILE as a struct and the necessary bitmask in
59 <stdio.h>, because they need it for implementing getc() and putc() as
60 fast macros. */
61-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
62+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
63 fp->_IO_read_end = fp->_IO_read_ptr;
64 fp->_IO_write_ptr = fp->_IO_write_base;
65 /* Avoid memory leak when there is an active ungetc buffer. */
66Index: m4-1.4.18/lib/freadahead.c
67===================================================================
68--- m4-1.4.18.orig/lib/freadahead.c
69+++ m4-1.4.18/lib/freadahead.c
70@@ -25,7 +25,7 @@
71 size_t
72 freadahead (FILE *fp)
73 {
74-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
75+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
76 if (fp->_IO_write_ptr > fp->_IO_write_base)
77 return 0;
78 return (fp->_IO_read_end - fp->_IO_read_ptr)
79Index: m4-1.4.18/lib/freading.c
80===================================================================
81--- m4-1.4.18.orig/lib/freading.c
82+++ m4-1.4.18/lib/freading.c
83@@ -31,7 +31,7 @@ freading (FILE *fp)
84 /* Most systems provide FILE as a struct and the necessary bitmask in
85 <stdio.h>, because they need it for implementing getc() and putc() as
86 fast macros. */
87-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
88+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
89 return ((fp->_flags & _IO_NO_WRITES) != 0
90 || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
91 && fp->_IO_read_base != NULL));
92Index: m4-1.4.18/lib/fseeko.c
93===================================================================
94--- m4-1.4.18.orig/lib/fseeko.c
95+++ m4-1.4.18/lib/fseeko.c
96@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int when
97 #endif
98
99 /* These tests are based on fpurge.c. */
100-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
101+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
102 if (fp->_IO_read_end == fp->_IO_read_ptr
103 && fp->_IO_write_ptr == fp->_IO_write_base
104 && fp->_IO_save_base == NULL)
105@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int when
106 return -1;
107 }
108
109-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
110+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
111 fp->_flags &= ~_IO_EOF_SEEN;
112 fp->_offset = pos;
113 #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
114Index: m4-1.4.18/lib/stdio-impl.h
115===================================================================
116--- m4-1.4.18.orig/lib/stdio-impl.h
117+++ m4-1.4.18/lib/stdio-impl.h
118@@ -18,6 +18,12 @@
119 the same implementation of stdio extension API, except that some fields
120 have different naming conventions, or their access requires some casts. */
121
122+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
123+ problem by defining it ourselves. FIXME: Do not rely on glibc
124+ internals. */
125+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
126+# define _IO_IN_BACKUP 0x100
127+#endif
128
129 /* BSD stdio derived implementations. */
130
diff --git a/meta/recipes-devtools/m4/m4_1.4.18.bb b/meta/recipes-devtools/m4/m4_1.4.19.bb
index b12c0adf3a..b12c0adf3a 100644
--- a/meta/recipes-devtools/m4/m4_1.4.18.bb
+++ b/meta/recipes-devtools/m4/m4_1.4.19.bb