libdispatch-dev
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
January 2011
- 8 participants
- 3 discussions
Hope everyone had a pleasant New Year holiday. I'm happy to report some
progress with the Linux port of libdispatch. I was able to build a recent
copy of the trunk and run the test suite without needing to apply a single
patch to my working copy. There were no compiler warnings during the build
process. I used the most recent version of libpthread_workqueue installed in
/usr/local. My test system is an Intel Core2 Duo running a 64-bit version of
Ubuntu 11.04.
See below for the complete output. There are still some quirks and test
failures, but for the most part it looks good.
Regards,
- Mark
$ CC=clang LD=llvm-ld-2.8 CFLAGS="-I/usr/local/include" \
LDADD="-L/usr/local/lib" ./configure && make && make check
checking for gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking how to run the C preprocessor... clang -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for System.framework/PrivateHeaders... no
checking for gcc... (cached) clang
checking whether we are using the GNU C compiler... (cached) yes
checking whether clang accepts -g... (cached) yes
checking for clang option to accept ISO C89... (cached) none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by clang... llvm-ld-2.8
checking if the linker (llvm-ld-2.8) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for llvm-ld-2.8 option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from clang object... ok
checking for dlfcn.h... yes
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ accepts -g... (cached) yes
checking how to run the C++ preprocessor... g++ -E
checking for objdir... .libs
checking if clang supports -fno-rtti -fno-exceptions... yes
checking for clang option to produce PIC... -fPIC -DPIC
checking if clang PIC flag -fPIC -DPIC works... yes
checking if clang static flag -static works... yes
checking if clang supports -c -o file.o... yes
checking if clang supports -c -o file.o... (cached) yes
checking whether the clang linker (llvm-ld-2.8 -m elf_x86_64) supports
shared libraries... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... unsupported
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... no
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for ld used by g++... llvm-ld-2.8 -m elf_x86_64
checking if the linker (llvm-ld-2.8 -m elf_x86_64) is GNU ld... no
checking whether the g++ linker (llvm-ld-2.8 -m elf_x86_64) supports shared
libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (llvm-ld-2.8 -m elf_x86_64) supports shared
libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... unsupported
checking for mig... no
checking for leaks... no
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking dependency style of clang... gcc3
checking dependency style of g++... gcc3
checking for gcc atomic builtins... yes
checking for library containing clock_gettime... -lrt
checking for library containing pthread_create... none required
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking sys/event.h usability... no
checking sys/event.h presence... no
checking for sys/event.h... no
checking for KQUEUE... yes
checking for ANSI C header files... (cached) yes
checking TargetConditionals.h usability... no
checking TargetConditionals.h presence... no
checking for TargetConditionals.h... no
checking pthread_machdep.h usability... no
checking pthread_machdep.h presence... no
checking for pthread_machdep.h... no
checking pthread_np.h usability... no
checking pthread_np.h presence... no
checking for pthread_np.h... no
checking malloc/malloc.h usability... no
checking malloc/malloc.h presence... no
checking for malloc/malloc.h... no
checking libkern/OSCrossEndian.h usability... no
checking libkern/OSCrossEndian.h presence... no
checking for libkern/OSCrossEndian.h... no
checking libkern/OSAtomic.h usability... no
checking libkern/OSAtomic.h presence... no
checking for libkern/OSAtomic.h... no
checking sys/sysctl.h usability... yes
checking sys/sysctl.h presence... yes
checking for sys/sysctl.h... yes
checking CoreServices/CoreServices.h usability... no
checking CoreServices/CoreServices.h presence... no
checking for CoreServices/CoreServices.h... no
checking mach/mach.h usability... no
checking mach/mach.h presence... no
checking for mach/mach.h... no
checking pthread_workqueue.h usability... yes
checking pthread_workqueue.h presence... yes
checking for pthread_workqueue.h... yes
checking for pthread_workqueue_init_np in -lpthread_workqueue... yes
checking whether CLOCK_UPTIME is declared... no
checking whether CLOCK_MONOTONIC is declared... yes
checking whether CLOCK_REALTIME is declared... yes
checking whether EVFILT_LIO is declared... no
checking whether EVFILT_SESSION is declared... no
checking whether NOTE_NONE is declared... no
checking whether NOTE_REAP is declared... no
checking whether NOTE_REVOKE is declared... no
checking whether NOTE_SIGNAL is declared... no
checking whether FD_COPY is declared... no
checking whether SIGEMT is declared... no
checking whether VQ_UPDATE is declared... no
checking whether VQ_VERYLOWDISK is declared... no
checking whether program_invocation_short_name is declared... yes
checking for pthread_key_init_np... no
checking for pthread_main_np... no
checking for mach_absolute_time... no
checking for malloc_create_zone... no
checking for sysconf... yes
checking for getprogname... no
checking for getexecname... no
checking for vasprintf... yes
checking for asprintf... yes
checking for arc4random... no
checking for fgetln... no
checking whether POSIX_SPAWN_START_SUSPENDED is declared... no
checking for sem_init... yes
checking what semaphore type to use... POSIX semaphores
checking for sys/cdefs.h... yes
checking for __attribute__((visibility("hidden")))... yes
checking for __private_extern__... yes
checking for C Blocks support... -fblocks
checking whether additional libraries are required for the Blocks runtime...
-lBlocksRuntime
checking for C++ Blocks support... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating dispatch/Makefile
config.status: creating man/Makefile
config.status: creating src/Makefile
config.status: creating testing/Makefile
config.status: creating config/config.h
config.status: config/config.h is unchanged
config.status: executing libtool commands
config.status: executing depfiles commands
Making all in dispatch
make[1]: Entering directory `/home/mheily/proj/libdispatch/trunk/dispatch'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/mheily/proj/libdispatch/trunk/dispatch'
Making all in man
make[1]: Entering directory `/home/mheily/proj/libdispatch/trunk/man'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/mheily/proj/libdispatch/trunk/man'
Making all in src
make[1]: Entering directory `/home/mheily/proj/libdispatch/trunk/src'
make all-am
make[2]: Entering directory `/home/mheily/proj/libdispatch/trunk/src'
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -Wall -fblocks -I/usr/local/include/kqueue
-I/usr/local/include -MT libdispatch_la-apply.lo -MD -MP -MF
.deps/libdispatch_la-apply.Tpo -c -o libdispatch_la-apply.lo `test -f
'apply.c' || echo './'`apply.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall
-fblocks -I/usr/local/include/kqueue -I/usr/local/include -MT
libdispatch_la-apply.lo -MD -MP -MF .deps/libdispatch_la-apply.Tpo -c
apply.c -o libdispatch_la-apply.o
mv -f .deps/libdispatch_la-apply.Tpo .deps/libdispatch_la-apply.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -Wall -fblocks -I/usr/local/include/kqueue
-I/usr/local/include -MT libdispatch_la-benchmark.lo -MD -MP -MF
.deps/libdispatch_la-benchmark.Tpo -c -o libdispatch_la-benchmark.lo `test
-f 'benchmark.c' || echo './'`benchmark.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall
-fblocks -I/usr/local/include/kqueue -I/usr/local/include -MT
libdispatch_la-benchmark.lo -MD -MP -MF .deps/libdispatch_la-benchmark.Tpo
-c benchmark.c -o libdispatch_la-benchmark.o
mv -f .deps/libdispatch_la-benchmark.Tpo .deps/libdispatch_la-benchmark.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -Wall -fblocks -I/usr/local/include/kqueue
-I/usr/local/include -MT libdispatch_la-object.lo -MD -MP -MF
.deps/libdispatch_la-object.Tpo -c -o libdispatch_la-object.lo `test -f
'object.c' || echo './'`object.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall
-fblocks -I/usr/local/include/kqueue -I/usr/local/include -MT
libdispatch_la-object.lo -MD -MP -MF .deps/libdispatch_la-object.Tpo -c
object.c -o libdispatch_la-object.o
mv -f .deps/libdispatch_la-object.Tpo .deps/libdispatch_la-object.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -Wall -fblocks -I/usr/local/include/kqueue
-I/usr/local/include -MT libdispatch_la-once.lo -MD -MP -MF
.deps/libdispatch_la-once.Tpo -c -o libdispatch_la-once.lo `test -f 'once.c'
|| echo './'`once.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall
-fblocks -I/usr/local/include/kqueue -I/usr/local/include -MT
libdispatch_la-once.lo -MD -MP -MF .deps/libdispatch_la-once.Tpo -c once.c
-o libdispatch_la-once.o
mv -f .deps/libdispatch_la-once.Tpo .deps/libdispatch_la-once.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -Wall -fblocks -I/usr/local/include/kqueue
-I/usr/local/include -MT libdispatch_la-queue.lo -MD -MP -MF
.deps/libdispatch_la-queue.Tpo -c -o libdispatch_la-queue.lo `test -f
'queue.c' || echo './'`queue.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall
-fblocks -I/usr/local/include/kqueue -I/usr/local/include -MT
libdispatch_la-queue.lo -MD -MP -MF .deps/libdispatch_la-queue.Tpo -c
queue.c -o libdispatch_la-queue.o
mv -f .deps/libdispatch_la-queue.Tpo .deps/libdispatch_la-queue.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -Wall -fblocks -I/usr/local/include/kqueue
-I/usr/local/include -MT libdispatch_la-queue_kevent.lo -MD -MP -MF
.deps/libdispatch_la-queue_kevent.Tpo -c -o libdispatch_la-queue_kevent.lo
`test -f 'queue_kevent.c' || echo './'`queue_kevent.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall
-fblocks -I/usr/local/include/kqueue -I/usr/local/include -MT
libdispatch_la-queue_kevent.lo -MD -MP -MF
.deps/libdispatch_la-queue_kevent.Tpo -c queue_kevent.c -o
libdispatch_la-queue_kevent.o
mv -f .deps/libdispatch_la-queue_kevent.Tpo
.deps/libdispatch_la-queue_kevent.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -Wall -fblocks -I/usr/local/include/kqueue
-I/usr/local/include -MT libdispatch_la-semaphore.lo -MD -MP -MF
.deps/libdispatch_la-semaphore.Tpo -c -o libdispatch_la-semaphore.lo `test
-f 'semaphore.c' || echo './'`semaphore.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall
-fblocks -I/usr/local/include/kqueue -I/usr/local/include -MT
libdispatch_la-semaphore.lo -MD -MP -MF .deps/libdispatch_la-semaphore.Tpo
-c semaphore.c -o libdispatch_la-semaphore.o
mv -f .deps/libdispatch_la-semaphore.Tpo .deps/libdispatch_la-semaphore.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -Wall -fblocks -I/usr/local/include/kqueue
-I/usr/local/include -MT libdispatch_la-source.lo -MD -MP -MF
.deps/libdispatch_la-source.Tpo -c -o libdispatch_la-source.lo `test -f
'source.c' || echo './'`source.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall
-fblocks -I/usr/local/include/kqueue -I/usr/local/include -MT
libdispatch_la-source.lo -MD -MP -MF .deps/libdispatch_la-source.Tpo -c
source.c -o libdispatch_la-source.o
mv -f .deps/libdispatch_la-source.Tpo .deps/libdispatch_la-source.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -Wall -fblocks -I/usr/local/include/kqueue
-I/usr/local/include -MT libdispatch_la-source_kevent.lo -MD -MP -MF
.deps/libdispatch_la-source_kevent.Tpo -c -o libdispatch_la-source_kevent.lo
`test -f 'source_kevent.c' || echo './'`source_kevent.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall
-fblocks -I/usr/local/include/kqueue -I/usr/local/include -MT
libdispatch_la-source_kevent.lo -MD -MP -MF
.deps/libdispatch_la-source_kevent.Tpo -c source_kevent.c -o
libdispatch_la-source_kevent.o
mv -f .deps/libdispatch_la-source_kevent.Tpo
.deps/libdispatch_la-source_kevent.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -Wall -fblocks -I/usr/local/include/kqueue
-I/usr/local/include -MT libdispatch_la-time.lo -MD -MP -MF
.deps/libdispatch_la-time.Tpo -c -o libdispatch_la-time.lo `test -f 'time.c'
|| echo './'`time.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall
-fblocks -I/usr/local/include/kqueue -I/usr/local/include -MT
libdispatch_la-time.lo -MD -MP -MF .deps/libdispatch_la-time.Tpo -c time.c
-o libdispatch_la-time.o
mv -f .deps/libdispatch_la-time.Tpo .deps/libdispatch_la-time.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -I/usr/local/include -MT mach.lo -MD -MP -MF
.deps/mach.Tpo -c -o mach.lo `test -f 'shims/mach.c' || echo './'`shims/mach.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I..
-I/usr/local/include -MT mach.lo -MD -MP -MF .deps/mach.Tpo -c shims/mach.c
-o mach.o
mv -f .deps/mach.Tpo .deps/mach.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -I/usr/local/include -MT time.lo -MD -MP -MF
.deps/time.Tpo -c -o time.lo `test -f 'shims/time.c' || echo './'`shims/time.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I..
-I/usr/local/include -MT time.lo -MD -MP -MF .deps/time.Tpo -c shims/time.c
-o time.o
mv -f .deps/time.Tpo .deps/time.Plo
/bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I.
-I../config -I.. -I.. -I/usr/local/include -MT tsd.lo -MD -MP -MF
.deps/tsd.Tpo -c -o tsd.lo `test -f 'shims/tsd.c' || echo './'`shims/tsd.c
libtool: compile: clang -DHAVE_CONFIG_H -I. -I../config -I.. -I..
-I/usr/local/include -MT tsd.lo -MD -MP -MF .deps/tsd.Tpo -c shims/tsd.c -o
tsd.o
mv -f .deps/tsd.Tpo .deps/tsd.Plo
/bin/bash ../libtool --tag=CC --mode=link clang -I/usr/local/include -o
libshims.la mach.lo time.lo tsd.lo -lrt -lBlocksRuntime
libtool: link: rm -fr .libs/libshims.a .libs/libshims.la
libtool: link: ar cru .libs/libshims.a mach.o time.o tsd.o
libtool: link: ranlib .libs/libshims.a
libtool: link: ( cd ".libs" && rm -f "libshims.la" && ln -s "../libshims.la"
"libshims.la" )
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks
-I/usr/local/include/kqueue -I/usr/local/include -o libdispatch.la
-rpath /usr/local/lib libdispatch_la-apply.lo libdispatch_la-benchmark.lo
libdispatch_la-object.lo libdispatch_la-once.lo libdispatch_la-queue.lo
libdispatch_la-queue_kevent.lo libdispatch_la-semaphore.lo
libdispatch_la-source.lo libdispatch_la-source_kevent.lo
libdispatch_la-time.lo libshims.la -L/usr/local/lib -lpthread -lrt
-lkqueue -lpthread_workqueue -lrt -lBlocksRuntime
libtool: link: rm -fr .libs/libdispatch.a .libs/libdispatch.la
.libs/libdispatch.lai
libtool: link: (cd .libs/libdispatch.lax/libshims.a && ar x
"/home/mheily/proj/libdispatch/trunk/src/./.libs/libshims.a")
libtool: link: ar cru .libs/libdispatch.a libdispatch_la-apply.o
libdispatch_la-benchmark.o libdispatch_la-object.o libdispatch_la-once.o
libdispatch_la-queue.o libdispatch_la-queue_kevent.o
libdispatch_la-semaphore.o libdispatch_la-source.o
libdispatch_la-source_kevent.o libdispatch_la-time.o
.libs/libdispatch.lax/libshims.a/mach.o
.libs/libdispatch.lax/libshims.a/time.o .libs/libdispatch.lax/libshims.a/tsd.o
libtool: link: ranlib .libs/libdispatch.a
libtool: link: rm -fr .libs/libdispatch.lax
libtool: link: ( cd ".libs" && rm -f "libdispatch.la" && ln -s
"../libdispatch.la" "libdispatch.la" )
make[2]: Leaving directory `/home/mheily/proj/libdispatch/trunk/src'
make[1]: Leaving directory `/home/mheily/proj/libdispatch/trunk/src'
Making all in testing
make[1]: Entering directory `/home/mheily/proj/libdispatch/trunk/testing'
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_api dispatch_api.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_api dispatch_api.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -std=c99 -Wall -fblocks
-o dispatch_c99 dispatch_c99-dispatch_c99.o libtest.la
../src/libdispatch.la -lrt -lBlocksRuntime
libtool: link: clang -std=c99 -Wall -fblocks -o dispatch_c99
dispatch_c99-dispatch_c99.o ./.libs/libtest.a ../src/.libs/libdispatch.a
-L/usr/local/lib /usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue
-lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_cascade dispatch_cascade.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_cascade dispatch_cascade.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_debug dispatch_debug.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_debug dispatch_debug.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_priority dispatch_priority.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_priority dispatch_priority.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -DUSE_SET_TARGET_QUEUE=1
-Wall -fblocks -o dispatch_priority2
dispatch_priority2-dispatch_priority.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -DUSE_SET_TARGET_QUEUE=1 -Wall -fblocks -o
dispatch_priority2 dispatch_priority2-dispatch_priority.o ./.libs/libtest.a
../src/.libs/libdispatch.a -L/usr/local/lib /usr/local/lib/libkqueue.so
-lpthread -lpthread_workqueue -lrt -lBlocksRuntime
clang -DHAVE_CONFIG_H -I. -I../config -I.. -I.. -Wall -fblocks -MT
dispatch_starfish.o -MD -MP -MF .deps/dispatch_starfish.Tpo -c -o
dispatch_starfish.o dispatch_starfish.c
mv -f .deps/dispatch_starfish.Tpo .deps/dispatch_starfish.Po
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_starfish dispatch_starfish.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_starfish dispatch_starfish.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
queue_finalizer queue_finalizer.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o queue_finalizer queue_finalizer.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_after dispatch_after.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_after dispatch_after.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_apply dispatch_apply.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_apply dispatch_apply.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_drift dispatch_drift.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_drift dispatch_drift.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_group dispatch_group.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_group dispatch_group.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_pingpong dispatch_pingpong.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_pingpong dispatch_pingpong.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_read dispatch_read.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_read dispatch_read.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_readsync dispatch_readsync.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_readsync dispatch_readsync.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_sema dispatch_sema.o libtest.la ../src/libdispatch.la -lrt
-lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_sema dispatch_sema.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_timer_bit31 dispatch_timer_bit31.o libtest.la ../src/libdispatch.la
-lrt -lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_timer_bit31
dispatch_timer_bit31.o ./.libs/libtest.a ../src/.libs/libdispatch.a
-L/usr/local/lib /usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue
-lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
dispatch_timer_bit63 dispatch_timer_bit63.o libtest.la ../src/libdispatch.la
-lrt -lBlocksRuntime
libtool: link: clang -Wall -fblocks -o dispatch_timer_bit63
dispatch_timer_bit63.o ./.libs/libtest.a ../src/.libs/libdispatch.a
-L/usr/local/lib /usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue
-lrt -lBlocksRuntime
/bin/bash ../libtool --tag=CC --mode=link clang -Wall -fblocks -o
summarize summarize.o libtest.la ../src/libdispatch.la -lrt -lBlocksRuntime
libtool: link: clang -Wall -fblocks -o summarize summarize.o
./.libs/libtest.a ../src/.libs/libdispatch.a -L/usr/local/lib
/usr/local/lib/libkqueue.so -lpthread -lpthread_workqueue -lrt -lBlocksRuntime
make[1]: Leaving directory `/home/mheily/proj/libdispatch/trunk/testing'
make[1]: Entering directory `/home/mheily/proj/libdispatch/trunk'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/home/mheily/proj/libdispatch/trunk'
Making check in dispatch
make[1]: Entering directory `/home/mheily/proj/libdispatch/trunk/dispatch'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/home/mheily/proj/libdispatch/trunk/dispatch'
Making check in man
make[1]: Entering directory `/home/mheily/proj/libdispatch/trunk/man'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/home/mheily/proj/libdispatch/trunk/man'
Making check in src
make[1]: Entering directory `/home/mheily/proj/libdispatch/trunk/src'
make check-am
make[2]: Entering directory `/home/mheily/proj/libdispatch/trunk/src'
make[2]: Nothing to be done for `check-am'.
make[2]: Leaving directory `/home/mheily/proj/libdispatch/trunk/src'
make[1]: Leaving directory `/home/mheily/proj/libdispatch/trunk/src'
Making check in testing
make[1]: Entering directory `/home/mheily/proj/libdispatch/trunk/testing'
make check-TESTS
make[2]: Entering directory `/home/mheily/proj/libdispatch/trunk/testing'
==================================================
[TEST] Dispatch (Public) API
[PID] 22489
==================================================
Actual: 0x60e930
Expected: 0x60e930
[PASS] dispatch_get_main_queue
PASS: dispatch_api
==================================================
[TEST] Dispatch C99
[PID] 22494
==================================================
Actual: 0x60e930
Expected: 0x60e930
[PASS] dispatch_get_main_queue
PASS: dispatch_c99
==================================================
[TEST] Dispatch Cascade
[PID] 22499
==================================================
maxcount = 4589
*
*
*
*
*
**
**
**
**
**
**
**
**
**
**
**
****
**** *
**** *
PASS: dispatch_cascade
==================================================
[TEST] Dispatch Debug
[PID] 22505
==================================================
PASS: dispatch_debug
==================================================
[TEST] Dispatch Priority
[PID] 22508
==================================================
LOW: 0
DEFAULT: 64
****************************************
HIGH: 128
********************************************************************************
Actual: 192
Expected: 192
[PASS] blocks completed
Actual: 0
Expected: <128
[PASS] high priority precedence
PASS: dispatch_priority
==================================================
[TEST] Dispatch Priority (Set Target Queue)
[PID] 22523
==================================================
Actual: 0x24a0010
Expected: 0x24a0010
[PASS] q[i]
Actual: 0x24a03f0
Expected: 0x24a03f0
[PASS] q[i]
Actual: 0x24a04f0
Expected: 0x24a04f0
[PASS] q[i]
LOW: 55
***********************************
DEFAULT: 68
*******************************************
HIGH: 69
********************************************
Actual: 192
Expected: 192
[PASS] blocks completed
Actual: 55
Expected: <69
[PASS] high priority precedence
PASS: dispatch_priority2
==================================================
[TEST] Dispatch Starfish
[PID] 22563
==================================================
lap: 10
count: 1000
delta: 253154404 ns
math: 126.450751 ns / lap
Actual: 126
Expected: <1000
[PASS] Latency
lap: 9
count: 1000
delta: 244419153 ns
math: 122.087489 ns / lap
Actual: 122
Expected: <1000
[PASS] Latency
lap: 8
count: 1000
delta: 242866543 ns
math: 121.311960 ns / lap
Actual: 121
Expected: <1000
[PASS] Latency
lap: 7
count: 1000
delta: 230088962 ns
math: 114.929551 ns / lap
Actual: 114
Expected: <1000
[PASS] Latency
lap: 6
count: 1000
delta: 227835408 ns
math: 113.803900 ns / lap
Actual: 113
Expected: <1000
[PASS] Latency
lap: 5
count: 1000
delta: 229035669 ns
math: 114.403431 ns / lap
Actual: 114
Expected: <1000
[PASS] Latency
lap: 4
count: 1000
delta: 241895838 ns
math: 120.827092 ns / lap
Actual: 120
Expected: <1000
[PASS] Latency
lap: 3
count: 1000
delta: 236407153 ns
math: 118.085491 ns / lap
Actual: 118
Expected: <1000
[PASS] Latency
lap: 2
count: 1000
delta: 243509736 ns
math: 121.633235 ns / lap
Actual: 121
Expected: <1000
[PASS] Latency
lap: 1
count: 1000
delta: 304179905 ns
math: 151.938014 ns / lap
Actual: 151
Expected: <1000
[PASS] Latency
PASS: dispatch_starfish
==================================================
[TEST] Dispatch Queue Finalizer
[PID] 22571
==================================================
Actual: 0x169c010
Expected: 0x169c010
[PASS] dispatch_queue_new
Actual: 0x408682dccb5c13d
Expected: 0x408682dccb5c13d
[PASS] finalizer ran
PASS: queue_finalizer
==================================================
[TEST] Dispatch After
[PID] 22577
==================================================
Actual: 0
Expected: <2500714199
[PASS] can't finish faster than 5.5s
Actual: 0
Expected: <-1500713421
[FAIL] must finish faster than 6.5s (dispatch_after.c:54)
dispatch_after.c:54
Actual: 0
Expected: <1500193540
[PASS] can't finish faster than 1.5s
Actual: 0
Expected: <-500193186
[FAIL] must finish faster than 2.5s (dispatch_after.c:62)
dispatch_after.c:62
Actual: 0
Expected: <12619
[PASS] can't finish faster than 0s
Actual: 0
Expected: <499987633
[PASS] must finish faster than .5s
PASS: dispatch_after
==================================================
[TEST] Dispatch Apply
[PID] 22586
==================================================
Actual: 0x60f6b0
Expected: 0x60f6b0
[PASS] dispatch_get_concurrent_queue
Actual: 32
Expected: 32
[PASS] count
PASS: dispatch_apply
==================================================
[TEST] Timer drift test
[PID] 22592
==================================================
Actual: 0xe57010
Expected: 0xe57010
[PASS] DISPATCH_SOURCE_TYPE_TIMER
20: jitter 0.000000, drift 0.000000
21: jitter 1.900662, drift 1.900662
22: jitter 1.900660, drift -0.000002
23: jitter 1.900664, drift 0.000004
24: jitter 1.900660, drift -0.000004
25: jitter 1.900664, drift 0.000004
26: jitter 1.900662, drift -0.000002
27: jitter 1.900662, drift -0.000000
28: jitter 1.900663, drift 0.000001
29: jitter 1.900666, drift 0.000003
30: jitter 1.900664, drift -0.000002
50: jitter -0.000251, drift -1.900915
51: jitter 1.900664, drift 1.900915
52: jitter 1.900662, drift -0.000002
53: jitter 1.900665, drift 0.000003
54: jitter 1.900662, drift -0.000003
55: jitter 1.900664, drift 0.000002
56: jitter 1.900666, drift 0.000002
57: jitter 1.900663, drift -0.000003
58: jitter 1.900667, drift 0.000004
59: jitter 1.900665, drift -0.000002
60: jitter 1.900663, drift -0.000002
80: jitter -0.000496, drift -1.901159
81: jitter 1.900664, drift 1.901160
82: jitter 1.900662, drift -0.000002
83: jitter 1.900661, drift -0.000001
84: jitter 1.900639, drift -0.000022
85: jitter 1.900662, drift 0.000023
86: jitter 1.900585, drift -0.000077
87: jitter 1.900666, drift 0.000081
88: jitter 1.900663, drift -0.000003
89: jitter 1.900664, drift 0.000001
90: jitter 1.900664, drift 0.000000
110: jitter -0.000741, drift -1.901405
111: jitter 1.900660, drift 1.901401
112: jitter 1.900659, drift -0.000001
113: jitter 1.900663, drift 0.000004
114: jitter 1.900660, drift -0.000003
115: jitter 1.900663, drift 0.000003
116: jitter 1.900667, drift 0.000004
117: jitter 1.900664, drift -0.000003
118: jitter 1.900664, drift 0.000000
119: jitter 1.900661, drift -0.000003
120: jitter 1.900662, drift 0.000001
140: jitter -0.000992, drift -1.901654
141: jitter 1.900663, drift 1.901655
142: jitter 1.900663, drift -0.000000
143: jitter 1.900662, drift -0.000001
144: jitter 1.900658, drift -0.000004
145: jitter 1.900662, drift 0.000004
146: jitter 1.900662, drift 0.000000
147: jitter 1.900663, drift 0.000001
148: jitter 1.900664, drift 0.000001
149: jitter 1.900663, drift -0.000001
150: jitter 1.900663, drift 0.000000
170: jitter -0.001235, drift -1.901898
171: jitter 1.900663, drift 1.901898
172: jitter 1.900664, drift 0.000001
173: jitter 1.900661, drift -0.000003
174: jitter 1.900662, drift 0.000001
175: jitter 1.900663, drift 0.000001
176: jitter 1.900662, drift -0.000001
177: jitter 1.900664, drift 0.000002
178: jitter 1.900662, drift -0.000002
179: jitter 1.900663, drift 0.000001
180: jitter 1.900663, drift 0.000000
200: jitter -0.001487, drift -1.902150
201: jitter 1.900665, drift 1.902152
202: jitter 1.900662, drift -0.000003
203: jitter 1.900662, drift 0.000000
204: jitter 1.900664, drift 0.000002
205: jitter 1.900664, drift 0.000000
206: jitter 1.900657, drift -0.000007
207: jitter 1.900648, drift -0.000009
208: jitter 1.900655, drift 0.000007
209: jitter 1.900665, drift 0.000010
210: jitter 1.900635, drift -0.000030
230: jitter -0.001727, drift -1.902362
231: jitter 1.900666, drift 1.902393
232: jitter 1.900663, drift -0.000003
233: jitter 1.900650, drift -0.000013
234: jitter 1.900629, drift -0.000021
235: jitter 1.900577, drift -0.000052
236: jitter 1.900650, drift 0.000073
237: jitter 1.900657, drift 0.000007
238: jitter 1.900632, drift -0.000025
239: jitter 1.900628, drift -0.000004
240: jitter 1.900623, drift -0.000005
260: jitter -0.001974, drift -1.902597
Actual: 0.584784
Expected: <0.000100
[FAIL] average jitter (dispatch_drift.c:87)
dispatch_drift.c:87
Actual: 0.000008
Expected: <0.000100
[PASS] average drift
PASS: dispatch_drift
==================================================
[TEST] Dispatch Group
[PID] 22607
==================================================
Actual: 0x2332010
Expected: 0x2332010
[PASS] dispatch_group_async
Actual: 0x2332010
Expected: 0x2332010
[PASS] dispatch_group_async
sleeping...
sleeping...
sleeping...
Actual: 0
Expected: 0
[PASS] dispatch_group_wait
done.
done.
done.
Actual: 0
Expected: 0
[PASS] dispatch_group_wait
Actual: 0x2332010
Expected: 0x2332010
[PASS] dispatch_group_async
Actual: 0x60f930
Expected: 0x60f930
[PASS] Notification Received
PASS: dispatch_group
==================================================
[TEST] Dispatch Ping Pong
[PID] 22614
==================================================
Actual: 0xb9d010
Expected: 0xb9d010
[PASS] dispatch_queue_create(ping)
Actual: 0xb9d0c0
Expected: 0xb9d0c0
[PASS] dispatch_queue_create(pong)
Actual: 0xb9d170
Expected: 0xb9d170
[PASS] dispatch_group_create
Actual: 1000000
Expected: 1000000
[PASS] count
PASS: dispatch_pingpong
==================================================
[TEST] Dispatch Source Read
[PID] 22620
==================================================
Actual: 0x60e950
Expected: 0x60e950
[PASS] dispatch_get_main_queue
Actual: 0xbed010
Expected: 0xbed010
[PASS] DISPATCH_SOURCE_TYPE_READ
bytes available: 1
bytes read: 512000
/bin/bash: line 5: 22620 Terminated ${dir}$tst
FAIL: dispatch_read
==================================================
[TEST] Dispatch Reader/Writer Queues
[PID] 22631
==================================================
PASS: dispatch_readsync
==================================================
[TEST] Dispatch Semaphore
[PID] 22637
==================================================
Actual: 10000
Expected: 10000
[PASS] count
PASS: dispatch_sema
==================================================
[TEST] Dispatch Source Timer, bit 31
[PID] 22643
==================================================
Actual: 0x60e920
Expected: 0x60e920
[PASS] dispatch_get_main_queue
Actual: 0xe47010
Expected: 0xe47010
[PASS] DISPATCH_SOURCE_TYPE_TIMER
Actual: 5
Expected: <4
[FAIL] elapsed time < 4s (dispatch_timer_bit31.c:66)
dispatch_timer_bit31.c:66
Actual: 1
Expected: <5
[PASS] elapsed time > 2s
PASS: dispatch_timer_bit31
==================================================
[TEST] Dispatch Source Timer, bit 63
[PID] 22650
==================================================
0
PASS: dispatch_timer_bit63
===========================================
1 of 18 tests failed
Please report to libdispatch(a)macosforge.org
===========================================
5
8
Hi:
Hope this is the right place to ask for advice.
I am using Xcode 3.2 and am a bit annoyed by the fact that GCP gets automatically included in my binary.
It does not seem actually to cause any problems, but it is annoying when I debug my multithreaded code, since there are always additional thread that do not have any reason to exist.
Is there any way to tell Xcode to not include libdispatch?
Thanks
Stefan
2
1
Hi,
I thought I’d give an update also on the progress of the Solaris port in the same vein as Mark did for the Linux one.
Thanks to the work of Mark on libkqueue, I’ve now been able to build and run the test suite with proper block support on Solaris using clang 2.8.
I used the most recent versions of libkqueue, libdispatch, libpthread_workqueue and compiler-rt, build and checkout instructions are below for reference if someone else wants to run it - prerequisite is a clang/llvm 2.8 compiler (which for the record builds fine using gcc 4.5.1).
The tests below were run on an 8-core Nehalem machine (16 virtual cores) and built everything for 64-bits.
All tests except one succeed, which is for the average jitter in the dispatch_drift test (perhaps the threshold is just a bit too aggressive, the actual is almost always 0.0002 rather than 0.0001…):
---
Actual: 0.000195
Expected: <0.000100
[FAIL] average jitter (dispatch_drift.c:87)
dispatch_drift.c:87
Actual: 0.000001
Expected: <0.000100
[PASS] average drift
PASS: dispatch_drift
---
There is only two required patches (attached below), one small for libpthread_workqueue (which has been submitted to Mark), but the other one is for disabling __private_extern__ completely while building with clang - the problem is that the linker used by clang (it falls back to the gnu linker AFAICT) does not properly support symbol visibility attributes on Solaris - this was fixed in the private-extern.m4 script previously for the “visibility(“hidden”)” flag, but as “__private_extern__” is supported by clang (but not by the gcc linker), linkage fails for the symbols declared as __private_extern__. I’m trying to figure out how to get clang to use the native Solaris linker instead (without success so far), as that should allow for proper linkage without disabling symbol visibility.
The proper workaround (to check whether __private_extern__ is _really_ supported at link time), is unfortunately difficult to achieve - what is needed is to try AC_TRY_LINK() but with *two* input source files (I do have a perfectly minimized test for it), but there seems to be no way to set up such a ‘complex’ test unfortunately - if anyone knows how to provide two input files to AC_TRY_LINK, I’m all ears...
I’m leaning towards having a manual option for turning the __private_extern__ support off, but it seems a bit heavy-handed.
Cheers,
Joakim
—————————
-bash-3.00$ clang --version
clang version 2.8 (tags/RELEASE_28 123229)
Target: i386-pc-solaris2.10
Thread model: posix
-bash-3.00$
-bash-3.00$ $MAKE check
Making check in dispatch
gmake[1]: Entering directory `/home/jocke/gcd/cb31/libdispatch/trunk/dispatch'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/home/jocke/gcd/cb31/libdispatch/trunk/dispatch'
Making check in man
gmake[1]: Entering directory `/home/jocke/gcd/cb31/libdispatch/trunk/man'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/home/jocke/gcd/cb31/libdispatch/trunk/man'
Making check in src
gmake[1]: Entering directory `/home/jocke/gcd/cb31/libdispatch/trunk/src'
/opt/csw/bin/gmake check-am
gmake[2]: Entering directory `/home/jocke/gcd/cb31/libdispatch/trunk/src'
gmake[2]: Nothing to be done for `check-am'.
gmake[2]: Leaving directory `/home/jocke/gcd/cb31/libdispatch/trunk/src'
gmake[1]: Leaving directory `/home/jocke/gcd/cb31/libdispatch/trunk/src'
Making check in testing
gmake[1]: Entering directory `/home/jocke/gcd/cb31/libdispatch/trunk/testing'
/opt/csw/bin/gmake check-TESTS
gmake[2]: Entering directory `/home/jocke/gcd/cb31/libdispatch/trunk/testing'
==================================================
[TEST] Dispatch (Public) API
[PID] 16294
==================================================
Actual: 412950
Expected: 412950
[PASS] dispatch_get_main_queue
PASS: dispatch_api
==================================================
[TEST] Dispatch C99
[PID] 16310
==================================================
Actual: 412950
Expected: 412950
[PASS] dispatch_get_main_queue
PASS: dispatch_c99
==================================================
[TEST] Dispatch Cascade
[PID] 16329
==================================================
maxcount = 3208
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* * * * * *
** * * * * * * * * * * * * * *
PASS: dispatch_cascade
==================================================
[TEST] Dispatch Debug
[PID] 16345
==================================================
PASS: dispatch_debug
==================================================
[TEST] Dispatch Priority
[PID] 16361
==================================================
LOW: 46
*****************************
DEFAULT: 36
***********************
HIGH: 110
*********************************************************************
Actual: 192
Expected: 192
[PASS] blocks completed
Actual: 46
Expected: <110
[PASS] high priority precedence
PASS: dispatch_priority
==================================================
[TEST] Dispatch Priority (Set Target Queue)
[PID] 16377
==================================================
Actual: 414a60
Expected: 414a60
[PASS] q[i]
Actual: 417560
Expected: 417560
[PASS] q[i]
Actual: 417610
Expected: 417610
[PASS] q[i]
LOW: 55
***********************************
DEFAULT: 64
****************************************
HIGH: 73
**********************************************
Actual: 192
Expected: 192
[PASS] blocks completed
Actual: 55
Expected: <73
[PASS] high priority precedence
PASS: dispatch_priority2
==================================================
[TEST] Dispatch Starfish
[PID] 16393
==================================================
lap: 10
count: 1000
delta: 680694550 ns
math: 340.007268 ns / lap
Actual: 340
Expected: <1000
[PASS] Latency
lap: 9
count: 1000
delta: 587094143 ns
math: 293.253818 ns / lap
Actual: 293
Expected: <1000
[PASS] Latency
lap: 8
count: 1000
delta: 810081631 ns
math: 404.636179 ns / lap
Actual: 404
Expected: <1000
[PASS] Latency
lap: 7
count: 1000
delta: 512007899 ns
math: 255.748201 ns / lap
Actual: 255
Expected: <1000
[PASS] Latency
lap: 6
count: 1000
delta: 462883519 ns
math: 231.210549 ns / lap
Actual: 231
Expected: <1000
[PASS] Latency
lap: 5
count: 1000
delta: 475580888 ns
math: 237.552891 ns / lap
Actual: 237
Expected: <1000
[PASS] Latency
lap: 4
count: 1000
delta: 437686340 ns
math: 218.624545 ns / lap
Actual: 218
Expected: <1000
[PASS] Latency
lap: 3
count: 1000
delta: 834601783 ns
math: 416.884007 ns / lap
Actual: 416
Expected: <1000
[PASS] Latency
lap: 2
count: 1000
delta: 683405606 ns
math: 341.361442 ns / lap
Actual: 341
Expected: <1000
[PASS] Latency
lap: 1
count: 1000
delta: 559356398 ns
math: 279.398800 ns / lap
Actual: 279
Expected: <1000
[PASS] Latency
PASS: dispatch_starfish
==================================================
[TEST] Dispatch Queue Finalizer
[PID] 16434
==================================================
Actual: 414db0
Expected: 414db0
[PASS] dispatch_queue_new
Actual: c59ff648302c6300
Expected: c59ff648302c6300
[PASS] finalizer ran
PASS: queue_finalizer
==================================================
[TEST] Dispatch After
[PID] 16450
==================================================
Actual: 0
Expected: <500073671
[PASS] can't finish faster than 5.5s
Actual: 0
Expected: <499927056
[PASS] must finish faster than 6.5s
Actual: 0
Expected: <500054705
[PASS] can't finish faster than 1.5s
Actual: 0
Expected: <499946039
[PASS] must finish faster than 2.5s
Actual: 0
Expected: <18204
[PASS] can't finish faster than 0s
Actual: 0
Expected: <499982964
[PASS] must finish faster than .5s
PASS: dispatch_after
==================================================
[TEST] Dispatch Apply
[PID] 16466
==================================================
Actual: fffffd7fff290530
Expected: fffffd7fff290530
[PASS] dispatch_get_concurrent_queue
Actual: 32
Expected: 32
[PASS] count
PASS: dispatch_apply
==================================================
[TEST] Timer drift test
[PID] 16482
==================================================
Actual: 414f10
Expected: 414f10
[PASS] DISPATCH_SOURCE_TYPE_TIMER
1: jitter 0.000000, drift 0.000000
2: jitter -0.000205, drift -0.000205
3: jitter -0.000202, drift 0.000003
4: jitter -0.000207, drift -0.000005
5: jitter -0.000204, drift 0.000003
6: jitter -0.000201, drift 0.000003
7: jitter -0.000211, drift -0.000010
8: jitter -0.000201, drift 0.000010
9: jitter -0.000201, drift -0.000000
10: jitter -0.000202, drift -0.000001
11: jitter -0.000200, drift 0.000002
12: jitter -0.000201, drift -0.000001
13: jitter -0.000201, drift 0.000000
14: jitter -0.000208, drift -0.000007
15: jitter -0.000202, drift 0.000006
16: jitter -0.000022, drift 0.000180
17: jitter -0.000008, drift 0.000014
18: jitter -0.000207, drift -0.000199
19: jitter -0.000002, drift 0.000205
20: jitter -0.000203, drift -0.000201
21: jitter -0.000203, drift 0.000000
22: jitter -0.000207, drift -0.000004
23: jitter -0.000206, drift 0.000001
24: jitter -0.000210, drift -0.000004
25: jitter -0.000205, drift 0.000005
26: jitter -0.000002, drift 0.000203
27: jitter -0.000011, drift -0.000009
28: jitter -0.000205, drift -0.000194
29: jitter -0.000004, drift 0.000201
30: jitter -0.000008, drift -0.000004
31: jitter -0.000203, drift -0.000195
32: jitter -0.000206, drift -0.000003
33: jitter -0.000200, drift 0.000006
34: jitter -0.000206, drift -0.000006
35: jitter -0.000203, drift 0.000003
36: jitter -0.000001, drift 0.000202
37: jitter -0.000007, drift -0.000006
38: jitter -0.000202, drift -0.000195
39: jitter -0.000019, drift 0.000183
40: jitter -0.000012, drift 0.000007
41: jitter -0.000201, drift -0.000189
42: jitter -0.000202, drift -0.000001
43: jitter -0.000206, drift -0.000004
44: jitter -0.000210, drift -0.000004
45: jitter -0.000207, drift 0.000003
46: jitter -0.000001, drift 0.000206
47: jitter -0.000006, drift -0.000005
48: jitter -0.000212, drift -0.000206
49: jitter -0.000005, drift 0.000207
50: jitter -0.000006, drift -0.000001
51: jitter -0.000204, drift -0.000198
52: jitter -0.000206, drift -0.000002
53: jitter -0.000206, drift 0.000000
54: jitter -0.000210, drift -0.000004
55: jitter -0.000205, drift 0.000005
56: jitter -0.000205, drift 0.000000
57: jitter -0.000008, drift 0.000197
58: jitter -0.000205, drift -0.000197
59: jitter -0.000208, drift -0.000003
60: jitter -0.000004, drift 0.000204
61: jitter -0.000203, drift -0.000199
62: jitter -0.000208, drift -0.000005
63: jitter -0.000208, drift 0.000000
64: jitter -0.000218, drift -0.000010
65: jitter -0.000204, drift 0.000014
66: jitter -0.000004, drift 0.000200
67: jitter -0.000009, drift -0.000005
68: jitter -0.000207, drift -0.000198
69: jitter -0.000003, drift 0.000204
70: jitter -0.000005, drift -0.000002
71: jitter -0.000206, drift -0.000201
72: jitter -0.000205, drift 0.000001
73: jitter -0.000205, drift 0.000000
74: jitter -0.000196, drift 0.000009
75: jitter -0.000204, drift -0.000008
76: jitter -0.000206, drift -0.000002
77: jitter -0.000207, drift -0.000001
78: jitter -0.000201, drift 0.000006
79: jitter -0.000002, drift 0.000199
80: jitter -0.000019, drift -0.000017
81: jitter -0.000206, drift -0.000187
82: jitter -0.000210, drift -0.000004
83: jitter -0.000213, drift -0.000003
84: jitter -0.000233, drift -0.000020
85: jitter -0.000010, drift 0.000223
86: jitter -0.000205, drift -0.000195
87: jitter -0.000213, drift -0.000008
88: jitter -0.000211, drift 0.000002
89: jitter -0.000216, drift -0.000005
90: jitter -0.000017, drift 0.000199
91: jitter -0.000210, drift -0.000193
92: jitter -0.000026, drift 0.000184
93: jitter -0.000213, drift -0.000187
94: jitter -0.000019, drift 0.000194
95: jitter -0.000207, drift -0.000188
96: jitter -0.000206, drift 0.000001
97: jitter -0.000214, drift -0.000008
98: jitter -0.000208, drift 0.000006
99: jitter -0.000201, drift 0.000007
100: jitter -0.000203, drift -0.000002
101: jitter -0.000201, drift 0.000002
102: jitter -0.000220, drift -0.000019
103: jitter -0.000210, drift 0.000010
104: jitter -0.000039, drift 0.000171
105: jitter -0.000016, drift 0.000023
106: jitter -0.000210, drift -0.000194
107: jitter -0.000214, drift -0.000004
108: jitter -0.000226, drift -0.000012
109: jitter -0.000008, drift 0.000218
110: jitter -0.000012, drift -0.000004
111: jitter -0.000223, drift -0.000211
112: jitter -0.000012, drift 0.000211
113: jitter -0.000210, drift -0.000198
114: jitter -0.000225, drift -0.000015
115: jitter -0.000205, drift 0.000020
116: jitter -0.000206, drift -0.000001
117: jitter -0.000218, drift -0.000012
118: jitter -0.000223, drift -0.000005
119: jitter -0.000212, drift 0.000011
120: jitter -0.000229, drift -0.000017
121: jitter -0.000213, drift 0.000016
122: jitter -0.000019, drift 0.000194
123: jitter -0.000023, drift -0.000004
124: jitter -0.000247, drift -0.000224
125: jitter -0.000208, drift 0.000039
126: jitter -0.000207, drift 0.000001
127: jitter -0.000219, drift -0.000012
128: jitter -0.000209, drift 0.000010
129: jitter 0.000000, drift 0.000209
130: jitter -0.000015, drift -0.000015
131: jitter -0.000207, drift -0.000192
132: jitter -0.000027, drift 0.000180
133: jitter -0.000007, drift 0.000020
134: jitter -0.000235, drift -0.000228
135: jitter -0.000226, drift 0.000009
136: jitter -0.000211, drift 0.000015
137: jitter -0.000219, drift -0.000008
138: jitter -0.000202, drift 0.000017
139: jitter -0.000021, drift 0.000181
140: jitter -0.000205, drift -0.000184
141: jitter -0.000211, drift -0.000006
142: jitter -0.000023, drift 0.000188
143: jitter -0.000012, drift 0.000011
144: jitter -0.000255, drift -0.000243
145: jitter -0.000027, drift 0.000228
146: jitter -0.000216, drift -0.000189
147: jitter -0.000210, drift 0.000006
148: jitter -0.000211, drift -0.000001
149: jitter -0.000208, drift 0.000003
150: jitter -0.000020, drift 0.000188
151: jitter -0.000204, drift -0.000184
152: jitter -0.000220, drift -0.000016
153: jitter -0.000208, drift 0.000012
154: jitter -0.000223, drift -0.000015
155: jitter -0.000209, drift 0.000014
156: jitter -0.000210, drift -0.000001
157: jitter -0.000215, drift -0.000005
158: jitter -0.000210, drift 0.000005
159: jitter -0.000211, drift -0.000001
160: jitter -0.000025, drift 0.000186
161: jitter -0.000207, drift -0.000182
162: jitter -0.000014, drift 0.000193
163: jitter -0.000011, drift 0.000003
164: jitter -0.000227, drift -0.000216
165: jitter -0.000013, drift 0.000214
166: jitter -0.000218, drift -0.000205
167: jitter -0.000213, drift 0.000005
168: jitter -0.000042, drift 0.000171
169: jitter -0.000232, drift -0.000190
170: jitter -0.000011, drift 0.000221
171: jitter -0.000201, drift -0.000190
172: jitter -0.000224, drift -0.000023
173: jitter -0.000203, drift 0.000021
174: jitter -0.000015, drift 0.000188
175: jitter -0.000200, drift -0.000185
176: jitter -0.000017, drift 0.000183
177: jitter -0.000206, drift -0.000189
178: jitter -0.000038, drift 0.000168
179: jitter -0.000222, drift -0.000184
180: jitter -0.000022, drift 0.000200
181: jitter -0.000220, drift -0.000198
182: jitter -0.000016, drift 0.000204
183: jitter -0.000213, drift -0.000197
184: jitter -0.000209, drift 0.000004
185: jitter -0.000217, drift -0.000008
186: jitter -0.000208, drift 0.000009
187: jitter -0.000216, drift -0.000008
188: jitter -0.000030, drift 0.000186
189: jitter -0.000235, drift -0.000205
190: jitter -0.000013, drift 0.000222
191: jitter -0.000208, drift -0.000195
192: jitter -0.000225, drift -0.000017
193: jitter -0.000204, drift 0.000021
194: jitter -0.000235, drift -0.000031
195: jitter -0.000206, drift 0.000029
196: jitter -0.000219, drift -0.000013
197: jitter -0.000220, drift -0.000001
198: jitter -0.000210, drift 0.000010
199: jitter -0.000201, drift 0.000009
200: jitter -0.000027, drift 0.000174
201: jitter -0.000203, drift -0.000176
202: jitter -0.000224, drift -0.000021
203: jitter -0.000215, drift 0.000009
204: jitter -0.000225, drift -0.000010
205: jitter -0.000210, drift 0.000015
206: jitter -0.000209, drift 0.000001
207: jitter -0.000215, drift -0.000006
208: jitter -0.000020, drift 0.000195
209: jitter -0.000221, drift -0.000201
210: jitter -0.000025, drift 0.000196
211: jitter -0.000224, drift -0.000199
212: jitter -0.000227, drift -0.000003
213: jitter -0.000218, drift 0.000009
214: jitter -0.000219, drift -0.000001
215: jitter -0.000214, drift 0.000005
216: jitter -0.000007, drift 0.000207
217: jitter -0.000214, drift -0.000207
218: jitter -0.000207, drift 0.000007
219: jitter -0.008142, drift -0.007935
220: jitter -0.000574, drift 0.007568
221: jitter -0.000061, drift 0.000513
222: jitter -0.000206, drift -0.000145
223: jitter -0.000008, drift 0.000198
224: jitter -0.000216, drift -0.000208
225: jitter -0.000202, drift 0.000014
226: jitter -0.000200, drift 0.000002
227: jitter -0.000201, drift -0.000001
228: jitter -0.000205, drift -0.000004
229: jitter -0.000206, drift -0.000001
230: jitter -0.000204, drift 0.000002
231: jitter -0.000201, drift 0.000003
232: jitter -0.000219, drift -0.000018
233: jitter -0.000214, drift 0.000005
234: jitter -0.000227, drift -0.000013
235: jitter -0.000216, drift 0.000011
236: jitter -0.000204, drift 0.000012
237: jitter -0.000201, drift 0.000003
238: jitter -0.000204, drift -0.000003
239: jitter -0.000216, drift -0.000012
240: jitter -0.000211, drift 0.000005
241: jitter -0.000204, drift 0.000007
242: jitter -0.000208, drift -0.000004
243: jitter -0.000207, drift 0.000001
244: jitter -0.000227, drift -0.000020
245: jitter -0.000215, drift 0.000012
246: jitter -0.000208, drift 0.000007
247: jitter -0.000214, drift -0.000006
248: jitter -0.000228, drift -0.000014
249: jitter -0.000215, drift 0.000013
250: jitter -0.000219, drift -0.000004
Actual: 0.000195
Expected: <0.000100
[FAIL] average jitter (dispatch_drift.c:87)
dispatch_drift.c:87
Actual: 0.000001
Expected: <0.000100
[PASS] average drift
PASS: dispatch_drift
==================================================
[TEST] Dispatch Group
[PID] 16515
==================================================
Actual: 415990
Expected: 415990
[PASS] dispatch_group_async
Actual: 415990
Expected: 415990
[PASS] dispatch_group_async
sleeping...
sleeping...
sleeping...
Actual: 0
Expected: 0
[PASS] dispatch_group_wait
done.
done.
done.
Actual: 0
Expected: 0
[PASS] dispatch_group_wait
Actual: 415990
Expected: 415990
[PASS] dispatch_group_async
Actual: 4134d0
Expected: 4134d0
[PASS] Notification Received
PASS: dispatch_group
==================================================
[TEST] Dispatch Ping Pong
[PID] 16531
==================================================
Actual: 414660
Expected: 414660
[PASS] dispatch_queue_create(ping)
Actual: 414710
Expected: 414710
[PASS] dispatch_queue_create(pong)
Actual: 4147c0
Expected: 4147c0
[PASS] dispatch_group_create
Actual: 1000000
Expected: 1000000
[PASS] count
PASS: dispatch_pingpong
==================================================
[TEST] Dispatch Source Read
[PID] 16547
==================================================
Actual: 4902f0
Expected: 4902f0
[PASS] dispatch_get_main_queue
Actual: 491ce0
Expected: 491ce0
[PASS] DISPATCH_SOURCE_TYPE_READ
bytes available: 1
bytes read: 512000
bytes available: 1
bytes read: 512000
bytes available: 1
bytes read: 512000
bytes available: 1
bytes read: 512000
bytes available: 1
bytes read: 438813
Actual: 0
Expected: 0
[PASS] EOF
Actual: 2486813
Expected: 2486813
[PASS] Bytes read
Actual: 0
Expected: 0
[PASS] close
PASS: dispatch_read
==================================================
[TEST] Dispatch Reader/Writer Queues
[PID] 16563
==================================================
PASS: dispatch_readsync
==================================================
[TEST] Dispatch Semaphore
[PID] 16579
==================================================
Actual: 10000
Expected: 10000
[PASS] count
PASS: dispatch_sema
==================================================
[TEST] Dispatch Source Timer, bit 31
[PID] 16595
==================================================
Actual: 413150
Expected: 413150
[PASS] dispatch_get_main_queue
Actual: 414b30
Expected: 414b30
[PASS] DISPATCH_SOURCE_TYPE_TIMER
Actual: 2
Expected: <4
[PASS] elapsed time < 4s
Actual: 1
Expected: <2
[PASS] elapsed time > 2s
PASS: dispatch_timer_bit31
==================================================
[TEST] Dispatch Source Timer, bit 63
[PID] 16611
==================================================
0
PASS: dispatch_timer_bit63
==================================================
[TEST] Dispatch C++
[PID] 16627
==================================================
Actual: 4128d0
Expected: 4128d0
[PASS] dispatch_get_main_queue
PASS: dispatch_plusplus
===================
All 19 tests passed
===================
gmake[2]: Leaving directory `/home/jocke/gcd/cb31/libdispatch/trunk/testing'
gmake[1]: Leaving directory `/home/jocke/gcd/cb31/libdispatch/trunk/testing'
gmake[1]: Entering directory `/home/jocke/gcd/cb31/libdispatch/trunk'
gmake[1]: Nothing to be done for `check-am'.
gmake[1]: Leaving directory `/home/jocke/gcd/cb31/libdispatch/trunk'
-bash-3.00$
—————————
The complete build was done with (replace the two ‘cp’:s below with applying the patches instead):
——————
export XX_SOURCE_ROOT=/home/jocke/gcd/cb31
export CC=clang
export CXX=clang++
export NM=llvm-nm
export LD=clang
export PKG_CONFIG_PATH=$XX_SOURCE_ROOT/usr/local/lib/pkgconfig
export SVN=/opt/csw/bin/svn
export MAKE=/opt/csw/bin/gmake
export DESTDIR=$XX_SOURCE_ROOT
mkdir $XX_SOURCE_ROOT
mkdir $XX_SOURCE_ROOT/build
cd $XX_SOURCE_ROOT
$SVN co svn://mark.heily.com/libkqueue libkqueue
$SVN co svn://mark.heily.com/libpthread_workqueue libpthread_workqueue
$SVN co http://svn.macosforge.org/repository/libdispatch libdispatch
$SVN co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd $XX_SOURCE_ROOT/libpthread_workqueue/trunk/
cp /home/jocke/gcd/cb5/libpthread_workqueue/trunk/pthread_workqueue.c .
./configure DESTDIR=$XX_SOURCE_ROOT
$MAKE
$MAKE install DESTDIR=$XX_SOURCE_ROOT
cd $XX_SOURCE_ROOT/libkqueue/trunk/
./configure
$MAKE -j16 CFLAGS="-I./include -I./src/common -fpic -Wall -Werror -g -std=c99 -D_XOPEN_SOURCE=600 -m64 -D__EXTENSIONS__"
$MAKE install DESTDIR=$XX_SOURCE_ROOT
cd $XX_SOURCE_ROOT/build
cmake -DCMAKE_C_FLAGS=-m64 -DCMAKE_CXX_FLAGS=-m64 ../compiler-rt/
$MAKE -j16
$MAKE install DESTDIR=$XX_SOURCE_ROOT
cd $XX_SOURCE_ROOT/libdispatch/trunk/
cp /home/jocke/gcd/cb21/libdispatch/trunk/m4/private-extern.m4 m4/private-extern.m4
sh autogen.sh
./configure CFLAGS="-m64 -I$XX_SOURCE_ROOT/usr/local/include -L$XX_SOURCE_ROOT/usr/local/lib -R$XX_SOURCE_ROOT/usr/local/lib" CXXFLAGS=-m64 --with-blocks-runtime=$XX_SOURCE_ROOT/usr/local/lib
$MAKE install -j16 CFLAGS="-m64 -I$XX_SOURCE_ROOT/usr/local/include/kqueue -I$XX_SOURCE_ROOT/usr/local/include -L$XX_SOURCE_ROOT/usr/local/lib -R$XX_SOURCE_ROOT/usr/local/lib -fblocks" CXXFLAGS="-m64 -fblocks"
———
Following diffs;
libpthread_workqueue (due to RLIMIT_NPROC unavailability on Solaris, fix provided to Mark);
===================================================================
--- pthread_workqueue.c (revision 36)
+++ pthread_workqueue.c (working copy)
@@ -78,6 +78,9 @@
#define PTHREAD_WORKQUEUE_SIG 0xBEBEBEBE
#define PTHREAD_WORKQUEUE_ATTR_SIG 0xBEBEBEBE
+/* The allowed number of threads if RLIMIT_NPROC is not availble */
+#define RLIMIT_NPROC_DEFAULT_THREAD_LIMIT 128
+
struct work {
STAILQ_ENTRY(work) item_entry;
void (*func)(void *);
@@ -413,14 +416,18 @@
static unsigned int
get_process_limit(void)
{
+#ifdef RLIMIT_NPROC
struct rlimit rlim;
if (getrlimit(RLIMIT_NPROC, &rlim) < 0) {
dbg_perror("getrlimit(2)");
- return (50);
+ return (RLIMIT_NPROC_DEFAULT_THREAD_LIMIT);
} else {
return (rlim.rlim_max);
}
+#else
+ return (RLIMIT_NPROC_DEFAULT_THREAD_LIMIT);
+#endif
}
static unsigned int
————————
and for libdispatch, disabling __private_extern__ as described above:
————————
Index: m4/private-extern.m4
===================================================================
--- m4/private-extern.m4 (revision 197)
+++ m4/private-extern.m4 (working copy)
@@ -19,15 +19,7 @@
[dispatch_cv_private_extern=yes],
[dispatch_cv_private_extern=no])])
-if test $dispatch_cv_private_extern = yes; then
- AC_DEFINE(HAVE_PRIVATE_EXTERN, 1, Define if __private_extern__ present)
-elif test $dispatch_cv_hidden_visibility_attribute = yes; then
- AC_DEFINE(HAVE_PRIVATE_EXTERN, 1, Define if __private_extern__ present)
- AC_DEFINE([__private_extern__], [extern __attribute__ ((visibility ("hidden")))],
- [Define to a replacement for __private_extern])
-else
AC_DEFINE([__private_extern__], [extern],
[Define to a replacement for __private_extern])
-fi
])
————————
1
1