Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 03 Feb 2006 16:44:35 -0500
From:      Chris Shenton <chris@shenton.org>
To:        emulation@freebsd.org
Subject:   ./Bin/rmserver: relocation error: ./Bin/rmserver: undefined symbol: g_nTLSProcnum
Message-ID:  <86mzh8nmm4.fsf@PECTOPAH.shenton.org>

next in thread | raw e-mail | index | archive | help
We've been running RealMedia's Linux reallserver9 on FreeBSD-4 for years, 
and now my client wants realserver11, built for Red Hat Enterprise Linux.

The binary was missing a library, so I installed what I thought was
the right thing, like:

  rpm2cpio libgcc-3.3.2-6.i386.rpm | cpio --extract

It provided, in /compat/linux/usr/lib:

  libgcc_s-3.3.2-20040109.so.1
  libgcc_s.so.1 -> libgcc_s-3.3.2-20040109.so.1             

This allowed the installer to run, but when I run the server binary
itself, it bombs:

  ./Bin/rmserver: relocation error: ./Bin/rmserver: undefined symbol: g_nTLSProcnum

I've attached a truss at the bottom of this message

For yucks, I copied the software to my home FreeBSD-6 machine, and
after creating a symlink for a library it wanted:

  libstdc++.so.6 -> libstdc++.so.5

running it failed with exactly the same problem. Hmmmmm....

I'm out of my depth here but guessing the runtime loader isn't at the
correct version.  A strings in /compat/linux/lib/ld-linux.so shows the
"relocation error" message. 

  -rwxr-xr-x  1 root  wheel  85420 Oct 14  2004 ld-2.2.5.so
  -rwxr-xr-x  1 root  wheel  90212 Nov 12  2003 ld-2.3.2.so
  lrwxrwxrwx  1 root  wheel     11 Dec 27 15:56 ld-linux.so.2 ->  ld-2.3.2.so

As I said, I'm out of my depth here. 
Thanks for any clues you can provide. 


root@Palimpsest(297> truss ./rmserver 
linux_newuname(0xbfbff684)                       = 0 (0x0)
linux_brk(0x0)                                   = 138145792 (0x83bf000)
linux_mmap(0xbfbff3e4)                           = 674795520 (0x28389000)
linux_open("/etc/ld.so.preload",0x0,00)          ERR#2 'No such file or directory'
linux_open("/etc/ld.so.cache",0x0,00)            = 3 (0x3)
linux_fstat64(0x3,0xbfbfeee4,0x28388bfc)         = 0 (0x0)
linux_mmap(0xbfbfeeb4)                           = 674799616 (0x2838a000)
close(3)                                         = 0 (0x0)
linux_open("/lib/libdl.so.2",0x0,00)             = 3 (0x3)
read(0x3,0xbfbff078,0x200)                       = 512 (0x200)
linux_fstat64(0x3,0xbfbfef94,0x28388bfc)         = 0 (0x0)
linux_mmap(0xbfbfee84)                           = 674811904 (0x2838d000)
linux_mmap(0xbfbfee84)                           = 674820096 (0x2838f000)
close(3)                                         = 0 (0x0)
linux_open("/lib/libpthread.so.0",0x0,00)        = 3 (0x3)
read(0x3,0xbfbff068,0x200)                       = 512 (0x200)
linux_fstat64(0x3,0xbfbfef84,0x28388bfc)         = 0 (0x0)
linux_mmap(0xbfbfee54)                           = 674824192 (0x28390000)
linux_mmap(0xbfbfee54)                           = 674881536 (0x2839e000)
linux_mmap(0xbfbfee54)                           = 674893824 (0x283a1000)
close(3)                                         = 0 (0x0)
linux_open("/usr/lib/libstdc++.so.6",0x0,00)     = 3 (0x3)
read(0x3,0xbfbff058,0x200)                       = 512 (0x200)
linux_fstat64(0x3,0xbfbfef74,0x28388bfc)         = 0 (0x0)
linux_mmap(0xbfbfee74)                           = 9748480 (0x94c000)
linux_mmap(0xbfbfee74)                           = 10665984 (0xa2c000)
linux_mmap(0xbfbfee74)                           = 10686464 (0xa31000)
close(3)                                         = 0 (0x0)
linux_open("/lib/libm.so.6",0x0,00)              = 3 (0x3)
read(0x3,0xbfbff048,0x200)                       = 512 (0x200)
linux_fstat64(0x3,0xbfbfef64,0x28388bfc)         = 0 (0x0)
linux_mmap(0xbfbfee54)                           = 675155968 (0x283e1000)
linux_mmap(0xbfbfee54)                           = 675287040 (0x28401000)
close(3)                                         = 0 (0x0)
linux_open("/lib/libgcc_s.so.1",0x0,00)          = 3 (0x3)
read(0x3,0xbfbff038,0x200)                       = 512 (0x200)
linux_fstat64(0x3,0xbfbfef54,0x28388bfc)         = 0 (0x0)
linux_mmap(0xbfbfee54)                           = 675291136 (0x28402000)
linux_mmap(0xbfbfee54)                           = 675319808 (0x28409000)
close(3)                                         = 0 (0x0)
linux_open("/lib/libc.so.6",0x0,00)              = 3 (0x3)
read(0x3,0xbfbff028,0x200)                       = 512 (0x200)
linux_fstat64(0x3,0xbfbfef44,0x28388bfc)         = 0 (0x0)
linux_mmap(0xbfbfee04)                           = 675323904 (0x2840a000)
linux_mmap(0xbfbfee14)                           = 675328000 (0x2840b000)
linux_mmap(0xbfbfee14)                           = 676511744 (0x2852c000)
linux_mmap(0xbfbfee14)                           = 676528128 (0x28530000)
close(3)                                         = 0 (0x0)
./rmserver: relocation error: ./rmserver: undefined symbol:
g_nTLSProcnum
writev(0x2,0xbfbfebc4,0xa)                       = 74 (0x4a)
process exit, rval = 32512                                 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86mzh8nmm4.fsf>