diff options
Diffstat (limited to 'meta/recipes-devtools/autoconf/autoconf/AC_HEADER_MAJOR-port-to-glibc-2.25.patch')
-rw-r--r-- | meta/recipes-devtools/autoconf/autoconf/AC_HEADER_MAJOR-port-to-glibc-2.25.patch | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/meta/recipes-devtools/autoconf/autoconf/AC_HEADER_MAJOR-port-to-glibc-2.25.patch b/meta/recipes-devtools/autoconf/autoconf/AC_HEADER_MAJOR-port-to-glibc-2.25.patch deleted file mode 100644 index fc37236bf8..0000000000 --- a/meta/recipes-devtools/autoconf/autoconf/AC_HEADER_MAJOR-port-to-glibc-2.25.patch +++ /dev/null @@ -1,162 +0,0 @@ -From e17a30e987d7ee695fb4294a82d987ec3dc9b974 Mon Sep 17 00:00:00 2001 -From: Eric Blake <eblake@redhat.com> -Date: Wed, 14 Sep 2016 08:17:06 -0500 -Subject: [PATCH] AC_HEADER_MAJOR: port to glibc 2.25 - -glibc 2.25 is deprecating the namespace pollution of <sys/types.h> -injecting major(), minor(), and makedev() into the compilation -environment, with a warning that insists that users include -<sys/sysmacros.h> instead. However, because the expansion of -AC_HEADER_MAJOR didn't bother checking sys/sysmacros.h until -after probing whether sys/types.h pollutes the namespace, it was -not defining MAJOR_IN_SYSMACROS, with the result that code -compiled with -Werror chokes on the deprecation warnings because -it was not including sysmacros.h. - -In addition to fixing autoconf (which only benefits projects -that rebuild configure after this fix is released), we can also -give a hint to distros on how they can populate config.site with -a cache variable to force pre-existing configure scripts without -the updated macro to behave sanely in the presence of glibc 2.25 -(the documentation is especially useful since that cache variable -is no longer present in autoconf after this patch). - -Note that mingw lacks major/minor/makedev in any of its standard -headers; for that platform, the behavior of this macro is unchanged -(code using the recommended include formula will get a compile error -when trying to use major(), whether before or after this patch); but -for now, it is assumed that programs actually concerned with -creating devices are not worried about portability to mingw. If -desired, a later patch could tighten AC_HEADER_MAJOR to fail at -configure time if the macros are unavailable in any of the three -system headers, but that semantic change is not worth mixing into -this patch. - -* lib/autoconf/headers.m4 (AC_HEADER_MAJOR): Drop check for -major within sys/types.h; it interferes with the need to check -sysmacros.h first. -* doc/autoconf.texi (Particular Headers) <AC_HEADER_MAJOR>: Expand -details on usage, and on workarounds for non-updated projects. - -Signed-off-by: Eric Blake <eblake@redhat.com> ---- -Upstream-Status: Backport - - doc/autoconf.texi | 35 +++++++++++++++++++++++++++++++---- - lib/autoconf/headers.m4 | 30 ++++++++++++++---------------- - 2 files changed, 45 insertions(+), 20 deletions(-) - -Index: autoconf-2.69/doc/autoconf.texi -=================================================================== ---- autoconf-2.69.orig/doc/autoconf.texi -+++ autoconf-2.69/doc/autoconf.texi -@@ -15,7 +15,7 @@ - @c The ARG is an optional argument. To be used for macro arguments in - @c their documentation (@defmac). - @macro ovar{varname} --@r{[}@var{\varname\}@r{]}@c -+@r{[}@var{\varname\}@r{]} - @end macro - - @c @dvar(ARG, DEFAULT) -@@ -23,7 +23,7 @@ - @c The ARG is an optional argument, defaulting to DEFAULT. To be used - @c for macro arguments in their documentation (@defmac). - @macro dvar{varname, default} --@r{[}@var{\varname\} = @samp{\default\}@r{]}@c -+@r{[}@var{\varname\} = @samp{\default\}@r{]} - @end macro - - @c Handling the indexes with Texinfo yields several different problems. -@@ -5926,10 +5926,37 @@ Also see @code{AC_STRUCT_DIRENT_D_INO} a - @cvindex MAJOR_IN_SYSMACROS - @hdrindex{sys/mkdev.h} - @hdrindex{sys/sysmacros.h} --If @file{sys/types.h} does not define @code{major}, @code{minor}, and --@code{makedev}, but @file{sys/mkdev.h} does, define --@code{MAJOR_IN_MKDEV}; otherwise, if @file{sys/sysmacros.h} does, define --@code{MAJOR_IN_SYSMACROS}. -+Detect the headers required to use @code{makedev}, @code{major}, and -+@code{minor}. These functions may be defined by @file{sys/mkdev.h}, -+@code{sys/sysmacros.h}, or @file{sys/types.h}. -+ -+@code{AC_HEADER_MAJOR} defines @code{MAJOR_IN_MKDEV} if they are in -+@file{sys/mkdev.h}, or @code{MAJOR_IN_SYSMACROS} if they are in -+@file{sys/sysmacros.h}. If neither macro is defined, they are either in -+@file{sys/types.h} or unavailable. -+ -+To properly use these functions, your code should contain something -+like: -+ -+@verbatim -+#include <sys/types.h> -+#ifdef MAJOR_IN_MKDEV -+# include <sys/mkdev.h> -+#elif defined MAJOR_IN_SYSMACROS -+# include <sys/sysmacros.h> -+#endif -+@end verbatim -+ -+Note: Configure scripts built with Autoconf 2.69 or earlier will not -+detect a problem if @file{sys/types.h} contains definitions of -+@code{major}, @code{minor}, and/or @code{makedev} that trigger compiler -+warnings upon use. This is known to occur with GNU libc 2.25, where -+those definitions are being deprecated to reduce namespace pollution. -+If it is not practical to use Autoconf 2.70 to regenerate the configure -+script of affected software, you can work around the problem by setting -+@samp{ac_cv_header_sys_types_h_makedev=no}, as an argument to -+@command{configure} or as part of a @file{config.site} site default file -+(@pxref{Site Defaults}). - @end defmac - - @defmac AC_HEADER_RESOLV -Index: autoconf-2.69/lib/autoconf/headers.m4 -=================================================================== ---- autoconf-2.69.orig/lib/autoconf/headers.m4 -+++ autoconf-2.69/lib/autoconf/headers.m4 -@@ -502,31 +502,29 @@ fi - - # AC_HEADER_MAJOR - # --------------- -+# Thanks to glibc 2.25 deprecating macros in sys/types.h, coupled with -+# back-compat to autoconf 2.69, we need the following logic: -+# Check whether <sys/types.h> compiles. -+# If <sys/mkdev.h> compiles, assume it provides major/minor/makedev. -+# Otherwise, if <sys/sysmacros.h> compiles, assume it provides the macros. -+# Otherwise, either the macros were provided by <sys/types.h>, or do -+# not exist on the platform. Code trying to use these three macros is -+# assumed to not care about platforms that lack the macros. - AN_FUNCTION([major], [AC_HEADER_MAJOR]) - AN_FUNCTION([makedev], [AC_HEADER_MAJOR]) - AN_FUNCTION([minor], [AC_HEADER_MAJOR]) - AN_HEADER([sys/mkdev.h], [AC_HEADER_MAJOR]) - AC_DEFUN([AC_HEADER_MAJOR], --[AC_CACHE_CHECK(whether sys/types.h defines makedev, -- ac_cv_header_sys_types_h_makedev, --[AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include <sys/types.h>]], -- [[return makedev(0, 0);]])], -- [ac_cv_header_sys_types_h_makedev=yes], -- [ac_cv_header_sys_types_h_makedev=no]) --]) -- --if test $ac_cv_header_sys_types_h_makedev = no; then -+[AC_CHECK_HEADERS_ONCE([sys/types.h]) - AC_CHECK_HEADER(sys/mkdev.h, - [AC_DEFINE(MAJOR_IN_MKDEV, 1, - [Define to 1 if `major', `minor', and `makedev' are - declared in <mkdev.h>.])]) -- -- if test $ac_cv_header_sys_mkdev_h = no; then -- AC_CHECK_HEADER(sys/sysmacros.h, -- [AC_DEFINE(MAJOR_IN_SYSMACROS, 1, -- [Define to 1 if `major', `minor', and `makedev' -- are declared in <sysmacros.h>.])]) -- fi -+if test $ac_cv_header_sys_mkdev_h = no; then -+ AC_CHECK_HEADER(sys/sysmacros.h, -+ [AC_DEFINE(MAJOR_IN_SYSMACROS, 1, -+ [Define to 1 if `major', `minor', and `makedev' -+ are declared in <sysmacros.h>.])]) - fi - ])# AC_HEADER_MAJOR - |