[Buildroot] [PATCH v3 1/1] ipmitool: fix musl build

Jörg Krause joerg.krause at embedded.rocks
Mon Apr 11 19:12:41 UTC 2016


On So, 2016-04-10 at 18:02 +0200, Arnout Vandecappelle wrote:
> On 04/10/16 12:03, Jörg Krause wrote:
> > 
> > Add two patches to fix musl build and one patch to make the package
> > autoreconfigurable.
> > 
> > The first patch avoids the redefinition of wchar_t by using
> > autoconf to check
> > for the type wchar_t. Patching configure.ac requires to set
> > AUTORECONF = YES
> > and add a post extract hook to create some missing files needed by
> > autorefonf.
> > 
> > The second patch adds missing header include of <linux/params.h>
> > needed for the
> > macro EXEC_PAGESIZE defined in the Linux Kernel headers.
> > 
> > The third patch adds 'foreign' to 'AUTOMAKE_OPTIONS' to make the
> > package
> > autoreconfigurable.
> > 
> > All patches send upstream:
> > https://sourceforge.net/p/ipmitool/mailman/message/35004226/
> > https://sourceforge.net/p/ipmitool/mailman/message/35004225/
> > https://sourceforge.net/p/ipmitool/mailman/message/35004711/
> > 
> > Fixes:
> > http://autobuild.buildroot.net/results/75f/75fd6f1be0271bb15078c62f
> > 3effdbb67ac07427/
> > http://autobuild.buildroot.net/results/cac/cacf8179a9c8142eef695624
> > 62d3c3b0b20c2879/
> > http://autobuild.buildroot.net/results/c10/c1045882947ff7150c750088
> > ae1981bd99134c54/
> > http://autobuild.buildroot.net/results/6a7/6a770f8a3dddb15ba4d95555
> > e74b198799278dcf/
> > .. and more.
> > 
> > Signed-off-by: Jörg Krause <joerg.krause at embedded.rocks>
> > ---
> > Changes v2 -> v3:
> >   - use the Automake foreign strictness instead of using a hook to
> > add files
> >     needed to make the package autoreconfigurable (Thomas
> > Petazzoni)
> > 
> > Changes v1 -> v2:
> >   - use autoconf to check for wchar_t instead of using non-
> > standardized GNU C
> >     extension macro __WCHAR_TYPE__ (Arnout Vandecappelle)
> >   - improve commit messages
> > 
> > ---
> >   .../ipmitool/0001-Avoid-wchar_t-redefinition.patch | 60
> > ++++++++++++++++++++++
> >   ...-Add-missing-linux-param.h-header-include.patch | 39
> > ++++++++++++++
> >   .../0003-Make-the-package-autoreconfigurable.patch | 38
> > ++++++++++++++
> >   package/ipmitool/ipmitool.mk                       |  3 ++
> >   4 files changed, 140 insertions(+)
> >   create mode 100644 package/ipmitool/0001-Avoid-wchar_t-
> > redefinition.patch
> >   create mode 100644 package/ipmitool/0002-Add-missing-linux-
> > param.h-header-include.patch
> >   create mode 100644 package/ipmitool/0003-Make-the-package-
> > autoreconfigurable.patch
> > 
> > diff --git a/package/ipmitool/0001-Avoid-wchar_t-redefinition.patch 
> > b/package/ipmitool/0001-Avoid-wchar_t-redefinition.patch
> > new file mode 100644
> > index 0000000..b782318
> > --- /dev/null
> > +++ b/package/ipmitool/0001-Avoid-wchar_t-redefinition.patch
> > @@ -0,0 +1,60 @@
> > +From c6fe3990713fe3d2be7a285982a0690af93cc8a7 Mon Sep 17 00:00:00
> > 2001
> > +From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause at embedded.rocks>
> > +Date: Sat, 2 Apr 2016 19:45:14 +0200
> > +Subject: [PATCH 1/2] Avoid wchar_t redefinition
> > +MIME-Version: 1.0
> > +Content-Type: text/plain; charset=UTF-8
> > +Content-Transfer-Encoding: 8bit
> > +
> > +The musl C library does not define _WCHAR_T. Use autoconf to check
> > for wchar_t.
> > +
> > +Upstream status: Pending
> > +https://sourceforge.net/p/ipmitool/mailman/message/35004226/
> > +
> > +Signed-off-by: Jörg Krause <joerg.krause at embedded.rocks>
> > +---
> > + configure.ac             | 2 ++
> > + src/plugins/imb/imbapi.h | 7 ++++++-
> > + 2 files changed, 8 insertions(+), 1 deletion(-)
> > +
> > +diff --git a/configure.ac b/configure.ac
> > +index b92c8a4..71cb4d4 100644
> > +--- a/configure.ac
> > ++++ b/configure.ac
> > +@@ -22,6 +22,8 @@ AC_CHECK_HEADERS([stdlib.h string.h sys/ioctl.h
> > sys/stat.h unistd.h paths.h])
> > + AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h
> > sys/socket.h])
> > + AC_CHECK_HEADERS([sys/byteorder.h byteswap.h])
> > +
> > ++AC_CHECK_TYPES([wchar_t])
> > ++
> > + AC_C_CONST
> > + AC_C_INLINE
> > + AC_C_BIGENDIAN
> > +diff --git a/src/plugins/imb/imbapi.h b/src/plugins/imb/imbapi.h
> > +index 74975c6..b862445 100644
> > +--- a/src/plugins/imb/imbapi.h
> > ++++ b/src/plugins/imb/imbapi.h
> > +@@ -35,6 +35,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> > SUCH DAMAGE.
> > +  *---------------------------------------------------------------
> > -------*/
> > + #ifndef	_WINDEFS_H
> > + #define	_WINDEFS_H
> > ++
> > ++#if HAVE_CONFIG_H
> > ++# include <config.h>
> > ++#endif
> > ++
> > + #ifndef FALSE
> > + #define FALSE   0
> > + #endif
> > +@@ -46,7 +51,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> > SUCH DAMAGE.
> > + #endif
> > + #ifndef WIN32
> > + /* WIN32 defines this in stdio.h */
> > +-#ifndef _WCHAR_T
> > ++#if !defined(_WCHAR_T) && !defined(HAVE_WCHAR_T)
>   The check for _WCHAR_T is redundant and potentially wrong (if
> autoconf didn't 
> detect wchar_t and _WCHAR_T is still defined, something is amiss.
> It's probably 
> better to terminate with a compiler error then).
> 
>   That said, if upstream has accepted the patch as is, it's better to
> keep it 
> this way.

Until now there is no feedback on upstream about this issue. I guess
this piece of code is just a copy & paste from the stdlib.h. You're
probably right about the redundancy. Shall I make a v4 which only
checks for HAVE_WCHAR_T?

> > 
> > + #define _WCHAR_T
>   Why is this needed? I can't see how this could ever lead to
> something good... 
> But I guess that's upstream's problem.

It's not needed. I agree, it's upstreams problem :-)

Best regards
Jörg Krause



More information about the buildroot mailing list