Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Jan 2022 10:18:22 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Xin LI <delphij@freebsd.org>, Jessica Clarke <jrtc27@freebsd.org>
Cc:        src-committers <src-committers@freebsd.org>,  "<dev-commits-src-all@freebsd.org>" <dev-commits-src-all@freebsd.org>, dev-commits-src-main@freebsd.org
Subject:   Re: git: 902665210189 - main - libmagic: Remove support for older FreeBSD where xlocale was not available.
Message-ID:  <CANCZdfpFrtehUpV6d0hvBFQkV3axSdur5QiKf8abuwOpFHP7eA@mail.gmail.com>
In-Reply-To: <202201030209.20329qRc018384@gitrepo.freebsd.org>
References:  <202201030209.20329qRc018384@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000a0034e05d4c4d3ff
Content-Type: text/plain; charset="UTF-8"

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?

Warner


On Sun, Jan 2, 2022 at 7:09 PM Xin LI <delphij@freebsd.org> wrote:

> The branch main has been updated by delphij:
>
> URL:
> https://cgit.FreeBSD.org/src/commit/?id=90266521018938b7b9f0003ba9a383b6920859e9
>
> commit 90266521018938b7b9f0003ba9a383b6920859e9
> Author:     Xin LI <delphij@FreeBSD.org>
> AuthorDate: 2022-01-03 02:05:08 +0000
> Commit:     Xin LI <delphij@FreeBSD.org>
> 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 by configure.  */
>  /* config.h.in.  Generated from 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
>
>

--000000000000a0034e05d4c4d3ff
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">This breaks the cross building on linux.=C2=A0 The FREEBSD=
_XLOCALE_SUPPORT was covering both the case of old FreeBSD as well as the c=
ase of building on Linux/macOS. when we cross build, we define __FreeBSD_ve=
rsion to be 0.<div><br></div><div>All that really needs protecting is the x=
locale.h include though. And that&#39;s only needed on Linux / glibc, so th=
e following patch should do the trick:</div><div><br></div><div>=C2=A0/* De=
fine to 1 if you have the &lt;xlocale.h&gt; header file. */<br>+#ifndef lin=
ux /* Cross building tools build with glibc on linux */<br>=C2=A0#define HA=
VE_XLOCALE_H 1<br>+#endif<br></div><div><br></div><div>Any objections to co=
mmitting that? Or should I create a phab review to discuss?</div><div><br><=
/div><div>Warner</div><div><br></div></div><br><div class=3D"gmail_quote"><=
div dir=3D"ltr" class=3D"gmail_attr">On Sun, Jan 2, 2022 at 7:09 PM Xin LI =
&lt;<a href=3D"mailto:delphij@freebsd.org">delphij@freebsd.org</a>&gt; wrot=
e:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The branch ma=
in has been updated by delphij:<br>
<br>
URL: <a href=3D"https://cgit.FreeBSD.org/src/commit/?id=3D90266521018938b7b=
9f0003ba9a383b6920859e9" rel=3D"noreferrer" target=3D"_blank">https://cgit.=
FreeBSD.org/src/commit/?id=3D90266521018938b7b9f0003ba9a383b6920859e9</a><b=
r>
<br>
commit 90266521018938b7b9f0003ba9a383b6920859e9<br>
Author:=C2=A0 =C2=A0 =C2=A0Xin LI &lt;delphij@FreeBSD.org&gt;<br>
AuthorDate: 2022-01-03 02:05:08 +0000<br>
Commit:=C2=A0 =C2=A0 =C2=A0Xin LI &lt;delphij@FreeBSD.org&gt;<br>
CommitDate: 2022-01-03 02:05:08 +0000<br>
<br>
=C2=A0 =C2=A0 libmagic: Remove support for older FreeBSD where xlocale was =
not available.<br>
<br>
=C2=A0 =C2=A0 The MINIMUM_SUPPORTED_OSREL is 1002501 (FreeBSD 10.3), and xl=
ocale is<br>
=C2=A0 =C2=A0 supported there.<br>
<br>
=C2=A0 =C2=A0 While I&#39;m there, explicitly use config.h generated with -=
-disable-bzlib<br>
=C2=A0 =C2=A0 --disable-xzlib instead of deleting them manually.<br>
<br>
=C2=A0 =C2=A0 MFC after:=C2=A0 =C2=A0 =C2=A0 2 weeks<br>
---<br>
=C2=A0lib/libmagic/config.h | 36 ++++++++++++++++++------------------<br>
=C2=A01 file changed, 18 insertions(+), 18 deletions(-)<br>
<br>
diff --git a/lib/libmagic/config.h b/lib/libmagic/config.h<br>
index 263fdfb571cd..90a9a115420c 100644<br>
--- a/lib/libmagic/config.h<br>
+++ b/lib/libmagic/config.h<br>
@@ -1,13 +1,3 @@<br>
-/* $FreeBSD$ */<br>
-<br>
-/* Get __FreeBSD_version. */<br>
-#include &lt;osreldate.h&gt;<br>
-<br>
-/* Only specific versions of FreeBSD support xlocale */<br>
-#if __FreeBSD_version &gt;=3D 1000002 || (__FreeBSD_version &lt; 1000000 &=
amp;&amp; __FreeBSD_version &gt;=3D 900506)<br>
-#define FREEBSD_XLOCALE_SUPPORT 1<br>
-#endif<br>
-<br>
=C2=A0/* config.h.=C2=A0 Generated from <a href=3D"http://config.h.in" rel=
=3D"noreferrer" target=3D"_blank">config.h.in</a> by configure.=C2=A0 */<br=
>
=C2=A0/* <a href=3D"http://config.h.in" rel=3D"noreferrer" target=3D"_blank=
">config.h.in</a>.=C2=A0 Generated from <a href=3D"http://configure.ac" rel=
=3D"noreferrer" target=3D"_blank">configure.ac</a> by autoheader.=C2=A0 */<=
br>
<br>
@@ -17,6 +7,9 @@<br>
=C2=A0/* Define in built-in ELF support is used */<br>
=C2=A0#define BUILTIN_ELF 1<br>
<br>
+/* Enable bzlib compression support */<br>
+/* #undef BZLIBSUPPORT */<br>
+<br>
=C2=A0/* Define for ELF core file support */<br>
=C2=A0#define ELFCORE 1<br>
<br>
@@ -26,6 +19,9 @@<br>
=C2=A0/* Define to 1 if you have the `asprintf&#39; function. */<br>
=C2=A0#define HAVE_ASPRINTF 1<br>
<br>
+/* Define to 1 if you have the &lt;bzlib.h&gt; header file. */<br>
+/* #undef HAVE_BZLIB_H */<br>
+<br>
=C2=A0/* Define to 1 if you have the `ctime_r&#39; function. */<br>
=C2=A0#define HAVE_CTIME_R 1<br>
<br>
@@ -59,9 +55,7 @@<br>
=C2=A0#define HAVE_FORK 1<br>
<br>
=C2=A0/* Define to 1 if you have the `freelocale&#39; function. */<br>
-#ifdef FREEBSD_XLOCALE_SUPPORT<br>
=C2=A0#define HAVE_FREELOCALE 1<br>
-#endif<br>
<br>
=C2=A0/* Define to 1 if fseeko (and presumably ftello) exists and is declar=
ed. */<br>
=C2=A0#define HAVE_FSEEKO 1<br>
@@ -87,9 +81,15 @@<br>
=C2=A0/* Define to 1 if you have the &lt;inttypes.h&gt; header file. */<br>
=C2=A0#define HAVE_INTTYPES_H 1<br>
<br>
+/* Define to 1 if you have the `bz2&#39; library (-lbz2). */<br>
+/* #undef HAVE_LIBBZ2 */<br>
+<br>
=C2=A0/* Define to 1 if you have the `gnurx&#39; library (-lgnurx). */<br>
=C2=A0/* #undef HAVE_LIBGNURX */<br>
<br>
+/* Define to 1 if you have the `lzma&#39; library (-llzma). */<br>
+/* #undef HAVE_LIBLZMA */<br>
+<br>
=C2=A0/* Define to 1 if you have the `seccomp&#39; library (-lseccomp). */<=
br>
=C2=A0/* #undef HAVE_LIBSECCOMP */<br>
<br>
@@ -99,6 +99,9 @@<br>
=C2=A0/* Define to 1 if you have the `localtime_r&#39; function. */<br>
=C2=A0#define HAVE_LOCALTIME_R 1<br>
<br>
+/* Define to 1 if you have the &lt;lzma.h&gt; header file. */<br>
+/* #undef HAVE_LZMA_H */<br>
+<br>
=C2=A0/* Define to 1 if mbrtowc and mbstate_t are properly declared. */<br>
=C2=A0#define HAVE_MBRTOWC 1<br>
<br>
@@ -121,9 +124,7 @@<br>
=C2=A0#define HAVE_MMAP 1<br>
<br>
=C2=A0/* Define to 1 if you have the `newlocale&#39; function. */<br>
-#ifdef FREEBSD_XLOCALE_SUPPORT<br>
=C2=A0#define HAVE_NEWLOCALE 1<br>
-#endif<br>
<br>
=C2=A0/* Define to 1 if you have the `pread&#39; function. */<br>
=C2=A0#define HAVE_PREAD 1<br>
@@ -210,9 +211,7 @@<br>
=C2=A0#define HAVE_UNISTD_H 1<br>
<br>
=C2=A0/* Define to 1 if you have the `uselocale&#39; function. */<br>
-#ifdef FREEBSD_XLOCALE_SUPPORT<br>
=C2=A0#define HAVE_USELOCALE 1<br>
-#endif<br>
<br>
=C2=A0/* Define to 1 if you have the `utime&#39; function. */<br>
=C2=A0#define HAVE_UTIME 1<br>
@@ -252,9 +251,7 @@<br>
=C2=A0#define HAVE_WORKING_VFORK 1<br>
<br>
=C2=A0/* Define to 1 if you have the &lt;xlocale.h&gt; header file. */<br>
-#ifdef FREEBSD_XLOCALE_SUPPORT<br>
=C2=A0#define HAVE_XLOCALE_H 1<br>
-#endif<br>
<br>
=C2=A0/* Define to 1 if you have the &lt;zlib.h&gt; header file. */<br>
=C2=A0#define HAVE_ZLIB_H 1<br>
@@ -334,6 +331,9 @@<br>
=C2=A0# endif<br>
=C2=A0#endif<br>
<br>
+/* Enable xzlib compression support */<br>
+/* #undef XZLIBSUPPORT */<br>
+<br>
=C2=A0/* Enable zlib compression support */<br>
=C2=A0#define ZLIBSUPPORT 1<br>
<br>
</blockquote></div>

--000000000000a0034e05d4c4d3ff--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfpFrtehUpV6d0hvBFQkV3axSdur5QiKf8abuwOpFHP7eA>