[llvm] 32a4a88 - Revert rGe1eec7601b6988b35ae3cdc8d67cf3cf4e1361dd "[XCOFF][yaml2obj] support for the auxiliary file header."

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 9 03:03:54 PST 2021


Author: Simon Pilgrim
Date: 2021-11-09T11:02:13Z
New Revision: 32a4a883f647c314a42ebd572e36aaf60ffe9889

URL: https://github.com/llvm/llvm-project/commit/32a4a883f647c314a42ebd572e36aaf60ffe9889
DIFF: https://github.com/llvm/llvm-project/commit/32a4a883f647c314a42ebd572e36aaf60ffe9889.diff

LOG: Revert rGe1eec7601b6988b35ae3cdc8d67cf3cf4e1361dd "[XCOFF][yaml2obj] support for the auxiliary file header."

This is failing on MSVC builds: https://lab.llvm.org/buildbot/#/builders/86/builds/23436

Added: 
    

Modified: 
    llvm/include/llvm/BinaryFormat/XCOFF.h
    llvm/include/llvm/ObjectYAML/XCOFFYAML.h
    llvm/lib/ObjectYAML/XCOFFEmitter.cpp
    llvm/lib/ObjectYAML/XCOFFYAML.cpp

Removed: 
    llvm/test/tools/yaml2obj/XCOFF/aux-hdr-defaults.yaml
    llvm/test/tools/yaml2obj/XCOFF/aux-hdr-full-contents.yaml


################################################################################
diff  --git a/llvm/include/llvm/BinaryFormat/XCOFF.h b/llvm/include/llvm/BinaryFormat/XCOFF.h
index cffd8618f1e3a..6705cdd324fbe 100644
--- a/llvm/include/llvm/BinaryFormat/XCOFF.h
+++ b/llvm/include/llvm/BinaryFormat/XCOFF.h
@@ -29,8 +29,6 @@ constexpr size_t FileNamePadSize = 6;
 constexpr size_t NameSize = 8;
 constexpr size_t FileHeaderSize32 = 20;
 constexpr size_t FileHeaderSize64 = 24;
-constexpr size_t AuxFileHeaderSize32 = 72;
-constexpr size_t AuxFileHeaderSize64 = 110;
 constexpr size_t SectionHeaderSize32 = 40;
 constexpr size_t SectionHeaderSize64 = 72;
 constexpr size_t SymbolTableEntrySize = 18;
@@ -43,17 +41,6 @@ enum ReservedSectionNum : int16_t { N_DEBUG = -2, N_ABS = -1, N_UNDEF = 0 };
 
 enum MagicNumber : uint16_t { XCOFF32 = 0x01DF, XCOFF64 = 0x01F7 };
 
