Compile problem on Solaris --with-smbwrapper

David Collier-Brown davecb at canada.sun.com
Tue Oct 16 08:17:02 GMT 2001


David Collier-Brown wrote:
> > ld.so.1: smbsh: fatal: relocation error: file
> > /usr/local/samba/bin/smbwrapper.so: symbol charset_initialize:
> > referenced symbol not found

	I'm attaching truss and apptrace logs, annotated:

truss says:
----    
26598/1:       3.7274 write(2, " P a s s w o r d :  ", 10)          !
26598/1:              read(3, 0xFF23BC04, 1)          (sleeping...)

	--reads my password

	--starts opening and reading files,
	-- and searching for libraries...

26598/1:         6.1959 open("/etc/mnttab",
O_RDONLY)                   = 4
...

26598/1:         6.1989
stat64("/usr/local/samba/bin/smbwrapper.32.so", 0xFFBEE950) Err#2
ENOENT

 

	-- and this really doesn't exist, and shouldn't. I'm
	-- running 64-bit Solaris 8.

26598/1:         6.2014 execve("/bin/ksh", 0xFFBEE9D8, 0x0008F5B8) 
argc = 1
	-- and then immediately execs my shell, which 
	-- starts linking shared libraries (I'll just
	-- show the opens for a few hundred lines)

26598/1:         6.2022 open("/var/ld/ld.config",
O_RDONLY)             Err#2 ENOENT
26598/1:         6.2025 open("/usr/local/samba/bin/smbwrapper.so",
O_RDONLY) = 3
26598/1:         6.2040 open("/usr/lib/libsocket.so.1",
O_RDONLY)       = 3
26598/1:         6.2051 open("/usr/lib/libnsl.so.1",
O_RDONLY)          = 3
26598/1:         6.2064 open("/usr/lib/libsec.so.1",
O_RDONLY)          = 3
26598/1:         6.2075 open("/usr/lib/libgen.so.1",
O_RDONLY)          = 3
26598/1:         6.2086 open("/usr/lib/libdl.so.1",
O_RDONLY)           = 3
26598/1:         6.2091 open("/usr/lib/libc.so.1",
O_RDONLY)            = 3
26598/1:         6.2105 open("/usr/lib/libmp.so.2",
O_RDONLY)           = 3
26598/1:         6.2132
open("/usr/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1", O_RDONLY)
= 3
26598/1:         6.2213 open("/usr/lib/libsecdb.so.1",
O_RDONLY)        = 3
26598/1:         6.2225 open("/usr/lib/libcmd.so.1",
O_RDONLY)          = 3

	--and then blows up in the linker...

