Bug#878318: nyquist FTBFS with gcc 7: undefined references

2017-12-10 Thread Juhani Numminen

Control: tags -1 patch

Juhani Numminen kirjoitti 04.12.2017 klo 00:39:


A FreeBSD bug from 2012 looks similar, there the fix was
s|inline void|static inline void|.[1]
That change entered upstream repository earlier in 2012.[2]
Debian's version doesn't have it.[3]


A patch is attached. Build was successful using cowbuilder, sid i386.

Juhani
Description: Fix FTBFS with gcc 7: undefined references
Origin: https://sourceforge.net/p/nyquist/code/73/tree/trunk/nyquist/ffts/src/fftlib.c?diff=50d0ad1227184648a86e886f:72
Author: Roger B. Dannenberg 
Bug-Debian: https://bugs.debian.org/878318
Bug-FreeBSD: https://bugs.freebsd.org/174376
Last-Update: 2017-12-10

--- a/ffts/src/fftlib.c
+++ b/ffts/src/fftlib.c
@@ -1,6 +1,8 @@
 /***
 lower level fft stuff including routines called in fftext.c and fft2d.c
 ***/
+/* inline declarations modified by RBD for C99 compiler */
+
 #include "fftlib.h"
 #include 
 #define	MCACHE	(11-(sizeof(float)/8))	// fft's with M bigger than this bust primary cache
@@ -61,8 +63,8 @@
 parts of ffts1
 */
 
-inline void bitrevR2(float *ioptr, long M, short *BRLow);
-inline void bitrevR2(float *ioptr, long M, short *BRLow){
+//inline void bitrevR2(float *ioptr, long M, short *BRLow);
+static inline void bitrevR2(float *ioptr, long M, short *BRLow){
 /*** bit reverse and first radix 2 stage of forward or inverse fft ***/
 float	f0r;
 float	f0i;
@@ -198,8 +200,8 @@
 };
 }
 
