* gdbarch.sh (convert_register_p): Add gdbarch as parameter.
[deliverable/binutils-gdb.git] / gold / ehframe.h
CommitLineData
3151305a
ILT
1// ehframe.h -- handle exception frame sections for gold -*- C++ -*-
2
3// Copyright 2006, 2007 Free Software Foundation, Inc.
4// Written by Ian Lance Taylor <iant@google.com>.
5
6// This file is part of gold.
7
8// This program is free software; you can redistribute it and/or modify
9// it under the terms of the GNU General Public License as published by
10// the Free Software Foundation; either version 3 of the License, or
11// (at your option) any later version.
12
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
21// MA 02110-1301, USA.
22
23#ifndef GOLD_EHFRAME_H
24#define GOLD_EHFRAME_H
25
26#include "output.h"
27
28namespace gold
29{
30
31// This class manages the .eh_frame_hdr section, which holds the data
32// for the PT_GNU_EH_FRAME segment. gcc's unwind support code uses
33// the PT_GNU_EH_FRAME segment to find the list of FDEs. This saves
34// the time required to register the exception handlers at startup
35// time and when a shared object is loaded, and the time required to
36// deregister the exception handlers when a shared object is unloaded.
37
38// FIXME: gcc supports using storing a sorted lookup table for the
39// FDEs in the PT_GNU_EH_FRAME segment, but we do not yet generate
40// that.
41
42class Eh_frame_hdr : public Output_section_data
43{
44 public:
9025d29d 45 Eh_frame_hdr(Output_section* eh_frame_section);
3151305a
ILT
46
47 // Set the final data size.
48 void
49 do_set_address(uint64_t address, off_t offset);
50
51 // Write the data to the file.
52 void
53 do_write(Output_file*);
54
55 private:
3151305a
ILT
56 // The .eh_frame section.
57 Output_section* eh_frame_section_;
58};
59
60} // End namespace gold.
61
62#endif // !defined(GOLD_EHFRAME_H)
This page took 0.030102 seconds and 4 git commands to generate.