3 Replies Latest reply on Jun 20, 2011 3:10 PM by tedk

    MCPC Library issue

    pollawat

      Hello,

       

      I am using Ubuntu 10.04 (Lucid).

      After I have installed and updated the ia32-libs via package manager, I cannot use the sccKit tools anymore.

       

      uname output:

      Linux marc040 2.6.32-26-generic #48-Ubuntu SMP Wed Nov 24 10:14:11 UTC 2010 x86_64 GNU/Linux

       

      An example of the error is:

      root@marc040:~/Downloads# sccBmc -i
      sccBmc: error while loading shared libraries: libstdc++.so.6: cannot handle TLS data

       

      It called the libstdc++.so.6 in /usr/lib32 which seems to be broken.

      root@marc040:~/Downloads# ldd /usr/lib32/libstdc++*

      /usr/lib32/libstdc++.so.5:
          linux-gate.so.1 =>  (0xf773b000)
          libm.so.6 => /lib32/libm.so.6 (0xf763a000)
          libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf761b000)
          libc.so.6 => /lib32/libc.so.6 (0xf751a000)
          /lib/ld-linux.so.2 (0xf773c000)
      /usr/lib32/libstdc++.so.5.0.7:
          linux-gate.so.1 =>  (0xf774e000)
          libm.so.6 => /lib32/libm.so.6 (0xf764d000)
          libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf762e000)
          libc.so.6 => /lib32/libc.so.6 (0xf752d000)
          /lib/ld-linux.so.2 (0xf774f000)
      /usr/lib32/libstdc++.so.6:
          not a dynamic executable
      /usr/lib32/libstdc++.so.6.0.13:
          not a dynamic executable
      /usr/lib32/libstdc++.so.6.0.3:
          linux-gate.so.1 =>  (0xf7779000)
          libm.so.6 => /lib32/libm.so.6 (0xf766e000)
          libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf764f000)
          libc.so.6 => /lib32/libc.so.6 (0xf754e000)
          /lib/ld-linux.so.2 (0xf777a000)

       

      The reinstallation of ia32-libs and lib32stdc++6 did not solve the problem.

      The source package is also broken for me.

      I tried downloading the original .deb package but it always says that the .so file is not a dynamic executable.

      Is there anyway to solve this problem?

      Any help would be greatly appreciated.

        • 1. Re: MCPC Library issue
          tedk

          I've never seen this problem before.

           

          Do you have root access to marc040 (this is a data center machine)? How can you update the OS? We manage the SCC Data Center systems and update the OS routinely. We don't expect external users to update the OS and don't understand why you would have permission to do so.

           

          Please file a Bugzilla on this issue. We'll look at it anyway, but it will be good to track the resolution with Bugzilla.

          • 2. Re: MCPC Library issue
            wbrozas

            There a couple linking errors you could have

             

            Problem 1

            The first thing to note is that /usr/lib32/libstdc++.so.6 is a link.

            Your link points to nothing.

             

            You can see that mine points to 6.0.13

            $ls -la /usr/lib32/libstdc++.so.6

            lrwxrwxrwx 1 root root      19 2011-05-27 16:59 /usr/lib32/libstdc++.so.6 -> libstdc++.so.6.0.13

             

            Problem 2

            A second problem is if it points to something but that library is not compatible with your glibc (less likely but if you copied libs to this directory and overwrote some, this could happen)

             

            Problem 3

            LD_LIBRARY_PATH is set incorrectly

            For example I have other glibc installations that I installed with a prefix. When I want to compile using that glibc or run a program that was compiled using that glibc libraries. I set my LD_LIBRARY_PATH

            export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

             

            This command will break programs that use /usr/lib32 because it will search in /usr/local/lib first.

             

            My guess at what your problem is, is that /usr/lib32/libstdc++.so.6 points to libstdc++.so.6.0.13

            and that should be a dynamic executable. You need to either download libstdc++.so.6.0.13 or point /usr/lib32/libstdc++.so.6 to /usr/lib32/libstdc++.so.6.0.3