1bc1f688bSRobert Mustacchi /*
2bc1f688bSRobert Mustacchi
3bc1f688bSRobert Mustacchi Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
4*4d9fdb46SRobert Mustacchi Portions Copyright 2011 David Anderson. All Rights Reserved.
5bc1f688bSRobert Mustacchi
6bc1f688bSRobert Mustacchi This program is free software; you can redistribute it and/or modify it
7bc1f688bSRobert Mustacchi under the terms of version 2.1 of the GNU Lesser General Public License
8bc1f688bSRobert Mustacchi as published by the Free Software Foundation.
9bc1f688bSRobert Mustacchi
10bc1f688bSRobert Mustacchi This program is distributed in the hope that it would be useful, but
11bc1f688bSRobert Mustacchi WITHOUT ANY WARRANTY; without even the implied warranty of
12bc1f688bSRobert Mustacchi MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13bc1f688bSRobert Mustacchi
14bc1f688bSRobert Mustacchi Further, this software is distributed without any warranty that it is
15bc1f688bSRobert Mustacchi free of the rightful claim of any third person regarding infringement
16bc1f688bSRobert Mustacchi or the like. Any license provided herein, whether implied or
17bc1f688bSRobert Mustacchi otherwise, applies only to this software file. Patent licenses, if
18bc1f688bSRobert Mustacchi any, provided herein do not apply to combinations of this program with
19bc1f688bSRobert Mustacchi other software, or any other product whatsoever.
20bc1f688bSRobert Mustacchi
21bc1f688bSRobert Mustacchi You should have received a copy of the GNU Lesser General Public
22bc1f688bSRobert Mustacchi License along with this program; if not, write the Free Software
23bc1f688bSRobert Mustacchi Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
24bc1f688bSRobert Mustacchi USA.
25bc1f688bSRobert Mustacchi
26bc1f688bSRobert Mustacchi */
27bc1f688bSRobert Mustacchi
28bc1f688bSRobert Mustacchi #include "config.h"
29bc1f688bSRobert Mustacchi #include "libdwarfdefs.h"
30bc1f688bSRobert Mustacchi #include <stdio.h>
31*4d9fdb46SRobert Mustacchi #ifdef HAVE_STRING_H
32bc1f688bSRobert Mustacchi #include <string.h>
33*4d9fdb46SRobert Mustacchi #endif /* HAVE_STRING_H */
34bc1f688bSRobert Mustacchi #ifdef HAVE_ELFACCESS_H
35bc1f688bSRobert Mustacchi #include <elfaccess.h>
36*4d9fdb46SRobert Mustacchi #endif /* HAVE_ELFACCESS_H */
37*4d9fdb46SRobert Mustacchi #ifdef HAVE_STDDEF_H
38*4d9fdb46SRobert Mustacchi #include <stddef.h>
39*4d9fdb46SRobert Mustacchi #endif /* HAVE_STDDEF_H */
40*4d9fdb46SRobert Mustacchi #include "dwarf.h"
41*4d9fdb46SRobert Mustacchi #include "libdwarf.h"
42*4d9fdb46SRobert Mustacchi #include "pro_opaque.h"
43*4d9fdb46SRobert Mustacchi #include "pro_error.h"
44bc1f688bSRobert Mustacchi
45bc1f688bSRobert Mustacchi /*
46bc1f688bSRobert Mustacchi This function adds another weak name to the
47bc1f688bSRobert Mustacchi list of weak names for the given Dwarf_P_Debug.
48bc1f688bSRobert Mustacchi It returns 0 on error, and 1 otherwise.
49bc1f688bSRobert Mustacchi */
50bc1f688bSRobert Mustacchi Dwarf_Unsigned
dwarf_add_weakname(Dwarf_P_Debug dbg,Dwarf_P_Die die,char * weak_name,Dwarf_Error * error)51bc1f688bSRobert Mustacchi dwarf_add_weakname(Dwarf_P_Debug dbg,
52bc1f688bSRobert Mustacchi Dwarf_P_Die die,
53bc1f688bSRobert Mustacchi char *weak_name, Dwarf_Error * error)
54bc1f688bSRobert Mustacchi {
55*4d9fdb46SRobert Mustacchi int res = 0;
56*4d9fdb46SRobert Mustacchi
57*4d9fdb46SRobert Mustacchi res = _dwarf_add_simple_name_entry(dbg, die, weak_name,
58bc1f688bSRobert Mustacchi dwarf_snk_weakname, error);
59*4d9fdb46SRobert Mustacchi if (res != DW_DLV_OK) {
60*4d9fdb46SRobert Mustacchi return 0;
61*4d9fdb46SRobert Mustacchi }
62*4d9fdb46SRobert Mustacchi return 1;
63*4d9fdb46SRobert Mustacchi }
64*4d9fdb46SRobert Mustacchi
65*4d9fdb46SRobert Mustacchi int
dwarf_add_weakname_a(Dwarf_P_Debug dbg,Dwarf_P_Die die,char * weak_name,Dwarf_Error * error)66*4d9fdb46SRobert Mustacchi dwarf_add_weakname_a(Dwarf_P_Debug dbg,
67*4d9fdb46SRobert Mustacchi Dwarf_P_Die die,
68*4d9fdb46SRobert Mustacchi char *weak_name, Dwarf_Error * error)
69*4d9fdb46SRobert Mustacchi {
70*4d9fdb46SRobert Mustacchi int res = 0;
71*4d9fdb46SRobert Mustacchi
72*4d9fdb46SRobert Mustacchi res = _dwarf_add_simple_name_entry(dbg, die, weak_name,
73*4d9fdb46SRobert Mustacchi dwarf_snk_weakname, error);
74*4d9fdb46SRobert Mustacchi return res;
75bc1f688bSRobert Mustacchi }
76