On Fri, Jul 19, 2013 at 3:53 PM, Iyer, Balaji V <balaji.v.i...@intel.com> wrote: > > >> -----Original Message----- >> From: Ian Lance Taylor [mailto:i...@google.com] >> Sent: Friday, July 19, 2013 6:26 PM >> To: Iyer, Balaji V >> Cc: gcc@gcc.gnu.org >> Subject: Re: Help with using multilib for Cilk Library >> >> On Fri, Jul 19, 2013 at 11:22 AM, Iyer, Balaji V <balaji.v.i...@intel.com> >> wrote: >> > Hello Everyone, >> > I am trying to use Multilib on Cilk Library. I looked at this >> > website >> (http://www.airs.com/ian/configure/configure_8.html) and used libsanitizer >> and >> libgo as samples to model after. It is currently failing with the following >> error >> message: >> > >> > libtool: link: /export/users/my-files/b-gcc-multilib/./gcc/xg++ - >> B/export/users/my-files/b-gcc-multilib/./gcc/ -nostdinc++ -nostdinc++ - >> I/export/users/my-files/b-gcc-multilib/x86_64-unknown-linux-gnu/32/libstdc++- >> v3/include/x86_64-unknown-linux-gnu -I/export/users/my-files/b-gcc- >> multilib/x86_64-unknown-linux-gnu/32/libstdc++-v3/include - >> I/export/users/my-files/gcc/libstdc++-v3/libsupc++ -I/export/users/my- >> files/gcc/libstdc++-v3/include/backward >> -I/export/users/my-files/gcc/libstdc++- >> v3/testsuite/util >> -L/export/users/my-files/b-gcc-multilib/x86_64-unknown-linux- >> gnu/32/libstdc++-v3/src -L/export/users/my-files/b-gcc-multilib/x86_64- >> unknown-linux-gnu/32/libstdc++-v3/src/.libs -B/export/users/my-files/install- >> gcc-multilib/x86_64-unknown-linux-gnu/bin/ -B/export/users/my-files/install- >> gcc-multilib/x86_64-unknown-linux-gnu/lib/ -isystem /export/users/my- >> files/install-gcc-multilib/x86_64-unknown-linux-gnu/include -isystem >> /export/users/my-files/install-gcc-multilib/x86_64-unknown-linux-gnu/sys- >> include -m32 -shared -nostdlib /usr/lib/../lib/crti.o >> /export/users/my-files/b- >> gcc-multilib/./gcc/32/crtbeginS.o .libs/bug.o .libs/cilk-abi.o >> .libs/cilk-abi-cilk- >> for.o .libs/cilk-abi-vla.o .libs/cilk-abi-vla-internal.o .libs/cilk_api.o >> .libs/cilk_fiber.o .libs/cilk_fiber-unix.o .libs/cilk_malloc.o >> .libs/c_reducers.o >> .libs/except-gcc.o .libs/frame_malloc.o .libs/full_frame.o >> .libs/global_state.o >> .libs/jmpbuf.o .libs/local_state.o .libs/metacall_impl.o >> .libs/os_mutex-unix.o >> .libs/os-unix.o .libs/pedigrees.o .libs/record-replay.o .libs/reducer_impl.o >> .libs/scheduler.o .libs/signal_node.o .libs/spin_mutex.o .libs/stats.o >> .libs/symbol_test.o .libs/sysdep-unix.o .libs/worker_mutex.o -Wl,-rpath - >> Wl,/export/users/my-files/b-gcc-multilib/x86_64-unknown-linux-gnu/libstdc++- >> v3/src/.libs -Wl,-rpath >> -Wl,/export/users/my-files/install-gcc-multilib/lib/../lib64 >> -L/export/users/my-files/b-gcc-multilib/x86_64-unknown-linux-gnu/libstdc++- >> v3/src/.libs -L/export/users/my-files/b-gcc-multilib/x86_64-unknown-linux- >> gnu/libstdc++-v3/src -lpthread -ldl -L/export/users/my-files/b-gcc- >> multilib/x86_64-unknown-linux-gnu/32/libstdc++-v3/src -L/export/users/my- >> files/b-gcc-multilib/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs - >> L/export/users/my-files/b-gcc-multilib/./gcc/32 -L/lib/../lib >> -L/usr/lib/../lib - >> L/export/users/my-files/b-gcc-multilib/./gcc /export/users/my-files/b-gcc- >> multilib/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so -lm >> -lc - >> lgcc_s /export/users/my-files/b-gcc-multilib/./gcc/32/crtendS.o >> /usr/lib/../lib/crtn.o -m32 -m32 -Wl,-soname -Wl,libcilkrts.so.5 -o >> .libs/libcilkrts.so.5.0.3511 >> > /export/users/my-files/b-gcc-multilib/x86_64-unknown-linux-gnu/libstdc >> > ++-v3/src/.libs/libstdc++.so: could not read symbols: File in wrong >> > format >> > collect2: error: ld returned 1 exit status >> > make[4]: *** [libcilkrts.la] Error 1 >> > make[4]: Leaving directory `/export/users/my-files/b-gcc-multilib/x86_64- >> unknown-linux-gnu/32/libcilkrts' >> > make[3]: *** [multi-do] Error 1 >> > make[3]: Leaving directory `/export/users/my-files/b-gcc >> > >> > >> > From what it looks like, it is reading the 64 bit library for the 32 bit >> > mode (or >> vice-versa). How do I fix this? I am also attaching my configure.ac and >> Makefile.am. Please note that it is not fully cleaned up (e.g. I have stuff >> commented out etc). Can someone please tell me what I am doing wrong? >> >> When building the 32bit libcillkrts you are linking against the 64-bit >> libstdc++. It's right there on your command line: >> /export/users/my-files/b-gcc-multilib/x86_64-unknown-linux-gnu/libstdc++- >> v3/src/.libs/libstdc++.so. >> If that argument is needed at all, it needs to be >> /export/users/my-files/b-gcc- >> multilib/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs/libstdc++.so >> (note added /32 in there). I guess the question is where the argument is >> coming >> from. I must admit that I don't know. Is it in some environment variable? > > I am not setting any environment variable that weren't set automatically in > my SUSE machine. Also, all the other libs are working correctly for 32 and 64 > bit. >
If you can create a git branch, others can take a look to see what is going on. There isn't sufficient info to tell. -- H.J.