diff mbox series

[v2] dvdrw-tools: fix minor()/major() build failure due to glibc 2.28

Message ID 20180908112506.26647-1-giulio.benetti@micronovasrl.com
State Accepted
Headers show
Series [v2] dvdrw-tools: fix minor()/major() build failure due to glibc 2.28 | expand

Commit Message

Giulio Benetti Sept. 8, 2018, 11:25 a.m. UTC
glibc 2.28 no longer includes <sys/sysmacros.h> from <sys/types.h>,
and therefore <sys/sysmacros.h> must be included explicitly when
major()/minor() are used.

This commit adds a patch to directly include <sys/sysmacros.h> into
growisofs.c where minor() and major() macros are used.

Fixes:
http://autobuild.buildroot.net/results/763/763879f845ffd43343a7b4d548b1eba991d572bd//

Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
---
Changes V1->V2:
* remove #include <sys/sysmacros.h> from transport.hxx, it's useless, only
  growisofs.c needs it.

 ...ude-sysmacros.h-to-compile-with-newer-gcc.patch | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
 create mode 100644 package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch

Comments

Thomas Petazzoni Sept. 8, 2018, 1:38 p.m. UTC | #1
Hello,

On Sat,  8 Sep 2018 13:25:06 +0200, Giulio Benetti wrote:
> glibc 2.28 no longer includes <sys/sysmacros.h> from <sys/types.h>,
> and therefore <sys/sysmacros.h> must be included explicitly when
> major()/minor() are used.
> 
> This commit adds a patch to directly include <sys/sysmacros.h> into
> growisofs.c where minor() and major() macros are used.
> 
> Fixes:
> http://autobuild.buildroot.net/results/763/763879f845ffd43343a7b4d548b1eba991d572bd//
> 
> Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
> ---
> Changes V1->V2:
> * remove #include <sys/sysmacros.h> from transport.hxx, it's useless, only
>   growisofs.c needs it.
> 
>  ...ude-sysmacros.h-to-compile-with-newer-gcc.patch | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>  create mode 100644 package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch
> 
> diff --git a/package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch b/package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch
> new file mode 100644
> index 0000000000..e1b893d0be
> --- /dev/null
> +++ b/package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch
> @@ -0,0 +1,14 @@
> +growisofs.c: include sysmacros.h to compile with newer gcc

The problem has nothing to do with a "newer gcc". I'm not sure why you
got the commit log correct (glibc 2.28 is the reason for the problem),
but not the patch description.

Anyway, I fixed the patch description, and applied to master. Thanks!

Thomas
Giulio Benetti Sept. 8, 2018, 1:51 p.m. UTC | #2
Hello,

Il 08/09/2018 15:38, Thomas Petazzoni ha scritto:
> Hello,
> 
> On Sat,  8 Sep 2018 13:25:06 +0200, Giulio Benetti wrote:
>> glibc 2.28 no longer includes <sys/sysmacros.h> from <sys/types.h>,
>> and therefore <sys/sysmacros.h> must be included explicitly when
>> major()/minor() are used.
>>
>> This commit adds a patch to directly include <sys/sysmacros.h> into
>> growisofs.c where minor() and major() macros are used.
>>
>> Fixes:
>> http://autobuild.buildroot.net/results/763/763879f845ffd43343a7b4d548b1eba991d572bd//
>>
>> Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
>> ---
>> Changes V1->V2:
>> * remove #include <sys/sysmacros.h> from transport.hxx, it's useless, only
>>    growisofs.c needs it.
>>
>>   ...ude-sysmacros.h-to-compile-with-newer-gcc.patch | 14 ++++++++++++++
>>   1 file changed, 14 insertions(+)
>>   create mode 100644 package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch
>>
>> diff --git a/package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch b/package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch
>> new file mode 100644
>> index 0000000000..e1b893d0be
>> --- /dev/null
>> +++ b/package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch
>> @@ -0,0 +1,14 @@
>> +growisofs.c: include sysmacros.h to compile with newer gcc
> 
> The problem has nothing to do with a "newer gcc". I'm not sure why you
> got the commit log correct (glibc 2.28 is the reason for the problem),
> but not the patch description.

You're right, I've been misled by another patch taken from upstream:
https://github.com/giuliobenetti/buildroot/commit/4ffde065d2829d90cddc70f7c2e8f5775e59cbe9

Anyway yes, GCC doesn't anything to do with this, it's a glibc problem.
Sorry and thank you for correcting.

Giulio Benetti
diff mbox series

Patch

diff --git a/package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch b/package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch
new file mode 100644
index 0000000000..e1b893d0be
--- /dev/null
+++ b/package/dvdrw-tools/0002-Include-sysmacros.h-to-compile-with-newer-gcc.patch
@@ -0,0 +1,14 @@ 
+growisofs.c: include sysmacros.h to compile with newer gcc
+
+Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
+
+diff -urpN dvd+rw-tools-7.1.orig/growisofs.c dvd+rw-tools-7.1/growisofs.c
+--- dvd+rw-tools-7.1.orig/growisofs.c	2018-09-08 01:56:11.686656819 +0200
++++ dvd+rw-tools-7.1/growisofs.c	2018-09-08 02:11:45.868778471 +0200
+@@ -441,6 +441,7 @@
+ #include <fcntl.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <assert.h>
+ #include "mp.h"