xref: /illumos-gate/usr/src/lib/libdwarf/common/pro_weaks.c (revision 4d9fdb46b215739778ebc12079842c9905586999)
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