[Samba] Successful compile / i686 "LARGEFILE64" question (was: Lots of RPC-related compile errors trying to update Samba from 3.5 to 4.6)
awl1
awl1 at gmx.net
Tue Jun 13 09:03:55 UTC 2017
Hello Andrew, hello Samba experts,
first of all, good news: So I have indeed managed to compile a set co
cross-compiled binaries and installed them successfully onto my NAS.
Many thanks for your help in getting there!
I have now only used
--bundled-libraries=ALL \
and left "--with-static-modules" unset (default).
From cursorily testing so far, indeed everything seems to be working
fine in terms of functionality - so far, I also have not made any
changes to the 3.5.16 smb.conf, but simply used the exact same old
config file for 4.6.5.
But I need to raise a performance-related issue about a severe
performance degradation when using SMB version 3.1.1 dialect (as opposed
to SMB 1.5) with a huge number of small files - I will do so shortly in
a separate mail to this alias - and I have one more question regarding
the comparison of "smbd -b" output between Thecus 3.5.16 and my new 4.6.5:
I have noticed that on my 32-bit NAS (Intel Atom), the "smbd -b" output
of the old Thecus version explicitly lists several file handling system
calls as 64-bit capable versions:
$ grep 64 smbd-b_thecus.txt
HAVE_AIOCB64
HAVE_AIO_CANCEL64
HAVE_AIO_ERROR64
HAVE_AIO_FSYNC64
HAVE_AIO_READ64
HAVE_AIO_RETURN64
HAVE_AIO_SUSPEND64
HAVE_AIO_WRITE64
HAVE_CREAT64
HAVE_FOPEN64
HAVE_FSEEKO64
HAVE_FSTAT64
HAVE_FTELLO64
HAVE_FTRUNCATE64
HAVE_LSEEK64
HAVE_LSTAT64
HAVE_OPEN64
HAVE_POSIX_FALLOCATE64
HAVE_PREAD64
HAVE_PWRITE64
HAVE_READDIR64
HAVE_SENDFILE64
HAVE_STAT64
HAVE_STRUCT_DIRENT64
HAVE___OPEN64
HAVE___PREAD64
HAVE___PWRITE64
_LARGEFILE64_SOURCE
while the output of my freshly cross-compiled version does not have any
single of them:
$ grep 64 smbd-b_new.txt
HAVE_INT64_T
HAVE_UINT64_T
SIZEOF_INT64_T
SIZEOF_UINT64_T
Does this mean that my new version will handle large files (with a
length of more than fits into 32 bits) inefficiently (or even not at
all)? Or is this difference in output expected and I simply don't need
to worry.
Note that in my compile options, I have explicitly used
-D_LARGE_FILES -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
as part of my CCFLAGS, so I am really wondering why those 64-bits
versions do not show up with 4.6.5 "smbd -b" output...!?
Can you please throw some light on this?
Thanks again & best regards
Andreas
Am 08.06.2017 um 11:57 schrieb Andrew Bartlett via samba:
>> So is there any documentation available, and/or can you please advise
>> how to determine the appropriate values for
>>
>> --with-static-modules=...
>> --with-shared-modules=...
> The defaults suit most folks. Otherwise, take a look at
> script/autobuild.py for some tested combinations, including some of the
> magic incantations for all and none.
>
>> and possibly other related 4.6.x configure parameters from an old 3.5.x
>> installin order to compile a Samba 4.6.5 service with (at least) the
>> exact same (or equivalent) capabilities as the original Thecus 3.5.16
>> version?
> I would focus on these:
>
> --with Options:
> WITH_ADS
> WITH_AIO
> WITH_CIFSMOUNT
> WITH_PAM
> WITH_PAM_MODULES
> WITH_PROFILE
> WITH_QUOTAS
> WITH_SENDFILE
> WITH_SYSLOG
> WITH_UTMP
> WITH_WINBIND
>
> Of these, AIO is now on by default (no option any more) and the rest
> are i think on by default (if found) but you may wish to ensure you
> have the right headers for them to build.
>
> The default is now --with-ads-support and it will whine if you don't
> have the things that needs. This, and quotas is the main thing I would
> worry about, in terms of user-visible features.
>
> I trust this helps,
>
> Andrew Bartlett
More information about the samba
mailing list