commit:     3d64639800770244b29767889e2e21a24c39dd91
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Sat Feb  4 01:48:47 2017 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Sat Feb  4 01:49:18 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d646398

net-wireless/rtl-sdr: fix builds w/newer compiler standards

 .../files/rtl-sdr-0.5.3-static-inline.patch        | 66 ++++++++++++++++++++++
 .../rtl-sdr/rtl-sdr-0.5.3_p20150730.ebuild         |  4 ++
 2 files changed, 70 insertions(+)

diff --git a/net-wireless/rtl-sdr/files/rtl-sdr-0.5.3-static-inline.patch 
b/net-wireless/rtl-sdr/files/rtl-sdr-0.5.3-static-inline.patch
new file mode 100644
index 00000000..0f0e829
--- /dev/null
+++ b/net-wireless/rtl-sdr/files/rtl-sdr-0.5.3-static-inline.patch
@@ -0,0 +1,66 @@
+https://github.com/steve-m/librtlsdr/pull/38
+
+From ea6a86d8e792430faa3a8161ee99f2bc392875d1 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vap...@chromium.org>
+Date: Fri, 3 Feb 2017 15:44:18 -1000
+Subject: [PATCH] fix builds with newer compilers & C standards
+
+The meaning of "inline" has changed when "static" is not used.
+Since none of these functions are used outside of their respective
+files, mark them as static to avoid build errors where funcs are
+not inlined (based on compiler flags too).
+---
+ src/rtl_adsb.c  | 8 ++++----
+ src/rtl_power.c | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/rtl_adsb.c b/src/rtl_adsb.c
+index e611e78f3dad..a3bfa7f36b5e 100644
+--- a/src/rtl_adsb.c
++++ b/src/rtl_adsb.c
+@@ -182,7 +182,7 @@ int magnitute(uint8_t *buf, int len)
+       return len/2;
+ }
+ 
+-inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, 
uint16_t d)
++static inline uint16_t single_manchester(uint16_t a, uint16_t b, uint16_t c, 
uint16_t d)
+ /* takes 4 consecutive real samples, return 0 or 1, BADSAMPLE on error */
+ {
+       int bit, bit_p;
+@@ -223,17 +223,17 @@ inline uint16_t single_manchester(uint16_t a, uint16_t 
b, uint16_t c, uint16_t d
+       return BADSAMPLE;
+ }
+ 
+-inline uint16_t min16(uint16_t a, uint16_t b)
++static inline uint16_t min16(uint16_t a, uint16_t b)
+ {
+       return a<b ? a : b;
+ }
+ 
+-inline uint16_t max16(uint16_t a, uint16_t b)
++static inline uint16_t max16(uint16_t a, uint16_t b)
+ {
+       return a>b ? a : b;
+ }
+ 
+-inline int preamble(uint16_t *buf, int i)
++static inline int preamble(uint16_t *buf, int i)
+ /* returns 0/1 for preamble at index i */
+ {
+       int i2;
+diff --git a/src/rtl_power.c b/src/rtl_power.c
+index aa7a138a8cd3..a7a43bbd2507 100644
+--- a/src/rtl_power.c
++++ b/src/rtl_power.c
+@@ -249,7 +249,7 @@ void sine_table(int size)
+       }
+ }
+ 
+-inline int16_t FIX_MPY(int16_t a, int16_t b)
++static inline int16_t FIX_MPY(int16_t a, int16_t b)
+ /* fixed point multiply and scale */
+ {
+       int c = ((int)a * (int)b) >> 14;
+-- 
+2.11.0
+

diff --git a/net-wireless/rtl-sdr/rtl-sdr-0.5.3_p20150730.ebuild 
b/net-wireless/rtl-sdr/rtl-sdr-0.5.3_p20150730.ebuild
index b33b615..8f1c5e6 100644
--- a/net-wireless/rtl-sdr/rtl-sdr-0.5.3_p20150730.ebuild
+++ b/net-wireless/rtl-sdr/rtl-sdr-0.5.3_p20150730.ebuild
@@ -26,6 +26,10 @@ IUSE=""
 DEPEND="virtual/libusb:1"
 RDEPEND="${DEPEND}"
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.5.3-static-inline.patch
+)
+
 src_unpack() {
        if [[ ${PV} == 9999* ]]; then
                git-r3_src_unpack

Reply via email to