-// This field only exists in the XCOFF64 definition.
-enum AuxHeaderFlags64 : uint16_t {
-  SHR_SYMTAB = 0x8000,  ///< At exec time, create shared symbol table for program
-                        ///< (main program only).
-  FORK_POLICY = 0x4000, ///< Forktree policy specified (main program only).
-  FORK_COR = 0x2000     ///< If _AOUT_FORK_POLICY is set, specify copy-on-reference
-                        ///< if this bit is set. Specify copy-on- write otherwise.
-                        ///< If _AOUT_FORK_POLICY is 0, this bit is reserved for
-                        ///< future use and should be set to 0.
-};
-
 // x_smclas field of x_csect from system header: /usr/include/syms.h
 /// Storage Mapping Class definitions.
 enum StorageMappingClass : uint8_t {

diff  --git a/llvm/include/llvm/ObjectYAML/XCOFFYAML.h b/llvm/include/llvm/ObjectYAML/XCOFFYAML.h
index aa1bc396f1345..4f07e24586224 100644
--- a/llvm/include/llvm/ObjectYAML/XCOFFYAML.h
+++ b/llvm/include/llvm/ObjectYAML/XCOFFYAML.h
@@ -29,38 +29,6 @@ struct FileHeader {
   llvm::yaml::Hex16 Flags;
 };
 
-struct AuxiliaryHeader {
-  Optional<llvm::yaml::Hex16> Magic;
-  Optional<llvm::yaml::Hex16> Version;
-  Optional<llvm::yaml::Hex64> TextStartAddr;
-  Optional<llvm::yaml::Hex64> DataStartAddr;
-  Optional<llvm::yaml::Hex64> TOCAnchorAddr;
-  Optional<uint16_t> SecNumOfEntryPoint;
-  Optional<uint16_t> SecNumOfText;
-  Optional<uint16_t> SecNumOfData;
-  Optional<uint16_t> SecNumOfTOC;
-  Optional<uint16_t> SecNumOfLoader;
-  Optional<uint16_t> SecNumOfBSS;
-  Optional<llvm::yaml::Hex16> MaxAlignOfText;
-  Optional<llvm::yaml::Hex16> MaxAlignOfData;
-  Optional<llvm::yaml::Hex16> ModuleType;
-  Optional<llvm::yaml::Hex8> CpuFlag;
-  Optional<llvm::yaml::Hex8> CpuType;
-  Optional<llvm::yaml::Hex8> TextPageSize;
-  Optional<llvm::yaml::Hex8> DataPageSize;
-  Optional<llvm::yaml::Hex8> StackPageSize;
-  Optional<llvm::yaml::Hex8> FlagAndTDataAlignment;
-  Optional<llvm::yaml::Hex64> TextSize;
-  Optional<llvm::yaml::Hex64> InitDataSize;
-  Optional<llvm::yaml::Hex64> BssDataSize;
-  Optional<llvm::yaml::Hex64> EntryPointAddr;
-  Optional<llvm::yaml::Hex64> MaxStackSize;
-  Optional<llvm::yaml::Hex64> MaxDataSize;
-  Optional<uint16_t> SecNumOfTData;
-  Optional<uint16_t> SecNumOfTBSS;
-  Optional<llvm::yaml::Hex16> Flag;
-};
-
 struct Relocation {
   llvm::yaml::Hex64 VirtualAddress;
   llvm::yaml::Hex64 SymbolIndex;
@@ -102,7 +70,6 @@ struct StringTable {
 
 struct Object {
   FileHeader Header;
-  Optional<AuxiliaryHeader> AuxHeader;
   std::vector<Section> Sections;
   std::vector<Symbol> Symbols;
   StringTable StrTbl;
@@ -130,9 +97,6 @@ template <> struct MappingTraits<XCOFFYAML::FileHeader> {
   static void mapping(IO &IO, XCOFFYAML::FileHeader &H);
 };
 
-template <> struct MappingTraits<XCOFFYAML::AuxiliaryHeader> {
-  static void mapping(IO &IO, XCOFFYAML::AuxiliaryHeader &AuxHdr);
-};
 
 template <> struct MappingTraits<XCOFFYAML::Symbol> {
   static void mapping(IO &IO, XCOFFYAML::Symbol &S);

diff  --git a/llvm/lib/ObjectYAML/XCOFFEmitter.cpp b/llvm/lib/ObjectYAML/XCOFFEmitter.cpp
index 912982ae21a65..3b4b8c9de5209 100644
--- a/llvm/lib/ObjectYAML/XCOFFEmitter.cpp
+++ b/llvm/lib/ObjectYAML/XCOFFEmitter.cpp
@@ -42,13 +42,11 @@ class XCOFFWriter {
 private:
   bool nameShouldBeInStringTable(StringRef SymbolName);
   bool initFileHeader(uint64_t CurrentOffset);
-  void initAuxFileHeader();
   bool initSectionHeader(uint64_t &CurrentOffset);
   bool initRelocations(uint64_t &CurrentOffset);
   bool initStringTable();
   bool assignAddressesAndIndices();
   void writeFileHeader();
-  void writeAuxFileHeader();
   void writeSectionHeader();
   bool writeSectionData();
   bool writeRelocations();
@@ -67,7 +65,6 @@ class XCOFFWriter {
       {StringRef("N_ABS"), XCOFF::N_ABS},
       {StringRef("N_UNDEF"), XCOFF::N_UNDEF}};
   XCOFFYAML::FileHeader InitFileHdr = Obj.Header;
-  XCOFFYAML::AuxiliaryHeader InitAuxFileHdr;
   std::vector<XCOFFYAML::Section> InitSections = Obj.Sections;
 };
 
@@ -235,85 +232,22 @@ bool XCOFFWriter::initFileHeader(uint64_t CurrentOffset) {
   return true;
 }
 
-void XCOFFWriter::initAuxFileHeader() {
-  InitAuxFileHdr = *Obj.AuxHeader;
-  // In general, an object file might contain multiple sections of a given type,
-  // but in a loadable module, there must be exactly one .text, .data, .bss, and
-  // .loader section. A loadable object might also have one .tdata section and
-  // one .tbss section.
-  // Set these section-related values if not set explicitly. We assume that the
-  // input YAML matches the format of the loadable object, but if multiple input
-  // sections still have the same type, the first section with that type
-  // prevails.
-  for (uint16_t I = 0, E = InitSections.size(); I < E; ++I) {
-    switch (InitSections[I].Flags) {
-    case XCOFF::STYP_TEXT:
-      if (!InitAuxFileHdr.TextSize)
-        InitAuxFileHdr.TextSize = InitSections[I].Size;
-      if (!InitAuxFileHdr.TextStartAddr)
-        InitAuxFileHdr.TextStartAddr = InitSections[I].Address;
-      if (!InitAuxFileHdr.SecNumOfText)
-        InitAuxFileHdr.SecNumOfText = I + 1;
-      break;
-    case XCOFF::STYP_DATA:
-      if (!InitAuxFileHdr.InitDataSize)
-        InitAuxFileHdr.InitDataSize = InitSections[I].Size;
-      if (!InitAuxFileHdr.DataStartAddr)
-        InitAuxFileHdr.DataStartAddr = InitSections[I].Address;
-      if (!InitAuxFileHdr.SecNumOfData)
-        InitAuxFileHdr.SecNumOfData = I + 1;
-      break;
-    case XCOFF::STYP_BSS:
-      if (!InitAuxFileHdr.BssDataSize)
-        InitAuxFileHdr.BssDataSize = InitSections[I].Size;
-      if (!InitAuxFileHdr.SecNumOfBSS)
-        InitAuxFileHdr.SecNumOfBSS = I + 1;
-      break;
-    case XCOFF::STYP_TDATA:
-      if (!InitAuxFileHdr.SecNumOfTData)
-        InitAuxFileHdr.SecNumOfTData = I + 1;
-      break;
-    case XCOFF::STYP_TBSS:
-      if (!InitAuxFileHdr.SecNumOfTBSS)
-        InitAuxFileHdr.SecNumOfTBSS = I + 1;
-      break;
-    case XCOFF::STYP_LOADER:
-      if (!InitAuxFileHdr.SecNumOfLoader)
-        InitAuxFileHdr.SecNumOfLoader = I + 1;
-      break;
-    default:
-      break;
-    }
-  }
-}
-
 bool XCOFFWriter::assignAddressesAndIndices() {
   uint64_t FileHdrSize =
       Is64Bit ? XCOFF::FileHeaderSize64 : XCOFF::FileHeaderSize32;
-  uint64_t AuxFileHdrSize = 0;
-  if (Obj.AuxHeader)
-    AuxFileHdrSize = Obj.Header.AuxHeaderSize
-                         ? Obj.Header.AuxHeaderSize
-                         : (Is64Bit ? XCOFF::AuxFileHeaderSize64
-                                    : XCOFF::AuxFileHeaderSize32);
   uint64_t SecHdrSize =
       Is64Bit ? XCOFF::SectionHeaderSize64 : XCOFF::SectionHeaderSize32;
-  uint64_t CurrentOffset =
-      FileHdrSize + AuxFileHdrSize + InitSections.size() * SecHdrSize;
+  uint64_t CurrentOffset = FileHdrSize /* TODO: + auxiliaryHeaderSize() */ +
+                           InitSections.size() * SecHdrSize;
 
   // Calculate section header info.
   if (!initSectionHeader(CurrentOffset))
     return false;
-  InitFileHdr.AuxHeaderSize = AuxFileHdrSize;
 
   // Calculate file header info.
   if (!initFileHeader(CurrentOffset))
     return false;
 
-  // Initialize the auxiliary file header.
-  if (Obj.AuxHeader)
-    initAuxFileHeader();
-
   // Initialize the string table.
   return initStringTable();
 }
@@ -327,7 +261,7 @@ void XCOFFWriter::writeFileHeader() {
     W.write<uint64_t>(Obj.Header.SymbolTableOffset
                           ? Obj.Header.SymbolTableOffset
                           : InitFileHdr.SymbolTableOffset);
-    W.write<uint16_t>(InitFileHdr.AuxHeaderSize);
+    W.write<uint16_t>(Obj.Header.AuxHeaderSize);
     W.write<uint16_t>(Obj.Header.Flags);
     W.write<int32_t>(Obj.Header.NumberOfSymTableEntries
                          ? Obj.Header.NumberOfSymTableEntries
@@ -339,72 +273,11 @@ void XCOFFWriter::writeFileHeader() {
     W.write<int32_t>(Obj.Header.NumberOfSymTableEntries
                          ? Obj.Header.NumberOfSymTableEntries
                          : InitFileHdr.NumberOfSymTableEntries);
-    W.write<uint16_t>(InitFileHdr.AuxHeaderSize);
+    W.write<uint16_t>(Obj.Header.AuxHeaderSize);
     W.write<uint16_t>(Obj.Header.Flags);
   }
 }
 
-void XCOFFWriter::writeAuxFileHeader() {
-  W.write<uint16_t>(InitAuxFileHdr.Magic.getValueOr(yaml::Hex16(1)));
-  W.write<uint16_t>(InitAuxFileHdr.Version.getValueOr(yaml::Hex16(1)));
-  if (Is64Bit) {
-    W.OS.write_zeros(4); // Reserved for debugger.
-    W.write<uint64_t>(InitAuxFileHdr.TextStartAddr.getValueOr(yaml::Hex64(0)));
-    W.write<uint64_t>(InitAuxFileHdr.DataStartAddr.getValueOr(yaml::Hex64(0)));
-    W.write<uint64_t>(InitAuxFileHdr.TOCAnchorAddr.getValueOr(yaml::Hex64(0)));
-  } else {
-    W.write<uint32_t>(InitAuxFileHdr.TextSize.getValueOr(yaml::Hex32(0)));
-    W.write<uint32_t>(InitAuxFileHdr.InitDataSize.getValueOr(yaml::Hex32(0)));
-    W.write<uint32_t>(InitAuxFileHdr.BssDataSize.getValueOr(yaml::Hex32(0)));
-    W.write<uint32_t>(InitAuxFileHdr.EntryPointAddr.getValueOr(yaml::Hex32(0)));
-    W.write<uint32_t>(InitAuxFileHdr.TextStartAddr.getValueOr(yaml::Hex32(0)));
-    W.write<uint32_t>(InitAuxFileHdr.DataStartAddr.getValueOr(yaml::Hex32(0)));
-    W.write<uint32_t>(InitAuxFileHdr.TOCAnchorAddr.getValueOr(yaml::Hex32(0)));
-  }
-  W.write<uint16_t>(InitAuxFileHdr.SecNumOfEntryPoint.getValueOr(0));
-  W.write<uint16_t>(InitAuxFileHdr.SecNumOfText.getValueOr(0));
-  W.write<uint16_t>(InitAuxFileHdr.SecNumOfData.getValueOr(0));
-  W.write<uint16_t>(InitAuxFileHdr.SecNumOfTOC.getValueOr(0));
-  W.write<uint16_t>(InitAuxFileHdr.SecNumOfLoader.getValueOr(0));
-  W.write<uint16_t>(InitAuxFileHdr.SecNumOfBSS.getValueOr(0));
-  W.write<uint16_t>(InitAuxFileHdr.MaxAlignOfText.getValueOr(yaml::Hex16(0)));
-  W.write<uint16_t>(InitAuxFileHdr.MaxAlignOfData.getValueOr(yaml::Hex16(0)));
-  W.write<uint16_t>(InitAuxFileHdr.ModuleType.getValueOr(yaml::Hex16(0)));
-  W.write<uint8_t>(InitAuxFileHdr.CpuFlag.getValueOr(yaml::Hex8(0)));
-  W.write<uint8_t>(0); // Reserved for CPU type.
-  if (Is64Bit) {
-    W.write<uint8_t>(InitAuxFileHdr.TextPageSize.getValueOr(yaml::Hex8(0)));
-    W.write<uint8_t>(InitAuxFileHdr.DataPageSize.getValueOr(yaml::Hex8(0)));
-    W.write<uint8_t>(InitAuxFileHdr.StackPageSize.getValueOr(yaml::Hex8(0)));
-    W.write<uint8_t>(
-        InitAuxFileHdr.FlagAndTDataAlignment.getValueOr(yaml::Hex8(0x80)));
-    W.write<uint64_t>(InitAuxFileHdr.TextSize.getValueOr(yaml::Hex64(0)));
-    W.write<uint64_t>(InitAuxFileHdr.InitDataSize.getValueOr(yaml::Hex64(0)));
-    W.write<uint64_t>(InitAuxFileHdr.BssDataSize.getValueOr(yaml::Hex64(0)));
-    W.write<uint64_t>(InitAuxFileHdr.EntryPointAddr.getValueOr(yaml::Hex64(0)));
-    W.write<uint64_t>(InitAuxFileHdr.MaxStackSize.getValueOr(yaml::Hex64(0)));
-    W.write<uint64_t>(InitAuxFileHdr.MaxDataSize.getValueOr(yaml::Hex64(0)));
-  } else {
-    W.write<uint32_t>(InitAuxFileHdr.MaxStackSize.getValueOr(yaml::Hex32(0)));
-    W.write<uint32_t>(InitAuxFileHdr.MaxDataSize.getValueOr(yaml::Hex32(0)));
-    W.OS.write_zeros(4); // Reserved for debugger.
-    W.write<uint8_t>(InitAuxFileHdr.TextPageSize.getValueOr(yaml::Hex8(0)));
-    W.write<uint8_t>(InitAuxFileHdr.DataPageSize.getValueOr(yaml::Hex8(0)));
-    W.write<uint8_t>(InitAuxFileHdr.StackPageSize.getValueOr(yaml::Hex8(0)));
-    W.write<uint8_t>(
-        InitAuxFileHdr.FlagAndTDataAlignment.getValueOr(yaml::Hex8(0)));
-  }
-  W.write<uint16_t>(InitAuxFileHdr.SecNumOfTData.getValueOr(0));
-  W.write<uint16_t>(InitAuxFileHdr.SecNumOfTBSS.getValueOr(0));
-  if (Is64Bit) {
-    W.write<uint16_t>(InitAuxFileHdr.Flag.getValueOr(yaml::Hex16(XCOFF::SHR_SYMTAB)));
-    if (InitFileHdr.AuxHeaderSize > XCOFF::AuxFileHeaderSize64)
-      W.OS.write_zeros(InitFileHdr.AuxHeaderSize - XCOFF::AuxFileHeaderSize64);
-  } else if (InitFileHdr.AuxHeaderSize > XCOFF::AuxFileHeaderSize32) {
-    W.OS.write_zeros(InitFileHdr.AuxHeaderSize - XCOFF::AuxFileHeaderSize32);
-  }
-}
-
 void XCOFFWriter::writeSectionHeader() {
   for (uint16_t I = 0, E = Obj.Sections.size(); I < E; ++I) {
     XCOFFYAML::Section YamlSec = Obj.Sections[I];
@@ -595,8 +468,6 @@ bool XCOFFWriter::writeXCOFF() {
     return false;
   StartOffset = W.OS.tell();
   writeFileHeader();
-  if (Obj.AuxHeader)
-    writeAuxFileHeader();
   if (!Obj.Sections.empty()) {
     writeSectionHeader();
     if (!writeSectionData())

diff  --git a/llvm/lib/ObjectYAML/XCOFFYAML.cpp b/llvm/lib/ObjectYAML/XCOFFYAML.cpp
index 221cf3b064c05..699577988de6d 100644
--- a/llvm/lib/ObjectYAML/XCOFFYAML.cpp
+++ b/llvm/lib/ObjectYAML/XCOFFYAML.cpp
@@ -118,37 +118,6 @@ void MappingTraits<XCOFFYAML::FileHeader>::mapping(
   IO.mapOptional("Flags", FileHdr.Flags);
 }
 
-void MappingTraits<XCOFFYAML::AuxiliaryHeader>::mapping(
-    IO &IO, XCOFFYAML::AuxiliaryHeader &AuxHdr) {
-  IO.mapOptional("Magic", AuxHdr.Magic);
-  IO.mapOptional("Version", AuxHdr.Version);
-  IO.mapOptional("TextStartAddr", AuxHdr.TextStartAddr);
-  IO.mapOptional("DataStartAddr", AuxHdr.DataStartAddr);
-  IO.mapOptional("TOCAnchorAddr", AuxHdr.TOCAnchorAddr);
-  IO.mapOptional("TextSectionSize", AuxHdr.TextSize);
-  IO.mapOptional("DataSectionSize", AuxHdr.InitDataSize);
-  IO.mapOptional("BssSectionSize", AuxHdr.BssDataSize);
-  IO.mapOptional("SecNumOfEntryPoint", AuxHdr.SecNumOfEntryPoint);
-  IO.mapOptional("SecNumOfText", AuxHdr.SecNumOfText);
-  IO.mapOptional("SecNumOfData", AuxHdr.SecNumOfData);
-  IO.mapOptional("SecNumOfTOC", AuxHdr.SecNumOfTOC);
-  IO.mapOptional("SecNumOfLoader", AuxHdr.SecNumOfLoader);
-  IO.mapOptional("SecNumOfBSS", AuxHdr.SecNumOfBSS);
-  IO.mapOptional("MaxAlignOfText", AuxHdr.MaxAlignOfText);
-  IO.mapOptional("MaxAlignOfData", AuxHdr.MaxAlignOfData);
-  IO.mapOptional("ModuleType", AuxHdr.CpuFlag);
-  IO.mapOptional("TextPageSize", AuxHdr.TextPageSize);
-  IO.mapOptional("DataPageSize", AuxHdr.DataPageSize);
-  IO.mapOptional("StackPageSize", AuxHdr.StackPageSize);
-  IO.mapOptional("FlagAndTDataAlignment", AuxHdr.FlagAndTDataAlignment);
-  IO.mapOptional("EntryPointAddr", AuxHdr.EntryPointAddr);
-  IO.mapOptional("MaxStackSize", AuxHdr.MaxStackSize);
-  IO.mapOptional("MaxDataSize", AuxHdr.MaxDataSize);
-  IO.mapOptional("SecNumOfTData", AuxHdr.SecNumOfTData);
-  IO.mapOptional("SecNumOfTBSS", AuxHdr.SecNumOfTBSS);
-  IO.mapOptional("Flag", AuxHdr.Flag);
-}
-
 void MappingTraits<XCOFFYAML::Relocation>::mapping(IO &IO,
                                                    XCOFFYAML::Relocation &R) {
   IO.mapOptional("Address", R.VirtualAddress);
@@ -193,7 +162,6 @@ void MappingTraits<XCOFFYAML::StringTable>::mapping(IO &IO, XCOFFYAML::StringTab
 void MappingTraits<XCOFFYAML::Object>::mapping(IO &IO, XCOFFYAML::Object &Obj) {
   IO.mapTag("!XCOFF", true);
   IO.mapRequired("FileHeader", Obj.Header);
-  IO.mapOptional("AuxiliaryHeader", Obj.AuxHeader);
   IO.mapOptional("Sections", Obj.Sections);
   IO.mapOptional("Symbols", Obj.Symbols);
   IO.mapOptional("StringTable", Obj.StrTbl);

diff  --git a/llvm/test/tools/yaml2obj/XCOFF/aux-hdr-defaults.yaml b/llvm/test/tools/yaml2obj/XCOFF/aux-hdr-defaults.yaml
deleted file mode 100644
index 1aa832eb6d83d..0000000000000
--- a/llvm/test/tools/yaml2obj/XCOFF/aux-hdr-defaults.yaml
+++ /dev/null
@@ -1,199 +0,0 @@
-## Test that yaml2obj automatically sets fields of the auxiliary file header
-## if not set explicitly.
-
-## Case1: if text/data/bss/tdata/tbss/loader sections are set and corresponding
-##        fields in the aux header are omitted, we use the derived values of
-##        those sections to set corresponding fields.
-# RUN: yaml2obj %s --docnum=1 -o %t1
-# RUN: llvm-readobj --auxiliary-header %t1 | FileCheck %s --check-prefix=CASE1
-
-# CASE1:      AuxiliaryHeader {
-# CASE1-NEXT:   Magic: 0x10B
-# CASE1-NEXT:   Version: 0x1
-# CASE1-NEXT:   Size of .text section: 0x8
-# CASE1-NEXT:   Size of .data section: 0x8
-# CASE1-NEXT:   Size of .bss section: 0x8
-# CASE1-NEXT:   Entry point address: 0x0
-# CASE1-NEXT:   .text section start address: 0x4
-# CASE1-NEXT:   .data section start address: 0x10
-# CASE1-NEXT:   TOC anchor address: 0x0
-# CASE1-NEXT:   Section number of entryPoint: 0
-# CASE1-NEXT:   Section number of .text: 2
-# CASE1-NEXT:   Section number of .data: 4
-# CASE1-NEXT:   Section number of TOC: 0
-# CASE1-NEXT:   Section number of loader data: 12
-# CASE1-NEXT:   Section number of .bss: 6
-# CASE1-NEXT:   Maxium alignment of .text: 0x0
-# CASE1-NEXT:   Maxium alignment of .data: 0x0
-# CASE1-NEXT:   Module type: 0x0
-# CASE1-NEXT:   CPU type of objects: 0x0
-# CASE1-NEXT:   (Reserved): 0x0
-# CASE1-NEXT:   Maximum stack size: 0x0
-# CASE1-NEXT:   Maximum data size: 0x0
-# CASE1-NEXT:   Reserved for debugger: 0x0
-# CASE1-NEXT:   Text page size: 0x0
-# CASE1-NEXT:   Data page size: 0x0
-# CASE1-NEXT:   Stack page size: 0x0
-# CASE1-NEXT:   Flag: 0x0
-# CASE1-NEXT:   Alignment of thread-local storage: 0x0
-# CASE1-NEXT:   Section number for .tdata: 8
-# CASE1-NEXT:   Section number for .tbss: 10
-# CASE1-NEXT: }
-
---- !XCOFF
-FileHeader:
-  MagicNumber: [[MAGIC=0x1DF]]
-AuxiliaryHeader:
-  Magic: 0x10B
-Sections:
-  - Flags:       [ STYP_PAD ]
-    SectionData: "1234"
-## Set two sections with 
diff erent contents for a given type to
-## demonstrate that the values in the aux header depend on the first one.
-  - Flags:       [ STYP_TEXT ]
-    SectionData: "1234000000"
-  - Flags:       [ STYP_TEXT ]
-    SectionData: "1234"
-  - Flags:       [ STYP_DATA ]
-    SectionData: "1234000000"
-  - Flags:       [ STYP_DATA ]
-    SectionData: "1234"
-  - Flags:       [ STYP_BSS ]
-    SectionData: "1234000000"
-  - Flags:       [ STYP_BSS ]
-    SectionData: "1234"
-  - Flags:       [ STYP_TDATA ]
-    SectionData: "1234000000"
-  - Flags:       [ STYP_TDATA ]
-    SectionData: "1234"
-  - Flags:       [ STYP_TBSS ]
-    SectionData: "1234000000"
-  - Flags:       [ STYP_TBSS ]
-    SectionData: "1234"
-  - Flags:       [ STYP_LOADER ]
-    SectionData: "1234000000"
-  - Flags:       [ STYP_LOADER ]
-    SectionData: "1234"
-
-## Case2: same as case1, except producing 64-bit output.
-# RUN: yaml2obj %s --docnum=1 -DMAGIC=0x1F7 -o %t2
-# RUN: llvm-readobj --auxiliary-header %t2 | FileCheck %s --check-prefix=CASE2
-
-## Case2: same as case1, except it is 64-bit.
-# RUN: yaml2obj %s --docnum=1 -DMAGIC=0x1F7 -o %t2
-# RUN: llvm-readobj --auxiliary-header %t2 | FileCheck %s --check-prefix=CASE2
-
-# CASE2:      AuxiliaryHeader {
-# CASE2-NEXT:   Magic: 0x10B
-# CASE2-NEXT:   Version: 0x1
-# CASE2-NEXT:   Reserved for debugger: 0x0
-# CASE2-NEXT:   .text section start address: 0x2
-# CASE2-NEXT:   .data section start address: 0xE
-# CASE2-NEXT:   TOC anchor address: 0x0
-# CASE2-NEXT:   Section number of entryPoint: 0
-# CASE2-NEXT:   Section number of .text: 2
-# CASE2-NEXT:   Section number of .data: 4
-# CASE2-NEXT:   Section number of TOC: 0
-# CASE2-NEXT:   Section number of loader data: 12
-# CASE2-NEXT:   Section number of .bss: 6
-# CASE2-NEXT:   Maxium alignment of .text: 0x0
-# CASE2-NEXT:   Maxium alignment of .data: 0x0
-# CASE2-NEXT:   Module type: 0x0
-# CASE2-NEXT:   CPU type of objects: 0x0
-# CASE2-NEXT:   (Reserved): 0x0
-# CASE2-NEXT:   Text page size: 0x0
-# CASE2-NEXT:   Data page size: 0x0
-# CASE2-NEXT:   Stack page size: 0x0
-# CASE2-NEXT:   Flag: 0x0
-# CASE2-NEXT:   Alignment of thread-local storage: 0x0
-# CASE2-NEXT:   Size of .text section: 0x8
-# CASE2-NEXT:   Size of .data section: 0x8
-# CASE2-NEXT:   Size of .bss section: 0x8
-# CASE2-NEXT:   Entry point address: 0x0
-# CASE2-NEXT:   Maximum stack size: 0x0
-# CASE2-NEXT:   Maximum data size: 0x0
-# CASE2-NEXT:   Section number for .tdata: 8
-# CASE2-NEXT:   Section number for .tbss: 10
-# CASE2-NEXT:   Additional flags 64-bit XCOFF: 0x8000
-# CASE2-NEXT: }
-
-## Case3: if all fields in the aux header are omitted and text/data/bss/tdata/tbss/loader
-##        sections are not set, we set the fields using default values.
-# RUN: yaml2obj %s --docnum=2 -o %t3
-# RUN: llvm-readobj --auxiliary-header %t3 | FileCheck %s --check-prefix=CASE3
-
-# CASE3:      AuxiliaryHeader {
-# CASE3-NEXT:   Magic: 0x1
-# CASE3-NEXT:   Version: 0x1
-# CASE3-NEXT:   Size of .text section: 0x0
-# CASE3-NEXT:   Size of .data section: 0x0
-# CASE3-NEXT:   Size of .bss section: 0x0
-# CASE3-NEXT:   Entry point address: 0x0
-# CASE3-NEXT:   .text section start address: 0x0
-# CASE3-NEXT:   .data section start address: 0x0
-# CASE3-NEXT:   TOC anchor address: 0x0
-# CASE3-NEXT:   Section number of entryPoint: 0
-# CASE3-NEXT:   Section number of .text: 0
-# CASE3-NEXT:   Section number of .data: 0
-# CASE3-NEXT:   Section number of TOC: 0
-# CASE3-NEXT:   Section number of loader data: 0
-# CASE3-NEXT:   Section number of .bss: 0
-# CASE3-NEXT:   Maxium alignment of .text: 0x0
-# CASE3-NEXT:   Maxium alignment of .data: 0x0
-# CASE3-NEXT:   Module type: 0x0
-# CASE3-NEXT:   CPU type of objects: 0x0
-# CASE3-NEXT:   (Reserved): 0x0
-# CASE3-NEXT:   Maximum stack size: 0x0
-# CASE3-NEXT:   Maximum data size: 0x0
-# CASE3-NEXT:   Reserved for debugger: 0x0
-# CASE3-NEXT:   Text page size: 0x0
-# CASE3-NEXT:   Data page size: 0x0
-# CASE3-NEXT:   Stack page size: 0x0
-# CASE3-NEXT:   Flag: 0x0
-# CASE3-NEXT:   Alignment of thread-local storage: 0x0
-# CASE3-NEXT:   Section number for .tdata: 0
-# CASE3-NEXT:   Section number for .tbss: 0
-# CASE3-NEXT: }
-
---- !XCOFF
-FileHeader:
-  MagicNumber: [[MAGIC=0x1DF]]
-AuxiliaryHeader:
-
-## Case4: same as case3, except producing 64-bit output.
-# RUN: yaml2obj %s --docnum=2 -DMAGIC=0x1F7 -o %t4
-# RUN: llvm-readobj --auxiliary-header %t4 | FileCheck %s --check-prefix=CASE4
-
-# CASE4:      AuxiliaryHeader {
-# CASE4-NEXT:   Magic: 0x1
-# CASE4-NEXT:   Version: 0x1
-# CASE4-NEXT:   Reserved for debugger: 0x0
-# CASE4-NEXT:   .text section start address: 0x0
-# CASE4-NEXT:   .data section start address: 0x0
-# CASE4-NEXT:   TOC anchor address: 0x0
-# CASE4-NEXT:   Section number of entryPoint: 0
-# CASE4-NEXT:   Section number of .text: 0
-# CASE4-NEXT:   Section number of .data: 0
-# CASE4-NEXT:   Section number of TOC: 0
-# CASE4-NEXT:   Section number of loader data: 0
-# CASE4-NEXT:   Section number of .bss: 0
-# CASE4-NEXT:   Maxium alignment of .text: 0x0
-# CASE4-NEXT:   Maxium alignment of .data: 0x0
-# CASE4-NEXT:   Module type: 0x0
-# CASE4-NEXT:   CPU type of objects: 0x0
-# CASE4-NEXT:   (Reserved): 0x0
-# CASE4-NEXT:   Text page size: 0x0
-# CASE4-NEXT:   Data page size: 0x0
-# CASE4-NEXT:   Stack page size: 0x0
-# CASE4-NEXT:   Flag: 0x0
-# CASE4-NEXT:   Alignment of thread-local storage: 0x0
-# CASE4-NEXT:   Size of .text section: 0x0
-# CASE4-NEXT:   Size of .data section: 0x0
-# CASE4-NEXT:   Size of .bss section: 0x0
-# CASE4-NEXT:   Entry point address: 0x0
-# CASE4-NEXT:   Maximum stack size: 0x0
-# CASE4-NEXT:   Maximum data size: 0x0
-# CASE4-NEXT:   Section number for .tdata: 0
-# CASE4-NEXT:   Section number for .tbss: 0
-# CASE4-NEXT:   Additional flags 64-bit XCOFF: 0x8000
-# CASE4-NEXT: }

diff  --git a/llvm/test/tools/yaml2obj/XCOFF/aux-hdr-full-contents.yaml b/llvm/test/tools/yaml2obj/XCOFF/aux-hdr-full-contents.yaml
deleted file mode 100644
index f9368bdbe2756..0000000000000
--- a/llvm/test/tools/yaml2obj/XCOFF/aux-hdr-full-contents.yaml
+++ /dev/null
@@ -1,123 +0,0 @@
-## Test that we can explicitly specify all fields of the auxiliary file header.
-## Notice that the values aren't derived from the sections if we explicitly set the fields.
-
-# RUN: yaml2obj %s -o %t1
-# RUN: llvm-readobj --auxiliary-header %t1 | FileCheck %s --check-prefix=CHECK32
-# RUN: yaml2obj %s -DMAGIC=0x1F7 -DFLAG64=0x2 -o %t2
-# RUN: llvm-readobj --auxiliary-header %t2 | FileCheck %s --check-prefix=CHECK64
-
-# CHECK32:      Format: aixcoff-rs6000
-# CHECK32-NEXT: Arch: powerpc
-# CHECK32-NEXT: AddressSize: 32bit
-# CHECK32-NEXT: AuxiliaryHeader {
-# CHECK32-NEXT:   Magic: 0x10B
-# CHECK32-NEXT:   Version: 0x1
-# CHECK32-NEXT:   Size of .text section: 0x8
-# CHECK32-NEXT:   Size of .data section: 0x9
-# CHECK32-NEXT:   Size of .bss section: 0x10
-# CHECK32-NEXT:   Entry point address: 0x1111
-# CHECK32-NEXT:   .text section start address: 0x2222
-# CHECK32-NEXT:   .data section start address: 0x3333
-# CHECK32-NEXT:   TOC anchor address: 0x4444
-# CHECK32-NEXT:   Section number of entryPoint: 1
-# CHECK32-NEXT:   Section number of .text: 2
-# CHECK32-NEXT:   Section number of .data: 3
-# CHECK32-NEXT:   Section number of TOC: 4
-# CHECK32-NEXT:   Section number of loader data: 5
-# CHECK32-NEXT:   Section number of .bss: 6
-# CHECK32-NEXT:   Maxium alignment of .text: 0x7
-# CHECK32-NEXT:   Maxium alignment of .data: 0x3
-# CHECK32-NEXT:   Module type: 0x0
-# CHECK32-NEXT:   CPU type of objects: 0x1
-# CHECK32-NEXT:   (Reserved): 0x0
-# CHECK32-NEXT:   Maximum stack size: 0x0
-# CHECK32-NEXT:   Maximum data size: 0x0
-# CHECK32-NEXT:   Reserved for debugger: 0x0
-# CHECK32-NEXT:   Text page size: 0x1
-# CHECK32-NEXT:   Data page size: 0x1
-# CHECK32-NEXT:   Stack page size: 0x1
-# CHECK32-NEXT:   Flag: 0x0
-# CHECK32-NEXT:   Alignment of thread-local storage: 0x1
-# CHECK32-NEXT:   Section number for .tdata: 7
-# CHECK32-NEXT:   Section number for .tbss: 8
-# CHECK32-NEXT: }
-
-# CHECK64:      Format: aix5coff64-rs6000
-# CHECK64-NEXT: Arch: powerpc64
-# CHECK64-NEXT: AddressSize: 64bit
-# CHECK64-NEXT: AuxiliaryHeader {
-# CHECK64-NEXT:   Magic: 0x10B
-# CHECK64-NEXT:   Version: 0x1
-# CHECK64-NEXT:   Reserved for debugger: 0x0
-# CHECK64-NEXT:   .text section start address: 0x2222
-# CHECK64-NEXT:   .data section start address: 0x3333
-# CHECK64-NEXT:   TOC anchor address: 0x4444
-# CHECK64-NEXT:   Section number of entryPoint: 1
-# CHECK64-NEXT:   Section number of .text: 2
-# CHECK64-NEXT:   Section number of .data: 3
-# CHECK64-NEXT:   Section number of TOC: 4
-# CHECK64-NEXT:   Section number of loader data: 5
-# CHECK64-NEXT:   Section number of .bss: 6
-# CHECK64-NEXT:   Maxium alignment of .text: 0x7
-# CHECK64-NEXT:   Maxium alignment of .data: 0x3
-# CHECK64-NEXT:   Module type: 0x0
-# CHECK64-NEXT:   CPU type of objects: 0x1
-# CHECK64-NEXT:   (Reserved): 0x0
-# CHECK64-NEXT:   Text page size: 0x1
-# CHECK64-NEXT:   Data page size: 0x1
-# CHECK64-NEXT:   Stack page size: 0x1
-# CHECK64-NEXT:   Flag: 0x0
-# CHECK64-NEXT:   Alignment of thread-local storage: 0x0
-# CHECK64-NEXT:   Size of .text section: 0x8
-# CHECK64-NEXT:   Size of .data section: 0x9
-# CHECK64-NEXT:   Size of .bss section: 0x10
-# CHECK64-NEXT:   Entry point address: 0x1111
-# CHECK64-NEXT:   Maximum stack size: 0x0
-# CHECK64-NEXT:   Maximum data size: 0x0
-# CHECK64-NEXT:   Section number for .tdata: 7
-# CHECK64-NEXT:   Section number for .tbss: 8
-# CHECK64-NEXT:   Additional flags 64-bit XCOFF: 0x2
-# CHECK64-NEXT: }
-
---- !XCOFF
-FileHeader:
-  MagicNumber: [[MAGIC=0x1DF]]
-AuxiliaryHeader:
-  Magic:                 0x10B
-  Version:               0x1
-  TextSectionSize:       0x8
-  DataSectionSize:       0x9
-  BssSectionSize:        0x10
-  EntryPointAddr:        0x1111
-  TextStartAddr:         0x2222
-  DataStartAddr:         0x3333
-  TOCAnchorAddr:         0x4444
-  SecNumOfEntryPoint:    1
-  SecNumOfText:          2
-  SecNumOfData:          3
-  SecNumOfTOC:           4
-  SecNumOfLoader:        5
-  SecNumOfBSS:           6
-  MaxAlignOfText:        0x7
-  MaxAlignOfData:        0x3
-  ModuleType:            0x1
-  TextPageSize:          0x1
-  DataPageSize:          0x1
-  StackPageSize:         0x1
-  SecNumOfTData:         7
-  SecNumOfTBSS:          8
-  FlagAndTDataAlignment: 0x1
-  Flag:                  [[FLAG64=<none>]]
-Sections:
-  - Flags:       [ STYP_TEXT ]
-    SectionData: "1232"
-  - Flags:       [ STYP_DATA ]
-    SectionData: "5678"
-  - Flags:       [ STYP_BSS ]
-    SectionData: "9101"
-  - Flags:       [ STYP_TDATA ]
-    SectionData: "1112"
-  - Flags:       [ STYP_TBSS ]
-    SectionData: "1314"
-  - Flags:       [ STYP_LOADER ]
-    SectionData: "1516"


        


More information about the llvm-commits mailing list