[PD] Espeak external compilation/loading errors on Linux

Peter P. peterparker at fastmail.com
Sat Mar 13 20:47:59 CET 2021


* Christof Ressi <info at christofressi.com> [2021-03-13 15:54]:
> Hi,
> 
> "cast-function-type" has been introduced in GCC 8 and it affects lots of
> existing Pd code. Usually, it is just a warning and can be ignored, but the
> makefile for espeak sets "-Werror", which means that every warning is
> treated as an error. The quickest fix is to either remove "-Werror" or add
> "-Wno-cast-function-type".
Which is what I did, described below in my last email, no?

Thanks , P
 
> Christof
> 
> On 13.03.2021 10:06, Peter P. wrote:
> > Hi list,
> > 
> > trying to compile and load the espeak external from
> > https://github.com/kronihias/espeak
> > on Debian/GNU Linux. Have the apt packages
> > 	espeak libespeak-dev
> > installed and the makefile modifiet to point to
> > 	PDROOT=/usr/include/pd
> > 
> > Running 'make' yields an error:
> > cc -export-dynamic -shared  -lc -lm -lespeak -DPD -O2 -funroll-loops
> > -fomit-frame-pointer -fPIC -Wall -W -Wshadow -Wstrict-prototypes -Werror
> > -Wno-unused -Wno-parentheses -Wno-switch -I/usr/include/pd/src -o
> > espeak.pd_linux espeak.c
> > espeak.c: In function ‘espeak_setup’:
> > espeak.c:406:6: error: cast between incompatible function types from
> > ‘void * (*)(t_symbol *)’ {aka ‘void * (*)(struct _symbol *)’} to ‘void *
> > (*)(void)’ [-Werror=cast-function-type]
> >    406 |      (t_newmethod)espeak_new,  // newmethod
> >        |      ^
> > cc1: all warnings being treated as errors
> > make[1]: *** [Makefile:79: espeak.pd_linux] Error 1
> > make[1]: Leaving directory '/tmp/espeak-master'
> > make: *** [Makefile:46: auto] Error 2
> > 
> > which I can circumnavigate disabling the -Werror flag in the makefile.
> > Compilation somewhat succeeds then, posting:
> > espeak.c: In function ‘espeak_setup’:
> > espeak.c:406:6: warning: cast between incompatible function types from
> > ‘void * (*)(t_symbol *)’ {aka ‘void * (*)(struct _symbol *)’} to ‘void *
> > (*)(void)’ [-Wcast-function-type]
> >    406 |      (t_newmethod)espeak_new,  // newmethod
> >        |      ^
> > 
> > Loading the external in Pd then throws:
> > ./espeak.pd_linux: ./espeak.pd_linux: undefined symbol: espeak_SetParameter
> > espeak: can't load library
> > 
> > Can anyone point me into a good direction what to try next here?
> > Anyone having had success on OS X with this external so far?
> > 
> > appreciated,
> > as always,
> > yours,
> > P
> > 
> > 
> > 
> > _______________________________________________
> > Pd-list at lists.iem.at mailing list
> > UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list

> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list






More information about the Pd-list mailing list