diff --git a/srcpkgs/soundmodem/patches/0001-Search-replace-of-extern-inline-static-inline.patch b/srcpkgs/soundmodem/patches/0001-Search-replace-of-extern-inline-static-inline.patch new file mode 100644 index 00000000000..53668db3a1d --- /dev/null +++ b/srcpkgs/soundmodem/patches/0001-Search-replace-of-extern-inline-static-inline.patch @@ -0,0 +1,454 @@ +From 0f3a32b23c90a36f67683e7215d5b7e503eed2c5 Mon Sep 17 00:00:00 2001 +From: Christian Vogel +Date: Sun, 24 May 2015 12:07:13 +0200 +Subject: [PATCH] Search/replace of extern inline -> static inline. + +Inline functions in header files are declared as 'extern inline' +which makes the compiler also emit a externally visible version +of the function. This gives us "multiple definition of..." errors +during compile. +--- + newqpsk/complex.h | 14 +++++++------- + newqpsk/fec.h | 4 ++-- + newqpsk/filter-i386.h | 2 +- + newqpsk/filter.h | 2 +- + newqpsk/genfilt.c | 2 +- + newqpsk/misc.h | 18 +++++++++--------- + p3dmodem/genp3dtbl.c | 2 +- + pammodem/genpamtbl.c | 2 +- + pammodem/meas.c | 2 +- + pammodem/pammodem.c | 4 ++-- + pskmodem/genpsktbl.c | 2 +- + pskmodem/measpsk.c | 2 +- + pskmodem/pskmlse.c | 4 ++-- + pskmodem/pskmodem.c | 2 +- + soundcard/modem.h | 2 +- + soundcard/simd.h | 18 +++++++++--------- + 16 files changed, 41 insertions(+), 41 deletions(-) + +diff --git a/newqpsk/complex.h b/newqpsk/complex.h +index 2353865..586572c 100644 +--- newqpsk/complex.h ++++ newqpsk/complex.h +@@ -13,7 +13,7 @@ typedef struct { + /* + * Complex multiplication. + */ +-extern __inline__ complex cmul(complex x, complex y) ++static inline complex cmul(complex x, complex y) + { + complex z; + +@@ -27,7 +27,7 @@ extern __inline__ complex cmul(complex x, complex y) + * Complex ... yeah, what??? Returns a complex number that has the + * properties: |z| = |x| * |y| and arg(z) = arg(y) - arg(x) + */ +-extern __inline__ complex ccor(complex x, complex y) ++static inline complex ccor(complex x, complex y) + { + complex z; + +@@ -40,7 +40,7 @@ extern __inline__ complex ccor(complex x, complex y) + /* + * Real part of the complex ??? + */ +-extern __inline__ float ccorI(complex x, complex y) ++static inline float ccorI(complex x, complex y) + { + return x.re * y.re + x.im * y.im; + } +@@ -48,7 +48,7 @@ extern __inline__ float ccorI(complex x, complex y) + /* + * Imaginary part of the complex ??? + */ +-extern __inline__ float ccorQ(complex x, complex y) ++static inline float ccorQ(complex x, complex y) + { + return x.re * y.im - x.im * y.re; + } +@@ -56,7 +56,7 @@ extern __inline__ float ccorQ(complex x, complex y) + /* + * Modulo (absolute value) of a complex number. + */ +-extern __inline__ float cmod(complex x) ++static inline float cmod(complex x) + { + return sqrt(x.re * x.re + x.im * x.im); + } +@@ -64,7 +64,7 @@ extern __inline__ float cmod(complex x) + /* + * Square of the absolute value (power). + */ +-extern __inline__ float cpwr(complex x) ++static inline float cpwr(complex x) + { + return (x.re * x.re + x.im * x.im); + } +@@ -72,7 +72,7 @@ extern __inline__ float cpwr(complex x) + /* + * Argument of a complex number. + */ +-extern __inline__ float carg(complex x) ++static inline float carg(complex x) + { + return atan2(x.im, x.re); + } +diff --git a/newqpsk/fec.h b/newqpsk/fec.h +index 109ad51..409daf1 100644 +--- newqpsk/fec.h ++++ newqpsk/fec.h +@@ -13,7 +13,7 @@ struct fecstate { + + /* --------------------------------------------------------------------- */ + +-extern inline void init_fec(struct fecstate *f) ++static inline void init_fec(struct fecstate *f) + { + switch (f->feclevel) { + case 0: +@@ -33,7 +33,7 @@ extern inline void init_fec(struct fecstate *f) + + /* --------------------------------------------------------------------- */ + +-extern inline void init_inlv(struct fecstate *f) ++static inline void init_inlv(struct fecstate *f) + { + int i; + +diff --git a/newqpsk/filter-i386.h b/newqpsk/filter-i386.h +index 01b3f5d..d881b2c 100644 +--- newqpsk/filter-i386.h ++++ newqpsk/filter-i386.h +@@ -1,7 +1,7 @@ + #ifndef _FILTER_I386_H + #define _FILTER_I386_H + #define __HAVE_ARCH_MAC +-extern inline float mac(const float *a, const float *b, unsigned int size) ++static inline float mac(const float *a, const float *b, unsigned int size) + { + float f; + asm volatile ( +diff --git a/newqpsk/filter.h b/newqpsk/filter.h +index ae789fc..754811e 100644 +--- newqpsk/filter.h ++++ newqpsk/filter.h +@@ -12,7 +12,7 @@ + /* ---------------------------------------------------------------------- */ + + #ifndef __HAVE_ARCH_MAC +-extern inline float mac(const float *a, const float *b, unsigned int size) ++static inline float mac(const float *a, const float *b, unsigned int size) + { + float sum = 0; + unsigned int i; +diff --git a/newqpsk/genfilt.c b/newqpsk/genfilt.c +index a2eb077..5aec7bf 100644 +--- newqpsk/genfilt.c ++++ newqpsk/genfilt.c +@@ -18,7 +18,7 @@ int main(int argc, char **argv) + puts("#define _FILTER_I386_H"); + puts("#define __HAVE_ARCH_MAC"); + +- puts("extern inline float mac(const float *a, const float *b, unsigned int size)"); ++ puts("static inline float mac(const float *a, const float *b, unsigned int size)"); + puts("{"); + puts("\tfloat f;"); + puts("\tasm volatile ("); +diff --git a/newqpsk/misc.h b/newqpsk/misc.h +index aa3dfc5..e80301d 100644 +--- newqpsk/misc.h ++++ newqpsk/misc.h +@@ -10,7 +10,7 @@ + /* + * Hamming weight (number of bits that are ones). + */ +-extern inline unsigned int hweight32(unsigned int w) ++static inline unsigned int hweight32(unsigned int w) + { + w = (w & 0x55555555) + ((w >> 1) & 0x55555555); + w = (w & 0x33333333) + ((w >> 2) & 0x33333333); +@@ -20,7 +20,7 @@ extern inline unsigned int hweight32(unsigned int w) + return w; + } + +-extern inline unsigned int hweight16(unsigned short w) ++static inline unsigned int hweight16(unsigned short w) + { + w = (w & 0x5555) + ((w >> 1) & 0x5555); + w = (w & 0x3333) + ((w >> 2) & 0x3333); +@@ -29,7 +29,7 @@ extern inline unsigned int hweight16(unsigned short w) + return w; + } + +-extern inline unsigned int hweight8(unsigned char w) ++static inline unsigned int hweight8(unsigned char w) + { + w = (w & 0x55) + ((w >> 1) & 0x55); + w = (w & 0x33) + ((w >> 2) & 0x33); +@@ -42,7 +42,7 @@ extern inline unsigned int hweight8(unsigned char w) + /* + * Reverse order of bits. + */ +-extern inline unsigned int rbits32(unsigned int w) ++static inline unsigned int rbits32(unsigned int w) + { + w = ((w >> 1) & 0x55555555) | ((w << 1) & 0xaaaaaaaa); + w = ((w >> 2) & 0x33333333) | ((w << 2) & 0xcccccccc); +@@ -52,7 +52,7 @@ extern inline unsigned int rbits32(unsigned int w) + return w; + } + +-extern inline unsigned short rbits16(unsigned short w) ++static inline unsigned short rbits16(unsigned short w) + { + w = ((w >> 1) & 0x5555) | ((w << 1) & 0xaaaa); + w = ((w >> 2) & 0x3333) | ((w << 2) & 0xcccc); +@@ -61,7 +61,7 @@ extern inline unsigned short rbits16(unsigned short w) + return w; + } + +-extern inline unsigned char rbits8(unsigned char w) ++static inline unsigned char rbits8(unsigned char w) + { + w = ((w >> 1) & 0x55) | ((w << 1) & 0xaa); + w = ((w >> 2) & 0x33) | ((w << 2) & 0xcc); +@@ -71,7 +71,7 @@ extern inline unsigned char rbits8(unsigned char w) + + /* ---------------------------------------------------------------------- */ + +-extern inline float avg(float average, float input, int scale) ++static inline float avg(float average, float input, int scale) + { + int i; + +@@ -82,12 +82,12 @@ extern inline float avg(float average, float input, int scale) + return (average + input); + } + +-extern inline float avg2(float average, float input, float weight) ++static inline float avg2(float average, float input, float weight) + { + return input * weight + average * (1.0 - weight); + } + +-extern inline float phaseavg(float *data, int len) ++static inline float phaseavg(float *data, int len) + { + float sum = 0.0; + float min = M_PI; +diff --git a/p3dmodem/genp3dtbl.c b/p3dmodem/genp3dtbl.c +index 4d8fbd5..2360995 100644 +--- p3dmodem/genp3dtbl.c ++++ p3dmodem/genp3dtbl.c +@@ -41,7 +41,7 @@ + + /* ---------------------------------------------------------------------- */ + +-extern inline unsigned int hweight32(unsigned int w) ++static inline unsigned int hweight32(unsigned int w) + { + unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555); + res = (res & 0x33333333) + ((res >> 2) & 0x33333333); +diff --git a/pammodem/genpamtbl.c b/pammodem/genpamtbl.c +index a466f4d..2b00253 100644 +--- pammodem/genpamtbl.c ++++ pammodem/genpamtbl.c +@@ -104,7 +104,7 @@ + + /* ---------------------------------------------------------------------- */ + +-extern __inline__ unsigned int hweight32(unsigned int w) ++static inline unsigned int hweight32(unsigned int w) + { + unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555); + res = (res & 0x33333333) + ((res >> 2) & 0x33333333); +diff --git a/pammodem/meas.c b/pammodem/meas.c +index 5c2b61a..609e681 100644 +--- pammodem/meas.c ++++ pammodem/meas.c +@@ -240,7 +240,7 @@ int sound_init(int sample_rate, int *sr) + + /* ---------------------------------------------------------------------- */ + +-extern __inline__ unsigned int hweight32(unsigned int w) ++static inline unsigned int hweight32(unsigned int w) + { + unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555); + res = (res & 0x33333333) + ((res >> 2) & 0x33333333); +diff --git a/pammodem/pammodem.c b/pammodem/pammodem.c +index 92077a3..c4afc40 100644 +--- pammodem/pammodem.c ++++ pammodem/pammodem.c +@@ -160,7 +160,7 @@ struct rxstate { + unsigned int rxptr; + }; + +-extern inline int rxgsfir(const int16_t *buf, const int *coeff) ++static inline int rxgsfir(const int16_t *buf, const int *coeff) + { + unsigned int i; + int s; +@@ -207,7 +207,7 @@ static void rxrewindsamples(struct rxstate *rx, unsigned int nr, unsigned int ts + rx->rxphase -= ph; + } + +-extern inline int calcsync(int *toten, int *corren, int16_t *samples) ++static inline int calcsync(int *toten, int *corren, int16_t *samples) + { + const int *tr = trainsyms; + unsigned int i; +diff --git a/pskmodem/genpsktbl.c b/pskmodem/genpsktbl.c +index 9612bc9..e8dd07d 100644 +--- pskmodem/genpsktbl.c ++++ pskmodem/genpsktbl.c +@@ -106,7 +106,7 @@ + + /* ---------------------------------------------------------------------- */ + +-extern __inline__ unsigned int hweight32(unsigned int w) ++static inline unsigned int hweight32(unsigned int w) + { + unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555); + res = (res & 0x33333333) + ((res >> 2) & 0x33333333); +diff --git a/pskmodem/measpsk.c b/pskmodem/measpsk.c +index 88e0e36..d0a23de 100644 +--- pskmodem/measpsk.c ++++ pskmodem/measpsk.c +@@ -271,7 +271,7 @@ int sound_init(int sample_rate, int *sr) + + /* ---------------------------------------------------------------------- */ + +-extern __inline__ unsigned int hweight32(unsigned int w) ++static inline unsigned int hweight32(unsigned int w) + { + unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555); + res = (res & 0x33333333) + ((res >> 2) & 0x33333333); +diff --git a/pskmodem/pskmlse.c b/pskmodem/pskmlse.c +index 6fd1561..1649467 100644 +--- pskmodem/pskmlse.c ++++ pskmodem/pskmlse.c +@@ -493,7 +493,7 @@ static void simdtrellis(unsigned int *nodemetric1, unsigned int *nodemetric2, un + + #else + +-extern inline void simdtrellis(unsigned int *nodemetric1, unsigned int *nodemetric2, unsigned int *metrictab, unsigned short *backptr, int vr, int vi) ++static inline void simdtrellis(unsigned int *nodemetric1, unsigned int *nodemetric2, unsigned int *metrictab, unsigned short *backptr, int vr, int vi) + { + } + +@@ -582,7 +582,7 @@ static void simdinitmetric(const cplxshort_t *channel, metrictab_t *metrictab) + + #else + +-extern inline void simdinitmetric(const cplxshort_t *channel, metrictab_t *metrictab) ++static inline void simdinitmetric(const cplxshort_t *channel, metrictab_t *metrictab) + { + } + +diff --git a/pskmodem/pskmodem.c b/pskmodem/pskmodem.c +index ffb1668..4161bc2 100644 +--- pskmodem/pskmodem.c ++++ pskmodem/pskmodem.c +@@ -262,7 +262,7 @@ static void rxrotate(cplxshort_t *ptr, unsigned int nr, unsigned int carphase, u + } + } + +-extern inline int calcsync(int *toten, int *corren, cplxshort_t *samples) ++static inline int calcsync(int *toten, int *corren, cplxshort_t *samples) + { + const cplxshort_t *tr = traincorrrotated; + unsigned int i; +diff --git a/soundcard/modem.h b/soundcard/modem.h +index b8c3a5f..375d07d 100644 +--- soundcard/modem.h ++++ soundcard/modem.h +@@ -103,7 +103,7 @@ extern void logvprintf(unsigned int level, const char *fmt, va_list args); + extern void logprintf(unsigned int level, const char *fmt, ...); + extern void logerr(unsigned int level, const char *st); + extern unsigned int log_verblevel; +-extern inline int logcheck(unsigned int vl) ++static inline int logcheck(unsigned int vl) + { + return vl <= log_verblevel; + } +diff --git a/soundcard/simd.h b/soundcard/simd.h +index 6b6ab3b..e49bdd7 100644 +--- soundcard/simd.h ++++ soundcard/simd.h +@@ -54,16 +54,16 @@ + + #if !defined(USEMMX) && !defined(USEVIS) + +-extern inline void initsimd(int enable) ++static inline void initsimd(int enable) + { + } + +-extern inline int checksimd(void) ++static inline int checksimd(void) + { + return 0; + } + +-extern inline int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr) ++static inline int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr) + { + int s = 0; + +@@ -72,7 +72,7 @@ extern inline int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int n + return s; + } + +-extern inline void simdpreparefpu(void) ++static inline void simdpreparefpu(void) + { + } + +@@ -82,7 +82,7 @@ extern unsigned int simd_enabled; + + extern void initsimd(int enable); + +-extern inline int checksimd(void) ++static inline int checksimd(void) + { + return simd_enabled; + } +@@ -91,7 +91,7 @@ extern inline int checksimd(void) + + #define MMXCLOBBER "st", "st(1)", "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)" + +-extern inline int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr) ++static inline int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr) + { + unsigned int i, j; + int s = 0; +@@ -114,7 +114,7 @@ extern inline int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int n + return s; + } + +-extern inline void simdpreparefpu(void) ++static inline void simdpreparefpu(void) + { + if (checksimd()) + asm volatile("emms"); +@@ -122,7 +122,7 @@ extern inline void simdpreparefpu(void) + + #elif defined(USEVIS) + +-/*extern inline*/static int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr) ++/*static inline*/static int simdfir16(const int16_t *p1, const int16_t *p2, unsigned int nr) + { + double dsum1, dsum2, dsum3, dsum4, arg1, arg2, arg3, arg4; + float sum, sum1, sum2; +@@ -157,7 +157,7 @@ extern inline void simdpreparefpu(void) + return s; + } + +-extern inline void simdpreparefpu(void) ++static inline void simdpreparefpu(void) + { + } + +-- +2.4.1 + diff --git a/srcpkgs/soundmodem/patches/fix-missing-return-type.patch b/srcpkgs/soundmodem/patches/fix-missing-return-type.patch new file mode 100644 index 00000000000..a98ff0e8c3b --- /dev/null +++ b/srcpkgs/soundmodem/patches/fix-missing-return-type.patch @@ -0,0 +1,11 @@ +--- matlib/mat.hh.orig 2018-01-17 09:37:50.871239713 +0100 ++++ matlib/mat.hh 2018-01-17 09:37:59.927203590 +0100 +@@ -91,7 +91,7 @@ template void mmul(T *c, con + memcpy(c, r, d1 * d3 * sizeof(c[0])); + } + +-template void mdet(const T *c, unsigned int d) ++template T mdet(const T *c, unsigned int d) + { + T *c2; + unsigned int i, j, k, l; diff --git a/srcpkgs/soundmodem/template b/srcpkgs/soundmodem/template index 96894aa6f9b..dc802c77fd3 100644 --- a/srcpkgs/soundmodem/template +++ b/srcpkgs/soundmodem/template @@ -1,7 +1,7 @@ # Template file for 'soundmodem' pkgname=soundmodem version=0.18 -revision=1 +revision=2 build_style=gnu-configure hostmakedepends="automake libtool pkg-config gettext-devel alsa-lib-devel" makedepends="alsa-lib-devel audiofile-devel gtk+-devel libxml2-devel"