[llvm] [DirectX] Add `extract-section` to `llvm-objcopy` and implement it for `DXContainer` (PR #154804)
James Henderson via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 4 02:14:15 PDT 2025
================
@@ -11,13 +11,37 @@
#include "DXContainerWriter.h"
#include "llvm/ObjCopy/CommonConfig.h"
#include "llvm/ObjCopy/DXContainer/DXContainerConfig.h"
+#include "llvm/Support/raw_ostream.h"
namespace llvm {
namespace objcopy {
namespace dxbc {
using namespace object;
+static Error extractPartAsObject(StringRef PartName, StringRef OutFilename,
+ StringRef InputFilename, const Object &Obj) {
+ for (const Part &P : Obj.Parts)
+ if (P.Name == PartName) {
+ Object PartObj;
+ PartObj.Header = Obj.Header;
+ PartObj.Parts.push_back({P.Name, P.Data});
+ PartObj.recomputeHeader();
+
+ auto Write = [&OutFilename, &PartObj](raw_ostream &Out) -> Error {
+ DXContainerWriter Writer(PartObj, Out);
+ if (Error E = Writer.write())
+ return createFileError(OutFilename, std::move(E));
----------------
jh7370 wrote:
You need a test for this error case.
https://github.com/llvm/llvm-project/pull/154804
More information about the llvm-commits
mailing list