diff mbox series

[next,v2] atop: fix minor() major() build failure

Message ID 20180828125258.9285-1-giulio.benetti@micronovasrl.com
State Superseded, archived
Headers show
Series [next,v2] atop: fix minor() major() build failure | expand

Commit Message

Giulio Benetti Aug. 28, 2018, 12:52 p.m. UTC
On arm / cortex-a8 Arch/Subarch sys/types.h doesn't include
sys/sysmacros.h which contains minor() and major() macros.

Add patch to directly include <sys/sysmacros.h> into photosyst.c where
minor() and major() macros are used.

Patch has been taken from atop upstream pull request:
https://github.com/Atoptool/atop/pull/35

Fixes
http://autobuild.buildroot.net/results/3fc/3fc0f18ed94697c404e7ff3751781789170c4fe5//

Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
---
 ...ysmacros.h-to-compile-with-newer-gcc.patch | 50 +++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch

Comments

Thomas Petazzoni Aug. 28, 2018, 1:16 p.m. UTC | #1
Hello,

On Tue, 28 Aug 2018 14:52:58 +0200, Giulio Benetti wrote:
> On arm / cortex-a8 Arch/Subarch sys/types.h doesn't include
> sys/sysmacros.h which contains minor() and major() macros.
> 
> Add patch to directly include <sys/sysmacros.h> into photosyst.c where
> minor() and major() macros are used.
> 
> Patch has been taken from atop upstream pull request:
> https://github.com/Atoptool/atop/pull/35
> 
> Fixes
> http://autobuild.buildroot.net/results/3fc/3fc0f18ed94697c404e7ff3751781789170c4fe5//
> 
> Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
> ---
>  ...ysmacros.h-to-compile-with-newer-gcc.patch | 50 +++++++++++++++++++
>  1 file changed, 50 insertions(+)
>  create mode 100644 package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch
> 
> diff --git a/package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch b/package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch
> new file mode 100644
> index 0000000000..8e612fe2b3
> --- /dev/null
> +++ b/package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch
> @@ -0,0 +1,50 @@
> +From 414127c03669b4eedc85778a7bff80cf601311d8 Mon Sep 17 00:00:00 2001
> +From: SjonHortensius <SjonHortensius@users.noreply.github.com>
> +Date: Fri, 24 Aug 2018 18:26:58 +0200
> +Subject: [PATCH] Include sysmacros.h to compile with newer gcc
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +Older gcc throws a warning
> +```
> +photosyst.c: In function 'lvmmapname':
> +photosyst.c:1465:13: warning: In the GNU C Library, "major" is defined
> + by <sys/sysmacros.h>. For historical compatibility, it is
> + currently defined by <sys/types.h> as well, but we plan to
> + remove this soon. To use "major", include <sys/sysmacros.h>
> + directly. If you did not intend to use a system-defined macro
> + "major", you should undefine it after including <sys/types.h>.
> +     dmp->major  = major(statbuf.st_rdev);
> +```
> +
> +Newer gcc throws an error:
> +
> +```
> +photosyst.c: In function ‘lvmmapname’:
> +photosyst.c:1482:19: error: called object ‘major’ is not a function or function pointer
> +     dmp->major  = major(statbuf.st_rdev);
> +                   ^~~~~
> +photosyst.c:1437:25: note: declared here
> + lvmmapname(unsigned int major, unsigned int minor,
> +            ~~~~~~~~~~~~~^~~~~
> +```

We need your Signed-off-by here, i.e inside the patch you are
backporting.

Best regards,

Thomas
Giulio Benetti Aug. 28, 2018, 1:26 p.m. UTC | #2
Hello Thomas,

Il 28/08/2018 15:16, Thomas Petazzoni ha scritto:
> Hello,
> 
> On Tue, 28 Aug 2018 14:52:58 +0200, Giulio Benetti wrote:
>> On arm / cortex-a8 Arch/Subarch sys/types.h doesn't include
>> sys/sysmacros.h which contains minor() and major() macros.
>>
>> Add patch to directly include <sys/sysmacros.h> into photosyst.c where
>> minor() and major() macros are used.
>>
>> Patch has been taken from atop upstream pull request:
>> https://github.com/Atoptool/atop/pull/35
>>
>> Fixes
>> http://autobuild.buildroot.net/results/3fc/3fc0f18ed94697c404e7ff3751781789170c4fe5//
>>
>> Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
>> ---
>>   ...ysmacros.h-to-compile-with-newer-gcc.patch | 50 +++++++++++++++++++
>>   1 file changed, 50 insertions(+)
>>   create mode 100644 package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch
>>
>> diff --git a/package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch b/package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch
>> new file mode 100644
>> index 0000000000..8e612fe2b3
>> --- /dev/null
>> +++ b/package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch
>> @@ -0,0 +1,50 @@
>> +From 414127c03669b4eedc85778a7bff80cf601311d8 Mon Sep 17 00:00:00 2001
>> +From: SjonHortensius <SjonHortensius@users.noreply.github.com>
>> +Date: Fri, 24 Aug 2018 18:26:58 +0200
>> +Subject: [PATCH] Include sysmacros.h to compile with newer gcc
>> +MIME-Version: 1.0
>> +Content-Type: text/plain; charset=UTF-8
>> +Content-Transfer-Encoding: 8bit
>> +
>> +Older gcc throws a warning
>> +```
>> +photosyst.c: In function 'lvmmapname':
>> +photosyst.c:1465:13: warning: In the GNU C Library, "major" is defined
>> + by <sys/sysmacros.h>. For historical compatibility, it is
>> + currently defined by <sys/types.h> as well, but we plan to
>> + remove this soon. To use "major", include <sys/sysmacros.h>
>> + directly. If you did not intend to use a system-defined macro
>> + "major", you should undefine it after including <sys/types.h>.
>> +     dmp->major  = major(statbuf.st_rdev);
>> +```
>> +
>> +Newer gcc throws an error:
>> +
>> +```
>> +photosyst.c: In function ‘lvmmapname’:
>> +photosyst.c:1482:19: error: called object ‘major’ is not a function or function pointer
>> +     dmp->major  = major(statbuf.st_rdev);
>> +                   ^~~~~
>> +photosyst.c:1437:25: note: declared here
>> + lvmmapname(unsigned int major, unsigned int minor,
>> +            ~~~~~~~~~~~~~^~~~~
>> +```
> 
> We need your Signed-off-by here, i.e inside the patch you are
> backporting.

