include sys/sysmacros.h for getting major() definition

Message ID 5399704f-3d0e-0151-a02f-bbb7c605159d@gmail.com
State New
Headers show

Commit Message

Andrei Borzenkov Dec. 19, 2016, 4:39 p.m.
19.12.2016 03:12, Khem Raj пишет:
> 

>> On Dec 18, 2016, at 12:57 PM, Andrei Borzenkov <arvidjaar@gmail.com> wrote:

>>

>> 18.12.2016 23:44, Khem Raj пишет:

>>>

>>>> On Dec 18, 2016, at 12:41 PM, Andrei Borzenkov <arvidjaar@gmail.com> wrote:

>>>>

>>>> 18.12.2016 23:38, Khem Raj пишет:

>>>>>

>>>>> Thanks for your review. On further investigation the issue seems to be autoconf related

>>>>> with commit

>>>>> http://git.savannah.gnu.org/cgit/grub.git/commit/?id=7a5b301e3adb8e054288518a325135a1883c1c6c <http://git.savannah.gnu.org/cgit/grub.git/commit/?id=7a5b301e3adb8e054288518a325135a1883c1c6c>

>>>>>

>>>>> grub is using AC_HEADER_MAJOR to find this out, however the check is failing

>>>>

>>>> Please attach config.log.

>>>>

>>>>

>>

>> This should be fixed in autoconf commit

>> e17a30e987d7ee695fb4294a82d987ec3dc9b974 which will be in 2.70. I do not

>> know what plans there are to release it. Can you test if using current

>> autoconf GIT fixes this? You will need to rebuild configure using

>> updated autoconf.

> 

> I backported that patch into 2.69 and this fixed the issue. This patch can be dropped since its not needed with 2.70+

> and with the above back port for older autoconf.

> 


We cannot really force everyone to use bleeding edge that is not even
released. Could you please test attached patch with plain autoconf 2.69
or below?
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Comments

Khem Raj Dec. 20, 2016, 8:13 p.m. | #1
> On Dec 19, 2016, at 8:39 AM, Andrei Borzenkov <arvidjaar@gmail.com> wrote:
> 
> 19.12.2016 03:12, Khem Raj пишет:
>> 
>>> On Dec 18, 2016, at 12:57 PM, Andrei Borzenkov <arvidjaar@gmail.com> wrote:
>>> 
>>> 18.12.2016 23:44, Khem Raj пишет:
>>>> 
>>>>> On Dec 18, 2016, at 12:41 PM, Andrei Borzenkov <arvidjaar@gmail.com> wrote:
>>>>> 
>>>>> 18.12.2016 23:38, Khem Raj пишет:
>>>>>> 
>>>>>> Thanks for your review. On further investigation the issue seems to be autoconf related
>>>>>> with commit
>>>>>> http://git.savannah.gnu.org/cgit/grub.git/commit/?id=7a5b301e3adb8e054288518a325135a1883c1c6c <http://git.savannah.gnu.org/cgit/grub.git/commit/?id=7a5b301e3adb8e054288518a325135a1883c1c6c>
>>>>>> 
>>>>>> grub is using AC_HEADER_MAJOR to find this out, however the check is failing
>>>>> 
>>>>> Please attach config.log.
>>>>> 
>>>>> 
>>> 
>>> This should be fixed in autoconf commit
>>> e17a30e987d7ee695fb4294a82d987ec3dc9b974 which will be in 2.70. I do not
>>> know what plans there are to release it. Can you test if using current
>>> autoconf GIT fixes this? You will need to rebuild configure using
>>> updated autoconf.
>> 
>> I backported that patch into 2.69 and this fixed the issue. This patch can be dropped since its not needed with 2.70+
>> and with the above back port for older autoconf.
>> 
> 
> We cannot really force everyone to use bleeding edge that is not even
> released. Could you please test attached patch with plain autoconf 2.69
> or below?
> <glibc-2.25-header_major.patch>

This seemed to work in my environment.
Andrei Borzenkov Dec. 22, 2016, 7:49 p.m. | #2
20.12.2016 23:13, Khem Raj пишет:
> 
>> On Dec 19, 2016, at 8:39 AM, Andrei Borzenkov <arvidjaar@gmail.com> wrote:
>>
>> 19.12.2016 03:12, Khem Raj пишет:
>>>
>>>> On Dec 18, 2016, at 12:57 PM, Andrei Borzenkov <arvidjaar@gmail.com> wrote:
>>>>
>>>> 18.12.2016 23:44, Khem Raj пишет:
>>>>>
>>>>>> On Dec 18, 2016, at 12:41 PM, Andrei Borzenkov <arvidjaar@gmail.com> wrote:
>>>>>>
>>>>>> 18.12.2016 23:38, Khem Raj пишет:
>>>>>>>
>>>>>>> Thanks for your review. On further investigation the issue seems to be autoconf related
>>>>>>> with commit
>>>>>>> http://git.savannah.gnu.org/cgit/grub.git/commit/?id=7a5b301e3adb8e054288518a325135a1883c1c6c <http://git.savannah.gnu.org/cgit/grub.git/commit/?id=7a5b301e3adb8e054288518a325135a1883c1c6c>
>>>>>>>
>>>>>>> grub is using AC_HEADER_MAJOR to find this out, however the check is failing
>>>>>>
>>>>>> Please attach config.log.
>>>>>>
>>>>>>
>>>>
>>>> This should be fixed in autoconf commit
>>>> e17a30e987d7ee695fb4294a82d987ec3dc9b974 which will be in 2.70. I do not
>>>> know what plans there are to release it. Can you test if using current
>>>> autoconf GIT fixes this? You will need to rebuild configure using
>>>> updated autoconf.
>>>
>>> I backported that patch into 2.69 and this fixed the issue. This patch can be dropped since its not needed with 2.70+
>>> and with the above back port for older autoconf.
>>>
>>
>> We cannot really force everyone to use bleeding edge that is not even
>> released. Could you please test attached patch with plain autoconf 2.69
>> or below?
>> <glibc-2.25-header_major.patch>
> 
> This seemed to work in my environment.
> 

Committed. Thanks!

Patch

From: Andrei Borzenkov <arvidjaar@gmail.com>
Subject: [PATCH] configure: fix check for sys/sysmacros.h under glibc 2.25+

glibc 2.25 still includes sys/sysmacros.h in sys/types.h but also emits
deprecation warning. So test for sys/types.h succeeds in configure but later
compilation fails because we use -Werror by default.

While this is fixed in current autoconf GIT, we really cannot force everyone
to use bleeding edge (that is not even released right now). So run test under
-Werror as well to force proper detection.

This should have no impact on autoconf 2.70+ as AC_HEADER_MAJOR in this version
simply checks for header existence.

Reported and tested by Khem Raj <raj.khem@gmail.com>

---
 configure.ac | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/configure.ac b/configure.ac
index dc56564..4e980c5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -389,7 +389,14 @@  fi
 # Check for functions and headers.
 AC_CHECK_FUNCS(posix_memalign memalign getextmntent)
 AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h limits.h)
+
+# glibc 2.25 still includes sys/sysmacros.h in sys/types.h but emits deprecation
+# warning which causes compilation failure later with -Werror. So use -Werror here
+# as well to force proper sys/sysmacros.h detection.
+SAVED_CFLAGS="$CFLAGS"
+CFLAGS="$HOST_CFLAGS -Werror"
 AC_HEADER_MAJOR
+CFLAGS="$SAVED_CFLAGS"
 
 AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$ac_includes_default
 #include <sys/param.h>
-- 
tg: (ce95549..) u/glibc-2.25-header_major (depends on: master)