This is a question for the code savy, which I'm not... I'm trying to build a set of oldish ladspa plug-ins called ladosc (you can find them on google-code) but there are errors I can't find a workaround for.
The Makefile:
DESTINATION_DIR=~/.ladspa
LIBLO_STATIC=/usr/lib/liblo.a
install: install_op install_osc
install_op: op.so
mkdir -p ${DESTINATION_DIR}
cp op.so ${DESTINATION_DIR}/.ladspa
op.so: operator.o
ld operator.o -o op.so -shared
operator.o: operator.c
gcc -c operator.c
install_osc: osc.so
mkdir -p ${DESTINATION_DIR}
cp osc.so ${DESTINATION_DIR}/.ladspa
osc.so: osc.o ${LIBLO_STATIC}
ld osc.o ${LIBLO_STATIC} -o osc.so -shared
osc.o: lad-osc.c
gcc -c -g lad-osc.c -o osc.o
clean:
rm *.o *~ *.so
There is no configure script and when I make, the linker throws the following error:
ld: operator.o: relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
operator.o: could not read symbols: Bad value
When I add -fPIC flags to the gcc calls in the makefile the build runs differently and the linker gives the following error:
ld osc.o /usr/lib/liblo.a -o osc.so -shared
ld: /usr/lib/liblo.a(liblo_la-address.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/lib/liblo.a: could not read symbols: Bad value
I do not understand this. Does it mean I have to recompile liblo? It is taken directly from the Ubunut repos.
These issues have been raised already by someone else on the project pages on google code about 3 years ago but the developer didn't react.
I already searched for explanations and found lots of stuff about position independent code and differences between 32bit and 64bit but I don't understand enough to find a solution for my problem.
Can anybody help me to get these plug-ins up and running?
Cheers, Thomas