Cilk Tools error while loading shared libraries

Cilk Tools error while loading shared libraries

I have successfully compiled cilkplus for gcc (4.8 branch) on Ubuntu 14.04 LTS and compiled the example program fib on the cilkplus website.  I would like to run cilkview and cilkscreen on it, and so I downloaded cilk tools from the website as well.  However, when I try to run cilkview, I get the following error:

Cilkview: Generating scalability data
-t: error while loading shared libraries: -t: cannot open shared object file: No such file or directory

I've tried changing the environment variables $LIBRARY_PATH and $LD_LIBRARY_PATH to point to the libraries in the cilk tools directory, but I still come up with the same error.  I also noticed that on the cilk tools downloads, for linux there is an extra set of libraries (libelf and libdwarf), which I have also installed on my system.  I tried looking at the depenencies for cilkview, but I couldn't find anything unusual with those.  Here is the output:

$ ldd cilkview
    linux-gate.so.1 =>  (0xf7735000)
    libm.so.6 => /lib32/libm.so.6 (0xf76d1000)
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf75e8000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf75cb000)
    libc.so.6 => /lib32/libc.so.6 (0xf741f000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf741a000)

I would particularly like to run cilkview, but the error persists for both cilkview and cilkscreen.  It looks like the error is loading libraries; however,  I have no idea why it calls the library -t.  Any help with this would be much appreciated.

8 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Try adding "--verbose" to the cilkview command. It should dump a bunch of information to help you (and us) debug the problem. Specifically, it will show you the Pin command that's being executed.

   - Barry

Here is the output of the verbose cilkview command:

PIN Environment variables:
LD_LIBRARY_PATH=/home/nick/cilktools-linux/lib64:/home/nick/cilkplus-install/lib:/home/nick/cilkplus-install/lib64:
PIN_APP_LD_ASSUME_KERNEL=<undefined>
PIN_APP_LD_LIBRARY_PATH=/home/nick/cilktools-linux/lib64:/home/nick/cilkplus-install/lib:/home/nick/cilkplus-install/lib64:
PIN_APP_LD_BIND_NOW=1
PIN_APP_LD_PRELOAD=<undefined>
PIN_LD_RESTORE_REQURED=<undefined>
PIN_VM_LD_LIBRARY_PATH=/home/nick/cilktools-linux/lib64:/home/nick/cilkplus-install/lib:/home/nick/cilkplus-install/lib64:
Cilkview: Generating scalability data
PIN command:
/home/nick/cilktools-linux/lib64/pinbin -t /home/nick/cilktools-linux/lib64/cilkview-tool.so -cvout ./REU_14/fib.cvdata -cores 16 -- ./REU_14/fib
-t: error while loading shared libraries: -t: cannot open shared object file: No such file or directory

 

 

OK, taking the information from Pin command:

/home/nick/cilktools-linux/lib64/pinbin -t /home/nick/cilktools-linux/lib64/cilkview-tool.so -cvout ./REU_14/fib.cvdata -cores 16 -- ./REU_14/fib

 
-t: error while loading shared libraries: -t: cannot open shared object file: No such file or directory

 

The message is telling you that the system cannot find the Pintool - cilkview-tools.so. According to the output, it should be at /home/nick/cilktools-linux/lib64/cilkview-tool.so. Does that file exist? If not, you've got a broken Cilk Tools installation. If it does exist, is there a pin.log file in the directory you're running from?

    - Barry

There is a library called cilkview-tool.so at /home/nick/cilktools-linux/lib64/cilkview-tool.so.  After I execute the cilkview command, I do not see a pin.log file.

Originally I did have pin.log files from a previous error about ptrace(), which is mentioned and solved in this forum thread; however, I am not getting a pin.log for this particular error.

FYI, "cilkview" is simply a driver. It's generating the Pin command that actually runs your application under Cilkview.

The protections on /home/nick/cilktools-linux/lib64/cilkview-tool.so are correct, right? Try using ldd on cilkview-tool.so to see if a dependency is not being found.

The value displayed for LD_LIBRARY_PATH is what Pin (pinbin) will be run with. The value displayed for PIN_APP_LD_LIBRARY_PATH is what will be in effect when your application is loaded.

   - Barry

Here is the output of ldd cilkview-tool.so:

linux-vdso.so.1 =>  (0x00007fff5ff3c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd3c24a4000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd3c2286000)
libdwarf.so (0x00007fd3c204b000)
libelf.so.0 (0x00007fd3c1e34000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd3c1b2e000)
libstdc++.so.6 => /home/nick/cilkplus-install/lib64/libstdc++.so.6 (0x00007fd3c182b000)
libgcc_s.so.1 => /home/nick/cilkplus-install/lib64/libgcc_s.so.1 (0x00007fd3c1615000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd3c124f000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd3c2c4b000)

I'm confused as to why the Pin command generates the error listing the -t argument rather than listing cilkview-tool.so.

 

 

You can get the list of options for pinbin by running it with the "-help" option.  "-t" specifies the Pintool to be run. In this case it's cilkview.so.

The one odd thing I can see is the display for libdwarf.so and libelf.so.0.  It should be resolving them from your Cilk tools library directory.  Try adding it to the front of LD_LIBRARY_PATH, though cilkview (the driver) should be doing that for you.

   - Barry

Leave a Comment

Please sign in to add a comment. Not a member? Join today