Skip to content

Commit 5523a47

Browse files
author
Jeff Niu
authored
[llvm][object] Expose writeArchiveToStream (#98254)
This internal helper is a useful API to have, when one wants to write an archive directly to some other preallocated stream.
1 parent b6e41c1 commit 5523a47

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

llvm/include/llvm/Object/ArchiveWriter.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,13 @@ enum class SymtabWritingMode {
4848
BigArchive64 // Only write the 64-bit symbol table.
4949
};
5050

51+
// Write an archive directly to an output stream.
52+
Error writeArchiveToStream(raw_ostream &Out,
53+
ArrayRef<NewArchiveMember> NewMembers,
54+
SymtabWritingMode WriteSymtab,
55+
object::Archive::Kind Kind, bool Deterministic,
56+
bool Thin, std::optional<bool> IsEC = std::nullopt);
57+
5158
Error writeArchive(StringRef ArcName, ArrayRef<NewArchiveMember> NewMembers,
5259
SymtabWritingMode WriteSymtab, object::Archive::Kind Kind,
5360
bool Deterministic, bool Thin,

llvm/lib/Object/ArchiveWriter.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -997,10 +997,11 @@ Expected<std::string> computeArchiveRelativePath(StringRef From, StringRef To) {
997997
return std::string(Relative);
998998
}
999999

1000-
static Error
1001-
writeArchiveToStream(raw_ostream &Out, ArrayRef<NewArchiveMember> NewMembers,
1002-
SymtabWritingMode WriteSymtab, object::Archive::Kind Kind,
1003-
bool Deterministic, bool Thin, std::optional<bool> IsEC) {
1000+
Error writeArchiveToStream(raw_ostream &Out,
1001+
ArrayRef<NewArchiveMember> NewMembers,
1002+
SymtabWritingMode WriteSymtab,
1003+
object::Archive::Kind Kind, bool Deterministic,
1004+
bool Thin, std::optional<bool> IsEC) {
10041005
assert((!Thin || !isBSDLike(Kind)) && "Only the gnu format has a thin mode");
10051006

10061007
SmallString<0> SymNamesBuf;

0 commit comments

Comments
 (0)