26598/1:         6.2226 fstat(3,
0xFFBED9B4)                            = 0
26598/1:         6.2227 mmap(0xFF230000, 8192, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF230000
26598/1:         6.2229 mmap(0x00000000, 90112, PROT_READ|PROT_EXEC,
MAP_PRIVATE, 3, 0) = 0xFF040000
26598/1:         6.2230 mmap(0xFF054000, 1155,
PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 16384) =
0xFF05!
26598/1:         6.2233 munmap(0xFF044000,
65536)                       = 0
26598/1:         6.2234 memcntl(0xFF040000, 4344, MC_ADVISE,
MADV_WILLNEED, 0, 0) = 0
26598/1:         6.2235
close(3)                                        = 0
ld.so.1: smbsh: fatal: relocation error: file
/usr/local/samba/bin/smbwrapper.so: symbol charset_initialize:
referenced !

26598/1:         6.2238 write(2, "\n",
1)                               = 1
26598/1:         6.2240
getpid()                                        = 26598 [26596]
26598/1:                *** process killed ***
---


apptrace says
--- 
  26606:smbsh    -> libc.so.1:strlen(s = "LD_AUDIT") = 0x8
  26606:smbsh    -> libc.so.1:malloc(size = 0x21) = 0x45e70
  26606:smbsh    -> libc.so.1:strcpy(dst = "LD_AUDIT", src =
"LD_AUDIT") = "LD_AUDIT"

	-- it's saving some strings initially
  26606:smbsh    -> libc.so.1:strlen(s = "/usr/lib/abi/apptrac") =
0x1a
  
  26606:smbsh    -> libc.so.1:malloc(size = 0x1b) = 0x44330
  26606:smbsh    -> libc.so.1:strcpy(dst = "/usr/lib/abi/apptrac", src
= "/usr/lib/abi/apptrac") = "/usr/lib/abi/apptrac"

  26606:smbsh    -> libc.so.1:strlen(s = "LD_AUDIT_64") = 0xb
  26606:smbsh    -> libc.so.1:malloc(size = 0x24) = 0x45ea0
  26606:smbsh    -> libc.so.1:strcpy(dst = "LD_AUDIT_64", src =
"LD_AUDIT_64") = "LD_AUDIT_64"

  26606:smbsh    -> libc.so.1:strlen(s = "/usr/lib/abi/sparcv9") =
0x22
  26606:smbsh    -> libc.so.1:malloc(size = 0x23) = 0x45ed0
  26606:smbsh    -> libc.so.1:strcpy(dst = "/usr/lib/abi/sparcv9", src
= "/usr/lib/abi/sparcv9") = "/usr/lib/abi/sparcv9"

  26606:smbsh    -> libc.so.1:strlen(s = "SMBW_HANDLE") = 0xb
  26606:smbsh    -> libc.so.1:malloc(size = 0x24) = 0x45f00
  26606:smbsh    -> libc.so.1:strcpy(dst = "SMBW_HANDLE", src =
"SMBW_HANDLE") = "SMBW_HANDLE"

  26606:smbsh    -> libc.so.1:strlen(s = "1023") = 0x4
  26606:smbsh    -> libc.so.1:malloc(size = 0x5) = 0x44e20
  26606:smbsh    -> libc.so.1:strcpy(dst = "1023", src = "1023") =
"1023"

  26606:smbsh    -> libc.so.1:strlen(s = "LD_PRELOAD") = 0xa
  26606:smbsh    -> libc.so.1:malloc(size = 0x23) = 0x45f30
  26606:smbsh    -> libc.so.1:strcpy(dst = "LD_PRELOAD", src =
"LD_PRELOAD") = "LD_PRELOAD"

  26606:smbsh    -> libc.so.1:strlen(s = "/usr/local/samba/bin") =
0x22
  26606:smbsh    -> libc.so.1:malloc(size = 0x23) = 0x45f60
  26606:smbsh    -> libc.so.1:strcpy(dst = "/usr/local/samba/bin", src
= "/usr/local/samba/bin") = "/usr/local/samba/bin"

  26606:smbsh    -> libc.so.1:strlen(s = "_RLD_LIST") = 0x9
  26606:smbsh    -> libc.so.1:malloc(size = 0x22) = 0x45f90
  26606:smbsh    -> libc.so.1:strcpy(dst = "_RLD_LIST", src =
"_RLD_LIST") = "_RLD_LIST"

  26606:smbsh    -> libc.so.1:strlen(s = "/usr/local/samba/bin") =
0x2a
  26606:smbsh    -> libc.so.1:malloc(size = 0x2b) = 0x45fc0
  26606:smbsh    -> libc.so.1:strcpy(dst = "/usr/local/samba/bin", src
= "/usr/local/samba/bin") = "/usr/local/samba/bin"

  26606:smbsh    -> libc.so.1:malloc(size = 0xd8) = 0x45ff8
  26606:smbsh    -> libc.so.1:malloc(size = 0xd8) = 0x460e8
  26606:smbsh    -> libc.so.1:mbstowcs(pwcs = 0x460e8, s =
"/home/davecb/project", n = 0x35) = 0x35
  26606:smbsh    -> libc.so.1:free(ptr = 0x460e8)
  26606:smbsh    -> libc.so.1:malloc(size = 0x44) = 0x460e8
  26606:smbsh    -> libc.so.1:malloc(size = 0x44) = 0x46138
  26606:smbsh    -> libc.so.1:mbstowcs(pwcs = 0x46138, s =
"/dev/fd/+([0-9])", n = 0x10) = 0x10
  26606:smbsh    -> libc.so.1:free(ptr = 0x46138)
  26606:smbsh    -> libc.so.1:wcslen(ws = 0x45ff8) = 0x35
  26606:smbsh    -> libc.so.1:free(ptr = 0x45ff8)
  26606:smbsh    -> libc.so.1:free(ptr = 0x460e8)
  26606:smbsh    -> smbwrapper.so:stat64(0x45b28, 0xffbeee58, 0x600)
ld.so.1: smbsh: fatal: relocation error: file
/usr/local/samba/bin/smbwrapper.so: symbol charset_initialize:
referenced symbol not found

apptrace: smbsh: Killed
---
	and so it seems to die in or right after a stat64
	call on  /usr/local/samba/bin/smbwrapper.32.so,
	from smbwrapper.so, while looking for charset_initialize
	to call.

	This probably is in or near smbw_init() in smbw.c

--dave




More information about the samba-technical mailing list