-inline void fft2pt(float *ioptr);
-inline void fft2pt(float *ioptr){
+//inline void fft2pt(float *ioptr);
+static inline void fft2pt(float *ioptr){
 /***   RADIX 2 fft	***/
 float f0r, f0i, f1r, f1i;
 float t0r, t0i;
@@ -229,8 +231,8 @@
 }
 
 
-inline void fft4pt(float *ioptr);
-inline void fft4pt(float *ioptr){
+//inline void fft4pt(float *ioptr);
+static inline void fft4pt(float *ioptr){
 /***   RADIX 4 fft	***/
 float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
 float t0r, t0i, t1r, t1i;
@@ -284,8 +286,8 @@
 ioptr[7] = f3i;
 }
 
-inline void fft8pt(float *ioptr);
-inline void fft8pt(float *ioptr){
+//inline void fft8pt(float *ioptr);
+static inline void fft8pt(float *ioptr){
 /***   RADIX 8 fft	***/
 float w0r = 1.0/MYROOT2; /* cos(pi/4)	*/
 float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
@@ -403,8 +405,8 @@
 ioptr[15] = f6i;
 }
 
-inline void bfR2(float *ioptr, long M, long NDiffU);
-inline void bfR2(float *ioptr, long M, long NDiffU){
+//inline void bfR2(float *ioptr, long M, long NDiffU);
+static inline void bfR2(float *ioptr, long M, long NDiffU){
 /*** 2nd radix 2 stage ***/
 unsigned long	pos;
 unsigned long	posi;
@@ -512,8 +514,8 @@
 }
 }
 
-inline void bfR4(float *ioptr, long M, long NDiffU);
-inline void bfR4(float *ioptr, long M, long NDiffU){
+//inline void bfR4(float *ioptr, long M, long NDiffU);
+static inline void bfR4(float *ioptr, long M, long NDiffU){
 /*** 1 radix 4 stage ***/
 unsigned long	pos;
 unsigned long	posi;
@@ -721,8 +723,8 @@
 
 }
 
-inline void bfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt);
-inline void bfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt){
+// inline void bfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt);
+static inline void bfstages(float *ioptr, long M, float *Utbl, long Ustride, long NDiffU, long StageCnt){
 /***   RADIX 8 Stages	***/
 unsigned long	pos;
 unsigned long	posi;
@@ -1125,8 +1127,8 @@
 parts of iffts1
 */
 
-inline void scbitrevR2(float *ioptr, long M, short *BRLow, float scale);
-inline void scbitrevR2(float *ioptr, long M, short *BRLow, float scale){
+// inline void scbitrevR2(float *ioptr, long M, short *BRLow, float scale);
+static inline void scbitrevR2(float *ioptr, long M, short *BRLow, float scale){
 /*** scaled bit reverse and first radix 2 stage forward or inverse fft ***/
 float	f0r;
 float	f0i;
@@ -1262,8 +1264,8 @@
 };
 }
 
-inline void ifft2pt(float *ioptr, float scale);
-inline void ifft2pt(float *ioptr, float scale){
+//inline void ifft2pt(float *ioptr, float scale);
+static inline void ifft2pt(float *ioptr, float scale){
 /***   RADIX 2 ifft	***/
 float f0r, f0i, f1r, f1i;
 float t0r, t0i;
@@ -1292,8 +1294,8 @@
 ioptr[3] = scale*f1i;
 }
 
-inline void ifft4pt(float *ioptr, float scale);
-inline void ifft4pt(float *ioptr, float scale){
+// inline void ifft4pt(float *ioptr, float scale);
+static inline void ifft4pt(float *ioptr, float scale){
 /***   RADIX 4 ifft	***/
 float f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
 float t0r, t0i, t1r, t1i;
@@ -1347,8 +1349,8 @@
 ioptr[7] = scale*f3i;
 }
 
-inline void ifft8pt(float *ioptr, float scale);
-inline void ifft8pt(float *ioptr, float scale){
+//inline void ifft8pt(float *ioptr, float scale);
+static inline void ifft8pt(float *ioptr, float scale){
 

Bug#878318: nyquist FTBFS with gcc 7: undefined references

2017-12-03 Thread Juhani Numminen

On Thu, 12 Oct 2017 22:32:20 +0300 Adrian Bunk  wrote:


ffts/src/fftlib.o: In function `fftrecurs':
fftlib.c:(.text+0xcf8): undefined reference to `bfstages'
ffts/src/fftlib.o: In function `ffts1':
fftlib.c:(.text+0x1441): undefined reference to `bfstages'
ffts/src/fftlib.o: In function `ifftrecurs':
fftlib.c:(.text+0x250a): undefined reference to `ibfstages'
ffts/src/fftlib.o: In function `iffts1':
fftlib.c:(.text+0x2d30): undefined reference to `ibfstages'
ffts/src/fftlib.o: In function `.L186':
fftlib.c:(.text+0x3cd2): undefined reference to `bfstages'
ffts/src/fftlib.o: In function `riffts1':
fftlib.c:(.text+0x4c5c): undefined reference to `ibfstages'


A FreeBSD bug from 2012 looks similar, there the fix was
s|inline void|static inline void|.[1]
That change entered upstream repository earlier in 2012.[2]
Debian's version doesn't have it.[3]

Regards,
Juhani

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=174376
https://sourceforge.net/p/nyquist/code/73/
https://sources.debian.org/src/nyquist/3.05-2.1/ffts/src/fftlib.c/#L64



Bug#878318: nyquist FTBFS with gcc 7: undefined references

2017-10-12 Thread Adrian Bunk
Source: nyquist
Version: 3.05-2.1
Severity: serious
Tags: buster sid

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/i386/nyquist.html

...
g++  xlisp/extern.o xlisp/xldmem.o xlisp/xlbfun.o xlisp/xlcont.o xlisp/xldbug.o 
xlisp/xleval.o xlisp/xlfio.o xlisp/xlftab.o xlisp/xlglob.o xlisp/xlimage.o 
xlisp/xlinit.o xlisp/xlio.o xlisp/xlisp.o xlisp/xljump.o xlisp/xllist.o 
xlisp/xlmath.o xlisp/xlobj.o xlisp/xlpp.o xlisp/xlprin.o xlisp/xlread.o 
xlisp/xlstr.o xlisp/xlsubr.o xlisp/xlsym.o xlisp/xlsys.o xlisp/path.o 
tran/abs.o tran/allpoles.o tran/alpass.o tran/alpasscv.o tran/alpassvv.o 
tran/amosc.o tran/areson.o tran/aresonvc.o tran/aresoncv.o tran/aresonvv.o 
tran/atone.o tran/atonev.o tran/biquadfilt.o tran/buzz.o tran/chase.o 
tran/clip.o tran/congen.o tran/const.o tran/coterm.o tran/delaycc.o 
tran/delaycv.o tran/eqbandvvv.o tran/exp.o tran/follow.o tran/fmosc.o 
tran/fromobject.o tran/fromarraystream.o tran/gate.o tran/ifft.o 
tran/instrclar.o tran/instrclarall.o tran/instrclarfreq.o tran/instrsax.o 
tran/instrsaxall.o tran/instrsaxfreq.o tran/integrate.o tran/log.o 
tran/lpreson.o tran/maxv.o tran/offset.o tran/oneshot.o tran/osc.o 
 tran/partial.o tran/pluck.o tran/prod.o tran/pwl.o tran/quantize.o 
tran/recip.o tran/reson.o tran/resonvc.o tran/resoncv.o tran/resonvv.o 
tran/sampler.o tran/scale.o tran/shape.o tran/sine.o tran/siosc.o tran/slope.o 
tran/sqrt.o tran/tapf.o tran/tapv.o tran/tone.o tran/tonev.o tran/upsample.o 
tran/white.o tran/stkrev.o tran/stkpitshift.o tran/stkchorus.o tran/instrbow.o 
tran/instrbowedfreq.o tran/instrbanded.o tran/instrmandolin.o tran/instrsitar.o 
tran/instrmodalbar.o tran/instrflute.o tran/instrflutefreq.o 
tran/instrfluteall.o tran/fmfb.o tran/fmfbv.o cmt/cext.o cmt/cleanup.o 
cmt/cmdline.o cmt/cmtcmd.o cmt/moxc.o cmt/mem.o cmt/midifile.o cmt/midifns.o 
cmt/record.o cmt/seq.o cmt/seqmread.o cmt/seqmwrite.o cmt/seqread.o 
cmt/seqwrite.o cmt/tempomap.o cmt/timebase.o cmt/userio.o nyqsrc/debug.o 
nyqsrc/falloc.o nyqsrc/local.o nyqsrc/handlers.o nyqsrc/multiread.o 
nyqsrc/seqext.o nyqsrc/seqinterf.o nyqsrc/stats.o nyqsrc/ffilterkit.o 
nyqsrc/sliders.o nyqsrc/sound.o nyqsrc/add.o nyqsrc/avg.
 o nyqsrc/compose.o nyqsrc/convolve.o nyqsrc/downsample.o nyqsrc/fft.o 
nyqsrc/inverse.o nyqsrc/multiseq.o nyqsrc/resamp.o nyqsrc/resampv.o 
nyqsrc/samples.o nyqsrc/sndmax.o nyqsrc/sndread.o nyqsrc/sndseq.o 
nyqsrc/sndwritepa.o nyqsrc/yin.o nyqsrc/nyq-osc-server.o nyqsrc/trigger.o 
nyqsrc/lpanal.o nyqsrc/phasevocoder.o nyqsrc/pvshell.o nyqstk/src/Generator.o 
nyqstk/src/SineWave.o nyqstk/src/Function.o nyqstk/src/FileRead.o 
nyqstk/src/FileWvIn.o nyqstk/src/Effect.o nyqstk/src/Clarinet.o 
nyqstk/src/Delay.o nyqstk/src/DelayL.o nyqstk/src/Envelope.o 
nyqstk/src/Filter.o nyqstk/src/Instrmnt.o nyqstk/src/Noise.o 
nyqstk/src/OneZero.o nyqstk/src/ReedTable.o nyqstk/src/Saxofony.o 
nyqstk/src/Stk.o nyqstk/src/WaveLoop.o nyqstk/src/WvIn.o nyqstk/src/NRev.o 
nyqstk/src/JCRev.o nyqstk/src/PRCRev.o nyqstk/src/PitShift.o 
nyqstk/src/Chorus.o nyqstk/src/Bowed.o nyqstk/src/BowTable.o nyqstk/src/ADSR.o 
nyqstk/src/OnePole.o nyqstk/src/BiQuad.o nyqstk/src/BandedWG.o 
nyqstk/src/DelayA.o nyqstk/src/Mandolin.o nyq
 stk/src/PluckTwo.o nyqstk/src/Sitar.o nyqstk/src/ModalBar.o nyqstk/src/Modal.o 
nyqstk/src/Flute.o nyqstk/src/JetTable.o nyqstk/src/PoleZero.o nyqstk/stkinit.o 
nyqstk/instr.o nyqstk/stkint.o ffts/src/fftext.o ffts/src/fftlib.o 
ffts/src/matlib.o nyqsrc/sndfnint.o nyqsrc/seqfnint.o sys/unix/osstuff.o 
sys/unix/term.o  -lsndfile -llo -lportaudio -lm -lpthread -lrt -o ny
ffts/src/fftlib.o: In function `fftrecurs':
fftlib.c:(.text+0xcf8): undefined reference to `bfstages'
ffts/src/fftlib.o: In function `ffts1':
fftlib.c:(.text+0x1441): undefined reference to `bfstages'
ffts/src/fftlib.o: In function `ifftrecurs':
fftlib.c:(.text+0x250a): undefined reference to `ibfstages'
ffts/src/fftlib.o: In function `iffts1':
fftlib.c:(.text+0x2d30): undefined reference to `ibfstages'
ffts/src/fftlib.o: In function `.L186':
fftlib.c:(.text+0x3cd2): undefined reference to `bfstages'
ffts/src/fftlib.o: In function `riffts1':
fftlib.c:(.text+0x4c5c): undefined reference to `ibfstages'
collect2: error: ld returned 1 exit status
Makefile:279: recipe for target 'ny' failed
make[1]: *** [ny] Error 1