net/samba36 does not build on stable10?

Dimitry Andric dim at FreeBSD.org
Mon Mar 17 07:54:44 UTC 2014


On 17 Mar 2014, at 07:33, James R. Van Artsdalen <james-freebsd-ports at jrv.org> wrote:
> FreeBSD STABLE10.housenet.jrv 10.0-STABLE FreeBSD 10.0-STABLE #0
> r263107M: Sun Mar 16 17:52:42 UTC 2014    
> root at STABLE10.housenet.jrv:/usr/obj/usr/src/sys/GENERIC  amd64
> 
> Samba 3.6 doesn't compile for me on stable10, yet internet searches
> don't reveal any other cases similar to this?
> 
> The symptom is that compilations fail due to a linkage error: undefined
> reference to `__unsafe_string_function_usage_here__'.
> 
> These seem to be the result of this code in
> work/samba-3.6.23/source3/include/safe_string.h
> 
> #ifdef HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS
> ...
> #define safe_strcpy_fn2(fn_name, fn_line, d, s, max_len) \
>    (CHECK_STRING_SIZE(d, max_len+1) \
>    ? __unsafe_string_function_usage_here__() \
>    : safe_strcpy_fn(fn_name, fn_line, (d), (s), (max_len)))
> ...
> 
> HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS is a configuration-time item set in
> work/samba-3.6.23/source3/wscript:
> 
>    # Check if the compiler will optimize out functions
>    conf.CHECK_CODE('''
> if (0) {
>    this_function_does_not_exist();
> } else {
>    return 1;
> }''', 'HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS',
>        msg="Checking if the compiler will optimize out functions")
> 
> A manual #undef of HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS fixes the
> problem.  It appears that samba assumes such dead code removal always
> happens, whereas perhaps there are cases clang does not remove.  Or
> perhaps the CHECK_STRING_SIZE test is finding a real bug.  Either way it
> appears to be a samba issue that is exposed by stable10's usage of clang.
...
> STABLE10:/usr/ports/net/samba36# cat /etc/make.conf
> WITH_DEBUG=1
> WITHOUT_X11=1
> OPTIONS_UNSET=X11
> WITHOUT_PKGNG=1
> NO_WARNING_PKG_INSTALL_EOL=yes
> STABLE10:/usr/ports/net/samba36#

Try removing WITH_DEBUG=1 from your make.conf.  This causes the samba
port to be compiled without any optimization (e.g. -O0).  Only use the
WITH_DEBUG option for specific ports, not as a general setting.

In any case, I think the samba port does something incorrectly, when its
configure script tries to detect whether COMPILER_WILL_OPTIMIZE_OUT_FNS
is supposed to be set.

-Dimitry

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 203 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20140317/42380445/attachment.sig>


More information about the freebsd-ports mailing list