Message ID | 20230207112644.2467564-1-vfazio@xes-inc.com |
---|---|
State | Accepted |
Headers | show |
Series | [1/1] package/bash: fix strtoimax builtin inclusion logic | expand |
Vincent, All, On 2023-02-07 05:26 -0600, Vincent Fazio spake thusly: > From: Vincent Fazio <vfazio@gmail.com> > > Backport fixes from upstream to fix an issue where the strtoimax builtin > got built when not necessary. > > This resolves bash static builds issues when using musl and uClibc. > > Fixes: > http://autobuild.buildroot.org/results/f8c/f8cb91f7f9ac6a46bb2ecfc22c1e42cf699f28d3// > http://autobuild.buildroot.org/results/b0e/b0e5fcab9eeb799e31bca27fcb7280b728349bc6// > > Upstream: > https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=43e861c2cd840946a81dfd0386966eb4f3a17ce9 > > Signed-off-by: Vincent Fazio <vfazio@gmail.com> As seen IRL, I've done some small changes: - patch configure after the m4 file - add blurb in commit log to explain that Applied to master, thanks. Regards, Yann E. MORIN. > --- > ...vert-condition-for-strtoimax-builtin.patch | 60 +++++++++++++++++++ > 1 file changed, 60 insertions(+) > create mode 100644 package/bash/0003-configure-invert-condition-for-strtoimax-builtin.patch > > diff --git a/package/bash/0003-configure-invert-condition-for-strtoimax-builtin.patch b/package/bash/0003-configure-invert-condition-for-strtoimax-builtin.patch > new file mode 100644 > index 0000000000..2ee9e1ad5a > --- /dev/null > +++ b/package/bash/0003-configure-invert-condition-for-strtoimax-builtin.patch > @@ -0,0 +1,60 @@ > +From 754e0d1edc1c01b18f4890de7c58f7610e589d76 Mon Sep 17 00:00:00 2001 > +From: Vincent Fazio <vfazio@gmail.com> > +Date: Tue, 7 Feb 2023 03:55:28 -0600 > +Subject: [PATCH] configure: invert condition for strtoimax builtin > + > +Previously, bash would attempt to build a replacement for strtoimax if > +it found that the C library had the function already declared. > + > +This caused build errors when linking against static libraries that did > +not define the function as a weak alias but, in reality, was a logic > +error since bash should only provide it's own implementation if one is > +not provided by the C library. > + > +Now, fix this by inverting the logic. > + > +Upstream: > + https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=43e861c2cd840946a81dfd0386966eb4f3a17ce9 > + > +Signed-off-by: Vincent Fazio <vfazio@gmail.com> > +--- > + configure | 6 +++++- > + m4/strtoimax.m4 | 5 ++++- > + 2 files changed, 9 insertions(+), 2 deletions(-) > + > +diff --git a/configure b/configure > +index 47313753..6039cee7 100755 > +--- a/configure > ++++ b/configure > +@@ -20443,7 +20443,11 @@ fi > + > + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_strtoimax" >&5 > + printf "%s\n" "$bash_cv_func_strtoimax" >&6; } > +-if test $bash_cv_func_strtoimax = yes; then > ++if test "$ac_cv_have_decl_strtoimax" = "yes" ; then > ++printf "%s\n" "#define HAVE_DECL_STRTOIMAX 1" >>confdefs.h > ++ > ++fi > ++if test $bash_cv_func_strtoimax = no; then > + case " $LIBOBJS " in > + *" strtoimax.$ac_objext "* ) ;; > + *) LIBOBJS="$LIBOBJS strtoimax.$ac_objext" > +diff --git a/m4/strtoimax.m4 b/m4/strtoimax.m4 > +index 30985723..fa43ac7b 100644 > +--- a/m4/strtoimax.m4 > ++++ b/m4/strtoimax.m4 > +@@ -29,7 +29,10 @@ AC_CACHE_VAL(bash_cv_func_strtoimax, > + fi > + ]) > + AC_MSG_RESULT($bash_cv_func_strtoimax) > +-if test $bash_cv_func_strtoimax = yes; then > ++if test "$ac_cv_have_decl_strtoimax" = "yes" ; then > ++AC_DEFINE([HAVE_DECL_STRTOIMAX], [1]) > ++fi > ++if test $bash_cv_func_strtoimax = no; then > + AC_LIBOBJ(strtoimax) > + fi > + ]) > +-- > +2.25.1 > + > -- > 2.25.1 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
diff --git a/package/bash/0003-configure-invert-condition-for-strtoimax-builtin.patch b/package/bash/0003-configure-invert-condition-for-strtoimax-builtin.patch new file mode 100644 index 0000000000..2ee9e1ad5a --- /dev/null +++ b/package/bash/0003-configure-invert-condition-for-strtoimax-builtin.patch @@ -0,0 +1,60 @@ +From 754e0d1edc1c01b18f4890de7c58f7610e589d76 Mon Sep 17 00:00:00 2001 +From: Vincent Fazio <vfazio@gmail.com> +Date: Tue, 7 Feb 2023 03:55:28 -0600 +Subject: [PATCH] configure: invert condition for strtoimax builtin + +Previously, bash would attempt to build a replacement for strtoimax if +it found that the C library had the function already declared. + +This caused build errors when linking against static libraries that did +not define the function as a weak alias but, in reality, was a logic +error since bash should only provide it's own implementation if one is +not provided by the C library. + +Now, fix this by inverting the logic. + +Upstream: + https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=43e861c2cd840946a81dfd0386966eb4f3a17ce9 + +Signed-off-by: Vincent Fazio <vfazio@gmail.com> +--- + configure | 6 +++++- + m4/strtoimax.m4 | 5 ++++- + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 47313753..6039cee7 100755 +--- a/configure ++++ b/configure +@@ -20443,7 +20443,11 @@ fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_strtoimax" >&5 + printf "%s\n" "$bash_cv_func_strtoimax" >&6; } +-if test $bash_cv_func_strtoimax = yes; then ++if test "$ac_cv_have_decl_strtoimax" = "yes" ; then ++printf "%s\n" "#define HAVE_DECL_STRTOIMAX 1" >>confdefs.h ++ ++fi ++if test $bash_cv_func_strtoimax = no; then + case " $LIBOBJS " in + *" strtoimax.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS strtoimax.$ac_objext" +diff --git a/m4/strtoimax.m4 b/m4/strtoimax.m4 +index 30985723..fa43ac7b 100644 +--- a/m4/strtoimax.m4 ++++ b/m4/strtoimax.m4 +@@ -29,7 +29,10 @@ AC_CACHE_VAL(bash_cv_func_strtoimax, + fi + ]) + AC_MSG_RESULT($bash_cv_func_strtoimax) +-if test $bash_cv_func_strtoimax = yes; then ++if test "$ac_cv_have_decl_strtoimax" = "yes" ; then ++AC_DEFINE([HAVE_DECL_STRTOIMAX], [1]) ++fi ++if test $bash_cv_func_strtoimax = no; then + AC_LIBOBJ(strtoimax) + fi + ]) +-- +2.25.1 +