1
2# DRD suppressions for Darwin 9.x / Mac OS X 10.5 Leopard
3
4#
5# Suppression patterns for dyld, the dynamic loader.
6#
7
8{
9   drd-darwin-dyld-register-func-for-add-image
10   drd:MutexErr
11   fun:pthread_mutex_unlock
12   fun:_dyld_register_func_for_add_image
13   fun:__keymgr_initializer
14   fun:libSystem_initializer
15}
16{
17   drd-darwin-dyld-register-func-for-remove-image
18   drd:MutexErr
19   fun:pthread_mutex_unlock
20   fun:_dyld_register_func_for_remove_image
21   fun:__keymgr_initializer
22   fun:libSystem_initializer
23}
24{
25   drd-darwin-dyld-GlobalLockInitialize
26   drd:MutexErr
27   fun:pthread_mutex_init
28   fun:_Z24dyldGlobalLockInitializev
29   fun:_dyld_initializer
30}
31{
32   drd-darwin-dyld-bindLazySymbol
33   drd:ConflictingAccess
34   ...
35   fun:_ZN4dyld14bindLazySymbolEPK11mach_headerPm
36   fun:stub_binding_helper_interface2
37}
38{
39   drd-darwin-dyld-addImage
40   drd:ConflictingAccess
41   fun:_ZN4dyld8addImageEP11ImageLoader
42}
43{
44   dyld-ImageLoader::link
45   drd:ConflictingAccess
46   ...
47   fun:_ZN4dyld18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
48   fun:_ZN11ImageLoader4linkERKNS_11LinkContextEbbRKNS_10RPathChainE
49   fun:_ZN4dyld4linkEP11ImageLoaderbRKNS0_10RPathChainE
50}
51{
52   drd-darwin-dyld-ImageLoaderMachO::resolveUndefined
53   drd:ConflictingAccess
54   ...
55   fun:_ZN16ImageLoaderMachO16resolveUndefinedERKN11ImageLoader11LinkContextEPK11macho_nlistbPPKS0_
56}
57{
58   drd-darwin-dyld-ImageLoaderMachO::findExportedSymbol
59   drd:ConflictingAccess
60   fun:_ZNK16ImageLoaderMachO18findExportedSymbolEPKcPKvbPPK11ImageLoader
61   fun:_ZNK11ImageLoader41findExportedSymbolInDependentImagesExceptEPKcPPKS_RS4_S4_S4_
62   fun:_ZNK11ImageLoader42findExportedSymbolInImageOrDependentImagesEPKcRKNS_11LinkContextEPPKS_
63   fun:dlsym
64}
65
66
67#
68# Suppression patterns for libc, Darwin's C library.
69#
70
71{
72   drd-darwin-libc-cerror
73   drd:ConflictingAccess
74   ...
75   fun:cerror
76}
77{
78   drd-darwin-libc-rand
79   drd:ConflictingAccess
80   fun:do_rand
81}
82{
83   drd-darwin-libc-vfprintf-1
84   drd:ConflictingAccess
85   fun:vfprintf_l
86}
87{
88   drd-darwin-libc-vfprintf-2
89   drd:ConflictingAccess
90   fun:__vfprintf
91}
92{
93   drd-darwin-libc-localeconv
94   drd:ConflictingAccess
95   fun:localeconv_l
96}
97{
98   drd-darwin-libc-fwrite
99   drd:ConflictingAccess
100   ...
101   fun:fwrite$UNIX2003
102}
103{
104   drd-darwin-cxa-guard-acquire
105   drd:ConflictingAccess
106   obj:*
107   fun:__cxa_current_exception_type
108   fun:__cxa_guard_acquire
109}
110{
111   drd-darwin-cxa-guard-release
112   drd:ConflictingAccess
113   fun:__cxa_guard_release
114}
115{
116   drd-darwin-cxa-finalize
117   drd:MutexErr
118   fun:pthread_mutex_destroy
119   fun:__tcf_115
120   fun:__cxa_finalize
121   fun:exit
122}
123{
124   drd-darwin-atexit-register
125   drd:ConflictingAccess
126   fun:atexit_register
127}
128{
129   drd-darwin-opendir
130   drd:ConflictingAccess
131   fun:telldir$UNIX2003
132   fun:__opendir2$UNIX2003
133   fun:opendir$UNIX2003
134}
135{
136   drd-darwin-readdir
137   drd:ConflictingAccess
138   fun:readdir
139}
140{
141   drd-darwin-closedir
142   drd:ConflictingAccess
143   fun:closedir$UNIX2003
144}
145{
146   drd:darwin-ptrace
147   drd:ConflictingAccess
148   fun:ptrace
149}
150
151
152#
153# Suppression patterns for libpthread, Darwin's POSIX threads implementation.
154#
155
156{
157   drd-darwin-pthread-create-1
158   drd:ConflictingAccess
159   obj:*
160   fun:thread_start
161}
162{
163   drd-darwin-pthread-create-2
164   drd:ConflictingAccess
165   ...
166   fun:pthread_create*
167}
168{
169   drd-darwin-pthread-join-1
170   drd:ConflictingAccess
171   ...
172   fun:pthread_join$UNIX2003
173}
174{
175   drd-darwin-pthread-exit
176   drd:ConflictingAccess
177   ...
178   fun:_pthread_exit
179}
180{
181   drd-darwin-pthread-find-thread
182   drd:ConflictingAccess
183   fun:_pthread_find_thread
184}
185{
186   drd-darwin-pthread-spin-unlock
187   drd:ConflictingAccess
188   fun:spin_unlock
189}
190{
191   drd-darwin-pthread-testcancel
192   drd:ConflictingAccess
193   fun:_pthread_testcancel
194}
195{
196   drd-darwin-pthread-detach
197   drd:ConflictingAccess
198   ...
199   fun:pthread_detach
200}
201{
202   drd-darwin-pthread-detach
203   drd:CondRaceErr
204   ...
205   fun:pthread_detach
206}
207{
208   drd-darwin-pthread-kill
209   drd:ConflictingAccess
210   ...
211   fun:pthread_kill
212}
213{
214   drd-darwin-pthread-free-pthread-onstack
215   drd:ConflictingAccess
216   fun:mig_dealloc_reply_port
217   fun:_pthread_free_pthread_onstack
218}
219{
220   drd-darwin-pthread-mach-thread-np
221   drd:ConflictingAccess
222   ...
223   fun:pthread_mach_thread_np
224}
225{
226   drd-darwin-pthread-key-create
227   drd:ConflictingAccess
228   fun:pthread_key_create
229}
230
231
232#
233# Suppression patterns for libobjc.
234#
235
236# It looks like the implementation of objc_msgSend uses another means than the
237# POSIX threads library for locking. More information about messaging and
238# objc_msgSend can be found here:
239# http://devworld.apple.com/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtHowMessagingWorks.html
240#
241
242{
243   drd-darwin-objc-msgSend
244   drd:ConflictingAccess
245   ...
246   fun:objc_msgSend
247}
248{
249   drd-darwin-objc-msgSend
250   drd:ConflictingAccess
251   ...
252   fun:objc_sync_enter
253}
254
255
256#
257# Suppression patterns for CoreFoundation.framework.
258#
259
260# Suppressions for NSObject methods. For more information about the NSObject
261# class, see also
262# http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html
263{
264   drd-darwin-NSObject-release
265   drd:ConflictingAccess
266   ...
267   fun:-[NSObject release]
268}
269{
270   drd-darwin-NSObject-autorelease-1
271   drd:ConflictingAccess
272   ...
273   fun:-[NSObject(NSObject) autorelease]
274}
275{
276   drd-darwin-NSObject-autorelease-2
277   drd:ConflictingAccess
278   fun:__NSAutoreleaseObject
279}
280{
281   drd-darwin-NSObject-NSDeallocateObject
282   drd:ConflictingAccess
283   fun:_internal_object_dispose
284   fun:NSDeallocateObject
285}
286{
287   drd-darwin-NSObject-retain
288   drd:ConflictingAccess
289   ...
290   fun:-[NSObject retain]
291}
292{
293   drd-darwin-NSObject-retainCount
294   drd:ConflictingAccess
295   ...
296   fun:-[NSObject retainCount]
297}
298{
299   drd-darwin-NSObject-NSDelayedPerforming-1
300   drd:ConflictingAccess
301   ...
302   fun:+[NSObject(NSDelayedPerforming) cancelPreviousPerformRequestsWithTarget:selector:object:]
303}
304{
305   drd-darwin-NSObject-NSDelayedPerforming-2
306   drd:ConflictingAccess
307   ...
308   fun:-[NSObject(NSDelayedPerforming) performSelector:withObject:afterDelay:]
309}
310{
311   drd-darwin-NSObject-NSDelayedPerforming-3
312   drd:ConflictingAccess
313   ...
314   fun:-[NSObject(NSDelayedPerforming) performSelector:withObject:afterDelay:inModes:]
315}
316{
317   drd-darwin-NSObject-NSDelayedPerforming-4
318   drd:ConflictingAccess
319   ...
320   fun:-[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:modes:]
321}
322{
323   drd-darwin-NSObject-NSDelayedPerforming-5
324   drd:ConflictingAccess
325   ...
326   fun:-[NSObject(NSThreadPerformAdditions) performSelectorOnMainThread:withObject:waitUntilDone:]
327}
328
329# Suppressions for methods of the NSThread class.
330{
331   drd-NSThread-nq
332   drd:ConflictingAccess
333   ...
334   fun:-[NSThread _nq:]
335}
336
337# Suppressions for methods of the NSLock class. See also
338# http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSLock_Class/Reference/Reference.html
339{
340   drd-darwin-NSLock-lock
341   drd:ConflictingAccess
342   fun:-[NSLock lock]
343}
344{
345   drd-darwin-NSLock-unlock
346   drd:ConflictingAccess
347   fun:-[NSLock unlock]
348}
349# Suppressions for NSCondition methods.
350{
351   drd-darwin-NSConditionLock-lock
352   drd:ConflictingAccess
353   fun:-[NSCondition lock]
354}
355# Suppressions for NSConditionLock methods.
356{
357   drd-darwin-NSConditionLock-lockWhenCondition:beforeDate:
358   drd:ConflictingAccess
359   fun:-[NSConditionLock lockWhenCondition:beforeDate:]
360}
361
362
363# NSExtraRefCount returns the specified object's reference count, and
364# NSDecrementExtraRefCountWasZero decrements the specified object's reference
365# count.
366# See also http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html
367{
368   drd-darwin-NSExtraRefCount
369   drd:ConflictingAccess
370   ...
371   fun:NSExtraRefCount
372}
373{
374   drd-darwin-NSDecrementExtraRefCountWasZero
375   drd:ConflictingAccess
376   ...
377   fun:NSDecrementExtraRefCountWasZero
378}
379# For more information about key-value observing, see also the NSKeyValueObserving Protocol Reference:
380# http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueObserving_Protocol/Reference/Reference.html
381{
382   drd-darwin-NSKVONotify
383   drd:ConflictingAccess
384   ...
385   fun:NSKVONotify
386}
387{
388   drd-darwin-NSKVONotifyingEnableForInfoAndKey
389   drd:ConflictingAccess
390   ...
391   fun:_NSKVONotifyingEnableForInfoAndKey
392}
393# From the NSRunLoop class reference:
394# Warning: The NSRunLoop class is generally not considered to be thread-safe
395# and its methods should only be called within the context of the current
396# thread. You should never try to call the methods of an NSRunLoop object
397# running in a different thread, as doing so might cause unexpected results.
398# See also the NSRunLoop Class Reference:
399# http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSRunLoop_Class/Reference/Reference.html
400# {
401#    drd-darwin-CFRunLoop*
402#    drd:ConflictingAccess
403#    ...
404#    fun:CFRunLoop*
405# }
406# See also the CFBag reference:
407# http://developer.apple.com/documentation/CoreFoundation/Reference/CFBagRef/Reference/reference.html
408# {
409#    drd-darwin-CFBag*
410#    drd:ConflictingAccess
411#    fun:CFBag*
412# }
413
414# Suppression patterns for the memory allocation functions in WTF.
415{
416   drd-WTF::fastCalloc
417   drd:ConflictingAccess
418   ...
419   fun:_ZN3WTF10fastCallocEmm
420}
421{
422   drd-WTF::fastMalloc
423   drd:ConflictingAccess
424   ...
425   fun:_ZN3WTF10fastMallocEm
426}
427{
428   drd-WTF::fastFree
429   drd:ConflictingAccess
430   ...
431   fun:_ZN3WTF8fastFreeEPv
432}
433
434# Suppression patterns for the string manipulation functions in WebCore.
435{
436   drd-WebCore::StringImpl::init
437   drd:ConflictingAccess
438   ...
439   fun:_ZN7WebCore10StringImpl4initEPKcj
440}
441{
442   drd-WebCore::StringImpl::append
443   drd:ConflictingAccess
444   ...
445   fun:_ZN7WebCore10StringImpl6appendEPKtj
446}
447{
448   drd-WebCore::CString::init
449   drd:ConflictingAccess
450   ...
451   fun:_ZN7WebCore7CString4initEPKcj
452}
453
454# Suppression patterns for the text encoding functions in WebCore.
455{
456   drd-WebCore::WebCore::TextCodec::~TextCodec()
457   drd:ConflictingAccess
458   fun:_ZN7WebCore9TextCodecD2Ev
459}
460{
461   drd-WebCore::TextCodecICU::TextCodecICU
462   drd:ConflictingAccess
463   fun:_ZN7WebCore12TextCodecICUC2ERKNS_12TextEncodingE
464}
465{
466   drd-WebCore::TextCodecICU::~TextCodecICU
467   drd:ConflictingAccess
468   fun:_ZN7WebCore12TextCodecICUD0Ev
469}
470