0

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

1 Answer 1

1

I contacted the developer and he helped me compiling it.

I had to replace the liblo.a with liblo.so (.so is a shared lib and .a is not) in the makefile and compile with -fPIC flags for gcc.

Now the plug-ins compile. Couldn't test them functionally, yet, but they open fine in Ardour.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .