Re: [yocto] [meta-darwin][PATCH] osx-runtime: OSX Yosemite v10.10

2015-11-12 Thread Trevor Woerner
On 08/12/15 16:01, Bystricky, Juro wrote:
> yes, I ran into the same libgcc problem, I plan on tackling it eventually. 
> Likely some paths are not set correctly.
> For what is worth, try to build the SDK against the poky "dizzy" branch.
> I was able to build Darwin SDK with it. You may need to patch some other 
> files though.
> Anyway, there is new repo 
> https://git.yoctoproject.org/cgit/cgit.cgi/meta-darwin-contrib/
> where I will place some Darwin patches, most notably those I used to build 
> the "dizzy" SDK (later next week).

I can't seem to get even this working (i.e. generating an SDK for MacOSX
using dizzy).

$ cat conf/bblayers.conf

# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "6"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /z/darwinSDK/layers/meta-poky/meta \
  /z/darwinSDK/layers/meta-poky/meta-yocto \
  /z/darwinSDK/layers/meta-poky/meta-yocto-bsp \
  /z/darwinSDK/layers/meta-darwin-contrib \
  "
BBLAYERS_NON_REMOVABLE ?= " \
  /z/darwinSDK/layers/meta-poky/meta \
  /z/darwinSDK/layers/meta-poky/meta-yocto \



$ cat conf/local.conf

MACHINE ??= "qemux86"
DL_DIR ?= "/home/trevor/devel/Downloads"
DISTRO ?= "poky"
PACKAGE_CLASSES ?= "package_rpm"
EXTRA_IMAGE_FEATURES = "debug-tweaks"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K"
PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
ASSUME_PROVIDED += "libsdl-native"
CONF_VERSION = "1"

SDKMACHINE = "i386-darwin"



build config:
$ bitbake core-image-minimal -c populate_sdk

Build Configuration:
BB_VERSION= "1.24.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING   = "openSUSE-project-13.2"
TARGET_SYS= "i586-poky-linux"
MACHINE   = "qemux86"
DISTRO= "poky"
DISTRO_VERSION= "1.7.3"
TUNE_FEATURES = "m32 i586"
TARGET_FPU= ""
meta 
meta-yocto   
meta-yocto-bsp= "dizzy:b38454c2e3a7a58f5397bb16d59e2b0aa71c4a94"
meta-darwin-contrib =
"juro/dizzy/osx-runtime:396962db08ed77c5ee83cd5dd2c301402ec826c1"



meta-darwin-contrib doesn't have a "dizzy" branch, but I tried all of
the "juro/dizzy/*" branches individually without success. Is there
anything obvious I'm doing wrong?
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] [meta-darwin][PATCH] osx-runtime: OSX Yosemite v10.10

2015-08-12 Thread Trevor Woerner
On 08/11/15 17:48, Juro Bystricky wrote:
 Set of patches to allow building against OSX Yosemite v10.10 runtime.

Excellent! My build failed, then I noticed your patches.

Even with this patch applied, however, my build fails with native-libffi
in do_patch. It appears the existing darwinfix.patch no longer
applies. I updated the patch so libffi can now do_patch successfully,
but I don't know if it builds since gcc-crosssdk-i386 fails in do_compile.

|
/z/layerindex/firefly/tmp/work/i386-linux/gcc-crosssdk-i386/4.9.3-r0/gcc-4.9.3/build.x86_64-linux.i386-pokysdk-darwin/./gcc/xgcc
-B/z/layerindex/firefly/tmp/work/i386-linux/gcc-crosssdk-i386/4.9.3-r0/gcc-4.9.3/build.x86_64-linux.i386-pokysdk-darwin/./gcc/
-B/z/layerindex/firefly/tmp/sysroots/x86_64-linux/usr/i386-pokysdk-darwin/bin/
-B/z/layerindex/firefly/tmp/sysroots/x86_64-linux/usr/i386-pokysdk-darwin/lib/
-isystem
/z/layerindex/firefly/tmp/sysroots/x86_64-linux/usr/i386-pokysdk-darwin/include
-isystem
/z/layerindex/firefly/tmp/sysroots/x86_64-linux/usr/i386-pokysdk-darwin/sys-include
--sysroot=/z/layerindex/firefly/tmp/sysroots/i386-nativesdk-darwin-pokysdk-darwin
  -O2  -g -Os -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -W -Wall
-Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include   -pipe
-fno-common -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector
-dynamiclib -nodefaultlibs -install_name
/z/layerindex/firefly/tmp/sysroots/x86_64-linux/usr/i386-pokysdk-darwin/lib/libgcc_s.1.dylib
-single_module -o ./libgcc_s.dylib -Wl,-exported_symbols_list,libgcc.map
-compatibility_version 1 -current_version 1.0 -g -Os -B./ _muldi3_s.o
_negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o
_ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o
_absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o
_mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o
_ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o
_ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o
_paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o
_powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o
_divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o
_clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o
_fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o
_fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o
_floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o
_fixsfti_s.o _fixdfti_s.o _fixxfti_s.o _fixtfti_s.o _fixunssfti_s.o
_fixunsdfti_s.o _fixunsxfti_s.o _fixunstfti_s.o _floattisf_s.o
_floattidf_s.o _floattixf_s.o _floattitf_s.o _floatuntisf_s.o
_floatuntidf_s.o _floatuntixf_s.o _floatuntitf_s.o _divdi3_s.o
_moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o
darwin-64_s.o cpuinfo_s.o tf-signs_s.o sfp-exceptions_s.o addtf3_s.o
divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o
subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o
floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o
extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o
trunctfdf2_s.o trunctfxf2_s.o enable-execute-stack_s.o unwind-dw2_s.o
unwind-dw2-fde-darwin_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o
libgcc.a -lc
| ld: library not found for -ldylib1.o

It's strange that it says library not found for -ldylib1.o because
that library is in my sdk's sysroot:

$ find . -name *dylib1* -print
./tmp/sysroots/i386-nativesdk-darwin-pokysdk-darwin/usr/lib/dylib1.o
./tmp/sysroots/i386-nativesdk-darwin-pokysdk-darwin/usr/lib/dylib1.10.5.o
./tmp/sysroots/i386-nativesdk-darwin-pokysdk-darwin/usr/lib/lazydylib1.o


Have you had any success building? The line I'm using to invoke the
build is:

$ SDKMACHINE=i386-darwin bitbake core-image-minimal -c populate_sdk

and the details of my build are:

Build Configuration:
BB_VERSION= 1.27.1
BUILD_SYS = x86_64-linux
NATIVELSBSTRING   = openSUSE-project-13.2
TARGET_SYS= arm-poky-linux-gnueabi
MACHINE   = firefly-emmc-mainline
DISTRO= poky
DISTRO_VERSION= 1.8+snapshot-20150812
TUNE_FEATURES = arm armv7a vfp neon cortexa15
TARGET_FPU= vfp-neon
meta  = master:4c3329630e5bf6f2229c6a85052ce71f7cc71703
meta-rockchip =
contrib/twoerner/emmc-first-draft:be45e46f73c5ea7118e4be9511e1ee7652e1ebcf
meta-yocto= master:eefd3580e451a09e7f4696f306d955a4caa1cf88
meta-darwin   =
contrib/twoerner/fixes:6234b82444b1ebf9bfb0ac8deb5cb582c89cb41d

my layers are:
openembedded-core/meta
meta-rockchip
meta-yocto/meta-yocto
meta-darwin

Thoughts?
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] [meta-darwin][PATCH] osx-runtime: OSX Yosemite v10.10

