1cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng/* SH specific relocation handling.
2cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   Copyright (C) 2000, 2001, 2002, 2005 Red Hat, Inc.
3cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   This file is part of Red Hat elfutils.
4cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   Written by Ulrich Drepper <drepper@redhat.com>, 2000.
5cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng
6cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   Red Hat elfutils is free software; you can redistribute it and/or modify
7cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   it under the terms of the GNU General Public License as published by the
8cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   Free Software Foundation; version 2 of the License.
9cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng
10cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   Red Hat elfutils is distributed in the hope that it will be useful, but
11cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   WITHOUT ANY WARRANTY; without even the implied warranty of
12cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   General Public License for more details.
14cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng
15cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   You should have received a copy of the GNU General Public License along
16cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   with Red Hat elfutils; if not, write to the Free Software Foundation,
17cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
18cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng
19cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   Red Hat elfutils is an included package of the Open Invention Network.
20cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   An included package of the Open Invention Network is a package for which
21cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   Open Invention Network licensees cross-license their patents.  No patent
22cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   license is granted, either expressly or impliedly, by designation as an
23cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   included package.  Should you wish to participate in the Open Invention
24cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   Network licensing program, please visit www.openinventionnetwork.com
25cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng   <http://www.openinventionnetwork.com>.  */
26cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng
27cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng#ifdef HAVE_CONFIG_H
28cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng# include <config.h>
29cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng#endif
30cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng
31cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng#include <elf.h>
32cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng#include <stddef.h>
33cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng
34cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng#define BACKEND sh_
35cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng#include "libebl_CPU.h"
36cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng
37cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng
38cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng/* Return true if the symbol type is that referencing the GOT.  */
39cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Chengbool
40cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Chengsh_gotpc_reloc_check (Elf *elf __attribute__ ((unused)), int type)
41cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng{
42cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng  return type == R_SH_GOTPC;
43cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng}
44cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng
45cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng/* Check for the simple reloc types.  */
46cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben ChengElf_Type
47cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Chengsh_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type)
48cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng{
49cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng  switch (type)
50cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng    {
51cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng    case R_SH_DIR32:
52cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng      return ELF_T_WORD;
53cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng    default:
54cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng      return ELF_T_NUM;
55cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng    }
56cc6695e2684ce93cdf8bd2da63d55d2cf49ff076Ben Cheng}
57