smbsh issues w/ samba-2.0.7

David Lee T.D.Lee at durham.ac.uk
Thu Nov 2 17:23:40 GMT 2000


On Thu, 2 Nov 2000, David Collier-Brown wrote:

> Dave Krovich  wrote:
> > >       First off, I'm running on a Redhat Linux 6.2 system, using
> > >gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release).
> > >       I can't seem to get smbsh to compile.
> > >       I grabbed samba-2.0.7, and did the following, which generated
> > >a compile error.
> 
> Giulio Orsero wrote:
> > You cannot use smbsh on linux anymore. glibc incompatibilities.
> 
> 	I know  they took out LD_PRELOAD, but did they 
> 	remove dlopen/dlysm too? (I have an uninstalled
> 	copy of red hat at home, waiting for me to find 
> 	spare time)
> 
> 	I'll happily help anyone to see if we can get around
> 	the glibc2 removal-of-ELF-standard functionality:
> 	I worked for two years on Elf linkers and interposers,
> 	including sotruss/apptrace on Solaris. The reported
> 	errors don't look all that evil:
> 
> smbwrapper/smbw.c:1429: warning: `struct stat64' declared inside
> parameter
> list smbwrapper/smbw.c:1429: warning: its scope is only this definition
> or
> declaration,
> smbwrapper/smbw.c:1429: warning: which is probably not what you want.
> smbwrapper/smbw.c:1431: dereferencing pointer to incomplete type
> 
> smbwrapper/smbw.c:1448: warning: `struct dirent64' declared inside
> parameter list
> smbwrapper/smbw.c: In function `dirent64_convert':
> smbwrapper/smbw.c:1450: dereferencing pointer to incomplete type


Dave (C-B),

Although apparently deviating from smbsh/Linux/glibc, I think the
following is related.

I have long suspected there is something with 64-bit stuff needing
attention.  Certainly under 2.0.7, and also, I'm 99% sure under earlier
versions and under the later 2.2.0alpha0, on a Sun U450 with Solaris 2.6
(32-bit mode) gives some warnings: 

   Compiling lib/system.c
   ../lib/system.c: In function `sys_readdir':
   ../lib/system.c:350: warning: return from incompatible pointer type

which is at the code:
   SMB_STRUCT_DIRENT *sys_readdir(DIR *dirp)
   {
   #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_READDIR64)
     return readdir64(dirp);
   #else
     return readdir(dirp);
   #endif
   }

So I suspect there are some 64-bit declarations and some '#if ...' things
that perhaps need some laborious attention by someone who understands the
issues and understands the Samba declarations (and intentions behind the
declarations).

Hope that helps.

-- 

:  David Lee                                I.T. Service          :
:  Systems Programmer                       Computer Centre       :
:                                           University of Durham  :
:  http://www.dur.ac.uk/~dcl0tdl            South Road            :
:                                           Durham                :
:  Phone: +44 191 374 2882                  U.K.                  :





More information about the samba-technical mailing list