blob: 3c9bd371e4968beb2db40cb292ca9f791b5c1547 [file] [log] [blame]
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00001/* Initialization of i386 specific backend library.
2 Copyright (C) 2000, 2001, 2002, 2005 Red Hat, Inc.
3 Written by Ulrich Drepper <drepper@redhat.com>, 2000.
4
5 This program is Open Source software; you can redistribute it and/or
6 modify it under the terms of the Open Software License version 1.0 as
7 published by the Open Source Initiative.
8
9 You should have received a copy of the Open Software License along
10 with this program; if not, you may obtain a copy of the Open Software
11 License version 1.0 from http://www.opensource.org/licenses/osl.php or
12 by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
13 3001 King Ranch Road, Ukiah, CA 95482. */
14
15#ifdef HAVE_CONFIG_H
16# include <config.h>
17#endif
18
Roland McGrathcd60ea82005-11-16 01:57:40 +000019#define BACKEND i386_
20#define RELOC_PREFIX R_386_
21#include "libebl_CPU.h"
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000022
Roland McGrathcd60ea82005-11-16 01:57:40 +000023/* This defines the common reloc hooks based on i386_reloc.def. */
24#include "common-reloc.c"
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000025
26const char *
27i386_init (elf, machine, eh, ehlen)
28 Elf *elf __attribute__ ((unused));
29 GElf_Half machine __attribute__ ((unused));
30 Ebl *eh;
31 size_t ehlen;
32{
33 /* Check whether the Elf_BH object has a sufficent size. */
34 if (ehlen < sizeof (Ebl))
35 return NULL;
36
37 /* We handle it. */
38 eh->name = "Intel 80386";
Roland McGrathcd60ea82005-11-16 01:57:40 +000039 i386_init_reloc (eh);
Roland McGrathf47ba532005-11-19 07:40:29 +000040 HOOK (eh, reloc_simple_type);
41 HOOK (eh, gotpc_reloc_check);
42 HOOK (eh, core_note);
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000043 generic_debugscn_p = eh->debugscn_p;
Roland McGrathf47ba532005-11-19 07:40:29 +000044 HOOK (eh, debugscn_p);
45 HOOK (eh, return_value_location);
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000046
47 return MODVERSION;
48}