OLD | NEW |
(Empty) | |
| 1 # This is a generated file, composed of the following suppression rules: |
| 2 # exp-ptrcheck.supp xfree-3.supp xfree-4.supp glibc-2.X-drd.supp glibc-2.34567-
NPTL-helgrind.supp glibc-2.X.supp |
| 3 { |
| 4 lib-X11-used-old-pointer-after-realloc-1 |
| 5 exp-ptrcheck:Heap |
| 6 fun:strlen |
| 7 obj:/usr/lib*/libX11.so* |
| 8 obj:/usr/lib*/libX11.so* |
| 9 } |
| 10 { |
| 11 lib-X11-used-old-pointer-after-realloc-2 |
| 12 exp-ptrcheck:Heap |
| 13 obj:/usr/lib*/libX11.so* |
| 14 obj:/usr/lib*/libX11.so* |
| 15 } |
| 16 |
| 17 { |
| 18 ld-2.X-invalid-Add32/64-who-knows |
| 19 exp-ptrcheck:Arith |
| 20 obj:/*lib*/ld-2.*so* |
| 21 obj:/*lib*/ld-2.*so* |
| 22 } |
| 23 |
| 24 { |
| 25 ld-2.X possibly applying relocations |
| 26 exp-ptrcheck:SorG |
| 27 obj:/*lib*/ld-2.*so* |
| 28 obj:/*lib*/ld-2.*so* |
| 29 } |
| 30 |
| 31 # I'm pretty sure this is a false positive caused by the sg_ stuff |
| 32 { |
| 33 glibc realpath false positive |
| 34 exp-ptrcheck:SorG |
| 35 fun:realpath |
| 36 fun:* |
| 37 } |
| 38 |
| 39 { |
| 40 If I had to guess, inlined or nameless strlen etc in ld.so |
| 41 exp-ptrcheck:Heap |
| 42 obj:/*lib*/ld-2.*so* |
| 43 obj:/*lib*/ld-2.*so* |
| 44 } |
| 45 |
| 46 { |
| 47 I think this is glibc's ultra optimised getenv doing 2 byte reads |
| 48 exp-ptrcheck:SorG |
| 49 fun:getenv |
| 50 } |
| 51 |
| 52 { |
| 53 Occurs on Fedora 7--9? |
| 54 exp-ptrcheck:Heap |
| 55 fun:_dl_fini |
| 56 fun:exit |
| 57 fun:(below main) |
| 58 } |
| 59 |
| 60 |
| 61 ##----------------------------------------------------------------------## |
| 62 |
| 63 # Errors to suppress by default with XFree86 3.3.6) |
| 64 |
| 65 # Format of this file is: |
| 66 # { |
| 67 # name_of_suppression |
| 68 # tool_name:supp_kind |
| 69 # (optional extra info for some suppression types) |
| 70 # caller0 name, or /name/of/so/file.so |
| 71 # caller1 name, or ditto |
| 72 # (optionally: caller2 name) |
| 73 # (optionally: caller3 name) |
| 74 # } |
| 75 # |
| 76 # For Memcheck, the supp_kinds are: |
| 77 # |
| 78 # Param Value1 Value2 Value4 Value8 Value16 Jump |
| 79 # Free Addr1 Addr2 Addr4 Addr8 Addr16 |
| 80 # Cond (previously known as Value0) |
| 81 # |
| 82 # and the optional extra info is: |
| 83 # if Param: name of system call param |
| 84 |
| 85 ##----------------------------------------------------------------------## |
| 86 |
| 87 { |
| 88 X11-Cond-0 |
| 89 Memcheck:Cond |
| 90 obj:*libXt.so.6.0 |
| 91 obj:*libXt.so.6.0 |
| 92 obj:*libXt.so.6.0 |
| 93 } |
| 94 { |
| 95 X11-Cond-1 |
| 96 Memcheck:Cond |
| 97 fun:__rawmemchr |
| 98 obj:*libXt.so.6.0 |
| 99 obj:*libXt.so.6.0 |
| 100 } |
| 101 |
| 102 |
| 103 # Suppressions for XFree86-3.3.X |
| 104 |
| 105 { |
| 106 X11-Addr4-1 |
| 107 Memcheck:Addr4 |
| 108 obj:/usr/X11R6/lib/libX11.so.6.1 |
| 109 obj:/usr/X11R6/lib/libX11.so.6.1 |
| 110 obj:/usr/X11R6/lib/libX11.so.6.1 |
| 111 } |
| 112 |
| 113 { |
| 114 X11-Addr4-2 |
| 115 Memcheck:Addr4 |
| 116 obj:/usr/X11R6/lib/libX11.so.6.1 |
| 117 obj:/usr/X11R6/lib/libX11.so.6.1 |
| 118 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 119 } |
| 120 |
| 121 { |
| 122 X11-Addr4-3 |
| 123 Memcheck:Addr4 |
| 124 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 125 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 126 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 127 } |
| 128 |
| 129 { |
| 130 X11-Addr4-4 |
| 131 Memcheck:Addr4 |
| 132 obj:/usr/X11R6/lib/libX11.so.6.1 |
| 133 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 134 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 135 } |
| 136 |
| 137 { |
| 138 X11-Addr4-5 |
| 139 Memcheck:Addr4 |
| 140 fun:__rawmemchr |
| 141 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 142 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 143 } |
| 144 |
| 145 { |
| 146 X11-Addr4-6 |
| 147 Memcheck:Addr4 |
| 148 obj:/usr/X11R6/lib/libXmu.so.6.0 |
| 149 obj:/usr/X11R6/lib/libXmu.so.6.0 |
| 150 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 151 } |
| 152 |
| 153 { |
| 154 X11-Addr4-7 |
| 155 Memcheck:Addr4 |
| 156 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 157 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 158 obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1 |
| 159 } |
| 160 |
| 161 { |
| 162 X11-Param-1 |
| 163 Memcheck:Param |
| 164 write(buf) |
| 165 fun:__libc_write |
| 166 obj:/usr/X11R6/lib/libX11.so.6.1 |
| 167 obj:/usr/X11R6/lib/libX11.so.6.1 |
| 168 } |
| 169 |
| 170 { |
| 171 X11-Addr4-8 |
| 172 Memcheck:Addr4 |
| 173 obj:/usr/X11R6/lib/libX11.so.6.1 |
| 174 obj:/usr/X11R6/lib/libXpm.so.4.11 |
| 175 obj:/usr/X11R6/lib/libXpm.so.4.11 |
| 176 } |
| 177 |
| 178 { |
| 179 X11-Addr4-8 |
| 180 Memcheck:Addr4 |
| 181 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 182 obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1 |
| 183 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 184 } |
| 185 |
| 186 { |
| 187 X11-Addr4-9 |
| 188 Memcheck:Addr4 |
| 189 obj:/usr/X11R6/lib/libXaw.so.6.1 |
| 190 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 191 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 192 } |
| 193 |
| 194 { |
| 195 X11-Addr4-10 |
| 196 Memcheck:Addr4 |
| 197 obj:/usr/X11R6/lib/libXaw.so.6.1 |
| 198 obj:/usr/X11R6/lib/libXaw.so.6.1 |
| 199 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 200 } |
| 201 |
| 202 { |
| 203 X11-Addr4-11 |
| 204 Memcheck:Addr4 |
| 205 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 206 obj:/usr/X11R6/lib/libXt.so.6.0 |
| 207 obj:/usr/X11R6/lib/libXaw.so.6.1 |
| 208 } |
| 209 |
| 210 |
| 211 |
| 212 ##----------------------------------------------------------------------## |
| 213 |
| 214 ##----------------------------------------------------------------------## |
| 215 |
| 216 # Errors to suppress by default with XFree86 4.1.0) |
| 217 |
| 218 # *** And a bunch of other stuff which is completely unrelated |
| 219 # to X. The default suppressions are a bit of a mess and could do |
| 220 # with a good tidying up. |
| 221 |
| 222 # Format of this file is: |
| 223 # { |
| 224 # name_of_suppression |
| 225 # tool_name:supp_kind |
| 226 # (optional extra info for some suppression types) |
| 227 # caller0 name, or /name/of/so/file.so |
| 228 # caller1 name, or ditto |
| 229 # (optionally: caller2 name) |
| 230 # (optionally: caller3 name) |
| 231 # } |
| 232 # |
| 233 # For Memcheck, the supp_kinds are: |
| 234 # |
| 235 # Param Value1 Value2 Value4 Value8 Value16 Jump |
| 236 # Free Addr1 Addr2 Addr4 Addr8 Addr16 |
| 237 # Cond (previously known as Value0) |
| 238 # |
| 239 # and the optional extra info is: |
| 240 # if Param: name of system call param |
| 241 |
| 242 # Resulting from R H 8.0 |
| 243 { |
| 244 *libc_write/libX11.so.6.2/*X11TransWrite(Param) |
| 245 Memcheck:Param |
| 246 write(buf) |
| 247 fun:*libc_write |
| 248 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 249 fun:*X11TransWrite |
| 250 } |
| 251 |
| 252 { |
| 253 libX11.so.6.2/libX11.so.6.2/libX11.so.6.2(Cond) |
| 254 Memcheck:Cond |
| 255 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 256 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 257 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 258 } |
| 259 |
| 260 { |
| 261 libXt.so.6.2/libXt.so.6.2/libXt.so.6.2(Cond) |
| 262 Memcheck:Cond |
| 263 obj:/usr/X11R6/lib*/libXt.so.6.0 |
| 264 obj:/usr/X11R6/lib*/libXt.so.6.0 |
| 265 obj:/usr/X11R6/lib*/libXt.so.6.0 |
| 266 } |
| 267 |
| 268 |
| 269 { |
| 270 libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond) |
| 271 Memcheck:Cond |
| 272 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 273 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 274 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 275 } |
| 276 |
| 277 { |
| 278 libXmu.so.6.2/libXmu.so.6.2/libXmu.so.6.2(Cond) |
| 279 Memcheck:Cond |
| 280 obj:/usr/X11R6/lib*/libXmu.so.6.2 |
| 281 obj:/usr/X11R6/lib*/libXmu.so.6.2 |
| 282 obj:/usr/X11R6/lib*/libXmu.so.6.2 |
| 283 } |
| 284 |
| 285 { |
| 286 libXt.so.6.0/libXt.so.6.0/libXaw.so.7.0(Cond) |
| 287 Memcheck:Cond |
| 288 obj:/usr/X11R6/lib*/libXt.so.6.0 |
| 289 obj:/usr/X11R6/lib*/libXt.so.6.0 |
| 290 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 291 } |
| 292 |
| 293 { |
| 294 libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Value4) |
| 295 Memcheck:Value4 |
| 296 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 297 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 298 obj:/usr/X11R6/lib*/libXt.so.6.0 |
| 299 } |
| 300 |
| 301 { |
| 302 libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Cond) |
| 303 Memcheck:Cond |
| 304 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 305 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 306 obj:/usr/X11R6/lib*/libXt.so.6.0 |
| 307 } |
| 308 |
| 309 { |
| 310 libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Cond) |
| 311 Memcheck:Cond |
| 312 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 313 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 314 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 315 } |
| 316 |
| 317 { |
| 318 libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Addr4) |
| 319 Memcheck:Addr4 |
| 320 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 321 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 322 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 323 } |
| 324 |
| 325 { |
| 326 libX11.so.6.2/libXaw.so.7.0/libXaw.so.7.0(Cond) |
| 327 Memcheck:Cond |
| 328 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 329 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 330 obj:/usr/X11R6/lib*/libXaw.so.7.0 |
| 331 } |
| 332 |
| 333 { |
| 334 libXpm.so.4.11/libXpm.so.4.11/libXpm.so.4.11 |
| 335 Memcheck:Cond |
| 336 obj:/usr/X11R6/lib*/libXpm.so.4.11 |
| 337 obj:/usr/X11R6/lib*/libXpm.so.4.11 |
| 338 obj:/usr/X11R6/lib*/libXpm.so.4.11 |
| 339 } |
| 340 |
| 341 { |
| 342 struct with uninitialized paddings |
| 343 Memcheck:Param |
| 344 writev(vector[...]) |
| 345 fun:*_writev |
| 346 fun:_X11TransSocketWritev |
| 347 fun:_X11TransWritev |
| 348 fun:* |
| 349 } |
| 350 |
| 351 { |
| 352 struct with uninitialized paddings - libxcb |
| 353 Memcheck:Param |
| 354 writev(vector[...]) |
| 355 obj:/lib*/*.so |
| 356 obj:/usr/lib*/libxcb.so.1.0.0 |
| 357 obj:/usr/lib*/libxcb.so.1.0.0 |
| 358 fun:xcb_send_request |
| 359 fun:_X* |
| 360 } |
| 361 |
| 362 { |
| 363 struct with uninitialized paddings - libxcb |
| 364 Memcheck:Param |
| 365 writev(vector[...]) |
| 366 obj:/lib*/*.so |
| 367 obj:/usr/lib*/libxcb.so.1.0.0 |
| 368 obj:/usr/lib*/libxcb.so.1.0.0 |
| 369 obj:/usr/lib*/libxcb.so.1.0.0 |
| 370 fun:xcb_* |
| 371 fun:_X* |
| 372 } |
| 373 |
| 374 { |
| 375 another struct with uninitialized paddings |
| 376 Memcheck:Param |
| 377 write(buf) |
| 378 obj:* |
| 379 fun:_IceTransSocketWrite |
| 380 fun:_IceTransWrite |
| 381 fun:_IceWrite |
| 382 } |
| 383 |
| 384 { |
| 385 Xorg 6.8.1 uninit _write* padding |
| 386 Memcheck:Param |
| 387 write(buf) |
| 388 fun:* |
| 389 fun:_X11TransWrite |
| 390 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 391 } |
| 392 |
| 393 { |
| 394 Xorg 6.8.1 uninit write padding |
| 395 Memcheck:Param |
| 396 write(buf) |
| 397 fun:write |
| 398 fun:_X11TransWrite |
| 399 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 400 } |
| 401 |
| 402 { |
| 403 Xorg 6.8.1 ICE uninit __write* padding |
| 404 Memcheck:Param |
| 405 write(buf) |
| 406 obj:* |
| 407 fun:_IceTransWrite |
| 408 fun:_IceWrite |
| 409 fun:IceFlush |
| 410 } |
| 411 |
| 412 { |
| 413 Xorg 6.8.1 writev uninit padding |
| 414 Memcheck:Param |
| 415 writev(vector[...]) |
| 416 fun:writev |
| 417 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 418 fun:_X11TransWritev |
| 419 fun:_XSend |
| 420 } |
| 421 |
| 422 { |
| 423 Xorg 6.9.0 writev uninit padding |
| 424 Memcheck:Param |
| 425 writev(vector[...]) |
| 426 fun:do_writev |
| 427 fun:writev |
| 428 obj:/usr/X11R6/lib*/libX11.so.6.2 |
| 429 fun:_X11TransWritev |
| 430 fun:_XSend |
| 431 } |
| 432 |
| 433 { |
| 434 X on SUSE11 writev uninit padding |
| 435 Memcheck:Param |
| 436 writev(vector[...]) |
| 437 fun:writev |
| 438 obj:/usr/lib*/libxcb.so* |
| 439 obj:/usr/lib*/libxcb.so* |
| 440 } |
| 441 { |
| 442 X on SUSE11 writev uninit padding 2 |
| 443 Memcheck:Param |
| 444 writev(vector[...]) |
| 445 obj:/lib*/ld-2.*.so* |
| 446 obj:/usr/lib*/libxcb.so* |
| 447 obj:/usr/lib*/libxcb.so* |
| 448 } |
| 449 { |
| 450 X on SUSE11 writev uninit padding 3 |
| 451 Memcheck:Param |
| 452 writev(vector[...]) |
| 453 obj:/lib*/ld-2.*.so* |
| 454 obj:/usr/lib*/libORBit*.so* |
| 455 obj:/usr/lib*/libORBit*.so* |
| 456 } |
| 457 { |
| 458 X on SUSE11 writev uninit padding 4 |
| 459 Memcheck:Param |
| 460 writev(vector[...]) |
| 461 obj:/lib*/libc-2.*.so* |
| 462 obj:/usr/lib*/libORBit*.so* |
| 463 obj:/usr/lib*/libORBit*.so* |
| 464 } |
| 465 |
| 466 |
| 467 # There's something strange about a % 127 in XftFontOpenInfo |
| 468 # (hashing) which gcc turns into a multiply by 33818641 and |
| 469 # some other guff instead. I don't understand it enough to |
| 470 # know if libXft is broken or if memcheck's value tracking is |
| 471 # inadequate here. Anyway, for the moment, suppress it. |
| 472 # |
| 473 # Use of uninitialised value of size 8 |
| 474 # at 0x71A59F8: XftFontOpenInfo (in /usr/X11R6/lib64/libXft.so.2.1.2) |
| 475 # by 0x71A5F0D: XftFontOpenPattern (in /usr/X11R6/lib64/libXft.so.2.1.2) |
| 476 # by 0x65F166E: loadFontConfigFont(QFontPrivate const*, QFontDef const&, |
| 477 # QFont::Script) (qfontdatabase_x11.cpp:1942) |
| 478 # by 0x65F5DE4: QFontDatabase::findFont(QFont::Script, QFontPrivate const*, |
| 479 # QFontDef const&, int) (qfontdatabase.cpp:996) |
| 480 { |
| 481 XftFontOpenInfo-umod-127-strangeness |
| 482 Memcheck:Value8 |
| 483 obj:/usr/X11*/lib*/libXft.so* |
| 484 obj:/usr/X11*/lib*/libXft.so* |
| 485 } |
| 486 { |
| 487 XftFontOpenInfo-umod-127-strangeness-a-la-xorg |
| 488 Memcheck:Value8 |
| 489 obj:/usr/lib*/libXft.so* |
| 490 obj:/usr/lib*/libXft.so* |
| 491 } |
| 492 |
| 493 { |
| 494 More X padding stuff |
| 495 Memcheck:Param |
| 496 writev(vector[...]) |
| 497 fun:*writev* |
| 498 obj:/usr/X11*/lib*/libX11.so* |
| 499 obj:/usr/X11*/lib*/libX11.so* |
| 500 } |
| 501 |
| 502 |
| 503 ##----------------------------------------------------------------------## |
| 504 # Completely inappropriate place, but ... |
| 505 |
| 506 { |
| 507 ifort-9.X-on-i686-1 |
| 508 Memcheck:Addr4 |
| 509 fun:unaligned_bigint |
| 510 fun:hash |
| 511 fun:for__add_to_lf_table |
| 512 } |
| 513 { |
| 514 ifort-9.X-on-amd64-1 |
| 515 Memcheck:Addr8 |
| 516 fun:unaligned_bigint |
| 517 fun:hash |
| 518 fun:for__add_to_lf_table |
| 519 } |
| 520 |
| 521 |
| 522 # zlib-1.2.x uses uninitialised memory in some tricky way which |
| 523 # apparently is harmless (it must amount to a vectorised while-loop, |
| 524 # nothing else makes sense). Fools Memcheck though. See the mentioned |
| 525 # URL for details. |
| 526 { |
| 527 zlib-1.2.x trickyness (1a): See http://www.zlib.net/zlib_faq.html#faq36 |
| 528 Memcheck:Cond |
| 529 obj:/*lib*/libz.so.1.2.* |
| 530 ... |
| 531 obj:/*lib*/libz.so.1.2.* |
| 532 fun:deflate |
| 533 } |
| 534 { |
| 535 zlib-1.2.x trickyness (1b): See http://www.zlib.net/zlib_faq.html#faq36 |
| 536 Memcheck:Cond |
| 537 obj:/*lib*/libz.so.1.2.* |
| 538 fun:deflate |
| 539 } |
| 540 |
| 541 { |
| 542 zlib-1.2.x trickyness (2a): See http://www.zlib.net/zlib_faq.html#faq36 |
| 543 Memcheck:Value8 |
| 544 obj:/*lib*/libz.so.1.2.* |
| 545 ... |
| 546 obj:/*lib*/libz.so.1.2.* |
| 547 fun:deflate |
| 548 } |
| 549 { |
| 550 zlib-1.2.x trickyness (2b): See http://www.zlib.net/zlib_faq.html#faq36 |
| 551 Memcheck:Value8 |
| 552 obj:/*lib*/libz.so.1.2.* |
| 553 fun:deflate |
| 554 } |
| 555 |
| 556 { |
| 557 zlib-1.2.x trickyness (3a): See http://www.zlib.net/zlib_faq.html#faq36 |
| 558 Memcheck:Value4 |
| 559 obj:/*lib*/libz.so.1.2.* |
| 560 ... |
| 561 obj:/*lib*/libz.so.1.2.* |
| 562 fun:deflate |
| 563 } |
| 564 { |
| 565 zlib-1.2.x trickyness (3b): See http://www.zlib.net/zlib_faq.html#faq36 |
| 566 Memcheck:Value4 |
| 567 obj:/*lib*/libz.so.1.2.* |
| 568 fun:deflate |
| 569 } |
| 570 |
| 571 |
| 572 ##----------------------------------------------------------------------## |
| 573 |
| 574 ## More general versions of some of the old X suppressions above |
| 575 { |
| 576 Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond) |
| 577 Memcheck:Cond |
| 578 obj:/usr/*lib*/libXaw*so* |
| 579 obj:/usr/*lib*/libXaw*so* |
| 580 obj:/usr/*lib*/libXaw*so* |
| 581 } |
| 582 { |
| 583 Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXt(Cond) |
| 584 Memcheck:Cond |
| 585 obj:/usr/*lib*/libXaw*so* |
| 586 obj:/usr/*lib*/libXaw*so* |
| 587 obj:/usr/*lib*/libXt*so* |
| 588 } |
| 589 |
| 590 { |
| 591 Ubuntu804-hack-1 |
| 592 Memcheck:Overlap |
| 593 fun:mempcpy |
| 594 fun:_IO_default_xsputn |
| 595 obj:/lib*/libc-2.*so* |
| 596 } |
| 597 # |
| 598 # Suppression patterns for ld, the dynamic loader. |
| 599 # |
| 600 |
| 601 # Suppress all data races triggered by ld. |
| 602 { |
| 603 drd-ld |
| 604 drd:ConflictingAccess |
| 605 obj:/lib*/ld-*.so |
| 606 } |
| 607 |
| 608 # |
| 609 # Suppression patterns for libc. |
| 610 # |
| 611 |
| 612 # Suppress all data races where the topmost frame is inside libc.so. Although |
| 613 # this could hide some real data races, unfortunately this is the only way to |
| 614 # not report any false positives on stdio functions. The glibc functions |
| 615 # manipulating FILE objects use locking primitives that cannot be intercepted |
| 616 # easily. See also the definitions of _IO_lock_lock() etc. in the file |
| 617 # nptl/sysdeps/pthread/bits/stdio-lock.h in the glibc source tree. |
| 618 { |
| 619 drd-libc-stdio |
| 620 drd:ConflictingAccess |
| 621 obj:/lib*/libc-* |
| 622 } |
| 623 |
| 624 # |
| 625 # Suppression patterns for libstdc++, the implementation of the standard C++ |
| 626 # library included with the gcc compiler. |
| 627 # |
| 628 # Note: several versions of the libstdc++ library (4.2.2, 4.3.2, 4.4.0, 4.5.0 |
| 629 # and their predecessors) contain an implementation of the std::string class |
| 630 # that triggers conflicting memory accesses. See also |
| 631 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518 |
| 632 # |
| 633 |
| 634 # { |
| 635 # drd-libstdc++-std::string::string() |
| 636 # drd:ConflictingAccess |
| 637 # fun:_ZNSsC1ERKSs |
| 638 # } |
| 639 |
| 640 # |
| 641 # Suppression patterns for libpthread. |
| 642 # |
| 643 |
| 644 { |
| 645 drd-libpthread-pthread_create |
| 646 drd:ConflictingAccess |
| 647 ... |
| 648 fun:pthread_create* |
| 649 } |
| 650 { |
| 651 drd-libpthread-pthread_join |
| 652 drd:ConflictingAccess |
| 653 fun:pthread_join |
| 654 fun:pthread_join |
| 655 } |
| 656 { |
| 657 drd-libpthread-__deallocate_stack |
| 658 drd:ConflictingAccess |
| 659 ... |
| 660 fun:__deallocate_stack |
| 661 } |
| 662 { |
| 663 drd-libpthread-__free_tcb |
| 664 drd:ConflictingAccess |
| 665 ... |
| 666 fun:__free_tcb |
| 667 } |
| 668 { |
| 669 drd-libpthread-pthread_detach |
| 670 drd:ConflictingAccess |
| 671 fun:pthread_detach |
| 672 fun:pthread_detach |
| 673 } |
| 674 { |
| 675 drd-libpthread-_Unwind_ForcedUnwind |
| 676 drd:ConflictingAccess |
| 677 ... |
| 678 fun:_Unwind_ForcedUnwind |
| 679 } |
| 680 { |
| 681 drd-libpthread-_Unwind_Resume |
| 682 drd:ConflictingAccess |
| 683 ... |
| 684 fun:_Unwind_Resume |
| 685 } |
| 686 { |
| 687 drd-libpthread-nanosleep |
| 688 drd:ConflictingAccess |
| 689 fun:nanosleep |
| 690 } |
| 691 |
| 692 # |
| 693 # Suppression patterns for libgomp. |
| 694 # |
| 695 |
| 696 # Unfortunately many statements in libgomp trigger conflicting accesses. It is |
| 697 # not clear to me which of these are safe and which ones not. See also |
| 698 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40362 |
| 699 { |
| 700 drd-libgomp |
| 701 drd:ConflictingAccess |
| 702 obj:/usr/lib*/libgomp.so* |
| 703 } |
| 704 |
| 705 # |
| 706 # Suppression patterns for libX11. |
| 707 # |
| 708 |
| 709 { |
| 710 drd-libX11-XCreateFontSet |
| 711 drd:CondErr |
| 712 fun:pthread_cond_init* |
| 713 fun:_XReply |
| 714 fun:XListFontsWithInfo |
| 715 obj:/usr/lib*/libX11.so* |
| 716 fun:XCreateOC |
| 717 fun:XCreateFontSet |
| 718 } |
| 719 |
| 720 # |
| 721 # Suppression patterns for libxcb. |
| 722 # |
| 723 |
| 724 { |
| 725 drd-libxcb-xcb_wait_for_reply |
| 726 drd:CondErr |
| 727 fun:pthread_cond_destroy* |
| 728 fun:xcb_wait_for_reply |
| 729 } |
| 730 |
| 731 # |
| 732 # Suppression patterns for libglib. |
| 733 # |
| 734 |
| 735 { |
| 736 drd-libglib-access-g_threads_got_initialized |
| 737 drd:ConflictingAccess |
| 738 ... |
| 739 fun:g_slice_alloc |
| 740 fun:g_ptr_array_sized_new |
| 741 } |
| 742 { |
| 743 drd-libglib-access-g_threads_got_initialized |
| 744 drd:ConflictingAccess |
| 745 fun:_ZN27QEventDispatcherGlibPrivateC1EP13_GMainContext |
| 746 fun:_ZN20QEventDispatcherGlibC1EP7QObject |
| 747 obj:/usr/lib*/libQtCore.so.4.* |
| 748 obj:/usr/lib*/libQtCore.so.4.* |
| 749 } |
| 750 { |
| 751 drd-libglib-access-g_mem_initialized |
| 752 drd:ConflictingAccess |
| 753 fun:g_malloc0 |
| 754 } |
| 755 { |
| 756 drd-libglib-g_private_get_posix_impl |
| 757 drd:ConflictingAccess |
| 758 fun:g_private_get_posix_impl |
| 759 } |
| 760 { |
| 761 drd-libglib-g_private_set_posix_impl |
| 762 drd:ConflictingAccess |
| 763 fun:g_private_set_posix_impl |
| 764 } |
| 765 { |
| 766 drd-libglib-g_get_language_names |
| 767 drd:ConflictingAccess |
| 768 fun:g_slice_free_chain_with_offset |
| 769 } |
| 770 { |
| 771 drd-libglib-g_main_context_new |
| 772 drd:ConflictingAccess |
| 773 fun:fcntl |
| 774 obj:/usr/lib*/libglib-*.so* |
| 775 fun:g_main_context_new |
| 776 } |
| 777 |
| 778 # |
| 779 # Suppression patterns for libQtCore. |
| 780 # |
| 781 |
| 782 { |
| 783 drd-libQtCore-deref-that-calls-QThreadData-destructor |
| 784 drd:ConflictingAccess |
| 785 fun:_ZN11QThreadDataD1Ev |
| 786 fun:_ZN11QThreadData5derefEv |
| 787 obj:/usr/lib*/libQtCore.so.4.* |
| 788 } |
| 789 { |
| 790 drd-libQtCore-4.0/4.1-Q_GLOBAL_STATIC-connectionList |
| 791 drd:ConflictingAccess |
| 792 obj:/usr/lib*/libQtCore.so.4.* |
| 793 fun:_ZN11QMetaObject8activateEP7QObjectiiPPv |
| 794 fun:_ZN11QMetaObject8activateEP7QObjectPKS_iPPv |
| 795 } |
| 796 { |
| 797 drd-libQtCore-QObjectPrivate::clearGuards(QObject*) |
| 798 drd:ConflictingAccess |
| 799 fun:_ZN14QReadWriteLock12lockForWriteEv |
| 800 fun:_ZN14QObjectPrivate11clearGuardsEP7QObject |
| 801 fun:_ZN7QObjectD2Ev |
| 802 } |
| 803 { |
| 804 drd-libQtCore-QObjectPrivate::clearGuards(QObject*) |
| 805 drd:ConflictingAccess |
| 806 fun:_ZN14QReadWriteLock12lockForWriteEv |
| 807 fun:_ZN12QWriteLocker6relockEv |
| 808 fun:_ZN12QWriteLockerC1EP14QReadWriteLock |
| 809 fun:_ZN14QObjectPrivate11clearGuardsEP7QObject |
| 810 fun:_ZN7QObjectD2Ev |
| 811 fun:_ZN24QAbstractEventDispatcherD2Ev |
| 812 fun:_ZN20QEventDispatcherGlibD0Ev |
| 813 } |
| 814 { |
| 815 drd-libQtCore-QMutexPool::get(void const*) |
| 816 drd:ConflictingAccess |
| 817 fun:_ZN10QMutexPool3getEPKv |
| 818 } |
| 819 |
| 820 # |
| 821 # Suppression patterns for libboost. |
| 822 # |
| 823 |
| 824 # Suppress the races on boost::once_flag::epoch and on |
| 825 # boost::detail::once_global_epoch. See also the source file |
| 826 # boost/thread/pthread/once.hpp in the Boost source tree. |
| 827 { |
| 828 drd-libboost-boost::call_once<void (*)()>(boost::once_flag&, void (*)()) |
| 829 drd:ConflictingAccess |
| 830 ... |
| 831 fun:_ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_ |
| 832 } |
| 833 { |
| 834 drd-libboost-boost::detail::get_once_per_thread_epoch() |
| 835 drd:ConflictingAccess |
| 836 fun:_ZN5boost6detail25get_once_per_thread_epochEv |
| 837 } |
| 838 { |
| 839 drd-libboost-boost::detail::get_current_thread_data() |
| 840 drd:ConflictingAccess |
| 841 ... |
| 842 fun:_ZN5boost6detail23get_current_thread_dataEv |
| 843 } |
| 844 |
| 845 # FIXME 22 Jan 09: helgrind-glibc2X-005 overlaps with a lot of |
| 846 # other stuff. They should be removed. |
| 847 |
| 848 ##----------------------------------------------------------------------## |
| 849 # Suppressions for the Helgrind tool when using |
| 850 # a glibc-2.{3,4,5,6,7,8,9} system |
| 851 |
| 852 #################################################### |
| 853 # glibc-2.X specific |
| 854 # These are generic cover-alls which catch a lot of stuff |
| 855 # in various combinations of ld, libc and libpthread |
| 856 # |
| 857 # Note this is heavyhanded and not very clever: |
| 858 # |
| 859 # - suppress anything that has its top frame in ld.so |
| 860 # That's fine, since it's mostly dynamic linking stuff, |
| 861 # which has various deliberate (harmless) races |
| 862 # |
| 863 # - suppress anything that has its top frame in libc.so. |
| 864 # This really isn't clever, since it could hide some |
| 865 # legitimate races. But the problem is, if we don't do |
| 866 # this, then loads of errors to do with stdio are reported, because |
| 867 # H fails to see glibc's internal locking/unlocking of FILE*s |
| 868 # as required by POSIX. A better solution is needed. |
| 869 |
| 870 #{ |
| 871 # helgrind-glibc2X-001 |
| 872 # Helgrind:Race |
| 873 # obj:/lib*/ld-2.*so* |
| 874 #} |
| 875 |
| 876 # helgrind-glibc2X-002 was merged into helgrind-glibc2X-001 |
| 877 |
| 878 # helgrind-glibc2X-003 was merged into helgrind-glibc2X-001 |
| 879 |
| 880 { |
| 881 helgrind-glibc2X-004 |
| 882 Helgrind:Race |
| 883 obj:/lib*/libc-2.*so* |
| 884 } |
| 885 |
| 886 { |
| 887 helgrind-glibc2X-005 |
| 888 Helgrind:Race |
| 889 obj:/lib*/libpthread-2.*so* |
| 890 } |
| 891 |
| 892 # helgrind-glibc2X-006 was merged into helgrind-glibc2X-005 |
| 893 |
| 894 # helgrind-glibc2X-007 was merged into helgrind-glibc2X-001 |
| 895 |
| 896 # helgrind-glibc2X-008 was merged into helgrind-glibc2X-004 |
| 897 |
| 898 # helgrind-glibc2X-009 was merged into helgrind-glibc2X-004 |
| 899 |
| 900 # helgrind-glibc2X-010 was merged into helgrind-glibc2X-001 |
| 901 |
| 902 # helgrind-glibc2X-011 was merged into helgrind-glibc2X-004 |
| 903 |
| 904 # helgrind-glibc2X-012 was merged into helgrind-glibc2X-001 |
| 905 |
| 906 # helgrind-glibc2X-013 was merged into helgrind-glibc2X-001 |
| 907 |
| 908 # helgrind-glibc2X-014 was merged into helgrind-glibc2X-001 |
| 909 |
| 910 # helgrind-glibc2X-015 was merged into helgrind-glibc2X-004 |
| 911 |
| 912 # helgrind-glibc2X-016 was merged into helgrind-glibc2X-004 |
| 913 |
| 914 # These are very ugly. They are needed to suppress errors inside (eg) |
| 915 # NPTL's pthread_cond_signal. Why only one stack frame -- at least we |
| 916 # should see the wrapper calling the real functions, right? |
| 917 # Unfortunately, no: the real functions are handwritten assembly (in |
| 918 # the glibc-2.5 sources) and does not create a proper stack frame. |
| 919 # Therefore it's only one level of unwinding before we're back out in |
| 920 # user code rather than the 2 levels you'd expect. |
| 921 { |
| 922 helgrind-glibc2X-101 |
| 923 Helgrind:Race |
| 924 obj:/lib*/libpthread-2.*so* |
| 925 fun:pthread_* |
| 926 } |
| 927 { |
| 928 helgrind-glibc2X-102 |
| 929 Helgrind:Race |
| 930 fun:mythread_wrapper |
| 931 obj:/lib*/libpthread-2.*so* |
| 932 } |
| 933 { |
| 934 helgrind-glibc2X-103 |
| 935 Helgrind:Race |
| 936 fun:pthread_cond_*@@GLIBC_2.* |
| 937 } |
| 938 { |
| 939 helgrind-glibc2X-104 |
| 940 Helgrind:Race |
| 941 fun:__lll_mutex_* |
| 942 } |
| 943 { |
| 944 helgrind-glibc2X-105 |
| 945 Helgrind:Race |
| 946 fun:pthread_rwlock_*lock* |
| 947 } |
| 948 { |
| 949 helgrind-glibc2X-106 |
| 950 Helgrind:Race |
| 951 fun:__lll_lock_wait |
| 952 } |
| 953 { |
| 954 helgrind-glibc2X-107 |
| 955 Helgrind:Race |
| 956 obj:/lib*/libpthread-2.*so* |
| 957 fun:sem_* |
| 958 } |
| 959 { |
| 960 helgrind-glibc2X-108 |
| 961 Helgrind:Race |
| 962 fun:clone |
| 963 } |
| 964 { |
| 965 helgrind-glibc2X-109 |
| 966 Helgrind:Race |
| 967 fun:start_thread |
| 968 } |
| 969 { |
| 970 helgrind-glibc2X-110 |
| 971 Helgrind:Race |
| 972 obj:/lib*/libc-2.*so* |
| 973 fun:pthread_* |
| 974 } |
| 975 { |
| 976 helgrind-glibc2X-111 |
| 977 Helgrind:Race |
| 978 fun:__lll_*lock_* |
| 979 } |
| 980 { |
| 981 helgrind-glibc2X-112 |
| 982 Helgrind:Race |
| 983 fun:pthread_create_WRK |
| 984 fun:pthread_create@* |
| 985 } |
| 986 { |
| 987 helgrind-glibc2X-113 |
| 988 Helgrind:Race |
| 989 fun:pthread_barrier_wait* |
| 990 } |
| 991 |
| 992 |
| 993 #################################################### |
| 994 # qt4 specific (GNU mangling) |
| 995 # |
| 996 { |
| 997 helgrind-qt4---QMutex::lock()-QMutex::lock() |
| 998 Helgrind:Race |
| 999 ... |
| 1000 fun:_ZN6QMutex4lockEv |
| 1001 fun:_ZN6QMutex4lockEv |
| 1002 } |
| 1003 |
| 1004 { |
| 1005 helgrind-qt4---QMutex::unlock()-QMutex::unlock() |
| 1006 Helgrind:Race |
| 1007 ... |
| 1008 fun:_ZN6QMutex6unlockEv |
| 1009 fun:_ZN6QMutex6unlockEv |
| 1010 } |
| 1011 |
| 1012 { |
| 1013 helgrind-qt4---pthread_setspecific-QThreadPrivate::start(void*) |
| 1014 Helgrind:Race |
| 1015 fun:pthread_setspecific |
| 1016 fun:_ZN14QThreadPrivate5startEPv |
| 1017 } |
| 1018 |
| 1019 |
| 1020 #################################################### |
| 1021 # Other stuff. |
| 1022 # |
| 1023 # pthread_exit apparently calls some kind of unwind |
| 1024 # mechanism - maybe to remove some number of frames |
| 1025 # from the thread's stack, so as to get back to the |
| 1026 # outermost frame for the thread? Anyway.. |
| 1027 |
| 1028 { |
| 1029 helgrind---*Unwind*-...-pthread_exit |
| 1030 Helgrind:Race |
| 1031 fun:*Unwind* |
| 1032 ... |
| 1033 fun:pthread_exit |
| 1034 } |
| 1035 |
| 1036 { |
| 1037 helgrind---...-*Unwind*-*pthread_unwind* |
| 1038 Helgrind:Race |
| 1039 ... |
| 1040 fun:*Unwind* |
| 1041 fun:*pthread_unwind* |
| 1042 } |
| 1043 |
| 1044 { |
| 1045 helgrind---...-*Unwind*-*pthread_unwind* |
| 1046 Helgrind:Race |
| 1047 ... |
| 1048 fun:_Unwind* |
| 1049 ... |
| 1050 fun:_Unwind_Backtrace |
| 1051 } |
| 1052 |
| 1053 |
| 1054 |
| 1055 |
| 1056 #################################################### |
| 1057 # To do with thread stack allocation and deallocation? |
| 1058 # |
| 1059 { |
| 1060 helgrind---free_stacks-__deallocate_stack |
| 1061 Helgrind:Race |
| 1062 fun:free_stacks |
| 1063 fun:__deallocate_stack |
| 1064 } |
| 1065 |
| 1066 { |
| 1067 helgrind---__deallocate_stack-start_thread-clone |
| 1068 Helgrind:Race |
| 1069 fun:__deallocate_stack |
| 1070 fun:start_thread |
| 1071 fun:clone |
| 1072 } |
| 1073 |
| 1074 |
| 1075 #################################################### |
| 1076 # To do with pthread_{set,get}specific |
| 1077 # |
| 1078 { |
| 1079 helgrind---pthread_setspecific |
| 1080 Helgrind:Race |
| 1081 fun:pthread_setspecific |
| 1082 } |
| 1083 |
| 1084 { |
| 1085 helgrind---pthread_getspecific |
| 1086 Helgrind:Race |
| 1087 fun:pthread_getspecific |
| 1088 } |
| 1089 |
| 1090 |
| 1091 #################################################### |
| 1092 # To do with dynamic linking |
| 1093 # |
| 1094 # helgrind---ld.so-...-dlsym was merged into helgrind-glibc2X-001 |
| 1095 |
| 1096 |
| 1097 #################################################### |
| 1098 # To do with GNU libgomp |
| 1099 # |
| 1100 { |
| 1101 helgrind---libgomp43-1 |
| 1102 Helgrind:Race |
| 1103 fun:gomp_ordered_sync |
| 1104 } |
| 1105 |
| 1106 { |
| 1107 helgrind---libgomp43-1 |
| 1108 Helgrind:Race |
| 1109 fun:gomp_ordered_next |
| 1110 } |
| 1111 |
| 1112 { |
| 1113 helgrind---libgomp43-1 |
| 1114 Helgrind:Race |
| 1115 fun:gomp_ordered_last |
| 1116 } |
| 1117 |
| 1118 ##----------------------------------------------------------------------## |
| 1119 |
| 1120 # Errors to suppress by default with glibc 2.7.x |
| 1121 |
| 1122 # IMPORTANT: DO NOT EDIT glibc-2.X.supp, as it is as a generated |
| 1123 # file. Instead edit glibc-2.X.supp.in. |
| 1124 |
| 1125 # Format of this file is: |
| 1126 # { |
| 1127 # name_of_suppression |
| 1128 # tool_name:supp_kind |
| 1129 # (optional extra info for some suppression types) |
| 1130 # caller0 name, or /name/of/so/file.so |
| 1131 # caller1 name, or ditto |
| 1132 # (optionally: caller2 name) |
| 1133 # (optionally: caller3 name) |
| 1134 # } |
| 1135 # |
| 1136 # For Memcheck, the supp_kinds are: |
| 1137 # |
| 1138 # Param Value1 Value2 Value4 Value8 Value16 Jump |
| 1139 # Free Addr1 Addr2 Addr4 Addr8 Addr16 |
| 1140 # Cond (previously known as Value0) |
| 1141 # |
| 1142 # and the optional extra info is: |
| 1143 # if Param: name of system call param |
| 1144 |
| 1145 ##----------------------------------------------------------------------## |
| 1146 ##--- generic suppressions ---## |
| 1147 ##----------------------------------------------------------------------## |
| 1148 |
| 1149 { |
| 1150 dl-hack3-cond-0 |
| 1151 Memcheck:Cond |
| 1152 fun:_dl_start |
| 1153 fun:_start |
| 1154 } |
| 1155 { |
| 1156 dl-hack3-cond-1 |
| 1157 Memcheck:Cond |
| 1158 obj:/lib*/ld-2.7*.so* |
| 1159 obj:/lib*/ld-2.7*.so* |
| 1160 obj:/lib*/ld-2.7*.so* |
| 1161 } |
| 1162 { |
| 1163 dl-hack3-cond-2 |
| 1164 Memcheck:Cond |
| 1165 obj:/lib*/ld-2.7*.so* |
| 1166 obj:/lib*/ld-2.7*.so* |
| 1167 obj:/lib*/libc-2.7*.so* |
| 1168 } |
| 1169 { |
| 1170 dl-hack3-cond-3 |
| 1171 Memcheck:Cond |
| 1172 obj:/lib*/ld-2.7*.so* |
| 1173 obj:/lib*/libc-2.7*.so* |
| 1174 obj:/lib*/libc-2.7*.so* |
| 1175 } |
| 1176 { |
| 1177 dl-hack3-cond-4 |
| 1178 Memcheck:Cond |
| 1179 obj:/lib*/ld-2.7*.so* |
| 1180 obj:/lib*/ld-2.7*.so* |
| 1181 obj:/lib*/libdl-2.7*.so* |
| 1182 } |
| 1183 |
| 1184 { |
| 1185 dl-hack4-64bit-addr-1 |
| 1186 Memcheck:Addr8 |
| 1187 obj:/lib*/ld-2.7*.so* |
| 1188 obj:/lib*/ld-2.7*.so* |
| 1189 obj:/lib*/ld-2.7*.so* |
| 1190 } |
| 1191 { |
| 1192 dl-hack4-64bit-addr-2 |
| 1193 Memcheck:Addr8 |
| 1194 obj:/lib*/ld-2.7*.so* |
| 1195 obj:/lib*/ld-2.7*.so* |
| 1196 obj:/lib*/libc-2.7*.so* |
| 1197 } |
| 1198 { |
| 1199 dl-hack4-64bit-addr-3 |
| 1200 Memcheck:Addr8 |
| 1201 obj:/lib*/ld-2.7*.so* |
| 1202 obj:/lib*/ld-2.7*.so* |
| 1203 obj:/lib*/libdl-2.7*.so* |
| 1204 } |
| 1205 |
| 1206 { |
| 1207 dl-hack5-32bit-addr-1 |
| 1208 Memcheck:Addr4 |
| 1209 obj:/lib*/ld-2.7*.so |
| 1210 obj:/lib*/ld-2.7*.so |
| 1211 obj:/lib*/ld-2.7*.so |
| 1212 } |
| 1213 { |
| 1214 dl-hack5-32bit-addr-3 |
| 1215 Memcheck:Addr4 |
| 1216 obj:/lib*/ld-2.7*.so |
| 1217 obj:/lib*/ld-2.7*.so |
| 1218 obj:/lib*/libdl-2.7*.so* |
| 1219 } |
| 1220 { |
| 1221 dl-hack5-32bit-addr-4 |
| 1222 Memcheck:Addr4 |
| 1223 obj:/lib*/ld-2.7*.so |
| 1224 obj:/lib*/libdl-2.7*.so* |
| 1225 obj:/lib*/ld-2.7*.so |
| 1226 } |
| 1227 |
| 1228 |
| 1229 ##----------------------------------------------------------------------## |
| 1230 ##--- Misc ad-hoc hacks ---## |
| 1231 ##----------------------------------------------------------------------## |
| 1232 { |
| 1233 glibc-2.5.x-on-SUSE-10.2-(PPC)-1 |
| 1234 Memcheck:Cond |
| 1235 fun:_dl_start_final |
| 1236 fun:_dl_start |
| 1237 fun:_start |
| 1238 } |
| 1239 { |
| 1240 glibc-2.5.x-on-SUSE-10.2-(PPC)-2a |
| 1241 Memcheck:Cond |
| 1242 fun:index |
| 1243 obj:*ld-2.7.*.so |
| 1244 } |
| 1245 { |
| 1246 glibc-2.5.x-on-SuSE-10.2-(PPC)-2b |
| 1247 Memcheck:Addr4 |
| 1248 fun:index |
| 1249 fun:expand_dynamic_string_token |
| 1250 } |
| 1251 { |
| 1252 glibc-2.5.5-on-SuSE-10.2-(PPC)-2c |
| 1253 Memcheck:Addr4 |
| 1254 fun:index |
| 1255 obj:*ld-2.7.*.so |
| 1256 } |
| 1257 { |
| 1258 glibc-2.3.5-on-SuSE-10.1-(PPC)-3 |
| 1259 Memcheck:Addr4 |
| 1260 fun:*wordcopy_fwd_dest_aligned* |
| 1261 fun:mem*cpy |
| 1262 obj:*lib*2.7.*.so |
| 1263 } |
| 1264 |
| 1265 { |
| 1266 glibc-2.7-on-SUSE-10.3-(x86) |
| 1267 Memcheck:Addr4 |
| 1268 obj:/lib/ld-2.7*.so |
| 1269 obj:/lib/ld-2.7*.so |
| 1270 obj:/lib/ld-2.7*.so |
| 1271 } |
| 1272 |
| 1273 { |
| 1274 glibc24-64bit-padding-1a |
| 1275 Memcheck:Param |
| 1276 socketcall.sendto(msg) |
| 1277 fun:send |
| 1278 fun:get_mapping |
| 1279 fun:__nscd_get_map_ref |
| 1280 fun:nscd* |
| 1281 } |
| 1282 { |
| 1283 glibc24-64bit-padding-1b |
| 1284 Memcheck:Param |
| 1285 socketcall.sendto(msg) |
| 1286 fun:__sendto_nocancel |
| 1287 obj:/*libc-2.7.so |
| 1288 obj:/*libc-2.7.so |
| 1289 obj:/*libc-2.7.so |
| 1290 } |
| 1291 { |
| 1292 glibc24-64bit-padding-1c |
| 1293 Memcheck:Param |
| 1294 socketcall.send(msg) |
| 1295 fun:send |
| 1296 fun:__nscd_get_map_ref |
| 1297 fun:nscd_get*_r |
| 1298 fun:*nscd* |
| 1299 obj:/*libc-2.7.so |
| 1300 } |
| 1301 |
| 1302 |
| 1303 { |
| 1304 X11-64bit-padding-3a |
| 1305 Memcheck:Param |
| 1306 write(buf) |
| 1307 obj:/*libpthread-2.4.so* |
| 1308 obj:/usr/lib*/libX11.so* |
| 1309 obj:/usr/lib*/libX11.so* |
| 1310 obj:/usr/lib*/libX11.so* |
| 1311 } |
| 1312 |
| 1313 { |
| 1314 X11-64bit-padding-4a |
| 1315 Memcheck:Param |
| 1316 socketcall.sendto(msg) |
| 1317 fun:send |
| 1318 obj:/*libc-2.7.so |
| 1319 obj:/*libc-2.7.so |
| 1320 obj:/*libc-2.7.so |
| 1321 } |
| 1322 { |
| 1323 X11-64bit-padding-4b |
| 1324 Memcheck:Param |
| 1325 socketcall.send(msg) |
| 1326 fun:send |
| 1327 obj:/*libc-2.7.so |
| 1328 obj:/*libc-2.7.so |
| 1329 obj:/*libc-2.7.so |
| 1330 } |
| 1331 |
| 1332 ##----------------------------------------------------------------------## |
| 1333 # MontaVista Linux 4.0.1 on ppc32 |
| 1334 { |
| 1335 MVL-401-linuxthreads-pthread_create |
| 1336 Memcheck:Param |
| 1337 write(buf) |
| 1338 fun:pthread_create |
| 1339 } |
| 1340 { |
| 1341 MVL-401-linuxthreads-pthread_create |
| 1342 Memcheck:Param |
| 1343 write(buf) |
| 1344 obj:/lib/libpthread-0.10.so |
| 1345 fun:pthread_create |
| 1346 } |
OLD | NEW |