Unbound 1.9.3 released

Yuri yvoinov at gmail.com
Mon Sep 9 09:24:54 UTC 2019


09.09.2019 13:36, Wouter Wijngaards via Unbound-users пишет:
> Hi Yuri,
>
> On 9/6/19 6:16 PM, Yuri via Unbound-users wrote:
>> The point is SUNPRO eats up -pthread, but not -pthreads.
> Nice to hear that the problem is found.  '-pthreads' causes /bin/cc to
> error about '-h', libtool adds the '-pthreads' from a libevent.la file
> in the library search path.
Seems so.
>
> I do not think changing libtool would work because it somehow needs
> those linker flags (for other cases I guess).  And I do not want to
> break compile on other platforms.  It looks like that libevent.la file
> can be omitted from the install script of the libevent package.  And a
> fix for sunpro to accept '-pthreads' is another option.
SunPro is GCC-compatible (at least it's declared) but hardly really
compatible (like CLang; it has own issues with -pthread(s)). -pthread is
accepted by cc, however -pthreads is not.
>
> Best regards, Wouter
>
>> 06.09.2019 20:41, Wouter Wijngaards via Unbound-users пишет:
>>> Hi Yuri,
>>>
>>> On 06/09/2019 15:27, Yuri via Unbound-users wrote:
>>>> 06.09.2019 19:22, Wouter Wijngaards via Unbound-users пишет:
>>>>> Hi Yuri,
>>>>>
>>>>> But the pkg-config file is likely not really read by libtool.
>>>>>
>>>>> I think it may be reading a libevent.la or libcrypto.la file or
>>>>> something like that and pick up something like "
>>>>> inherited_linker_flags=' -pthread' " this.
>>>>>
>>>>> If there is some .la file in /usr/local/lib or /usr/lib, and it contains
>>>>> -pthreads, likely for the gcc linker, you should (temporarily) move that
>>>>> out of the system dir.  So that libtool does not pick up the gcc
>>>>> oriented options.
>>>>>
>>>>> Looks like the devtools work with most gcc options but '-pthreads' looks
>>>>> like, it could be, possibly, the cause of the problem.  Because it
>>>>> complains about '-h' and that is a '-h' that gets weirdly inserted by an
>>>>> inherited linker flag.  And libtool adds it to the commandline.
>>>>>
>>>>> So if that libevent installed a .la file in the system dirs, that file
>>>>> is likely the issue.  On my system by the way, Linux, there is no .la
>>>>> files in /usr/lib.  But I guess if there was one by mistake libtool
>>>>> would pick up the flags from it.  And if it then contains the
>>>>> -pthreads.  But I do not know for sure.  Otherwise, we'd be back to
>>>>> trying to figure out why ./libtool includes extra options on the linker
>>>>> commandline that make it fail...
>>>>>
>>>>> If all that fails you could copy and paste the linker line, /bin/cc ...
>>>>> without that -pthreads option and see if that works.
>>>> It works:
>>>>
>>>>
>>>>  # /bin/cc -I. -I/opt/csw/include -I/opt/csw/include
>>>> -I/usr/local/include -I/opt/csw/include -DSRCDIR=. -xO4 -m64 -xlinkopt=2
>>>> -xc99 -mt -m64 -xlinkopt=2 -o unbound .libs/acl_list.o .libs/cachedump.o
>>>> .libs/daemon.o .libs/shm_main.o .libs/remote.o .libs/stats.o
>>>> .libs/unbound.o .libs/worker.o .libs/dns.o .libs/infra.o .libs/rrset.o
>>>> .libs/dname.o .libs/msgencode.o .libs/as112.o .libs/msgparse.o
>>>> .libs/msgreply.o .libs/packed_rrset.o .libs/iterator.o
>>>> .libs/iter_delegpt.o .libs/iter_donotq.o .libs/iter_fwd.o
>>>> .libs/iter_hints.o .libs/iter_priv.o .libs/iter_resptype.o
>>>> .libs/iter_scrub.o .libs/iter_utils.o .libs/localzone.o .libs/mesh.o
>>>> .libs/modstack.o .libs/view.o .libs/outbound_list.o .libs/alloc.o
>>>> .libs/config_file.o .libs/configlexer.o .libs/configparser.o
>>>> .libs/fptr_wlist.o .libs/edns.o .libs/locks.o .libs/log.o
>>>> .libs/mini_event.o .libs/module.o .libs/net_help.o .libs/random.o
>>>> .libs/rbtree.o .libs/regional.o .libs/rtt.o .libs/dnstree.o
>>>> .libs/lookup3.o .libs/lruhash.o .libs/slabhash.o .libs/tcp_conn_limit.o
>>>> .libs/timehist.o .libs/tube.o .libs/winsock_event.o .libs/autotrust.o
>>>> .libs/val_anchor.o .libs/validator.o .libs/val_kcache.o
>>>> .libs/val_kentry.o .libs/val_neg.o .libs/val_nsec3.o .libs/val_nsec.o
>>>> .libs/val_secalgo.o .libs/val_sigcrypt.o .libs/val_utils.o .libs/dns64.o
>>>> .libs/cachedb.o .libs/redis.o .libs/authzone.o .libs/respip.o
>>>> .libs/netevent.o .libs/listen_dnsport.o .libs/outside_network.o
>>>> .libs/ub_event.o .libs/keyraw.o .libs/sbuffer.o .libs/wire2str.o
>>>> .libs/parse.o .libs/parseutil.o .libs/rrdef.o .libs/str2wire.o
>>>> .libs/explicit_bzero.o .libs/reallocarray.o .libs/arc4random.o
>>>> .libs/arc4random_uniform.o .libs/arc4_lock.o .libs/getentropy_solaris.o
>>>> .libs/strsep.o  -L/opt/csw/lib/64 -L/opt/csw/lib -L/usr/local/lib -lssl
>>>> /usr/local/lib/libevent.so -lsendfile -lrt -lsocket -lnsl -lcrypto -lmd
>>>> -mt  -R/usr/local/lib -R/usr/local/lib -R/opt/csw/lib
>>>> #
>>> That is good news!  So the '-pthreads' is the problem.
>>>
>>> It is not present in the Makefile.  So not from configure.  Or
>>> pkg-config.  But added by libtool.
>>>
>>> Libtool would do that for files in /usr/local/lib or /opt/csw/lib or
>>> /usr/lib or /lib that are *.la  is there one?
>>>
>>> This line could be used to modify the libtool to exclude the inherited
>>> flags (do that and probably you can compile and use unbound):
>>>
>>> mv libtool libtool.orig
>>> sed -e "s/ found=:/ found=false/" < libtool.orig > libtool
>>>
>>> This is not something I could put in unbound release, because I do not
>>> know when to do it (or if it works), but may work for your package or
>>> install script perhaps?
>>>
>>> I think it may be a libevent.la file (somewhere) because I see the
>>> Makefile has '-levent' but libtool makes '/usr/local/lib/libevent.so'
>>> (which works, but it performed an edit).  So I think
>>> /usr/local/lib/libevent.la may exist, and that instructs it to do so. 
>>> Move it away, like mv /usr/local/lib/libevent.la
>>> /usr/local/lib/libevent.la.orig
>>>
>>> (It is possible for the .la file to get picked up out of another search
>>> directory, maybe search it:  find / -name libevent.la -print 2>/dev/null
>>> (or something like this))
>>>
>>> Best regards, Wouter
>>>
>>>
>>>>> Best regards, Wouter
>>>>>
>>>>> On 06/09/2019 15:04, Yuri via Unbound-users wrote:
>>>>>> Seems only libevent_pthread.pc contains this:
>>>>>>
>>>>>> #libevent pkg-config source file
>>>>>>
>>>>>> prefix=/usr/local
>>>>>> exec_prefix=${prefix}
>>>>>> libdir=${exec_prefix}/lib
>>>>>> includedir=${prefix}/include
>>>>>>
>>>>>> Name: libevent_pthreads
>>>>>> Description: libevent_pthreads adds pthreads-based threading support to
>>>>>> libevent
>>>>>> Version: 2.1.11-stable
>>>>>> Requires: libevent
>>>>>> Conflicts:
>>>>>> Libs: -L${libdir} -levent_pthreads
>>>>>> Libs.private: -lsendfile -lrt -lsocket -lnsl 
>>>>>> Cflags: -I${includedir} -D_REENTRANT -pthreads
>>>>>>
>>>>>>
>>>>>> 06.09.2019 19:00, Wouter Wijngaards via Unbound-users пишет:
>>>>>>> Hi,
>>>>>>>
>>>>>>> Already privately replied that it looks like libtool inserts extra link
>>>>>>> options. Specifically an extra -mt option, and with that a '-pthreads'
>>>>>>> option. That looks like it causes the problem.
>>>>>>>
>>>>>>> The suggestion I gave was to move away, temporarily the
>>>>>>> lib<something>.la file from /usr/lib or /usr/local/lib that contains
>>>>>>> that -pthreads flag that libtool appends to the commandline, likely in
>>>>>>> there because that library was compiled with gcc.
>>>>>>>
>>>>>>> Not sure why libtool appends the extra dependencies or options.
>>>>>>>
>>>>>>> Best regards, Wouter
>>>>>>>
>>>>>>> On 06/09/2019 14:43, Yuri via Unbound-users wrote:
>>>>>>>> 30.08.2019 13:52, Wouter Wijngaards via Unbound-users пишет:
>>>>>>>>> Hi Yuri,
>>>>>>>>>
>>>>>>>>> On 29/08/2019 09:43, Yuri via Unbound-users wrote:
>>>>>>>>>> Thank you, Jaco, but this not solves my problem.
>>>>>>>>>>
>>>>>>>>>> I have Solaris 10u13 with Oracle Developer Studio 12.6 on SPARC-IV+ (so,
>>>>>>>>>> incompatible with Solaris 11.x).
>>>>>>>>>>
>>>>>>>>>> 29.08.2019 13:29, Jaco Lesch via Unbound-users пишет:
>>>>>>>>>>> On 8/28/19 18:49, Yuri via Unbound-users wrote:
>>>>>>>>>>>> 28.08.2019 18:23, Wouter Wijngaards via Unbound-users пишет:
>>>>>>>>>>>>> Hi Yuri,
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 27/08/2019 19:45, Yuri via Unbound-users wrote:
>>>>>>>>>>>>>> 27.08.2019 21:22, Yuri пишет:
>>>>>>>>>>>>>>> 27.08.2019 21:17, Wouter Wijngaards via Unbound-users пишет:
>>>>>>>>>>>>>>>> Hi Yuri,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> If that is any similar to yours, the ./configure --disable-shared
>>>>>>>>>>>>>>>> flag
>>>>>>>>>>>>>>>> could fix it.
>>>>>>>>>>>>>> Tried with same error:
>>>>>>>>>>>>> It looks like the flag makes the library build pass, but this link
>>>>>>>>>>>>> fails
>>>>>>>>>>>>> because of (what may also be the first error) unrecognised options.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Can you give the full commandline that failed, and also a couple before
>>>>>>>>>>>>> it (the libtool invocation, and then the compiler and linker lines).
>>>>>>>>>>>>> The flags on it, we can try to change them to see which one is the
>>>>>>>>>>>>> problem.  Something that looks like -...h... is what I guess from the
>>>>>>>>>>>>> link you sent.
>>>>>>>>>>>> Failed all object and binaries link call. Which one?
>>>>>>>>> The commandline I need is just before the part that you copy and pasted,
>>>>>>>>> and I guess about 20 lines more would help me.   That probably also
>>>>>>>>> includes another commandline before it, or even a non-failure line, but
>>>>>>>>> that's not a problem.
>>>>>>>> libtool: compile:  /bin/cc -I. -I/opt/csw/include -I/opt/csw/include
>>>>>>>> -I/usr/local/include -I/opt/csw/include -DSRCDIR=. -xO4 -m64 -xlinkopt=2
>>>>>>>> -xc99 -mt -c libunbound/libworker.c -o libworker.o >/dev/null 2>&1
>>>>>>>> ./libtool --tag=CC --mode=compile /bin/cc -I. -I/opt/csw/include
>>>>>>>> -I/opt/csw/include -I/usr/local/include -I/opt/csw/include -DSRCDIR=.
>>>>>>>> -xO4 -m64 -xlinkopt=2 -xc99 -mt  -o ub_event_pluggable.lo -c
>>>>>>>> util/ub_event_pluggable.c
>>>>>>>> libtool: compile:  /bin/cc -I. -I/opt/csw/include -I/opt/csw/include
>>>>>>>> -I/usr/local/include -I/opt/csw/include -DSRCDIR=. -xO4 -m64 -xlinkopt=2
>>>>>>>> -xc99 -mt -c util/ub_event_pluggable.c  -KPIC -DPIC -o
>>>>>>>> .libs/ub_event_pluggable.o
>>>>>>>> "./util/log.h", line 75: warning:  attribute "format" is unknown, ignored
>>>>>>>> "./util/log.h", line 131: warning:  attribute "format" is unknown, ignored
>>>>>>>> "./util/log.h", line 138: warning:  attribute "format" is unknown, ignored
>>>>>>>> "./util/log.h", line 145: warning:  attribute "format" is unknown, ignored
>>>>>>>> "./util/log.h", line 161: warning:  attribute "format" is unknown, ignored
>>>>>>>> "./util/log.h", line 168: warning:  attribute "format" is unknown, ignored
>>>>>>>> "./util/log.h", line 184: warning:  attribute "format" is unknown, ignored
>>>>>>>> libtool: compile:  /bin/cc -I. -I/opt/csw/include -I/opt/csw/include
>>>>>>>> -I/usr/local/include -I/opt/csw/include -DSRCDIR=. -xO4 -m64 -xlinkopt=2
>>>>>>>> -xc99 -mt -c util/ub_event_pluggable.c -o ub_event_pluggable.o
>>>>>>>>> /dev/null 2>&1
>>>>>>>> ./libtool --tag=CC --mode=link /bin/cc -R/opt/csw/lib -R/usr/local/lib
>>>>>>>> -I. -I/opt/csw/include -I/opt/csw/include -I/usr/local/include
>>>>>>>> -I/opt/csw/include -DSRCDIR=. -xO4 -m64 -xlinkopt=2 -xc99 -mt -m64
>>>>>>>> -L/opt/csw/lib/64 -xlinkopt=2 -L/opt/csw/lib -L/usr/local/lib
>>>>>>>> -L/opt/csw/lib -version-info 9:3:1 -no-undefined -export-symbols
>>>>>>>> ./libunbound/ubsyms.def -o libunbound.la context.lo libunbound.lo
>>>>>>>> libworker.lo ub_event_pluggable.lo dns.lo infra.lo rrset.lo dname.lo
>>>>>>>> msgencode.lo as112.lo msgparse.lo msgreply.lo packed_rrset.lo
>>>>>>>> iterator.lo iter_delegpt.lo iter_donotq.lo iter_fwd.lo iter_hints.lo
>>>>>>>> iter_priv.lo iter_resptype.lo iter_scrub.lo iter_utils.lo localzone.lo
>>>>>>>> mesh.lo modstack.lo view.lo outbound_list.lo alloc.lo config_file.lo
>>>>>>>> configlexer.lo configparser.lo fptr_wlist.lo edns.lo locks.lo log.lo
>>>>>>>> mini_event.lo module.lo net_help.lo random.lo rbtree.lo regional.lo
>>>>>>>> rtt.lo dnstree.lo lookup3.lo lruhash.lo slabhash.lo tcp_conn_limit.lo
>>>>>>>> timehist.lo tube.lo winsock_event.lo autotrust.lo val_anchor.lo
>>>>>>>> validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo
>>>>>>>> val_nsec.lo val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo
>>>>>>>> cachedb.lo redis.lo authzone.lo        respip.lo netevent.lo
>>>>>>>> listen_dnsport.lo outside_network.lo keyraw.lo sbuffer.lo wire2str.lo
>>>>>>>> parse.lo parseutil.lo rrdef.lo str2wire.lo explicit_bzero.lo
>>>>>>>> reallocarray.lo arc4random.lo arc4random_uniform.lo arc4_lock.lo
>>>>>>>> getentropy_solaris.lo strsep.lo -rpath /usr/local/lib -lssl -lrt -levent
>>>>>>>> -lrt -lsocket -lnsl  -lcrypto -lmd
>>>>>>>> libtool: link: echo "{ global:" > .libs/libunbound.so.8.1.3.exp
>>>>>>>> libtool: link: cat ./libunbound/ubsyms.def | /opt/csw/gnu/sed -e
>>>>>>>> "s/\(.*\)/\1;/" >> .libs/libunbound.so.8.1.3.exp
>>>>>>>> libtool: link: echo "local: *; };" >> .libs/libunbound.so.8.1.3.exp
>>>>>>>> libtool: link:  /bin/cc -G -z defs -M .libs/libunbound.so.8.1.3.exp -h
>>>>>>>> libunbound.so.8 -o .libs/libunbound.so.8.1.3  .libs/context.o
>>>>>>>> .libs/libunbound.o .libs/libworker.o .libs/ub_event_pluggable.o
>>>>>>>> .libs/dns.o .libs/infra.o .libs/rrset.o .libs/dname.o .libs/msgencode.o
>>>>>>>> .libs/as112.o .libs/msgparse.o .libs/msgreply.o .libs/packed_rrset.o
>>>>>>>> .libs/iterator.o .libs/iter_delegpt.o .libs/iter_donotq.o
>>>>>>>> .libs/iter_fwd.o .libs/iter_hints.o .libs/iter_priv.o
>>>>>>>> .libs/iter_resptype.o .libs/iter_scrub.o .libs/iter_utils.o
>>>>>>>> .libs/localzone.o .libs/mesh.o .libs/modstack.o .libs/view.o
>>>>>>>> .libs/outbound_list.o .libs/alloc.o .libs/config_file.o
>>>>>>>> .libs/configlexer.o .libs/configparser.o .libs/fptr_wlist.o .libs/edns.o
>>>>>>>> .libs/locks.o .libs/log.o .libs/mini_event.o .libs/module.o
>>>>>>>> .libs/net_help.o .libs/random.o .libs/rbtree.o .libs/regional.o
>>>>>>>> .libs/rtt.o .libs/dnstree.o .libs/lookup3.o .libs/lruhash.o
>>>>>>>> .libs/slabhash.o .libs/tcp_conn_limit.o .libs/timehist.o .libs/tube.o
>>>>>>>> .libs/winsock_event.o .libs/autotrust.o .libs/val_anchor.o
>>>>>>>> .libs/validator.o .libs/val_kcache.o .libs/val_kentry.o .libs/val_neg.o
>>>>>>>> .libs/val_nsec3.o .libs/val_nsec.o .libs/val_secalgo.o
>>>>>>>> .libs/val_sigcrypt.o .libs/val_utils.o .libs/dns64.o .libs/cachedb.o
>>>>>>>> .libs/redis.o .libs/authzone.o .libs/respip.o .libs/netevent.o
>>>>>>>> .libs/listen_dnsport.o .libs/outside_network.o .libs/keyraw.o
>>>>>>>> .libs/sbuffer.o .libs/wire2str.o .libs/parse.o .libs/parseutil.o
>>>>>>>> .libs/rrdef.o .libs/str2wire.o .libs/explicit_bzero.o
>>>>>>>> .libs/reallocarray.o .libs/arc4random.o .libs/arc4random_uniform.o
>>>>>>>> .libs/arc4_lock.o .libs/getentropy_solaris.o .libs/strsep.o  
>>>>>>>> -R/usr/local/lib -R/usr/local/lib -R/opt/csw/lib -L/opt/csw/lib/64
>>>>>>>> -L/opt/csw/lib -L/usr/local/lib -lssl /usr/local/lib/libevent.so
>>>>>>>> -lsendfile -lrt -lsocket -lnsl -lcrypto -lmd -lc  -m64 -mt -m64   -mt
>>>>>>>> -pthreads
>>>>>>>> ld: warning: soname option (-h, --soname) appears more than once, first
>>>>>>>> setting taken
>>>>>>>> libtool: link: rm -f .libs/libunbound.so.8.1.3.exp
>>>>>>>> libtool: link: (cd ".libs" && rm -f "libunbound.so.8" && ln -s
>>>>>>>> "libunbound.so.8.1.3" "libunbound.so.8")
>>>>>>>> libtool: link: (cd ".libs" && rm -f "libunbound.so" && ln -s
>>>>>>>> "libunbound.so.8.1.3" "libunbound.so")
>>>>>>>> libtool: link: /opt/csw/gnu/ar cru .libs/libunbound.a  context.o
>>>>>>>> libunbound.o libworker.o ub_event_pluggable.o dns.o infra.o rrset.o
>>>>>>>> dname.o msgencode.o as112.o msgparse.o msgreply.o packed_rrset.o
>>>>>>>> iterator.o iter_delegpt.o iter_donotq.o iter_fwd.o iter_hints.o
>>>>>>>> iter_priv.o iter_resptype.o iter_scrub.o iter_utils.o localzone.o mesh.o
>>>>>>>> modstack.o view.o outbound_list.o alloc.o config_file.o configlexer.o
>>>>>>>> configparser.o fptr_wlist.o edns.o locks.o log.o mini_event.o module.o
>>>>>>>> net_help.o random.o rbtree.o regional.o rtt.o dnstree.o lookup3.o
>>>>>>>> lruhash.o slabhash.o tcp_conn_limit.o timehist.o tube.o winsock_event.o
>>>>>>>> autotrust.o val_anchor.o validator.o val_kcache.o val_kentry.o val_neg.o
>>>>>>>> val_nsec3.o val_nsec.o val_secalgo.o val_sigcrypt.o val_utils.o dns64.o
>>>>>>>> cachedb.o redis.o authzone.o respip.o netevent.o listen_dnsport.o
>>>>>>>> outside_network.o keyraw.o sbuffer.o wire2str.o parse.o parseutil.o
>>>>>>>> rrdef.o str2wire.o explicit_bzero.o reallocarray.o arc4random.o
>>>>>>>> arc4random_uniform.o arc4_lock.o getentropy_solaris.o strsep.o
>>>>>>>> libtool: link: ranlib .libs/libunbound.a
>>>>>>>> libtool: link: ( cd ".libs" && rm -f "libunbound.la" && ln -s
>>>>>>>> "../libunbound.la" "libunbound.la" )
>>>>>>>> ./libtool --tag=CC --mode=link /bin/cc  -R/opt/csw/lib -R/usr/local/lib
>>>>>>>> -I. -I/opt/csw/include -I/opt/csw/include -I/usr/local/include
>>>>>>>> -I/opt/csw/include -DSRCDIR=. -xO4 -m64 -xlinkopt=2 -xc99 -mt -m64
>>>>>>>> -L/opt/csw/lib/64 -xlinkopt=2 -L/opt/csw/lib -L/usr/local/lib
>>>>>>>> -L/opt/csw/lib -o unbound acl_list.lo cachedump.lo daemon.lo shm_main.lo
>>>>>>>> remote.lo stats.lo unbound.lo worker.lo  dns.lo infra.lo rrset.lo
>>>>>>>> dname.lo msgencode.lo as112.lo msgparse.lo msgreply.lo packed_rrset.lo
>>>>>>>> iterator.lo iter_delegpt.lo iter_donotq.lo iter_fwd.lo iter_hints.lo
>>>>>>>> iter_priv.lo iter_resptype.lo iter_scrub.lo iter_utils.lo localzone.lo
>>>>>>>> mesh.lo modstack.lo view.lo outbound_list.lo alloc.lo config_file.lo
>>>>>>>> configlexer.lo configparser.lo fptr_wlist.lo edns.lo locks.lo log.lo
>>>>>>>> mini_event.lo module.lo net_help.lo random.lo rbtree.lo regional.lo
>>>>>>>> rtt.lo dnstree.lo lookup3.lo lruhash.lo slabhash.lo tcp_conn_limit.lo
>>>>>>>> timehist.lo tube.lo winsock_event.lo autotrust.lo val_anchor.lo
>>>>>>>> validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo
>>>>>>>> val_nsec.lo val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo
>>>>>>>> cachedb.lo redis.lo authzone.lo        respip.lo netevent.lo
>>>>>>>> listen_dnsport.lo outside_network.lo ub_event.lo keyraw.lo sbuffer.lo
>>>>>>>> wire2str.lo parse.lo parseutil.lo rrdef.lo str2wire.lo explicit_bzero.lo
>>>>>>>> reallocarray.lo arc4random.lo arc4random_uniform.lo arc4_lock.lo
>>>>>>>> getentropy_solaris.lo strsep.lo   -lssl -lrt -levent -lrt -lsocket
>>>>>>>> -lnsl  -lcrypto -lmd
>>>>>>>> libtool: link: /bin/cc -I. -I/opt/csw/include -I/opt/csw/include
>>>>>>>> -I/usr/local/include -I/opt/csw/include -DSRCDIR=. -xO4 -m64 -xlinkopt=2
>>>>>>>> -xc99 -mt -m64 -xlinkopt=2 -o unbound .libs/acl_list.o .libs/cachedump.o
>>>>>>>> .libs/daemon.o .libs/shm_main.o .libs/remote.o .libs/stats.o
>>>>>>>> .libs/unbound.o .libs/worker.o .libs/dns.o .libs/infra.o .libs/rrset.o
>>>>>>>> .libs/dname.o .libs/msgencode.o .libs/as112.o .libs/msgparse.o
>>>>>>>> .libs/msgreply.o .libs/packed_rrset.o .libs/iterator.o
>>>>>>>> .libs/iter_delegpt.o .libs/iter_donotq.o .libs/iter_fwd.o
>>>>>>>> .libs/iter_hints.o .libs/iter_priv.o .libs/iter_resptype.o
>>>>>>>> .libs/iter_scrub.o .libs/iter_utils.o .libs/localzone.o .libs/mesh.o
>>>>>>>> .libs/modstack.o .libs/view.o .libs/outbound_list.o .libs/alloc.o
>>>>>>>> .libs/config_file.o .libs/configlexer.o .libs/configparser.o
>>>>>>>> .libs/fptr_wlist.o .libs/edns.o .libs/locks.o .libs/log.o
>>>>>>>> .libs/mini_event.o .libs/module.o .libs/net_help.o .libs/random.o
>>>>>>>> .libs/rbtree.o .libs/regional.o .libs/rtt.o .libs/dnstree.o
>>>>>>>> .libs/lookup3.o .libs/lruhash.o .libs/slabhash.o .libs/tcp_conn_limit.o
>>>>>>>> .libs/timehist.o .libs/tube.o .libs/winsock_event.o .libs/autotrust.o
>>>>>>>> .libs/val_anchor.o .libs/validator.o .libs/val_kcache.o
>>>>>>>> .libs/val_kentry.o .libs/val_neg.o .libs/val_nsec3.o .libs/val_nsec.o
>>>>>>>> .libs/val_secalgo.o .libs/val_sigcrypt.o .libs/val_utils.o .libs/dns64.o
>>>>>>>> .libs/cachedb.o .libs/redis.o .libs/authzone.o .libs/respip.o
>>>>>>>> .libs/netevent.o .libs/listen_dnsport.o .libs/outside_network.o
>>>>>>>> .libs/ub_event.o .libs/keyraw.o .libs/sbuffer.o .libs/wire2str.o
>>>>>>>> .libs/parse.o .libs/parseutil.o .libs/rrdef.o .libs/str2wire.o
>>>>>>>> .libs/explicit_bzero.o .libs/reallocarray.o .libs/arc4random.o
>>>>>>>> .libs/arc4random_uniform.o .libs/arc4_lock.o .libs/getentropy_solaris.o
>>>>>>>> .libs/strsep.o  -L/opt/csw/lib/64 -L/opt/csw/lib -L/usr/local/lib -lssl
>>>>>>>> /usr/local/lib/libevent.so -lsendfile -lrt -lsocket -lnsl -lcrypto -lmd
>>>>>>>> -pthreads -mt  -R/usr/local/lib -R/usr/local/lib -R/opt/csw/lib
>>>>>>>> ld: fatal: soname option (-h, --soname) is incompatible with building a
>>>>>>>> dynamic executable
>>>>>>>> ld: fatal: flags processing errors
>>>>>>>> postopt: error: ld failed to link the binary
>>>>>>>> cc: postopt failed for unbound
>>>>>>>> gmake: *** [Makefile:329: unbound] Error 2
>>>>>>>>
>>>>>>>>> Your configure options look nice.  The "--without-pthreads
>>>>>>>>> --with-solaris-threads" part should be okay, but on the CFLAGS there
>>>>>>>>> seems to be -pthread -mt.  This is weird.  The -pthread should not be
>>>>>>>>> there, I think.  Could you re-run configure, then when it is done edit
>>>>>>>>> the Makefile and remove the -pthread from the Makefile and see if that
>>>>>>>>> compiles?
>>>>>>>>>
>>>>>>>>> From the code, it looks like the -pthread could be from some pkg-config
>>>>>>>>> imported flags, but there does not seem to be an obvious candidate that
>>>>>>>>> is importing flags.  The ax_pthread code, tries to do the -pthread -mt
>>>>>>>>> option, and that could be the culprit - it does not distinguish between
>>>>>>>>> solaris 11 and solaris 10 for the -pthread flag and sunworkshop.   But
>>>>>>>>> you disabled that, in the configure line you pasted.  This is weird. 
>>>>>>>>> And perhaps the way to solve this (if the compile without -pthread
>>>>>>>>> passes, then this debug could be useful) is to look at the configure
>>>>>>>>> output for threading stuff and the config.log, to take a look and see
>>>>>>>>> what is wrong there.
>>>>>>>> Attached compressed config.log
>>>>>>>>> Best regards, Wouter
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>>>> You could edit the CFLAGS, CPPFLAGS in the Makefile to try different
>>>>>>>>>>>>> options, or enter the commandline by hand ('#' makes comments in the
>>>>>>>>>>>>> Makefile, or copy to a backup file so you can try different changes).
>>>>>>>>>>>>> Try to remove the '-pthread', because there is an 'h' in that and
>>>>>>>>>>>>> solaris has a different threading model (the '-mt' option enables the
>>>>>>>>>>>>> solaris threading I believe).  Maybe the '/usr/local/lib/libevent.so'
>>>>>>>>>>>> Let's take a look on configure options:
>>>>>>>>>>>>
>>>>>>>>>>>> ./configure --prefix=/usr/local
>>>>>>>>>>>> --with-conf-file=/usr/local/etc/unbound/unbound.conf
>>>>>>>>>>>> --with-username=unbound --with-ssl=/opt/csw --with-libevent=/usr/local
>>>>>>>>>>>> --with-libexpat=/opt/csw --without-pthreads --with-solaris-threads
>>>>>>>>>>>> --enable-tfo-client --with-pidfile=/tmp/unbound.pid 'CFLAGS=-xO4 -m64
>>>>>>>>>>>> -xlinkopt=2' 'CPPFLAGS=-I/opt/csw/include' 'LDFLAGS=-m64
>>>>>>>>>>>> -L/opt/csw/lib/64 -xlinkopt=2'
>>>>>>>>>>>>
>>>>>>>>>>>> Solaris support POSIX threads since at least Developer Studio 12.4, If I
>>>>>>>>>>>> remember correct. I've specified explicity use native, however, for
>>>>>>>>>>>> Unbound since 2014.
>>>>>>>>>>>>
>>>>>>>>>>>>> needs to change into '-levent' because citing the .so directly is a gcc
>>>>>>>>>>>>> feature (I thought).  Maybe there are other options that cause issues,
>>>>>>>>>>>>> like warning options or the '-flto' option (disabled with
>>>>>>>>>>>>> --disable-flto
>>>>>>>>>>>>> for configure).
>>>>>>>>>>>> LTO does not supported by SunPro, only -xlinkopt.
>>>>>>>>>>>>> Best regards, Wouter
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> nsport.o outside_network.o ub_event.o keyraw.o sbuffer.o wire2str.o
>>>>>>>>>>>>>> parse.o parseutil.o rrdef.o str2wire.o explicit_bzero.o reallocarray.o
>>>>>>>>>>>>>> arc4random.o arc4random_uniform.o arc4_lock.o getentropy_solaris.o
>>>>>>>>>>>>>> strsep.o  -L/opt/csw/lib/64 -L/opt/csw/lib -L/usr/local/lib -lssl
>>>>>>>>>>>>>> /usr/local/lib/libevent.so -lsendfile -lrt -lsocket -lnsl -lcrypto
>>>>>>>>>>>>>> -lmd
>>>>>>>>>>>>>> -pthreads -mt -Wl,-rpath -Wl,/usr/local/lib -Wl,-rpath
>>>>>>>>>>>>>> -Wl,/usr/local/lib -Wl,-rpath -Wl,/opt/csw/lib
>>>>>>>>>>>>>> cc: postopt failed for unbound-checkconf
>>>>>>>>>>>>>> gmake: *** [Makefile:335: unbound-control] Error 2
>>>>>>>>>>>>>> gmake: *** [Makefile:332: unbound-checkconf] Error 2
>>>>>>>>>>>>>> ld: fatal: soname option (-h, --soname) is incompatible with
>>>>>>>>>>>>>> building a
>>>>>>>>>>>>>> dynamic executable
>>>>>>>>>>>>>> ld: fatal: flags processing errors
>>>>>>>>>>>>>> postopt: error: ld failed to link the binary
>>>>>>>>>>>>>> cc: postopt failed for unbound
>>>>>>>>>>>>>> gmake: *** [Makefile:329: unbound] Error 2
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Static library built, but no one executable linked.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>> Yuri
>>>>>>>>>>>
>>>>>>>>>>> From my side I was able to successfully compile Unbound 1.9.3 on
>>>>>>>>>>> Solaris 11.4 SPARC with Studio 12.6, linked to libev 4.24. The output
>>>>>>>>>>> from './unbound -V':
>>>>>>>>>>> --------------------------------------------------------------------------------------
>>>>>>>>>>>
>>>>>>>>>>> Version 1.9.3
>>>>>>>>>>>
>>>>>>>>>>> Configure line: --prefix=/opt/local --libdir=/opt/local/lib/sparcv9
>>>>>>>>>>> --sysconfdir=/etc --with-username=dnsadmin --with-libevent=/opt/local
>>>>>>>>>>> --disable-gost --disable-ecdsa
>>>>>>>>>>> Linked libs: libev 4.24 (it uses not obtainable), OpenSSL 1.0.2q 20
>>>>>>>>>>> Nov 2018
>>>>>>>>>>> Linked modules: dns64 respip validator iterator
>>>>>>>>>>>
>>>>>>>>>>> BSD licensed, see LICENSE in source package for details.
>>>>>>>>>>> Report bugs to unbound-bugs at nlnetlabs.nl or
>>>>>>>>>>> https://github.com/NLnetLabs/unbound/issues
>>>>>>>>>>> --------------------------------------------------------------------------------------
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> And I compiled it with the following settings:
>>>>>>>>>>> --------------------------------------------------------------------------------------
>>>>>>>>>>>
>>>>>>>>>>> CC="/opt/SunStudio/OracleDeveloperStudio12.6-solaris-sparc-bin/developerstudio12.6/bin/cc"
>>>>>>>>>>>
>>>>>>>>>>> CFLAGS="-m64 -xO4 -Qoption cg -xregs=no%appl -W2,-xwrap_int
>>>>>>>>>>> -xmemalign=16s"
>>>>>>>>>>> CPPFLAGS="-I/opt/local/include"
>>>>>>>>>>> LDFLAGS="-L/opt/local/lib/64"
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ./configure --prefix=/opt/local \
>>>>>>>>>>>         --libdir=/opt/local/lib/sparcv9 \
>>>>>>>>>>>         --sysconfdir=/etc \
>>>>>>>>>>>         --with-username=dnsadmin \
>>>>>>>>>>>         --with-libevent=/opt/local \
>>>>>>>>>>>         --disable-gost --disable-ecdsa
>>>>>>>>>>> --------------------------------------------------------------------------------------
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> According the Studio manpage on cc, the "-mt" is used by default for
>>>>>>>>>>> multithreaded code and the binary then links to
>>>>>>>>>>> '/lib/64/libpthread.so.1'.
>>>>>>>>>> Yes, I know about it. Im using it in my own projects for years. But the
>>>>>>>>>> issue is not -mt, but -soname option.
>>>>>>>>>>
>>>>>>>>>> Just take a look on my configure more closely:
>>>>>>>>>>
>>>>>>>>>> ./configure --prefix=/usr/local
>>>>>>>>>> --with-conf-file=/usr/local/etc/unbound/unbound.conf
>>>>>>>>>> --with-username=unbound --with-ssl=/opt/csw --with-libevent=/usr/local
>>>>>>>>>> --with-libexpat=/opt/csw --without-pthreads --with-solaris-threads
>>>>>>>>>> --enable-tfo-client --with-pidfile=/tmp/unbound.pid 'CFLAGS=-xO4 -m64
>>>>>>>>>> -xlinkopt=2' 'CPPFLAGS=-I/opt/csw/include' 'LDFLAGS=-m64
>>>>>>>>>> -L/opt/csw/lib/64 -xlinkopt=2'
>>>>>>>>>>
>>>>>>>>>> AFAIK, --without-pthreads --with-solaris-threads should set
>>>>>>>>>> thread-related flags correctly, right?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Hope this helps you with your problem.
>>>>>>>>>>>
>>>>>>>>>>> Regards
>>>>>>>>>>>
-- 
"C++ seems like a language suitable for firing other people's legs."

*****************************
* C++20 : Bug to the future *
*****************************


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: OpenPGP digital signature
URL: <http://lists.nlnetlabs.nl/pipermail/unbound-users/attachments/20190909/f85909d6/attachment.bin>


More information about the Unbound-users mailing list