Re: during namd build / compile -ltcl8.4 linking error

From: Sabuj Pattanayek (sabuj.pattanayek_at_vanderbilt.edu)
Date: Wed Mar 15 2006 - 13:17:49 CST

Oops,

It doesn't like it when tcl is compiled with --enable-threads. Fixed it now.

Thanks,

Sabuj Pattanayek wrote:
> Hi,
>
> I recompiled fftw and tcl using --enable-static and --disable-shared
> respectively, cleaned out the compile directory and started a new
> compile, I am getting different linking errors, from glibc?:
>
> gcc -Isb/src -I/sb/apps/tcltk-8.4.12/Linux2/i686/include -DNAMD_TCL
> -DUSE_NON_CONST -O3 -march=i686 -static -DNAMD_VERSION=\"2.6b1\"
> -DNAMD_PLATFORM=\"Linux-i686-MPI\" -o psfgen obj/tcl_main.o
> obj/tcl_psfgen.o obj/charmm_file.o obj/charmm_parse_topo_defs.o
> obj/extract_alias.o obj/hash.o obj/hasharray.o obj/memarena.o
> obj/pdb_file.o obj/pdb_file_extract.o obj/psf_file.o
> obj/psf_file_extract.o obj/topo_defs.o obj/topo_mol.o
> obj/topo_mol_output.o obj/stringhash.o
> -L/sb/apps/tcltk-8.4.12/Linux2/i686/lib -ltcl8.4 -ldl -lm
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclLoadDl.o)(.text+0x2a):
> In function `TclpDlopen':
> : warning: Using 'dlopen' in statically linked applications requires at
> runtime the shared libraries from the glibc version used for linking
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixFCmd.o)(.text+0xd83):
> In function `GetGroupAttribute':
> : warning: Using 'getgrgid' in statically linked applications requires
> at runtime the shared libraries from the glibc version used for linking
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixFCmd.o)(.text+0xfb1):
> In function `SetGroupAttribute':
> : warning: Using 'getgrnam' in statically linked applications requires
> at runtime the shared libraries from the glibc version used for linking
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixFCmd.o)(.text+0xdbb):
> In function `GetGroupAttribute':
> : warning: Using 'endgrent' in statically linked applications requires
> at runtime the shared libraries from the glibc version used for linking
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixFCmd.o)(.text+0x10c9):
> In function `SetOwnerAttribute':
> : warning: Using 'getpwnam' in statically linked applications requires
> at runtime the shared libraries from the glibc version used for linking
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixFCmd.o)(.text+0xe4f):
> In function `GetOwnerAttribute':
> : warning: Using 'getpwuid' in statically linked applications requires
> at runtime the shared libraries from the glibc version used for linking
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixFCmd.o)(.text+0xe8b):
> In function `GetOwnerAttribute':
> : warning: Using 'endpwent' in statically linked applications requires
> at runtime the shared libraries from the glibc version used for linking
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixChan.o)(.text+0x171a):
> In function `TcpGetOptionProc':
> : warning: Using 'gethostbyaddr' in statically linked applications
> requires at runtime the shared libraries from the glibc version used for
> linking
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixChan.o)(.text+0x1acd):
> In function `CreateSocketAddress':
> : warning: Using 'gethostbyname' in statically linked applications
> requires at runtime the shared libraries from the glibc version used for
> linking
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclIOSock.o)(.text+0x46):
> In function `TclSockGetPort':
> : warning: Using 'getservbyname' in statically linked applications
> requires at runtime the shared libraries from the glibc version used for
> linking
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x1d):
> In function `TclpThreadCreate':
> : undefined reference to `pthread_attr_init'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x27):
> In function `TclpThreadCreate':
> : undefined reference to `pthread_attr_setscope'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x44):
> In function `TclpThreadCreate':
> : undefined reference to `pthread_create'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x5c):
> In function `TclpThreadCreate':
> : undefined reference to `pthread_attr_destroy'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x72):
> In function `TclpThreadCreate':
> : undefined reference to `pthread_attr_setstacksize'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x87):
> In function `TclpThreadCreate':
> : undefined reference to `pthread_attr_setdetachstate'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x9a):
> In function `TclpThreadCreate':
> : undefined reference to `pthread_create'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0xb2):
> In function `TclpThreadCreate':
> : undefined reference to `pthread_create'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0xc7):
> In function `TclpThreadCreate':
> : undefined reference to `pthread_attr_destroy'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0xf2):
> In function `Tcl_JoinThread':
> : undefined reference to `pthread_join'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x11f):
> In function `TclpThreadExit':
> : undefined reference to `pthread_exit'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x136):
> In function `Tcl_GetCurrentThread':
> : undefined reference to `pthread_self'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x15b):
> In function `TclpInitLock':
> : undefined reference to `pthread_mutex_lock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x17f):
> In function `TclFinalizeLock':
> : undefined reference to `pthread_mutex_unlock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x1a3):
> In function `TclpInitUnlock':
> : undefined reference to `pthread_mutex_unlock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x1c7):
> In function `TclpMasterLock':
> : undefined reference to `pthread_mutex_lock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x1eb):
> In function `TclpMasterUnlock':
> : undefined reference to `pthread_mutex_unlock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x22f):
> In function `Tcl_MutexLock':
> : undefined reference to `pthread_mutex_lock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x24a):
> In function `Tcl_MutexLock':
> : undefined reference to `pthread_mutex_lock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x25e):
> In function `Tcl_MutexLock':
> : undefined reference to `pthread_mutex_unlock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x26c):
> In function `Tcl_MutexLock':
> : undefined reference to `pthread_mutex_lock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x28a):
> In function `Tcl_MutexLock':
> : undefined reference to `pthread_mutex_init'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x2b9):
> In function `Tcl_MutexUnlock':
> : undefined reference to `pthread_mutex_unlock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x2e7):
> In function `TclpFinalizeMutex':
> : undefined reference to `pthread_mutex_destroy'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x327):
> In function `TclpThreadDataKeyInit':
> : undefined reference to `pthread_mutex_lock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x33b):
> In function `TclpThreadDataKeyInit':
> : undefined reference to `pthread_mutex_unlock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x35a):
> In function `TclpThreadDataKeyInit':
> : undefined reference to `pthread_key_create'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x372):
> In function `TclpThreadDataKeyInit':
> : undefined reference to `pthread_mutex_unlock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x3a2):
> In function `TclpThreadDataKeyGet':
> : undefined reference to `pthread_getspecific'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x3ce):
> In function `TclpThreadDataKeySet':
> : undefined reference to `pthread_setspecific'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x402):
> In function `TclpFinalizeThreadData':
> : undefined reference to `pthread_getspecific'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x41d):
> In function `TclpFinalizeThreadData':
> : undefined reference to `pthread_setspecific'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x45a):
> In function `TclpFinalizeThreadDataKey':
> : undefined reference to `pthread_key_delete'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x51b):
> In function `Tcl_ConditionWait':
> : undefined reference to `pthread_cond_timedwait'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x537):
> In function `Tcl_ConditionWait':
> : undefined reference to `pthread_mutex_lock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x54c):
> In function `Tcl_ConditionWait':
> : undefined reference to `pthread_mutex_unlock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x572):
> In function `Tcl_ConditionWait':
> : undefined reference to `pthread_cond_wait'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x593):
> In function `Tcl_ConditionWait':
> : undefined reference to `pthread_cond_init'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x5cb):
> In function `Tcl_ConditionNotify':
> : undefined reference to `pthread_cond_broadcast'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x5fb):
> In function `TclpFinalizeCondition':
> : undefined reference to `pthread_cond_destroy'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x6c4):
> In function `TclpNewAllocMutex':
> : undefined reference to `pthread_mutex_init'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x708):
> In function `TclpFreeAllocMutex':
> : undefined reference to `pthread_mutex_destroy'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x75c):
> In function `TclpFreeAllocCache':
> : undefined reference to `pthread_key_delete'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x795):
> In function `TclpGetAllocCache':
> : undefined reference to `pthread_getspecific'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x7aa):
> In function `TclpGetAllocCache':
> : undefined reference to `pthread_mutex_lock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x7c5):
> In function `TclpGetAllocCache':
> : undefined reference to `pthread_mutex_unlock'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x7d6):
> In function `TclpGetAllocCache':
> : undefined reference to `pthread_getspecific'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x7f0):
> In function `TclpGetAllocCache':
> : undefined reference to `pthread_key_create'
> /sb/apps/tcltk-8.4.12/Linux2/i686/lib/libtcl8.4.a(tclUnixThrd.o)(.text+0x821):
> In function `TclpSetAllocCache':
> : undefined reference to `pthread_setspecific'
> collect2: ld returned 1 exit status
> make: *** [psfgen] Error 1
>
>
> Thanks,
> Sabuj Pattanayek
>
> Brian Bennion wrote:
>
>>
>>
>> You should review the compilation instructions for NAMD on the NAMDwiki
>> http://www.ks.uiuc.edu/Research/namd/wiki/index.cgi?NamdCompile
>>
>> NAMD is statically linked to tcl and fftw ie uses libtcl8.4.a
>> libraries not .so files...
>>
>>
>>
>> On Mon, 13 Mar 2006, Sabuj Pattanayek wrote:
>>
>>> Hi,
>>>
>>> I almost have namd compiled but it errored during the linking stage.
>>> I have install tcltk-8.4.12 in a separate directory and I put the
>>> following in the arch/Linux-i686.tcl file:
>>>
>>> TCLDIR=/sb/apps/tcltk-8.4.12/Linux2/i686
>>> TCLINCL=-I$(TCLDIR)/include
>>> TCLLIB=-L$(TCLDIR)/lib -ltcl8.4 -ldl
>>> TCLFLAGS=-DNAMD_TCL -DUSE_NON_CONST
>>> TCL=$(TCLINCL) $(TCLFLAGS)
>>>
>>> All is well during the compile stage until it tries to link
>>> everything and I get this error:
>>>
>>> /usr/bin/ld: cannot find -ltcl8.4
>>>
>>> I'm not sure why this is happening because libtcl8.4.so exists in the
>>> lib directory defined by TCLDIR. I also tried linking libtcl8.4.so to
>>> libtcl.so and using -ltcl in the arch/Linux-i686.tcl file but I also
>>> receive the same error. Does anyone know why this might be happening?
>>> Does namd only link with a tcltk-8.3.x revision?
>>>
>>> Thanks,
>>> Sabuj Pattanayek
>>>
>>
>> ************************************************
>> Brian Bennion, Ph.D.
>> Biosciences Directorate
>> Lawrence Livermore National Laboratory
>> P.O. Box 808, L-448 bennion1_at_llnl.gov
>> 7000 East Avenue phone: (925) 422-5722
>> Livermore, CA 94550 fax: (925) 424-6605
>> ************************************************
>>
>

This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:41:45 CST