2015-08-12 Thread Bystricky, Juro
yes, I ran into the same libgcc problem, I plan on tackling it eventually. 
Likely some paths are not set correctly.
For what is worth, try to build the SDK against the poky dizzy branch.
I was able to build Darwin SDK with it. You may need to patch some other files 
though.
Anyway, there is new repo 
https://git.yoctoproject.org/cgit/cgit.cgi/meta-darwin-contrib/
where I will place some Darwin patches, most notably those I used to build 
the dizzy SDK (later next week).



 -Original Message-
 From: Trevor Woerner [mailto:twoer...@gmail.com]
 Sent: Wednesday, August 12, 2015 11:22 AM
 To: Bystricky, Juro; yocto@yoctoproject.org
 Cc: richard.pur...@linuxfoundation.org
 Subject: Re: [meta-darwin][PATCH] osx-runtime: OSX Yosemite v10.10
 
 On 08/11/15 17:48, Juro Bystricky wrote:
  Set of patches to allow building against OSX Yosemite v10.10 runtime.
 
 Excellent! My build failed, then I noticed your patches.
 
 Even with this patch applied, however, my build fails with native-libffi in
 do_patch. It appears the existing darwinfix.patch no longer applies. I
 updated the patch so libffi can now do_patch successfully, but I don't know if
 it builds since gcc-crosssdk-i386 fails in do_compile.
 
 |
 /z/layerindex/firefly/tmp/work/i386-linux/gcc-crosssdk-i386/4.9.3-r0/gcc-
 4.9.3/build.x86_64-linux.i386-pokysdk-darwin/./gcc/xgcc
 -B/z/layerindex/firefly/tmp/work/i386-linux/gcc-crosssdk-i386/4.9.3-r0/gcc-
 4.9.3/build.x86_64-linux.i386-pokysdk-darwin/./gcc/
 -B/z/layerindex/firefly/tmp/sysroots/x86_64-linux/usr/i386-pokysdk-
 darwin/bin/
 -B/z/layerindex/firefly/tmp/sysroots/x86_64-linux/usr/i386-pokysdk-
 darwin/lib/
 -isystem
 /z/layerindex/firefly/tmp/sysroots/x86_64-linux/usr/i386-pokysdk-
 darwin/include
 -isystem
 /z/layerindex/firefly/tmp/sysroots/x86_64-linux/usr/i386-pokysdk-
 darwin/sys-include
 --sysroot=/z/layerindex/firefly/tmp/sysroots/i386-nativesdk-darwin-
 pokysdk-darwin
   -O2  -g -Os -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-
 narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes
 -Wmissing-prototypes -Wold-style-definition  -isystem ./include   -pipe
 -fno-common -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -
 dynamiclib -nodefaultlibs -install_name
 /z/layerindex/firefly/tmp/sysroots/x86_64-linux/usr/i386-pokysdk-
 darwin/lib/libgcc_s.1.dylib
 -single_module -o ./libgcc_s.dylib -Wl,-exported_symbols_list,libgcc.map
 -compatibility_version 1 -current_version 1.0 -g -Os -B./ _muldi3_s.o
 _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o
 _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o
 _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o
 _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o
 _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o
 _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o
 _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o
 _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o
 _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o
 _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o
 _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o
 _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o
 _floatundixf_s.o _fixsfti_s.o _fixdfti_s.o _fixxfti_s.o _fixtfti_s.o
 _fixunssfti_s.o _fixunsdfti_s.o _fixunsxfti_s.o _fixunstfti_s.o _floattisf_s.o
 _floattidf_s.o _floattixf_s.o _floattitf_s.o _floatuntisf_s.o _floatuntidf_s.o
 _floatuntixf_s.o _floatuntitf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o
 _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o darwin-64_s.o
 cpuinfo_s.o tf-signs_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o eqtf2_s.o
 getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o
 fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o
 floatditf_s.o floatunditf_s.o extendsftf2_s.o extenddftf2_s.o
 extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o enable-
 execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-darwin_s.o unwind-
 sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc
 | ld: library not found for -ldylib1.o
 
 It's strange that it says library not found for -ldylib1.o because that 
 library is
 in my sdk's sysroot:
 
 $ find . -name *dylib1* -print
 ./tmp/sysroots/i386-nativesdk-darwin-pokysdk-darwin/usr/lib/dylib1.o
 ./tmp/sysroots/i386-nativesdk-darwin-pokysdk-darwin/usr/lib/dylib1.10.5.o
 ./tmp/sysroots/i386-nativesdk-darwin-pokysdk-darwin/usr/lib/lazydylib1.o
 
 
 Have you had any success building? The line I'm using to invoke the build is:
 
 $ SDKMACHINE=i386-darwin bitbake core-image-minimal -c populate_sdk
 
 and the details of my build are:
 
 Build Configuration:
 BB_VERSION= 1.27.1
 BUILD_SYS = x86_64-linux
 NATIVELSBSTRING   = openSUSE-project-13.2
 TARGET_SYS= arm-poky-linux-gnueabi
 MACHINE   = firefly-emmc-mainline
 DISTRO= 

[yocto] [meta-darwin][PATCH] osx-runtime: OSX Yosemite v10.10

2015-08-11 Thread Juro Bystricky
Set of patches to allow building against OSX Yosemite v10.10 runtime.

Signed-off-by: Juro Bystricky juro.bystri...@intel.com
---
 .../files/fix_typedef_dispatch_block_t.patch   |   16 +
 .../files/foundation_framework_headers_clang.patch | 1065 
 .../osx-runtime/files/fsevents-clang.patch |  135 +++
 ...vailability_with_message_for_gcc_osx10.10.patch |  128 +++
 .../osx-runtime/nativesdk-osx-runtime_10.10.bb |   70 ++
 5 files changed, 1414 insertions(+)
 create mode 100644 
recipes-devtools/osx-runtime/files/fix_typedef_dispatch_block_t.patch
 create mode 100644 
recipes-devtools/osx-runtime/files/foundation_framework_headers_clang.patch
 create mode 100644 recipes-devtools/osx-runtime/files/fsevents-clang.patch
 create mode 100644 
recipes-devtools/osx-runtime/files/remove_unsupported_attribute_availability_with_message_for_gcc_osx10.10.patch
 create mode 100644 recipes-devtools/osx-runtime/nativesdk-osx-runtime_10.10.bb

diff --git 
a/recipes-devtools/osx-runtime/files/fix_typedef_dispatch_block_t.patch 
b/recipes-devtools/osx-runtime/files/fix_typedef_dispatch_block_t.patch
new file mode 100644
index 000..6a1bace
--- /dev/null
+++ b/recipes-devtools/osx-runtime/files/fix_typedef_dispatch_block_t.patch
@@ -0,0 +1,16 @@
+Index: OSX-sdk/usr/include/dispatch/object.h
+===
+--- OSX-sdk.orig/usr/include/dispatch/object.h
 OSX-sdk/usr/include/dispatch/object.h
