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 | 101 |
1 files changed, 0 insertions, 101 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 b2d7dc0e24..0000000000 --- a/meta/recipes-devtools/autoconf/autoconf/AC_HEADER_MAJOR-port-to-glibc-2.25.patch +++ /dev/null @@ -1,101 +0,0 @@ -From b859ab1b211d348b46eca9158b7742f050c8115e 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. - -Signed-off-by: Eric Blake <eblake@redhat.com> - -Remove the documentation change from the patch -Upstream-Status: Backport - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - lib/autoconf/headers.m4 | 30 ++++++++++++++---------------- - 1 file changed, 14 insertions(+), 16 deletions(-) - -diff --git a/lib/autoconf/headers.m4 b/lib/autoconf/headers.m4 -index 81a7fa2..a57d0d3 100644 ---- a/lib/autoconf/headers.m4 -+++ b/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 - --- -2.7.4 - |