On 1/4/22 09:18, Warner Losh wrote:
This breaks the cross building on linux.  The FREEBSD_XLOCALE_SUPPORT was covering both the case of old FreeBSD as well as the case of building on Linux/macOS. when we cross build, we define __FreeBSD_version to be 0.

All that really needs protecting is the xlocale.h include though. And that's only needed on Linux / glibc, so the following patch should do the trick:

  /* Define to 1 if you have the <xlocale.h> header file. */
+#ifndef linux /* Cross building tools build with glibc on linux */
  #define HAVE_XLOCALE_H 1
+#endif

Any objections to committing that? Or should I create a phab review to discuss?

Ah I didn't know that. Yes that looks reasonable (I assume you would also restore the #ifdef's for HAVE_XLOCAL_H).

Cheers,

Warner


On Sun, Jan 2, 2022 at 7:09 PM Xin LI <[email protected] <mailto:[email protected]>> wrote:

    The branch main has been updated by delphij:

    URL:
    
https://cgit.FreeBSD.org/src/commit/?id=90266521018938b7b9f0003ba9a383b6920859e9
    
<https://cgit.FreeBSD.org/src/commit/?id=90266521018938b7b9f0003ba9a383b6920859e9>

    commit 90266521018938b7b9f0003ba9a383b6920859e9
    Author:     Xin LI <[email protected]>
    AuthorDate: 2022-01-03 02:05:08 +0000
    Commit:     Xin LI <[email protected]>
    CommitDate: 2022-01-03 02:05:08 +0000

         libmagic: Remove support for older FreeBSD where xlocale was
    not available.

         The MINIMUM_SUPPORTED_OSREL is 1002501 (FreeBSD 10.3), and
    xlocale is
         supported there.

         While I'm there, explicitly use config.h generated with
    --disable-bzlib
         --disable-xzlib instead of deleting them manually.

         MFC after:      2 weeks
    ---
      lib/libmagic/config.h | 36 ++++++++++++++++++------------------
      1 file changed, 18 insertions(+), 18 deletions(-)

    diff --git a/lib/libmagic/config.h b/lib/libmagic/config.h
    index 263fdfb571cd..90a9a115420c 100644
    --- a/lib/libmagic/config.h
    +++ b/lib/libmagic/config.h
    @@ -1,13 +1,3 @@
    -/* $FreeBSD$ */
    -
    -/* Get __FreeBSD_version. */
    -#include <osreldate.h>
    -
    -/* Only specific versions of FreeBSD support xlocale */
    -#if __FreeBSD_version >= 1000002 || (__FreeBSD_version < 1000000 &&
    __FreeBSD_version >= 900506)
    -#define FREEBSD_XLOCALE_SUPPORT 1
    -#endif
    -
      /* config.h.  Generated from config.h.in <http://config.h.in> by
    configure.  */
      /* config.h.in <http://config.h.in>.  Generated from configure.ac
    <http://configure.ac> by autoheader.  */

    @@ -17,6 +7,9 @@
      /* Define in built-in ELF support is used */
      #define BUILTIN_ELF 1

    +/* Enable bzlib compression support */
    +/* #undef BZLIBSUPPORT */
    +
      /* Define for ELF core file support */
      #define ELFCORE 1

    @@ -26,6 +19,9 @@
      /* Define to 1 if you have the `asprintf' function. */
      #define HAVE_ASPRINTF 1

    +/* Define to 1 if you have the <bzlib.h> header file. */
    +/* #undef HAVE_BZLIB_H */
    +
      /* Define to 1 if you have the `ctime_r' function. */
      #define HAVE_CTIME_R 1

    @@ -59,9 +55,7 @@
      #define HAVE_FORK 1

      /* Define to 1 if you have the `freelocale' function. */
    -#ifdef FREEBSD_XLOCALE_SUPPORT
      #define HAVE_FREELOCALE 1
    -#endif

      /* Define to 1 if fseeko (and presumably ftello) exists and is
    declared. */
      #define HAVE_FSEEKO 1
    @@ -87,9 +81,15 @@
      /* Define to 1 if you have the <inttypes.h> header file. */
      #define HAVE_INTTYPES_H 1

    +/* Define to 1 if you have the `bz2' library (-lbz2). */
    +/* #undef HAVE_LIBBZ2 */
    +
      /* Define to 1 if you have the `gnurx' library (-lgnurx). */
      /* #undef HAVE_LIBGNURX */

    +/* Define to 1 if you have the `lzma' library (-llzma). */
    +/* #undef HAVE_LIBLZMA */
    +
      /* Define to 1 if you have the `seccomp' library (-lseccomp). */
      /* #undef HAVE_LIBSECCOMP */

    @@ -99,6 +99,9 @@
      /* Define to 1 if you have the `localtime_r' function. */
      #define HAVE_LOCALTIME_R 1

    +/* Define to 1 if you have the <lzma.h> header file. */
    +/* #undef HAVE_LZMA_H */
    +
      /* Define to 1 if mbrtowc and mbstate_t are properly declared. */
      #define HAVE_MBRTOWC 1

    @@ -121,9 +124,7 @@
      #define HAVE_MMAP 1

      /* Define to 1 if you have the `newlocale' function. */
    -#ifdef FREEBSD_XLOCALE_SUPPORT
      #define HAVE_NEWLOCALE 1
    -#endif

      /* Define to 1 if you have the `pread' function. */
      #define HAVE_PREAD 1
    @@ -210,9 +211,7 @@
      #define HAVE_UNISTD_H 1

      /* Define to 1 if you have the `uselocale' function. */
    -#ifdef FREEBSD_XLOCALE_SUPPORT
      #define HAVE_USELOCALE 1
    -#endif

      /* Define to 1 if you have the `utime' function. */
      #define HAVE_UTIME 1
    @@ -252,9 +251,7 @@
      #define HAVE_WORKING_VFORK 1

      /* Define to 1 if you have the <xlocale.h> header file. */
    -#ifdef FREEBSD_XLOCALE_SUPPORT
      #define HAVE_XLOCALE_H 1
    -#endif

      /* Define to 1 if you have the <zlib.h> header file. */
      #define HAVE_ZLIB_H 1
    @@ -334,6 +331,9 @@
      # endif
      #endif

    +/* Enable xzlib compression support */
    +/* #undef XZLIBSUPPORT */
    +
      /* Enable zlib compression support */
      #define ZLIBSUPPORT 1



Reply via email to