neard: fix build with kernel headers 3.1 - 3.6

Submitted by Arnout Vandecappelle on Feb. 16, 2013, 5:34 p.m.

Details

Message ID 1361036067-26971-1-git-send-email-arnout@mind.be
State Accepted
Commit dcb88a5500f7ce6fd877370b797009bb78e8f014
Headers show

Commit Message

Arnout Vandecappelle Feb. 16, 2013, 5:34 p.m.
From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

neard uses the linux/nfc.h header which is fairly recent, so we have a
patch that creates linux-nfc.h and uses it if necessary. However, since
the bump to 0.9, neard uses some symbols that are introduced in linux 3.7
so the build fails with headers 3.1 (which introduced nfc.h) to 3.6.

To resolve that, add a check for one of the newly introduced symbols
(that is used by neard).

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
v2: Forgot to include <sys/socket.h>.

Probably wanted for 2013.02.

I selected the symbol to check for with 'git log -p v3.7 include/linux/nfc.h'
in the kernel.
---
 package/neard/neard-fix-missing-linux-nfc-header.patch |   13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

Comments

Peter Korsgaard Feb. 17, 2013, 10:11 p.m.
>>>>> "Arnout" == Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> writes:

 Arnout> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
 Arnout> neard uses the linux/nfc.h header which is fairly recent, so we have a
 Arnout> patch that creates linux-nfc.h and uses it if necessary. However, since
 Arnout> the bump to 0.9, neard uses some symbols that are introduced in linux 3.7
 Arnout> so the build fails with headers 3.1 (which introduced nfc.h) to 3.6.

 Arnout> To resolve that, add a check for one of the newly introduced symbols
 Arnout> (that is used by neard).

 Arnout> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
 Arnout> ---
 Arnout> v2: Forgot to include <sys/socket.h>.

 Arnout> Probably wanted for 2013.02.

Committed, thanks. Don't forget to send upstream.
Arnout Vandecappelle Feb. 18, 2013, 7:27 a.m.
On 17/02/13 23:11, Peter Korsgaard wrote:
>>>>>> "Arnout" == Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> writes:
>
>   Arnout> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>   Arnout> neard uses the linux/nfc.h header which is fairly recent, so we have a
>   Arnout> patch that creates linux-nfc.h and uses it if necessary. However, since
>   Arnout> the bump to 0.9, neard uses some symbols that are introduced in linux 3.7
>   Arnout> so the build fails with headers 3.1 (which introduced nfc.h) to 3.6.
>
>   Arnout> To resolve that, add a check for one of the newly introduced symbols
>   Arnout> (that is used by neard).
>
>   Arnout> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>   Arnout> ---
>   Arnout> v2: Forgot to include <sys/socket.h>.
>
>   Arnout> Probably wanted for 2013.02.
>
> Committed, thanks. Don't forget to send upstream.

  Thomas, did you ever send the original patch upstream?

  Regards,
  Arnout
Thomas Petazzoni Feb. 25, 2013, 10:40 a.m.
Dear Arnout Vandecappelle,

On Mon, 18 Feb 2013 08:27:14 +0100, Arnout Vandecappelle wrote:

> > Committed, thanks. Don't forget to send upstream.
> 
>   Thomas, did you ever send the original patch upstream?

No, I did not. Since the patch carries an entire copy of the kernel
header, I am fairly sure that upstream will not be very interested.

Best regards,

Thomas
Arnout Vandecappelle Feb. 25, 2013, 8:41 p.m.
On 25/02/13 11:40, Thomas Petazzoni wrote:
> Dear Arnout Vandecappelle,
>
> On Mon, 18 Feb 2013 08:27:14 +0100, Arnout Vandecappelle wrote:
>
>>> Committed, thanks. Don't forget to send upstream.
>>
>>    Thomas, did you ever send the original patch upstream?
>
> No, I did not. Since the patch carries an entire copy of the kernel
> header, I am fairly sure that upstream will not be very interested.

  In that case I won't upstream my patch either :-)

  Regards,
  Arnout

Patch hide | download patch | download mbox

diff --git a/package/neard/neard-fix-missing-linux-nfc-header.patch b/package/neard/neard-fix-missing-linux-nfc-header.patch
index b04c5da..377269e 100644
--- a/package/neard/neard-fix-missing-linux-nfc-header.patch
+++ b/package/neard/neard-fix-missing-linux-nfc-header.patch
@@ -8,17 +8,26 @@  As a workaround until all reasonable toolchains get this header
 included, add a configure check in neard to test whether this header
 is available or not, and if not, use our own private copy of it.
 
+Since symbols from the v3.7 kernel header are used, but linux/nfc.h
+already exists since the v3.1 kernel, check for one of the most
+recently added symbols: NFC_LLCP_RAW_HEADER_SIZE.
+
 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
 
 Index: b/configure.ac
 ===================================================================
 --- a/configure.ac
 +++ b/configure.ac
-@@ -88,6 +88,8 @@
+@@ -88,6 +88,12 @@
  AC_SUBST(NETLINK_CFLAGS)
  AC_SUBST(NETLINK_LIBS)
  
-+AC_CHECK_HEADER(linux/nfc.h, [AC_DEFINE(HAVE_LINUX_NFC_H, 1, [Defines if linux/nfc.h header is available])], [], [#include <sys/socket.h>])
++AC_TRY_COMPILE([
++#include <sys/socket.h>
++#include <linux/nfc.h>
++	], [int err[NFC_LLCP_RAW_HEADER_SIZE-2];],
++	[AC_DEFINE(HAVE_LINUX_NFC_H, 1, [Defines if linux/nfc.h header is available])], [])
 +
  AC_ARG_ENABLE(test, AC_HELP_STRING([--enable-test],
  					[enable test/example scripts]),