1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#! /usr/bin/perl -w 2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownuse strict; 4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownwhile (<>) 6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ 7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/ __getsockname / getsockname /; 8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/ __sigaction / sigaction /; 9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/ __GI___/ __/; 10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/ __([a-z]*)_nocancel / $1 /; 11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown # "libSystem*" occurs on Darwin. 13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/\(in \/.*(libc|libSystem).*\)$/(in \/...libc...)/; 14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/\(within \/.*(libc|libSystem).*\)$/(within \/...libc...)/; 15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov # Filter out dynamic loader 17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov s/ \(in \/.*ld-.*so\)$//; 18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown # Remove the filename -- on some platforms (eg. Linux) it will be in 20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown # libc, on some (eg. Darwin) it will be in the main executable. 21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/\(below main\) \(.+\)$/(below main)/; 22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown # Merge the different C++ operator variations. 24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/(at.*)__builtin_new/$1...operator new.../; 25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/(at.*)operator new\(unsigned(| int| long)\)/$1...operator new.../; 26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/(at.*)__builtin_vec_new/$1...operator new.../; 28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/(at.*)operator new\[\]\(unsigned(| int| long)\)/$1...operator new[].../; 29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/(at.*)__builtin_delete/$1...operator delete.../; 31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/(at.*)operator delete\(void\*\)/$1...operator delete.../; 32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/(at.*)__builtin_vec_delete/$1...operator delete[].../; 34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown s/(at.*)operator delete\[\]\(void\*\)/$1...operator delete[].../; 35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown print; 37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownexit 0; 40