Ok, I've confused Signed-off-by in that patch as "stealing" Authorship,
instead the Authorship is defined in "From:" field.
I correct and resend as v3.

Thanks
Giulio
Thomas Petazzoni Aug. 28, 2018, 8:35 p.m. UTC | #3
Hello,

On Tue, 28 Aug 2018 15:26:45 +0200, Giulio Benetti wrote:

> > We need your Signed-off-by here, i.e inside the patch you are
> > backporting.  
> 
> Ok, I've confused Signed-off-by in that patch as "stealing" Authorship,
> instead the Authorship is defined in "From:" field.

Signed-off-by are here to track the "merging" path of the patch. You're
taking a patch from somewhere and adding it to Buildroot, you add your
SoB to it. If the original author had a SoB, you would have kept it,
and added yours below it. This is not stealing the authorship, but
documenting who took the patch and added it in Buildroot.

Best regards,

Thomas
Giulio Benetti Aug. 28, 2018, 8:37 p.m. UTC | #4
Hello,

Il 28/08/2018 22:35, Thomas Petazzoni ha scritto:
> Hello,
> 
> On Tue, 28 Aug 2018 15:26:45 +0200, Giulio Benetti wrote:
> 
>>> We need your Signed-off-by here, i.e inside the patch you are
>>> backporting.
>>
>> Ok, I've confused Signed-off-by in that patch as "stealing" Authorship,
>> instead the Authorship is defined in "From:" field.
> 
> Signed-off-by are here to track the "merging" path of the patch. You're
> taking a patch from somewhere and adding it to Buildroot, you add your
> SoB to it. If the original author had a SoB, you would have kept it,
> and added yours below it. This is not stealing the authorship, but
> documenting who took the patch and added it in Buildroot.

Thanks for clarifying.

Giulio
diff mbox series

Patch

diff --git a/package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch b/package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch
new file mode 100644
index 0000000000..8e612fe2b3
--- /dev/null
+++ b/package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch
@@ -0,0 +1,50 @@ 
+From 414127c03669b4eedc85778a7bff80cf601311d8 Mon Sep 17 00:00:00 2001
+From: SjonHortensius <SjonHortensius@users.noreply.github.com>
+Date: Fri, 24 Aug 2018 18:26:58 +0200
+Subject: [PATCH] Include sysmacros.h to compile with newer gcc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Older gcc throws a warning
+```
+photosyst.c: In function 'lvmmapname':
+photosyst.c:1465:13: warning: In the GNU C Library, "major" is defined
+ by <sys/sysmacros.h>. For historical compatibility, it is
+ currently defined by <sys/types.h> as well, but we plan to
+ remove this soon. To use "major", include <sys/sysmacros.h>
+ directly. If you did not intend to use a system-defined macro
+ "major", you should undefine it after including <sys/types.h>.
+     dmp->major  = major(statbuf.st_rdev);
+```
+
+Newer gcc throws an error:
+
+```
+photosyst.c: In function ‘lvmmapname’:
+photosyst.c:1482:19: error: called object ‘major’ is not a function or function pointer
+     dmp->major  = major(statbuf.st_rdev);
+                   ^~~~~
+photosyst.c:1437:25: note: declared here
+ lvmmapname(unsigned int major, unsigned int minor,
+            ~~~~~~~~~~~~~^~~~~
+```
+---
+ photosyst.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/photosyst.c b/photosyst.c
+index 19cbbe1..50841a1 100644
+--- a/photosyst.c
++++ b/photosyst.c
+@@ -152,6 +152,7 @@
+ static const char rcsid[] = "$Id: photosyst.c,v 1.38 2010/11/19 07:40:40 gerlof Exp $";
+ 
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+-- 
+2.17.1
+