Compiling with kakadu


  • Anonymous

    Hi All,

    I've got 2 questions about compiling iipsrv with kakadu.

    When compiling with kakadu version > 7.1 it fails with:

    libtool: link: g++ -g -O2 -o iipsrv.fcgi IIPImage.o TPTImage.o JPEGCompressor.o TileManager.o IIPResponse.o View.o Transforms.o Task.o OBJ.o FIF.o JTL.o TIL.o ICC.o CVT.o Zoomify.o DeepZoom.o SPECTRA.o PFL.o Watermark.o Main.o KakaduImage.o /usr/src/kakadu/v7_3-01305C//apps/make/jpx.o /usr/src/kakadu/v7_3-01305C//apps/make/jp2.o /usr/src/kakadu/v7_3-01305C//apps/make/kdu_stripe_decompressor.o /usr/src/kakadu/v7_3-01305C//apps/make/ /usr/lib/ -lz -lpthread /usr/lib/ /usr/lib/ /usr/lib/ -lm -pthread
    /usr/src/kakadu/v7_3-01305C//apps/make/kdu_stripe_decompressor.o: In function kdsd_tile::init(kdu_coords, kdu_codestream, kdsd_component_state*, bool, bool, kdu_thread_env*, kdu_thread_queue*, int)': kdu_stripe_decompressor.cpp:(.text+0x1c9b): undefined reference tossse3_int16_to_uint8_rs_ilv4(unsigned char, short, int, int, int, bool, bool)'
    kdu_stripe_decompressor.cpp:(.text+0x1cca): undefined reference to ssse3_int16_to_uint8_rs_ilv1(unsigned char*, short**, int, int, int, bool, bool)' kdu_stripe_decompressor.cpp:(.text+0x1d33): undefined reference tossse3_int16_to_uint8_rs_ilv3(unsigned char*, short
    , int, int, int, bool, bool)'
    kdu_stripe_decompressor.cpp:(.text+0x1d5a): undefined reference to ssse3_floats_to_floats_ilv1(float*, float**, int, int, int, bool, bool)' kdu_stripe_decompressor.cpp:(.text+0x1d73): undefined reference tossse3_floats_to_uint8_ilv1(unsigned char
    , float, int, int, int, bool, bool)'
    kdu_stripe_decompressor.cpp:(.text+0x1d8a): undefined reference to ssse3_floats_to_uint8_ilv3(unsigned char*, float**, int, int, int, bool, bool)' kdu_stripe_decompressor.cpp:(.text+0x1da1): undefined reference tossse3_floats_to_uint8_ilv4(unsigned char*, float
    , int, int, int, bool, bool)'
    kdu_stripe_decompressor.cpp:(.text+0x1f47): undefined reference to ssse3_int16_to_int16_ilv1(short*, short**, int, int, int, bool, bool)' kdu_stripe_decompressor.cpp:(.text+0x1f7a): undefined reference tossse3_floats_to_int16_ilv1(short, float, int, int, int, bool, bool)'
    kdu_stripe_decompressor.cpp:(.text+0x2103): undefined reference to ssse3_int32_to_int16_rs_ilv1(short*, int**, int, int, int, bool, bool)' collect2: ld returned 1 exit status make[1]: *** [iipsrv.fcgi] Error 1 make[1]: Leaving directory/usr/src/iipsrv/iipsrv/src'
    [all-recursive] Error 1

    Anyone has any ideas about this?

    The second thing is, when I compile with kakadu 7.1 it does work. But it then links the kakadu libraries like:
    root@myhost:/usr/src/iipsrv/iipsrv# ldd src/iipsrv.fcgi => (0x00006a9aa8adf000)
    /usr/src/kakadu/v7_1-01305C//apps/makev7_1-01305C// (0x00006a9aa8800000) => /lib/ (0x00006a9aa85e1000) => /lib/ (0x00006a9aa83ba000) => /usr/lib/ (0x00006a9aa81a6000) => /usr/lib/ (0x00006a9aa7f8f000) => /lib/ (0x00006a9aa7d72000) => /usr/lib/ (0x00006a9aa7b68000) => /usr/lib/ (0x00006a9aa7945000) => /usr/lib/ (0x00006a9aa76e1000) => /usr/lib/ (0x00006a9aa73cd000) => /lib/ (0x00006a9aa714b000) => /lib/ (0x00006a9aa6f34000) => /lib/ (0x00006a9aa6bd2000)
    /lib64/ (0x00006a9aa8ae1000)

    It then always searches for the in the /usr/src/kakadu/v7_1-01305C//apps/make location instead of the standard system librarie paths. How can I make sure that it searches the system library paths?



  • Ruven

    I've only got 7.1 to test with, so can't really help you for the first question. Though, it looks like a missing object file or library.

    For your second problem, you can get round this by simply performing the final link stage manually. So, rerun make and just copy and paste the final g++ command from the src/ directory and change the kakadu path to -lkdu and add use -L to specify a search path. Or instead use the static version of the library, which you will find in the Kakadu directory under lib/Linux-x86-64-gcc/libkdu.a (depending on your system).


    • Anonymous

      Hi Ruven,

      My name is Daniel Gronowski, Sales Manager here at kakadu Software. I would be happy to discuss use of the latest version, drop me an email at

      I know you contacted me last year to discuss this however i never received any response to my email.


  • Illtud Daniel
    Illtud Daniel

    When compiling with kakadu version > 7.1 it fails with:

    Yeah, me too. My coding foo isn't up to working out why.

  • Hi

    I had same problem. I fixed it with compiling Kakadu without SSSE3 support (-DKDU_NO_SSSE3)
    For more information about KDU_NO_SSSE3 see Kakadu documentation: Compiling_Instructions.txt

    • Georg

      I looked into Compiling_Instructions.txt but I couldn't find out how to disable SSSE3, if you comment out:
      C_OPT += -mssse3
      I get '#error "SSSE3 instruction set not enabled"' when I try to compile Kakadu

      update: I should use the flag -DKDU_NO_SSSE3

      Last edit: Georg 2014-04-08

  • Anonymous

    Hi all !

    Compiling without SSSE3 is working. Does someone try to measure the impact on iipserver general performance ?

    Ruven, do you plan to fix it for the 1.0 release ?

    • Ruven

      This is an issue with Kakadu rather than with iipsrv



Cancel   Add attachments