Skip to contentSkip to conversation

atop: fix minor() major() build failure

PATCH New Giulio Benetti 3 participants 9 messages Aug 28, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 atop: fix minor() major() build failure

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.

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

---
 .../0001-Fix-major-minor-build-failure.patch  | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 package/atop/0001-Fix-major-minor-build-failure.patch
package/atop/0001-Fix-major-minor-build-failure.patch new file +32 -0
new file mode 100644
index 0000000000..d46302dedc
@@ -0,0 +1,32 @@
+From 1f85bae1fa4b4a021adc71517d218000c53d8501 Mon Sep 17 00:00:00 2001
+From: Giulio Benetti <[email protected]>
+Date: Tue, 28 Aug 2018 14:11:25 +0200
+Subject: [PATCH] Fix major() minor() build failure.
+
+In some toolchain sys/types.h file doesn't include sys/sysmacros.h but
+minor() and major() macros are contained there. This causes build failure
+using such toolchains(i.e. arm-linux-gnueabihf).
+
+Add #include <sys/sysmacros.h> directly where using major() and minor()
+macros.
+
+Signed-off-by: Giulio Benetti <[email protected]>
+---
+ photosyst.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/photosyst.c b/photosyst.c
+index 38828ec..871d05c 100644
+--- a/photosyst.c
++++ b/photosyst.c
+@@ -172,6 +172,7 @@ static const char rcsid[] = "$Id: photosyst.c,v 1.38 2010/11/19 07:40:40 gerlof
+ // #define	_GNU_SOURCE
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
++#include <sys/sysmacros.h>
+ 
+ #include "atop.h"
+ #include "photosyst.h"
+-- 
+2.17.1
+
Signature · 1 line
2.17.1
#1 lore raw

PATCH 1/1 atop: fix minor() major() build failure

Hi Giulio,

Quoted 25 lines · Giulio Benetti

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.

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

---
 .../0001-Fix-major-minor-build-failure.patch  | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 package/atop/0001-Fix-major-minor-build-failure.patch
package/atop/0001-Fix-major-minor-build-failure.patch new file +4 -0
new file mode 100644
index 0000000000..d46302dedc
@@ -0,0 +1,32 @@
+From 1f85bae1fa4b4a021adc71517d218000c53d8501 Mon Sep 17 00:00:00 2001
+From: Giulio Benetti <[email protected]>
+Date: Tue, 28 Aug 2018 14:11:25 +0200
+Subject: [PATCH] Fix major() minor() build failure.

package/atop/0001-Fix-major-minor-build-failure.patch line 14

Quoted 10 lines
package/atop/0001-Fix-major-minor-build-failure.patch new file +10 -0
+
+In some toolchain sys/types.h file doesn't include sys/sysmacros.h but
+minor() and major() macros are contained there. This causes build failure
+using such toolchains(i.e. arm-linux-gnueabihf).
+
+Add #include <sys/sysmacros.h> directly where using major() and minor()
+macros.
+
+Signed-off-by: Giulio Benetti <[email protected]>
+---

Please add a reference to the upstream pull request in the patch description:

https://github.com/Atoptool/atop/pull/35

baruch

Quoted 17 lines
package/atop/0001-Fix-major-minor-build-failure.patch new file +17 -0
+ photosyst.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/photosyst.c b/photosyst.c
+index 38828ec..871d05c 100644
+--- a/photosyst.c
++++ b/photosyst.c
+@@ -172,6 +172,7 @@ static const char rcsid[] = "$Id: photosyst.c,v 1.38 2010/11/19 07:40:40 gerlof
+ // #define	_GNU_SOURCE
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
++#include <sys/sysmacros.h>
+ 
+ #include "atop.h"
+ #include "photosyst.h"
+-- 
+2.17.1
Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
#2 lore raw

PATCH v2 1/1 atop: fix minor() major() build failure

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//

---
 ...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
package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch new file +50 -0
new file mode 100644
index 0000000000..8e612fe2b3
@@ -0,0 +1,50 @@
+From 414127c03669b4eedc85778a7bff80cf601311d8 Mon Sep 17 00:00:00 2001
+From: SjonHortensius <[email protected]>
+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
+
Signature · 1 line
2.17.1
#3 lore raw

PATCH v2 1/1 atop: fix minor() major() build failure

Hello,

Quoted 45 lines · Giulio Benetti

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//

---
 ...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
package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch new file +21 -0
new file mode 100644
index 0000000000..8e612fe2b3
@@ -0,0 +1,50 @@
+From 414127c03669b4eedc85778a7bff80cf601311d8 Mon Sep 17 00:00:00 2001
+From: SjonHortensius <[email protected]>
+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:

package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch line 31

Quoted 10 lines
package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch new file +10 -0
+
+```
+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

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#4 lore raw

PATCH v2 1/1 atop: fix minor() major() build failure

Hello Thomas,

Il 28/08/2018 15:16, Thomas Petazzoni ha scritto:

Quoted 53 lines

Hello,

Quoted 50 lines · Giulio Benetti

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//

---
  ...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

package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch new file +26 -0
new file mode 100644
index 0000000000..8e612fe2b3
@@ -0,0 +1,50 @@
+From 414127c03669b4eedc85778a7bff80cf601311d8 Mon Sep 17 00:00:00 2001
+From: SjonHortensius <[email protected]>
+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);
Quoted 8 lines

package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch line 31

Quoted 5 lines
package/atop/0001-Include-sysmacros.h-to-compile-with-newer-gcc.patch new file +5 -0
+                   ^~~~~
+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

#5 lore raw

PATCH v2 1/1 atop: fix minor() major() build failure

Hello,

Quoted 5 lines · Giulio Benetti
Quoted 2 lines

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

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#6 lore raw

PATCH v2 1/1 atop: fix minor() major() build failure

Hello,

Il 28/08/2018 22:35, Thomas Petazzoni ha scritto:

Quoted 7 lines

Hello,

Quoted 3 lines · Giulio Benetti
Quoted 2 lines

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

Quoted 8 lines
Quoted 2 lines

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

#7 lore raw

PATCH 1/1 atop: fix minor() major() build failure

In reply to Baruch Siach

Hi Baruch,

Il 28/08/2018 14:41, Baruch Siach ha scritto:

Quoted 42 lines

Hi Giulio,

Quoted 25 lines · Giulio Benetti

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.

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

---
  .../0001-Fix-major-minor-build-failure.patch  | 32 +++++++++++++++++++
  1 file changed, 32 insertions(+)

create mode 100644 package/atop/0001-Fix-major-minor-build-failure.patch

package/atop/0001-Fix-major-minor-build-failure.patch new file +4 -0
new file mode 100644
index 0000000000..d46302dedc
@@ -0,0 +1,32 @@
+From 1f85bae1fa4b4a021adc71517d218000c53d8501 Mon Sep 17 00:00:00 2001
+From: Giulio Benetti <[email protected]>
+Date: Tue, 28 Aug 2018 14:11:25 +0200
+Subject: [PATCH] Fix major() minor() build failure.

package/atop/0001-Fix-major-minor-build-failure.patch line 14

Quoted 10 lines
package/atop/0001-Fix-major-minor-build-failure.patch new file +10 -0
+
+In some toolchain sys/types.h file doesn't include sys/sysmacros.h but
+minor() and major() macros are contained there. This causes build failure
+using such toolchains(i.e. arm-linux-gnueabihf).
+
+Add #include <sys/sysmacros.h> directly where using major() and minor()
+macros.
+
+Signed-off-by: Giulio Benetti <[email protected]>
+---

Please add a reference to the upstream pull request in the patch description:

Quoted 1 line

https://github.com/Atoptool/atop/pull/35

I've realized too late there was that PR open that already corrected the problem, so I've done mine and sent patch.
After I've sent v2 patch with patch taken from upstream atop PR.

Is it ok?

Thanks
Giulio

#8 lore raw

PATCH 1/1 atop: fix minor() major() build failure

In reply to Giulio Benetti

Hello,

Il 28/08/2018 14:32, Giulio Benetti ha scritto:

Quoted 44 lines

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.

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

---
  .../0001-Fix-major-minor-build-failure.patch  | 32 +++++++++++++++++++
  1 file changed, 32 insertions(+)

create mode 100644 package/atop/0001-Fix-major-minor-build-failure.patch

package/atop/0001-Fix-major-minor-build-failure.patch new file +22 -0
new file mode 100644
index 0000000000..d46302dedc
@@ -0,0 +1,32 @@
+From 1f85bae1fa4b4a021adc71517d218000c53d8501 Mon Sep 17 00:00:00 2001
+From: Giulio Benetti <[email protected]>
+Date: Tue, 28 Aug 2018 14:11:25 +0200
+Subject: [PATCH] Fix major() minor() build failure.
+
+In some toolchain sys/types.h file doesn't include sys/sysmacros.h but
+minor() and major() macros are contained there. This causes build failure
+using such toolchains(i.e. arm-linux-gnueabihf).
+
+Add #include <sys/sysmacros.h> directly where using major() and minor()
+macros.
+
+Signed-off-by: Giulio Benetti <[email protected]>
+---
+ photosyst.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/photosyst.c b/photosyst.c
+index 38828ec..871d05c 100644
+--- a/photosyst.c
++++ b/photosyst.c
+@@ -172,6 +172,7 @@ static const char rcsid[] = "$Id: photosyst.c,v 1.38 2010/11/19 07:40:40 gerlof

package/atop/0001-Fix-major-minor-build-failure.patch line 32

Quoted 10 lines
package/atop/0001-Fix-major-minor-build-failure.patch new file +10 -0
+ // #define	_GNU_SOURCE
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
++#include <sys/sysmacros.h>
+
+ #include "atop.h"
+ #include "photosyst.h"
+--
+2.17.1
+

I was sure I had checked on atop git. There there is already a patch solving this.
So I resend this using the already existing patch.

Giulio