----- Original Message -----
> j0!
>
> Humbedooh and moa have managed to gobble something together that
> compiles on both, FreeBSD and Solaris. But maybe someone who
> actually knows how to program would like to review this before
> I commit the Solaris portion of the patch:
>
>
> diff --git a/iocore/eventsystem/UnixEventProcessor.cc
> b/iocore/eventsystem/UnixEventProcessor.cc
> index 78f6f7d..95c0835 100644
> --- a/iocore/eventsystem/UnixEventProcessor.cc
> +++ b/iocore/eventsystem/UnixEventProcessor.cc
> @@ -26,10 +26,14 @@
>  #if TS_USE_HWLOC
>  #include <hwloc.h>
>  // TODO: (humbedooh): Make this build on Solaris with hwloc.
> -#if defined(freebsd) || defined(solaris)
> +#if defined(freebsd) || defined(darwin)
>  #include <sys/cpuset.h>
>  #define cpu_set_t cpuset_t
>  #include <pthread_np.h>
> +#elif defined(solaris)
> +#include <sys/procset.h>
> +#include <sys/processor.h>
> +#include <sys/types.h>
>  #endif
>  #endif
>  #include "ink_defs.h"
> @@ -106,7 +110,9 @@ EventProcessor::start(int n_event_threads)
>  #if TS_USE_HWLOC
>    int affinity = 0;
>    REC_ReadConfigInteger(affinity,
>    "proxy.config.exec_thread.affinity");
> +#if !defined(solaris)
>    cpu_set_t cpuset;
> +#endif
>    const hwloc_topology_t *topology = ink_get_topology();
>    int cu = hwloc_get_nbobjs_by_type(*topology, HWLOC_OBJ_CORE);
>    int pu = hwloc_get_nbobjs_by_type(*topology, HWLOC_OBJ_PU);
> @@ -121,11 +127,18 @@ EventProcessor::start(int n_event_threads)
>
>  #if TS_USE_HWLOC
>      if (affinity == 1) {
> -      CPU_ZERO(&cpuset);
>        int cpu = (i - 1) % num_cpus;
> +#if !defined(solaris)
> +      CPU_ZERO(&cpuset);
>        CPU_SET(cpu, &cpuset);
> +#endif
> +
>        Debug("iocore_thread", "setaffinity tid: %p, net thread: %d,
>        cpu: %d", tid, i, cpu);
> +#if !defined(solaris)
>        assert(pthread_setaffinity_np(tid, sizeof(cpu_set_t), &cpuset)
>        == 0);
> +#else
> +      assert(processor_bind(P_LWPID, tid, cpu, NULL));
> +#endif
>      }
>  #endif
>    }
>

btw, after applying this patch, we get the next failure here:

Making all in dns
gmake[2]: Entering directory `/export/home/igalic/trafficserver/iocore/dns'
source='SplitDNS.cc' object='SplitDNS.o' libtool=no \
        DEPDIR=.deps depmode=none /bin/bash ../../build/aux/depcomp \
        CC -DHAVE_CONFIG_H  -I. -I../../lib/ts  -I../../iocore/eventsystem 
-I../../iocore/net -I../../iocore/aio -I../../iocore/hostdb 
-I../../iocore/cache -I../../iocore/cluster -I../../iocore/utils 
-I../../iocore/dns -I../../lib -I../../lib/records -I../../lib/ts -I../../proxy 
-I../../proxy/http -I../../proxy/hdrs -I../../mgmt -I../../mgmt/utils 
-I../../mgmt/preparse -D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 
-D_GNU_SOURCE -D_REENTRANT -Dsolaris -I/opt/csw/include -I/usr/local/include  
-g -mt -m64 -D__WORDSIZE=64 -O3 -library=stlport4 -erroff -c -o SplitDNS.o 
SplitDNS.cc
"SplitDNS.cc", line 639: Error: Could not find a match for 
ink_atomic_cas(SplitDNSConfigInfo**, SplitDNSConfigInfo*, SplitDNSConfigInfo*) 
needed in SplitDNSConfigProcessor::set(unsigned, SplitDNSConfigInfo*).
1 Error(s) detected.
gmake[2]: *** [SplitDNS.o] Error 2

so long,

i

--
Igor Galić

Tel: +43 (0) 664 886 22 883
Mail: i.ga...@brainsware.org
URL: http://brainsware.org/
GPG: 6880 4155 74BD FD7C B515  2EA5 4B1D 9E08 A097 C9AE

Reply via email to