106c3fb27SDimitry Andric //===------ ObjectFormats.h - Object format details for ORC -----*- C++ -*-===// 206c3fb27SDimitry Andric // 306c3fb27SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 406c3fb27SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 506c3fb27SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 606c3fb27SDimitry Andric // 706c3fb27SDimitry Andric //===----------------------------------------------------------------------===// 806c3fb27SDimitry Andric // 906c3fb27SDimitry Andric // ORC-specific object format details. 1006c3fb27SDimitry Andric // 1106c3fb27SDimitry Andric //===----------------------------------------------------------------------===// 1206c3fb27SDimitry Andric 1306c3fb27SDimitry Andric #ifndef LLVM_EXECUTIONENGINE_ORC_SHARED_OBJECTFORMATS_H 1406c3fb27SDimitry Andric #define LLVM_EXECUTIONENGINE_ORC_SHARED_OBJECTFORMATS_H 1506c3fb27SDimitry Andric 1606c3fb27SDimitry Andric #include "llvm/ADT/StringRef.h" 1706c3fb27SDimitry Andric 1806c3fb27SDimitry Andric namespace llvm { 1906c3fb27SDimitry Andric namespace orc { 2006c3fb27SDimitry Andric 2106c3fb27SDimitry Andric // MachO section names. 2206c3fb27SDimitry Andric 2306c3fb27SDimitry Andric extern StringRef MachODataCommonSectionName; 2406c3fb27SDimitry Andric extern StringRef MachODataDataSectionName; 2506c3fb27SDimitry Andric extern StringRef MachOEHFrameSectionName; 2606c3fb27SDimitry Andric extern StringRef MachOCompactUnwindInfoSectionName; 27*5f757f3fSDimitry Andric extern StringRef MachOCStringSectionName; 2806c3fb27SDimitry Andric extern StringRef MachOModInitFuncSectionName; 2906c3fb27SDimitry Andric extern StringRef MachOObjCCatListSectionName; 3006c3fb27SDimitry Andric extern StringRef MachOObjCCatList2SectionName; 3106c3fb27SDimitry Andric extern StringRef MachOObjCClassListSectionName; 3206c3fb27SDimitry Andric extern StringRef MachOObjCClassNameSectionName; 3306c3fb27SDimitry Andric extern StringRef MachOObjCClassRefsSectionName; 3406c3fb27SDimitry Andric extern StringRef MachOObjCConstSectionName; 3506c3fb27SDimitry Andric extern StringRef MachOObjCDataSectionName; 3606c3fb27SDimitry Andric extern StringRef MachOObjCImageInfoSectionName; 3706c3fb27SDimitry Andric extern StringRef MachOObjCMethNameSectionName; 3806c3fb27SDimitry Andric extern StringRef MachOObjCMethTypeSectionName; 3906c3fb27SDimitry Andric extern StringRef MachOObjCNLCatListSectionName; 4006c3fb27SDimitry Andric extern StringRef MachOObjCSelRefsSectionName; 4106c3fb27SDimitry Andric extern StringRef MachOSwift5ProtoSectionName; 4206c3fb27SDimitry Andric extern StringRef MachOSwift5ProtosSectionName; 4306c3fb27SDimitry Andric extern StringRef MachOSwift5TypesSectionName; 4406c3fb27SDimitry Andric extern StringRef MachOSwift5TypeRefSectionName; 4506c3fb27SDimitry Andric extern StringRef MachOSwift5FieldMetadataSectionName; 4606c3fb27SDimitry Andric extern StringRef MachOSwift5EntrySectionName; 4706c3fb27SDimitry Andric extern StringRef MachOThreadBSSSectionName; 4806c3fb27SDimitry Andric extern StringRef MachOThreadDataSectionName; 4906c3fb27SDimitry Andric extern StringRef MachOThreadVarsSectionName; 5006c3fb27SDimitry Andric 5106c3fb27SDimitry Andric extern StringRef MachOInitSectionNames[19]; 5206c3fb27SDimitry Andric 5306c3fb27SDimitry Andric // ELF section names. 5406c3fb27SDimitry Andric extern StringRef ELFEHFrameSectionName; 55*5f757f3fSDimitry Andric 5606c3fb27SDimitry Andric extern StringRef ELFInitArrayFuncSectionName; 57*5f757f3fSDimitry Andric extern StringRef ELFInitFuncSectionName; 58*5f757f3fSDimitry Andric extern StringRef ELFFiniArrayFuncSectionName; 59*5f757f3fSDimitry Andric extern StringRef ELFFiniFuncSectionName; 60*5f757f3fSDimitry Andric extern StringRef ELFCtorArrayFuncSectionName; 61*5f757f3fSDimitry Andric extern StringRef ELFDtorArrayFuncSectionName; 62*5f757f3fSDimitry Andric 63*5f757f3fSDimitry Andric extern StringRef ELFInitSectionNames[3]; 6406c3fb27SDimitry Andric 6506c3fb27SDimitry Andric extern StringRef ELFThreadBSSSectionName; 6606c3fb27SDimitry Andric extern StringRef ELFThreadDataSectionName; 6706c3fb27SDimitry Andric 6806c3fb27SDimitry Andric bool isMachOInitializerSection(StringRef SegName, StringRef SecName); 6906c3fb27SDimitry Andric bool isMachOInitializerSection(StringRef QualifiedName); 7006c3fb27SDimitry Andric 7106c3fb27SDimitry Andric bool isELFInitializerSection(StringRef SecName); 7206c3fb27SDimitry Andric 7306c3fb27SDimitry Andric bool isCOFFInitializerSection(StringRef Name); 7406c3fb27SDimitry Andric 7506c3fb27SDimitry Andric } // end namespace orc 7606c3fb27SDimitry Andric } // end namespace llvm 7706c3fb27SDimitry Andric 7806c3fb27SDimitry Andric #endif // LLVM_EXECUTIONENGINE_ORC_SHARED_MEMORYFLAGS_H 79