1cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov/*
2cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov * Copyright (C) 2015 The Android Open Source Project
3cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov *
4cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov * Licensed under the Apache License, Version 2.0 (the "License");
5cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov * you may not use this file except in compliance with the License.
6cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov * You may obtain a copy of the License at
7cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov *
8cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov *      http://www.apache.org/licenses/LICENSE-2.0
9cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov *
10cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov * Unless required by applicable law or agreed to in writing, software
11cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov * distributed under the License is distributed on an "AS IS" BASIS,
12cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov * See the License for the specific language governing permissions and
14cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov * limitations under the License.
15cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov */
16cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
17cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#ifndef __LINKER_RELOCS_H
18cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define __LINKER_RELOCS_H
19cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
20cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#include <elf.h>
21cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
22cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_NONE 0 // R_*_NONE is always 0
23cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
24cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#if defined (__aarch64__)
25cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
26cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_JUMP_SLOT R_AARCH64_JUMP_SLOT
27cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_GLOB_DAT  R_AARCH64_GLOB_DAT
28cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_RELATIVE  R_AARCH64_RELATIVE
29cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_IRELATIVE R_AARCH64_IRELATIVE
30cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
31cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#elif defined (__arm__)
32cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
33cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_JUMP_SLOT R_ARM_JUMP_SLOT
34cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_GLOB_DAT  R_ARM_GLOB_DAT
35cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_RELATIVE  R_ARM_RELATIVE
36cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_IRELATIVE R_ARM_IRELATIVE
37cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
38cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#elif defined (__i386__)
39cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
40cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_JUMP_SLOT R_386_JMP_SLOT
41cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_GLOB_DAT  R_386_GLOB_DAT
42cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_RELATIVE  R_386_RELATIVE
43cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_IRELATIVE R_386_IRELATIVE
44cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
45cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#elif defined (__x86_64__)
46cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
47cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_JUMP_SLOT R_X86_64_JUMP_SLOT
48cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_GLOB_DAT  R_X86_64_GLOB_DAT
49cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_RELATIVE  R_X86_64_RELATIVE
50cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#define R_GENERIC_IRELATIVE R_X86_64_IRELATIVE
51cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
52cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#endif
53cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov
54cefef7dab67472d59d45ef1d002a20edf8edde75Dmitriy Ivanov#endif // __LINKER_RELOCS_H
55