GLIBC and RAMS installing problems...

Hi… :-)

When installing rams, it seems to be a problem with the glic libraries. Here is the prompt:

make[2]: Leaving directory `/home/waldyd/rams44/bin’

ar x rams-4.4.a rammain.o
pgf90 -o rams-4.4 rammain.o -v -Wl,-static rams-4.4.a
./librams-4.4.a ./libutils-1.1.a -L/usr/local/ncarg/lib -lncarg -lncarg_gks -lncarg_c -L/usr/X11R6/lib -lX11 -lpthread

/usr/bin/ld /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc/i386-redhat-linux/4.0.0/crtbegin.o /usr/pgi/linux86/lib/f90main.o rammain.o rams-4.4.a ./librams-4.4.a ./libutils-1.1.a -o rams-4.4 -static -L/usr/local/ncarg/lib -lncarg -lncarg_gks -lncarg_c -L/usr/X11R6/lib -lX11 -lpthread -L/usr/pgi/linux86/lib -L/usr/lib -L/usr/lib/gcc/i386-redhat-linux/4.0.0 -rpath /usr/pgi/linux86/lib -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -lpgftnrtl -lm -lc -lpgc -lgcc -lc -lgcc /usr/lib/gcc/i386-redhat-linux/4.0.0/crtend.o /usr/lib/crtn.o
/usr/local/ncarg/lib/libncarg_c.a(ncarg_path.o)(.text+0x1b9): In function _NGResolvePath': ncarg_path.c: warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/local/ncarg/lib/libncarg_c.a(ncarg_path.o)(.text+0x1cc):ncarg_path.c: warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/local/ncarg/lib/libncarg_c.a(ncarg_path.o)(.text+0x13d):ncarg_path.c: warning: Using 'endpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/X11R6/lib/libX11.a(GetDflt.o)(.text+0x9a): In function GetHomeDir’:
GetDflt.c: warning: Using ‘getpwnam_r’ in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/X11R6/lib/libX11.a(GetDflt.o)(.text+0xf6):GetDflt.c: warning: Using ‘getpwuid_r’ in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/X11R6/lib/libX11.a(x11trans.o)(.text+0x64): In function _X11TransSocketOpen': x11trans.c: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/X11R6/lib/libX11.a(x11trans.o)(.text+0xa39): In function _X11TransSocketUNIXConnect’:
x11trans.c: warning: Using ‘gethostbyname’ in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/X11R6/lib/libX11.a(x11trans.o)(.text+0x1d9a): In function _X11TransSocketINETConnect': x11trans.c: warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/libpthread.a(unwind.o)(.text+0x44): In function unwind_stop’:
: undefined reference to _Unwind_GetCFA' /usr/lib/libpthread.a(unwind.o)(.text+0x72): In function unwind_stop’:
: undefined reference to _Unwind_GetCFA' /usr/lib/libpthread.a(unwind.o)(.text+0x11e): In function __pthread_unwind’:
: undefined reference to _Unwind_ForcedUnwind' /usr/lib/libpthread.a(unwind.o)(.text+0x15c): In function __pthread_unwind_next’:
: undefined reference to _Unwind_ForcedUnwind' /usr/lib/libc.a(iofclose.o)(.text+0x196): In function fclose’:
: undefined reference to _Unwind_Resume' /usr/lib/libc.a(iofclose.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0’
/usr/lib/libc.a(iofflush.o)(.text+0xcd): In function fflush': : undefined reference to _Unwind_Resume’
/usr/lib/libc.a(iofflush.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0' /usr/lib/libc.a(iofgets.o)(.text+0x12c): In function fgets’:
: undefined reference to _Unwind_Resume' /usr/lib/libc.a(iofgets.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0’
/usr/lib/libc.a(iofputs.o)(.text+0xf3): In function fputs': : undefined reference to _Unwind_Resume’
/usr/lib/libc.a(iofputs.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0' /usr/lib/libc.a(iofwrite.o)(.text+0x106): In function fwrite’:
: undefined reference to _Unwind_Resume' /usr/lib/libc.a(iofwrite.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0’
/usr/lib/libc.a(ioputs.o)(.text+0x125): In function puts': : undefined reference to _Unwind_Resume’
/usr/lib/libc.a(ioputs.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0' /usr/lib/libc.a(ioseekoff.o)(.text+0x190): In function _IO_seekoff’:
: undefined reference to _Unwind_Resume' /usr/lib/libc.a(ioseekoff.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0’
/usr/lib/libc.a(iosetvbuf.o)(.text+0x14a): In function setvbuf': : undefined reference to _Unwind_Resume’
/usr/lib/libc.a(iosetvbuf.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0' /usr/lib/libc.a(wfileops.o)(.text+0x48e): In function _IO_wfile_underflow’:
: undefined reference to _Unwind_Resume' /usr/lib/libc.a(wfileops.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0’
/usr/lib/libc.a(fileops.o)(.text+0x37d): In function _IO_new_file_underflow': : undefined reference to _Unwind_Resume’
/usr/lib/libc.a(fileops.o)(.text+0x218a): In function _IO_file_fopen': : undefined reference to _Unwind_Resume’
/usr/lib/libc.a(fileops.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0' /usr/lib/libc.a(syslog.o)(.text+0x1b8): In function closelog’:
: undefined reference to _Unwind_Resume' /usr/lib/libc.a(syslog.o)(.text+0x235): In function openlog’:
: undefined reference to _Unwind_Resume' /usr/lib/libc.a(syslog.o)(.text+0x6cd): In function vsyslog’:
: undefined reference to _Unwind_Resume' /usr/lib/libc.a(syslog.o)(.text+0x6de): In function vsyslog’:
: undefined reference to _Unwind_Resume' /usr/lib/libc.a(syslog.o)(.eh_frame+0x12): undefined reference to __gcc_personality_v0’
/usr/lib/libc.a(backtrace.o)(.text+0x1b): In function backtrace_helper': : undefined reference to _Unwind_GetIP’
/usr/lib/libc.a(backtrace.o)(.text+0x34): In function backtrace_helper': : undefined reference to _Unwind_GetGR’
/usr/lib/libc.a(backtrace.o)(.text+0x3f): In function backtrace_helper': : undefined reference to _Unwind_GetCFA’
/usr/lib/libc.a(backtrace.o)(.text+0x98): In function backtrace': : undefined reference to _Unwind_Backtrace’
pgf90-Fatal-linker completed with exit code 1

make[1]: *** [rams-4.4] Error 2
make[1]: Leaving directory `/home/waldyd/rams44/bin’
make: *** [rams] Error 2
How can i solve this?

Hi waldyd,

The warning messages are just saying that the dynamic libc library must be use for some of the symbols and your application will not be completly static. Since libc must be on every Linux system, I doubt this will cause problems.

For the undefined references, you want to find the library which contains the symbols. In this case, the symbols can be found in “/usr/lib/gcc/i386-redhat-linux/4.0.0/libgcc_eh.a”. Using the “nm” utility, followed by a “grep” will show if the symbol is present and an upper case “T” indicates that the symbol is defined. A “U” indicates that the symbol is used but undefined. For exmple:

fedora4:/usr/lib/gcc/i386-redhat-linux/4.0.0% nm libgcc_eh.a | grep -i "_Unwind_GetCFA"
nm: unwind-sjlj.o: no symbols
00000224 T _Unwind_GetCFA

To search multiple libraries use the “foreach” command.

foreach i ( `ls *.a` )
foreach? echo $i
foreach? nm $i | grep "_Unwind_GetCFA"
foreach? end

Exactly why the g++ exception handling library is needed, I’m not entirely sure, but adding “-lgcc_eh” should solve your linking problem.

Hope this helps,
Mat