+@@ -140,7 +140,11 @@ typedef union {
+  * Instead, the block literal must be copied to the heap with the Block_copy()
+  * function or by sending it a -[copy] message.
+  */
++#if defined(__clang__)
+ typedef void (^dispatch_block_t)(void);
++#else
++typedef void* dispatch_block_t;
++#endif
+ 
+ __BEGIN_DECLS
+ 
diff --git 
a/recipes-devtools/osx-runtime/files/foundation_framework_headers_clang.patch 
b/recipes-devtools/osx-runtime/files/foundation_framework_headers_clang.patch
new file mode 100644
index 000..0f87c53
--- /dev/null
+++ 
b/recipes-devtools/osx-runtime/files/foundation_framework_headers_clang.patch
@@ -0,0 +1,1065 @@
+Index: 
OSX-sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSArray.h
+===
+--- 
OSX-sdk.orig/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSArray.h
 
OSX-sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSArray.h
+@@ -55,7 +55,7 @@
+ - (NSArray *)objectsAtIndexes:(NSIndexSet *)indexes;
+ 
+ - (id)objectAtIndexedSubscript:(NSUInteger)idx NS_AVAILABLE(10_8, 6_0);
+-
++#if defined(__clang__)
+ - (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL 
*stop))block NS_AVAILABLE(10_6, 4_0);
+ - (void)enumerateObjectsWithOptions:(NSEnumerationOptions)opts 
usingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block 
NS_AVAILABLE(10_6, 4_0);
+ - (void)enumerateObjectsAtIndexes:(NSIndexSet *)s 
options:(NSEnumerationOptions)opts usingBlock:(void (^)(id obj, NSUInteger idx, 
BOOL *stop))block NS_AVAILABLE(10_6, 4_0);
+@@ -67,7 +67,20 @@
+ - (NSIndexSet *)indexesOfObjectsPassingTest:(BOOL (^)(id obj, NSUInteger idx, 
BOOL *stop))predicate NS_AVAILABLE(10_6, 4_0);
+ - (NSIndexSet *)indexesOfObjectsWithOptions:(NSEnumerationOptions)opts 
passingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate 
NS_AVAILABLE(10_6, 4_0);
+ - (NSIndexSet *)indexesOfObjectsAtIndexes:(NSIndexSet *)s 
options:(NSEnumerationOptions)opts passingTest:(BOOL (^)(id obj, NSUInteger 
idx, BOOL *stop))predicate NS_AVAILABLE(10_6, 4_0);
++#else
++- (void)enumerateObjectsUsingBlock:(void *(id obj, NSUInteger idx, BOOL 
*stop))block NS_AVAILABLE(10_6, 4_0);
++- (void)enumerateObjectsWithOptions:(NSEnumerationOptions)opts 
usingBlock:(void *(id obj, NSUInteger idx, BOOL *stop))block NS_AVAILABLE(10_6, 
4_0);
++- (void)enumerateObjectsAtIndexes:(NSIndexSet *)s 
options:(NSEnumerationOptions)opts usingBlock:(void *(id obj, NSUInteger idx, 
BOOL *stop))block NS_AVAILABLE(10_6, 4_0);
++
++- (NSUInteger)indexOfObjectPassingTest:(BOOL *(id obj, NSUInteger idx, BOOL 
*stop))predicate NS_AVAILABLE(10_6, 4_0);
++- (NSUInteger)indexOfObjectWithOptions:(NSEnumerationOptions)opts 
passingTest:(BOOL *(id obj, NSUInteger idx, BOOL *stop))predicate 
NS_AVAILABLE(10_6, 4_0);
++- (NSUInteger)indexOfObjectAtIndexes:(NSIndexSet *)s 
options:(NSEnumerationOptions)opts passingTest:(BOOL *(id obj, NSUInteger idx, 
BOOL *stop))predicate NS_AVAILABLE(10_6, 4_0);
++
++- (NSIndexSet *)indexesOfObjectsPassingTest:(BOOL *(id obj, NSUInteger idx, 
BOOL *stop))predicate NS_AVAILABLE(10_6, 4_0);
++- (NSIndexSet *)indexesOfObjectsWithOptions:(NSEnumerationOptions)opts 
passingTest:(BOOL *(id obj, NSUInteger idx, BOOL *stop))predicate 
NS_AVAILABLE(10_6, 4_0);
++- (NSIndexSet *)indexesOfObjectsAtIndexes:(NSIndexSet *)s 
options:(NSEnumerationOptions)opts passingTest:(BOOL *(id obj, NSUInteger idx, 
BOOL *stop))predicate