Michael Trent
45c98f5090
Limit dyld image suffixes guessed by guessLibraryShortName()
...
Summary:
guessLibraryShortName() separates a full Mach-O dylib install name path
into a short name and a dyld image suffix. The short name is the name
of the dylib without its path or extension. The dyld image suffix is a
string used by dyld to load variants of dylibs if available at runtime;
for example, "when binding this process, load 'debug' variants of all
required dylibs." dyld knows exactly what the image suffix is, but
by convention diagnostic tools such as llvm-nm attempt to guess suffix
names by looking at the install name path.
These dyld image suffixes are separated from the short name by a '_'
character. Because the '_' character is commonly used to separate words
in filenames guessLibraryShortName() cannot reliably separate a dylib's
short name from an arbitrary image suffix; imagine if both the short
name and the suffix contains an '_' character! To better deal with this
ambiguity, guessLibraryShortName() will recognize only "_debug" and
"_profile" as valid Suffix values. Calling code needs to be tolerant of
guessLibraryShortName() guessing incorrectly.
The previous implementation of guessLibraryShortName() did not allow
'_' characters to appear in short names. When present, the short name
would be truncated, e.g., "libcompiler_rt" => "libcompiler". This
change allows "libcompiler_rt" and "libcompiler_rt_debug" to both be
recognized as "libcompiler_rt".
rdar://47412244
Reviewers: kledzik, lhames, pete
Reviewed By: pete
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D56978
llvm-svn: 352104
2019-01-24 20:59:44 +00:00
..
2017-05-14 18:34:56 +00:00
2018-12-15 00:58:12 +00:00
2018-05-09 08:20:14 +00:00
2015-02-17 18:54:22 +00:00
2015-08-28 07:40:30 +00:00
2015-08-28 07:40:30 +00:00
2015-08-07 15:25:20 +00:00
2015-07-20 21:23:29 +00:00
2015-08-07 15:35:49 +00:00
2015-07-20 13:35:33 +00:00
2015-07-20 20:07:50 +00:00
2016-10-17 10:58:02 +00:00
2016-02-16 14:17:48 +00:00
2019-01-24 20:59:44 +00:00
2016-01-16 22:40:09 +00:00
2016-03-21 21:09:38 +00:00
2015-07-06 12:18:44 +00:00
2015-06-19 20:58:43 +00:00
2015-07-06 14:26:07 +00:00
2017-10-10 22:17:49 +00:00
2017-10-19 01:25:48 +00:00
2016-10-17 10:58:02 +00:00
2016-10-04 08:44:03 +00:00
2017-10-05 20:01:32 +00:00
2016-11-03 18:05:33 +00:00
2017-01-26 23:12:53 +00:00
2016-10-04 09:25:39 +00:00
2016-10-04 09:25:39 +00:00
2015-06-30 18:23:07 +00:00
2016-10-27 11:44:56 +00:00
2015-06-30 19:58:10 +00:00
2016-10-31 15:33:00 +00:00
2016-02-17 15:38:21 +00:00
2015-06-29 14:12:14 +00:00
2015-06-29 14:39:25 +00:00
2015-06-29 14:02:24 +00:00
2016-10-27 11:41:57 +00:00
2015-07-23 03:24:22 +00:00
2015-08-24 21:09:41 +00:00
2015-01-15 22:52:38 +00:00
2016-05-03 17:16:08 +00:00
2015-06-04 22:26:44 +00:00
2015-01-15 22:52:38 +00:00
2015-01-15 22:52:38 +00:00
2016-05-03 23:13:50 +00:00
2015-01-15 22:52:38 +00:00
2014-11-12 01:37:45 +00:00
2016-05-17 17:10:12 +00:00
2016-05-17 17:10:12 +00:00
2015-02-27 18:58:23 +00:00
2015-01-15 22:52:38 +00:00
2016-11-02 21:08:39 +00:00
2016-11-02 21:08:39 +00:00
2016-10-18 20:24:12 +00:00
2016-08-31 17:57:46 +00:00
2016-08-31 17:57:46 +00:00
2016-08-31 17:57:46 +00:00
2016-09-27 23:24:13 +00:00
2016-09-27 23:24:13 +00:00
2016-09-27 23:24:13 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-13 21:42:28 +00:00
2016-09-26 21:11:03 +00:00
2017-09-13 13:43:01 +00:00
2016-09-20 20:14:14 +00:00
2016-09-20 20:14:14 +00:00
2016-09-20 20:14:14 +00:00
2016-09-20 20:14:14 +00:00
2016-09-20 20:14:14 +00:00
2016-09-20 20:14:14 +00:00
2016-09-20 20:14:14 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:48:06 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-08-30 21:28:30 +00:00
2016-10-04 20:37:43 +00:00
2016-10-04 20:37:43 +00:00
2016-10-04 20:37:43 +00:00
2016-10-04 20:37:43 +00:00
2016-10-04 20:37:43 +00:00
2016-09-29 21:07:29 +00:00
2016-09-29 21:07:29 +00:00
2016-11-02 21:08:39 +00:00
2016-11-02 21:08:39 +00:00
2016-11-02 21:08:39 +00:00
2016-06-27 21:39:39 +00:00
2016-10-24 21:15:11 +00:00
2016-11-28 22:40:50 +00:00
2016-11-28 22:40:50 +00:00
2016-11-28 22:40:50 +00:00
2016-11-28 22:40:50 +00:00
2016-11-28 22:40:50 +00:00
2016-11-28 22:40:50 +00:00
2016-11-28 22:40:50 +00:00
2016-06-28 23:16:13 +00:00
2016-09-26 21:11:03 +00:00
2016-10-27 20:59:10 +00:00
2015-06-04 19:45:22 +00:00
2016-11-02 21:08:39 +00:00
2016-10-27 20:59:10 +00:00
2016-10-27 20:59:10 +00:00
2016-11-02 21:08:39 +00:00
2016-11-02 21:08:39 +00:00
2016-10-11 21:04:39 +00:00
2016-10-11 21:04:39 +00:00
2016-08-31 17:57:46 +00:00
2016-08-31 17:57:46 +00:00
2016-10-27 20:59:10 +00:00
2016-11-02 21:08:39 +00:00
2016-11-02 21:08:39 +00:00
2015-01-15 22:52:38 +00:00
2017-01-19 17:36:31 +00:00
2016-10-27 20:59:10 +00:00
2016-10-27 20:59:10 +00:00
2016-10-27 20:59:10 +00:00
2016-11-02 21:08:39 +00:00
2016-11-02 21:08:39 +00:00
2016-10-18 17:54:17 +00:00
2016-10-18 17:54:17 +00:00
2016-09-28 23:16:01 +00:00
2016-09-28 23:16:01 +00:00
2016-09-28 23:16:01 +00:00
2016-08-12 20:10:25 +00:00
2016-08-12 20:10:25 +00:00
2015-01-15 22:52:38 +00:00
2016-08-12 20:10:25 +00:00
2016-08-12 20:10:25 +00:00
2016-08-12 20:10:25 +00:00
2016-11-02 21:08:39 +00:00
2016-08-12 20:10:25 +00:00
2016-08-12 20:10:25 +00:00
2016-08-12 20:10:25 +00:00
2016-08-05 18:19:40 +00:00
2016-08-12 20:10:25 +00:00
2016-08-12 20:10:25 +00:00
2016-09-29 17:45:23 +00:00
2016-09-29 17:45:23 +00:00
2016-09-26 21:11:03 +00:00
2016-10-31 20:29:48 +00:00
2016-10-17 22:09:25 +00:00
2016-10-17 22:09:25 +00:00
2016-10-17 22:09:25 +00:00
2016-10-17 22:09:25 +00:00
2015-01-15 22:52:38 +00:00
2016-10-27 20:59:10 +00:00
2016-08-26 19:34:07 +00:00
2016-08-26 19:34:07 +00:00
2016-10-31 20:29:48 +00:00
2016-08-26 19:34:07 +00:00
2016-08-26 19:34:07 +00:00
2016-08-26 19:34:07 +00:00
2016-08-26 19:34:07 +00:00
2016-08-26 19:34:07 +00:00
2016-10-19 23:44:34 +00:00
2016-10-19 23:44:34 +00:00
2016-10-19 23:44:34 +00:00
2016-10-19 23:44:34 +00:00
2016-10-19 23:44:34 +00:00
2016-11-02 21:08:39 +00:00
2015-01-15 22:52:38 +00:00
2015-01-15 22:52:38 +00:00
2016-05-05 17:43:35 +00:00
2016-10-20 20:10:30 +00:00
2016-10-20 20:10:30 +00:00
2016-10-20 20:10:30 +00:00
2016-10-20 20:10:30 +00:00
2016-10-19 23:44:34 +00:00
2016-09-21 20:03:09 +00:00
2016-09-21 20:03:09 +00:00
2016-09-28 21:20:45 +00:00
2016-09-28 21:20:45 +00:00
2016-11-02 21:08:39 +00:00
2015-01-15 22:52:38 +00:00
2014-12-19 02:31:01 +00:00
2014-12-04 09:20:13 +00:00
2016-06-17 22:16:06 +00:00
2016-06-20 22:27:49 +00:00
2016-06-20 22:16:18 +00:00
2016-05-31 20:35:34 +00:00
2016-05-31 20:35:34 +00:00
2016-05-31 20:35:34 +00:00
2016-05-31 20:35:34 +00:00
2016-01-22 22:49:55 +00:00
2015-07-31 16:14:22 +00:00
2015-07-31 16:14:22 +00:00
2014-11-25 05:57:55 +00:00
2016-12-13 20:20:17 +00:00
2015-07-21 21:40:33 +00:00
2015-07-09 22:32:24 +00:00
2015-06-04 15:01:05 +00:00
2016-12-06 17:55:52 +00:00
2017-01-16 23:28:58 +00:00
2017-01-16 23:28:58 +00:00
2015-12-18 16:07:17 +00:00
2015-05-15 15:59:22 +00:00
2016-10-17 10:58:02 +00:00
2015-02-21 04:28:26 +00:00
2015-08-10 21:00:15 +00:00
2017-03-14 19:57:13 +00:00
2016-09-14 20:22:03 +00:00
2015-07-08 22:27:54 +00:00
2015-07-13 23:14:26 +00:00
2014-12-16 01:43:41 +00:00
2015-07-09 15:58:22 +00:00
2017-11-06 07:36:17 +00:00
2017-11-06 07:36:17 +00:00
2015-10-23 06:05:55 +00:00
2019-01-16 01:34:48 +00:00
2018-05-10 17:49:11 +00:00