13 Commits

Author SHA1 Message Date
Cyndy Ishida
0ed02621b9 [readtapi] make symlink test darwin only
Appeases bots for now.
2024-02-03 09:45:02 -08:00
Cyndy Ishida
7189219ec9
[readtapi] Add support for stubify-ing directories (#76885)
When given a directory input `llvm-readtapi` traverses through the
directory to find dylibs or tbd files to operate on. TBD files will be
created with the same base file name as the dylib. Symlinks should be
created if the input is one.

This also introduces options to delete input files which are defined as
library files that existed before `readtapi -stubify` was invoked. Also
the ability to delete private libraries where private libraries are in a
predefined file system locations on darwin based platforms.
2024-02-03 09:33:42 -08:00
Cyndy Ishida
4460fa8814
[TextAPI] Introduce granularity for handling ObjC Interface symbols (#79928)
ObjCInterfaceRecords roughly align to the objc-classes key in tbd-files.
They condensely represent up to 3 symbols. The problem here is that when
represented this way, we lose granularity when these symbols could have
different linkages or outright don't exist. This can happen frequently
in interoptable code generated by the swift compiler. This adds fields
and utility functions to express unique properties for these symbols. If
the record does represent the same properties across all of its symbols,
it will be treated the same in the TBD. Otherwise it will be printed in
global's section.

Reviewed seperately before by Juergen Ributzka
2024-01-29 18:36:48 -08:00
Dmitri Gribenko
23adef4b85 [llvm-readtapi][test] Write test outputs into a temporary directory 2023-12-21 13:25:33 +01:00
Cyndy Ishida
c6f29dbb59
[readtapi] Setup simple stubify support (#76075)
Stubify broadly takes either tbd files or binary dylibs and turns them
into tbd files. In future patches, stubify will also allow additional
information to be embedded into the final TBD output too.

Add Util APIs to TextAPI for common operations used by readtapi for now.
2023-12-20 14:56:53 -08:00
Cyndy Ishida
142e567cf0
[readtapi] Cleanup printing command line options (#75106)
Also, add a version option.
2023-12-12 08:25:53 -08:00
Cyndy Ishida
4d29bdabab
[readtapi][tests] add descriptions to tests (#73576) 2023-11-28 07:23:31 -08:00
Cyndy Ishida
e1f69b863d
[readtapi] Add Extract & Remove architecture functionality (#72657)
This adds functionality to tbd files similar to what `lipo -extract`
and `lipo -remove` does for binaries.
2023-11-27 14:24:04 -08:00
Cyndy Ishida
ae182dbb1d
[readtapi] Add Merge functionality (#72656)
Merge allows a user to merge different files (tbds for now or dylibs in
the future) to emit out a single tbd with all input contents. This does
require that all inputs represent the same library.
2023-11-17 12:26:04 -08:00
Cyndy Ishida
ec64af5994
[readtapi] Use OptParser.td for options (#72183)
This includes revamping how --compare was handled and adds `-o` ontop of
tablegen approach.

This will be used to add more complex options.
2023-11-15 09:31:31 -08:00
Cyndy Ishida
e17efa60b1
[llvm][TextAPI] Add new not_for_dyld_shared_cache attribute to file… (#71735)
… format.

Formats >= TBDv4 will now encode new attribute that the system static
linker wil read when tbd files replace binary dylibs.
2023-11-09 09:22:16 -08:00
Cyndy Ishida
1a0d6992ae [llvm][ReadTAPI] Add & fix rpath comparison checks
* Check and emit out differences in rpath inputs
* Prevent rpaths from being overwritten
* Capture file path for tbd-v5
2023-08-30 07:42:52 -07:00
Cyndy Ishida
5656d7971b [llvm][tapi-diff] Transition diff-tool to be more general purpose
This is the first of transition tapi-diff to be readtapi.
This tool will eventually replace functionality for Xcode's `xcrun tapi stubify` and
`xcrun tapi archive`.
This patch updates the tool name and is a minor refactor for the driver to handle more options.

Reviewed By: zixuw

Differential Revision: https://reviews.llvm.org/D153045
2023-07-31 09:32:26 -07:00