Alexey Lapshin e74197bc12 [Reland][Debuginfo][llvm-dwarfutil] Add check for unsupported debug sections.
Current DWARFLinker implementation does not support some debug sections
(mainly DWARF v5 sections). This patch adds diagnostic for such sections.
The warning would be displayed for critical(such that could not be removed)
sections and the source file would be skipped. Other unsupported sections
would be removed and warning message should be displayed. The zero exit
status would be returned for both cases.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D123623
2022-07-28 21:29:16 +03:00

32 lines
1.0 KiB
C++

//===- DebugInfoLinker.h ----------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_TOOLS_LLVM_DWARFUTIL_DEBUGINFOLINKER_H
#define LLVM_TOOLS_LLVM_DWARFUTIL_DEBUGINFOLINKER_H
#include "Options.h"
#include "llvm/Object/Archive.h"
#include "llvm/Object/ELFObjectFile.h"
#include "llvm/Object/ObjectFile.h"
namespace llvm {
namespace dwarfutil {
inline bool isDebugSection(StringRef SecName) {
return SecName.startswith(".debug") || SecName.startswith(".zdebug") ||
SecName == ".gdb_index";
}
Error linkDebugInfo(object::ObjectFile &file, const Options &Options,
raw_pwrite_stream &OutStream);
} // end of namespace dwarfutil
} // end of namespace llvm
#endif // LLVM_TOOLS_LLVM_DWARFUTIL_DEBUGINFOLINKER_H