mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-27 19:16:04 +00:00

Linux kernel fs/binfmt_elf_fdpic.c supports FDPIC for MMU-less systems. GCC/binutils/qemu support FDPIC ABI for ARM (https://github.com/mickael-guene/fdpic_doc). _ARM FDPIC Toolchain and ABI_ provides a summary. This patch implements FDPIC relocations to the integrated assembler. There are 6 static relocations and 2 dynamic relocations, with R_ARM_FUNCDESC as both static and dynamic. gas requires `--fdpic` to assemble data relocations like `.word f(FUNCDESC)`. This patch adds `MCTargetOptions::FDPIC` and reports an error if FDPIC is not set. Pull Request: https://github.com/llvm/llvm-project/pull/82187
31 lines
1.1 KiB
C++
31 lines
1.1 KiB
C++
//===- lib/MC/MCTargetOptions.cpp - MC Target Options ---------------------===//
|
|
//
|
|
// 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/MC/MCTargetOptions.h"
|
|
#include "llvm/ADT/StringRef.h"
|
|
|
|
using namespace llvm;
|
|
|
|
MCTargetOptions::MCTargetOptions()
|
|
: MCRelaxAll(false), MCNoExecStack(false), MCFatalWarnings(false),
|
|
MCNoWarn(false), MCNoDeprecatedWarn(false), MCNoTypeCheck(false),
|
|
MCSaveTempLabels(false), MCIncrementalLinkerCompatible(false),
|
|
FDPIC(false), ShowMCEncoding(false), ShowMCInst(false), AsmVerbose(false),
|
|
PreserveAsmComments(true), Dwarf64(false),
|
|
EmitDwarfUnwind(EmitDwarfUnwindType::Default),
|
|
MCUseDwarfDirectory(DefaultDwarfDirectory),
|
|
EmitCompactUnwindNonCanonical(false), PPCUseFullRegisterNames(false) {}
|
|
|
|
StringRef MCTargetOptions::getABIName() const {
|
|
return ABIName;
|
|
}
|
|
|
|
StringRef MCTargetOptions::getAssemblyLanguage() const {
|
|
return AssemblyLanguage;
|
|
}
|