usr/src/cmd/sgs/libconv/common/dynamic.c
author Rod Evans <Rod.Evans@Sun.COM>
Wed, 19 May 2010 22:33:49 -0700
changeset 12449 a87750d92895
parent 11827 d7ef53deac3f
permissions -rw-r--r--
6943772 Testing for a symbols existence with RTLD_PROBE is compromised by RTLD_BIND_NOW PSARC/2010/175 Deferred symbol references 6943432 dlsym(RTLD_PROBE) should only bind to symbol definitions 6668759 an external method for determining whether an ELF dependency is optional
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
     5
 * Common Development and Distribution License (the "License").
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
     6
 * You may not use this file except in compliance with the License.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 */
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
    21
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
/*
12449
a87750d92895 6943772 Testing for a symbols existence with RTLD_PROBE is compromised by RTLD_BIND_NOW
Rod Evans <Rod.Evans@Sun.COM>
parents: 11827
diff changeset
    23
 * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
 * String conversion routine for .dynamic tag entries.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
#include	<stdio.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
#include	<string.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
#include	<sys/elf_SPARC.h>
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
    32
#include	"rtld.h"
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
#include	"_conv.h"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
#include	"dynamic_msg.h"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
    36
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
    37
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    38
const Val_desc *
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    39
conv_dyn_posflag1_strings(Conv_fmt_flags_t fmt_flags)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    40
{
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
    41
#define	POSSZ	CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    42
	MSG_DF_P1_LAZYLOAD_CF_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    43
	MSG_DF_P1_GROUPPERM_CF_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
12449
a87750d92895 6943772 Testing for a symbols existence with RTLD_PROBE is compromised by RTLD_BIND_NOW
Rod Evans <Rod.Evans@Sun.COM>
parents: 11827
diff changeset
    44
	MSG_DF_P1_DEFERRED_CF_SIZE + CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    45
	CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
    46
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    47
	/*
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    48
	 * Ensure that Conv_dyn_posflag1_buf_t is large enough:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    49
	 *
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    50
	 * POSSZ is the real minimum size of the buffer required by
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    51
	 * conv_dyn_posflag1(). However, Conv_dyn_posflag1_buf_t uses
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    52
	 * CONV_DYN_POSFLAG1_BUFSIZE to set the buffer size. We do things
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    53
	 * this way because the definition of POSSZ uses
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    54
	 * information that is not available in the environment of other
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    55
	 * programs that include the conv.h header file.
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    56
	 */
5152
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
    57
#if (CONV_DYN_POSFLAG1_BUFSIZE != POSSZ) && !defined(__lint)
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
    58
#define	REPORT_BUFSIZE POSSZ
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
    59
#include "report_bufsize.h"
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
    60
#error "CONV_DYN_POSFLAG1_BUFSIZE does not match POSSZ"
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
    61
#endif
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    63
	static const Val_desc vda_def[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    64
		{ DF_P1_LAZYLOAD,	MSG_DF_P1_LAZYLOAD_DEF },
12449
a87750d92895 6943772 Testing for a symbols existence with RTLD_PROBE is compromised by RTLD_BIND_NOW
Rod Evans <Rod.Evans@Sun.COM>
parents: 11827
diff changeset
    65
		{ DF_P1_GROUPPERM,	MSG_DF_P1_GROUPPERM_DEF },
a87750d92895 6943772 Testing for a symbols existence with RTLD_PROBE is compromised by RTLD_BIND_NOW
Rod Evans <Rod.Evans@Sun.COM>
parents: 11827
diff changeset
    66
		{ DF_P1_DEFERRED,	MSG_DF_P1_DEFERRED_DEF },
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
    67
		{ 0,			0 }
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
    68
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    69
	static const Val_desc vda_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    70
		{ DF_P1_LAZYLOAD,	MSG_DF_P1_LAZYLOAD_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    71
		{ DF_P1_GROUPPERM,	MSG_DF_P1_GROUPPERM_CF },
12449
a87750d92895 6943772 Testing for a symbols existence with RTLD_PROBE is compromised by RTLD_BIND_NOW
Rod Evans <Rod.Evans@Sun.COM>
parents: 11827
diff changeset
    72
		{ DF_P1_DEFERRED,	MSG_DF_P1_DEFERRED_CF },
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    73
		{ 0,			0 }
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    74
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    75
	static const Val_desc vda_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    76
		{ DF_P1_LAZYLOAD,	MSG_DF_P1_LAZYLOAD_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    77
		{ DF_P1_GROUPPERM,	MSG_DF_P1_GROUPPERM_CFNP },
12449
a87750d92895 6943772 Testing for a symbols existence with RTLD_PROBE is compromised by RTLD_BIND_NOW
Rod Evans <Rod.Evans@Sun.COM>
parents: 11827
diff changeset
    78
		{ DF_P1_DEFERRED,	MSG_DF_P1_DEFERRED_CFNP },
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    79
		{ 0,			0 }
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    80
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    81
	static const Val_desc vda_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    82
		{ DF_P1_LAZYLOAD,	MSG_DF_P1_LAZYLOAD_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    83
		{ DF_P1_GROUPPERM,	MSG_DF_P1_GROUPPERM_NF },
12449
a87750d92895 6943772 Testing for a symbols existence with RTLD_PROBE is compromised by RTLD_BIND_NOW
Rod Evans <Rod.Evans@Sun.COM>
parents: 11827
diff changeset
    84
		{ DF_P1_DEFERRED,	MSG_DF_P1_DEFERRED_NF },
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
    85
		{ 0,			0 }
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
    86
	};
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
    87
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    88
	switch (CONV_TYPE_FMT_ALT(fmt_flags)) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    89
	case CONV_FMT_ALT_DUMP:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    90
	case CONV_FMT_ALT_CFNP:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    91
		return (vda_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    92
	case CONV_FMT_ALT_CF:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    93
		return (vda_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    94
	case CONV_FMT_ALT_NF:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    95
		return (vda_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    96
	}
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    98
	return (vda_def);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
    99
}
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   101
conv_iter_ret_t
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   102
conv_iter_dyn_posflag1(Conv_fmt_flags_t fmt_flags, conv_iter_cb_t func,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   103
    void *uvalue)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   104
{
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   105
	return (conv_iter_vd(conv_dyn_posflag1_strings(fmt_flags),
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   106
	    func, uvalue));
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   109
const Val_desc *
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   110
conv_dyn_flag_strings(Conv_fmt_flags_t fmt_flags)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   111
{
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   112
#define	FLAGSZ	CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   113
	MSG_DF_ORIGIN_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   114
	MSG_DF_SYMBOLIC_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   115
	MSG_DF_TEXTREL_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   116
	MSG_DF_BIND_NOW_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   117
	MSG_DF_STATIC_TLS_CF_SIZE 	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   118
	CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   119
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   120
	/*
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   121
	 * Ensure that Conv_dyn_flag_buf_t is large enough:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   122
	 *
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   123
	 * FLAGSZ is the real minimum size of the buffer required by
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   124
	 * conv_dyn_flag(). However, Conv_dyn_flag_buf_t uses
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   125
	 * CONV_DYN_FLAG_BUFSIZE to set the buffer size. We do things this
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   126
	 * way because the definition of FLAGSZ uses information that is not
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   127
	 * available in the environment of other programs that include the
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   128
	 * conv.h header file.
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   129
	 */
5152
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   130
#if (CONV_DYN_FLAG_BUFSIZE != FLAGSZ) && !defined(__lint)
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   131
#define	REPORT_BUFSIZE FLAGSZ
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   132
#include "report_bufsize.h"
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   133
#error "CONV_DYN_FLAG_BUFSIZE does not match FLAGSZ"
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   134
#endif
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   135
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   136
	static const Val_desc vda_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   137
		{ DF_ORIGIN,		MSG_DF_ORIGIN_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   138
		{ DF_SYMBOLIC,		MSG_DF_SYMBOLIC_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   139
		{ DF_TEXTREL,		MSG_DF_TEXTREL_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   140
		{ DF_BIND_NOW,		MSG_DF_BIND_NOW_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   141
		{ DF_STATIC_TLS,	MSG_DF_STATIC_TLS_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   142
		{ 0 }
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   143
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   144
	static const Val_desc vda_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   145
		{ DF_ORIGIN,		MSG_DF_ORIGIN_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   146
		{ DF_SYMBOLIC,		MSG_DF_SYMBOLIC_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   147
		{ DF_TEXTREL,		MSG_DF_TEXTREL_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   148
		{ DF_BIND_NOW,		MSG_DF_BIND_NOW_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   149
		{ DF_STATIC_TLS,	MSG_DF_STATIC_TLS_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   150
		{ 0 }
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   151
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   152
	static const Val_desc vda_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   153
		{ DF_ORIGIN,		MSG_DF_ORIGIN_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   154
		{ DF_SYMBOLIC,		MSG_DF_SYMBOLIC_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   155
		{ DF_TEXTREL,		MSG_DF_TEXTREL_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   156
		{ DF_BIND_NOW,		MSG_DF_BIND_NOW_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   157
		{ DF_STATIC_TLS,	MSG_DF_STATIC_TLS_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   158
		{ 0 }
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   159
	};
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   161
	switch (CONV_TYPE_FMT_ALT(fmt_flags)) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   162
	case CONV_FMT_ALT_CF:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   163
		return (vda_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   164
	case CONV_FMT_ALT_NF:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   165
		return (vda_nf);
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   166
	}
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   168
	return (vda_cfnp);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   171
conv_iter_ret_t
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   172
conv_iter_dyn_flag(Conv_fmt_flags_t fmt_flags, conv_iter_cb_t func,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   173
    void *uvalue)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   174
{
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   175
	return (conv_iter_vd(conv_dyn_flag_strings(fmt_flags), func, uvalue));
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   176
}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   177
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   178
const Val_desc *
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   179
conv_dyn_flag1_strings(Conv_fmt_flags_t fmt_flags)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   180
{
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   181
#define	FLAG1SZ	CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   182
	MSG_DF_1_NOW_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   183
	MSG_DF_1_GLOBAL_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   184
	MSG_DF_1_GROUP_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   185
	MSG_DF_1_NODELETE_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   186
	MSG_DF_1_LOADFLTR_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   187
	MSG_DF_1_INITFIRST_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   188
	MSG_DF_1_NOOPEN_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   189
	MSG_DF_1_ORIGIN_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   190
	MSG_DF_1_DIRECT_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   191
	MSG_DF_1_TRANS_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   192
	MSG_DF_1_INTERPOSE_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   193
	MSG_DF_1_NODEFLIB_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   194
	MSG_DF_1_NODUMP_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   195
	MSG_DF_1_CONFALT_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   196
	MSG_DF_1_ENDFILTEE_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   197
	MSG_DF_1_DISPRELPND_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   198
	MSG_DF_1_DISPRELDNE_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   199
	MSG_DF_1_NODIRECT_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   200
	MSG_DF_1_IGNMULDEF_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   201
	MSG_DF_1_NOKSYMS_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   202
	MSG_DF_1_NOHDR_CF_SIZE		+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   203
	MSG_DF_1_NORELOC_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   204
	MSG_DF_1_SYMINTPOSE_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   205
	MSG_DF_1_GLOBAUDIT_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   206
	MSG_DF_1_SINGLETON_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   207
	CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   208
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   209
	/*
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   210
	 * Ensure that Conv_dyn_flag1_buf_t is large enough:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   211
	 *
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   212
	 * FLAG1SZ is the real minimum size of the buffer required by
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   213
	 * conv_dyn_flag1(). However, Conv_dyn_flag1_buf_t uses
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   214
	 * CONV_DYN_FLAG1_BUFSIZE to set the buffer size. We do things this
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   215
	 * way because the definition of FLAG1SZ uses information that is not
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   216
	 * available in the environment of other programs that include the
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   217
	 * conv.h header file.
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   218
	 */
5152
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   219
#if (CONV_DYN_FLAG1_BUFSIZE != FLAG1SZ) && !defined(__lint)
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   220
#define	REPORT_BUFSIZE FLAG1SZ
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   221
#include "report_bufsize.h"
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   222
#error "CONV_DYN_FLAG1_BUFSIZE does not match FLAG1SZ"
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   223
#endif
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   225
	static const Val_desc vda_def[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   226
		{ DF_1_NOW,		MSG_DF_1_NOW_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   227
		{ DF_1_GLOBAL,		MSG_DF_1_GLOBAL_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   228
		{ DF_1_GROUP,		MSG_DF_1_GROUP_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   229
		{ DF_1_NODELETE,	MSG_DF_1_NODELETE_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   230
		{ DF_1_LOADFLTR,	MSG_DF_1_LOADFLTR_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   231
		{ DF_1_INITFIRST,	MSG_DF_1_INITFIRST_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   232
		{ DF_1_NOOPEN,		MSG_DF_1_NOOPEN_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   233
		{ DF_1_ORIGIN,		MSG_DF_1_ORIGIN_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   234
		{ DF_1_DIRECT,		MSG_DF_1_DIRECT_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   235
		{ DF_1_TRANS,		MSG_DF_1_TRANS_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   236
		{ DF_1_INTERPOSE,	MSG_DF_1_INTERPOSE_DEF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   237
		{ DF_1_NODEFLIB,	MSG_DF_1_NODEFLIB_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   238
		{ DF_1_NODUMP,		MSG_DF_1_NODUMP_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   239
		{ DF_1_CONFALT,		MSG_DF_1_CONFALT_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   240
		{ DF_1_ENDFILTEE,	MSG_DF_1_ENDFILTEE_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   241
		{ DF_1_DISPRELDNE,	MSG_DF_1_DISPRELDNE_DEF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   242
		{ DF_1_DISPRELPND,	MSG_DF_1_DISPRELPND_DEF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   243
		{ DF_1_NODIRECT,	MSG_DF_1_NODIRECT_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   244
		{ DF_1_IGNMULDEF,	MSG_DF_1_IGNMULDEF_DEF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   245
		{ DF_1_NOKSYMS,		MSG_DF_1_NOKSYMS_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   246
		{ DF_1_NOHDR,		MSG_DF_1_NOHDR_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   247
		{ DF_1_EDITED,		MSG_DF_1_EDITED_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   248
		{ DF_1_NORELOC,		MSG_DF_1_NORELOC_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   249
		{ DF_1_SYMINTPOSE,	MSG_DF_1_SYMINTPOSE_DEF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   250
		{ DF_1_GLOBAUDIT,	MSG_DF_1_GLOBAUDIT_DEF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   251
		{ DF_1_SINGLETON,	MSG_DF_1_SINGLETON_DEF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   252
		{ 0,			0 }
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   253
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   254
	static const Val_desc vda_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   255
		{ DF_1_NOW,		MSG_DF_1_NOW_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   256
		{ DF_1_GLOBAL,		MSG_DF_1_GLOBAL_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   257
		{ DF_1_GROUP,		MSG_DF_1_GROUP_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   258
		{ DF_1_NODELETE,	MSG_DF_1_NODELETE_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   259
		{ DF_1_LOADFLTR,	MSG_DF_1_LOADFLTR_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   260
		{ DF_1_INITFIRST,	MSG_DF_1_INITFIRST_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   261
		{ DF_1_NOOPEN,		MSG_DF_1_NOOPEN_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   262
		{ DF_1_ORIGIN,		MSG_DF_1_ORIGIN_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   263
		{ DF_1_DIRECT,		MSG_DF_1_DIRECT_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   264
		{ DF_1_TRANS,		MSG_DF_1_TRANS_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   265
		{ DF_1_INTERPOSE,	MSG_DF_1_INTERPOSE_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   266
		{ DF_1_NODEFLIB,	MSG_DF_1_NODEFLIB_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   267
		{ DF_1_NODUMP,		MSG_DF_1_NODUMP_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   268
		{ DF_1_CONFALT,		MSG_DF_1_CONFALT_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   269
		{ DF_1_ENDFILTEE,	MSG_DF_1_ENDFILTEE_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   270
		{ DF_1_DISPRELDNE,	MSG_DF_1_DISPRELDNE_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   271
		{ DF_1_DISPRELPND,	MSG_DF_1_DISPRELPND_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   272
		{ DF_1_NODIRECT,	MSG_DF_1_NODIRECT_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   273
		{ DF_1_IGNMULDEF,	MSG_DF_1_IGNMULDEF_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   274
		{ DF_1_NOKSYMS,		MSG_DF_1_NOKSYMS_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   275
		{ DF_1_NOHDR,		MSG_DF_1_NOHDR_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   276
		{ DF_1_EDITED,		MSG_DF_1_EDITED_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   277
		{ DF_1_NORELOC,		MSG_DF_1_NORELOC_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   278
		{ DF_1_SYMINTPOSE,	MSG_DF_1_SYMINTPOSE_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   279
		{ DF_1_GLOBAUDIT,	MSG_DF_1_GLOBAUDIT_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   280
		{ DF_1_SINGLETON,	MSG_DF_1_SINGLETON_CF },
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   281
		{ 0,			0 }
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   282
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   283
	static const Val_desc vda_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   284
		{ DF_1_NOW,		MSG_DF_1_NOW_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   285
		{ DF_1_GLOBAL,		MSG_DF_1_GLOBAL_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   286
		{ DF_1_GROUP,		MSG_DF_1_GROUP_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   287
		{ DF_1_NODELETE,	MSG_DF_1_NODELETE_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   288
		{ DF_1_LOADFLTR,	MSG_DF_1_LOADFLTR_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   289
		{ DF_1_INITFIRST,	MSG_DF_1_INITFIRST_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   290
		{ DF_1_NOOPEN,		MSG_DF_1_NOOPEN_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   291
		{ DF_1_ORIGIN,		MSG_DF_1_ORIGIN_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   292
		{ DF_1_DIRECT,		MSG_DF_1_DIRECT_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   293
		{ DF_1_TRANS,		MSG_DF_1_TRANS_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   294
		{ DF_1_INTERPOSE,	MSG_DF_1_INTERPOSE_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   295
		{ DF_1_NODEFLIB,	MSG_DF_1_NODEFLIB_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   296
		{ DF_1_NODUMP,		MSG_DF_1_NODUMP_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   297
		{ DF_1_CONFALT,		MSG_DF_1_CONFALT_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   298
		{ DF_1_ENDFILTEE,	MSG_DF_1_ENDFILTEE_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   299
		{ DF_1_DISPRELDNE,	MSG_DF_1_DISPRELDNE_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   300
		{ DF_1_DISPRELPND,	MSG_DF_1_DISPRELPND_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   301
		{ DF_1_NODIRECT,	MSG_DF_1_NODIRECT_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   302
		{ DF_1_IGNMULDEF,	MSG_DF_1_IGNMULDEF_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   303
		{ DF_1_NOKSYMS,		MSG_DF_1_NOKSYMS_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   304
		{ DF_1_NOHDR,		MSG_DF_1_NOHDR_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   305
		{ DF_1_EDITED,		MSG_DF_1_EDITED_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   306
		{ DF_1_NORELOC,		MSG_DF_1_NORELOC_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   307
		{ DF_1_SYMINTPOSE,	MSG_DF_1_SYMINTPOSE_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   308
		{ DF_1_GLOBAUDIT,	MSG_DF_1_GLOBAUDIT_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   309
		{ DF_1_SINGLETON,	MSG_DF_1_SINGLETON_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   310
		{ 0,			0 }
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   311
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   312
	static const Val_desc vda_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   313
		{ DF_1_NOW,		MSG_DF_1_NOW_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   314
		{ DF_1_GLOBAL,		MSG_DF_1_GLOBAL_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   315
		{ DF_1_GROUP,		MSG_DF_1_GROUP_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   316
		{ DF_1_NODELETE,	MSG_DF_1_NODELETE_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   317
		{ DF_1_LOADFLTR,	MSG_DF_1_LOADFLTR_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   318
		{ DF_1_INITFIRST,	MSG_DF_1_INITFIRST_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   319
		{ DF_1_NOOPEN,		MSG_DF_1_NOOPEN_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   320
		{ DF_1_ORIGIN,		MSG_DF_1_ORIGIN_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   321
		{ DF_1_DIRECT,		MSG_DF_1_DIRECT_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   322
		{ DF_1_TRANS,		MSG_DF_1_TRANS_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   323
		{ DF_1_INTERPOSE,	MSG_DF_1_INTERPOSE_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   324
		{ DF_1_NODEFLIB,	MSG_DF_1_NODEFLIB_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   325
		{ DF_1_NODUMP,		MSG_DF_1_NODUMP_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   326
		{ DF_1_CONFALT,		MSG_DF_1_CONFALT_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   327
		{ DF_1_ENDFILTEE,	MSG_DF_1_ENDFILTEE_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   328
		{ DF_1_DISPRELDNE,	MSG_DF_1_DISPRELDNE_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   329
		{ DF_1_DISPRELPND,	MSG_DF_1_DISPRELPND_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   330
		{ DF_1_NODIRECT,	MSG_DF_1_NODIRECT_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   331
		{ DF_1_IGNMULDEF,	MSG_DF_1_IGNMULDEF_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   332
		{ DF_1_NOKSYMS,		MSG_DF_1_NOKSYMS_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   333
		{ DF_1_NOHDR,		MSG_DF_1_NOHDR_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   334
		{ DF_1_EDITED,		MSG_DF_1_EDITED_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   335
		{ DF_1_NORELOC,		MSG_DF_1_NORELOC_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   336
		{ DF_1_SYMINTPOSE,	MSG_DF_1_SYMINTPOSE_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   337
		{ DF_1_GLOBAUDIT,	MSG_DF_1_GLOBAUDIT_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   338
		{ DF_1_SINGLETON,	MSG_DF_1_SINGLETON_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   339
		{ 0,			0 }
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   340
	};
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   341
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   342
	switch (CONV_TYPE_FMT_ALT(fmt_flags)) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   343
	case CONV_FMT_ALT_CF:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   344
		return (vda_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   345
	case CONV_FMT_ALT_CFNP:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   346
		return (vda_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   347
	case CONV_FMT_ALT_NF:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   348
		return (vda_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   349
	}
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   350
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   351
	return (vda_def);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   352
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   353
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   354
conv_iter_ret_t
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   355
conv_iter_dyn_flag1(Conv_fmt_flags_t fmt_flags, conv_iter_cb_t func,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   356
    void *uvalue)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   357
{
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   358
	return (conv_iter_vd(conv_dyn_flag1_strings(fmt_flags), func, uvalue));
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   359
}
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   360
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   361
const Val_desc *
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   362
conv_dyn_feature1_strings(Conv_fmt_flags_t fmt_flags)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   363
{
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   364
#define	FEATSZ	CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   365
	MSG_DTF_1_PARINIT_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   366
	MSG_DTF_1_CONFEXP_CF_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   367
	CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   368
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   369
	/*
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   370
	 * Ensure that Conv_dyn_feature1_buf_t is large enough:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   371
	 *
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   372
	 * FEATSZ is the real min size of the buffer required by
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   373
	 * conv_dyn_feature1(). However, Conv_dyn_feature1_buf_t uses
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   374
	 * CONV_DYN_FEATURE1_BUFSIZE to set the buffer size. We do things
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   375
	 * this way because the definition of FEATSZ uses information that
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   376
	 * is not available in the environment of other programs that include
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   377
	 * the conv.h header file.
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   378
	 */
5152
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   379
#if (CONV_DYN_FEATURE1_BUFSIZE != FEATSZ) && !defined(__lint)
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   380
#define	REPORT_BUFSIZE FEATSZ
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   381
#include "report_bufsize.h"
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   382
#error "CONV_DYN_FEATURE1_BUFSIZE does not match FEATSZ"
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   383
#endif
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   384
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   385
	static const Val_desc vda_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   386
		{ DTF_1_PARINIT,	MSG_DTF_1_PARINIT_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   387
		{ DTF_1_CONFEXP,	MSG_DTF_1_CONFEXP_CF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   388
		{ 0,			0 }
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   389
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   390
	static const Val_desc vda_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   391
		{ DTF_1_PARINIT,	MSG_DTF_1_PARINIT_CFNP },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   392
		{ DTF_1_CONFEXP,	MSG_DTF_1_CONFEXP_CFNP },
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   393
		{ 0,			0 }
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   394
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   395
	static const Val_desc vda_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   396
		{ DTF_1_PARINIT,	MSG_DTF_1_PARINIT_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   397
		{ DTF_1_CONFEXP,	MSG_DTF_1_CONFEXP_NF },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   398
		{ 0,			0 }
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   399
	};
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   400
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   401
	switch (CONV_TYPE_FMT_ALT(fmt_flags)) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   402
	case CONV_FMT_ALT_CF:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   403
		return (vda_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   404
	case CONV_FMT_ALT_NF:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   405
		return (vda_nf);
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   406
	}
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   407
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   408
	return (vda_cfnp);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   409
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   410
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   411
conv_iter_ret_t
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   412
conv_iter_dyn_feature1(Conv_fmt_flags_t fmt_flags, conv_iter_cb_t func,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   413
    void *uvalue)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   414
{
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   415
	return (conv_iter_vd(conv_dyn_feature1_strings(fmt_flags),
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   416
	    func, uvalue));
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   417
}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   418
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   419
const conv_ds_t **
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   420
conv_dyn_tag_strings(conv_iter_osabi_t osabi, Half mach,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   421
    Conv_fmt_flags_t fmt_flags)
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   422
{
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   423
	/*
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   424
	 * Maximum # of items that can be in the returned array. Size this
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   425
	 * by counting the maximum depth in the switch statement that fills
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   426
	 * retarr at the end of this function.
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   427
	 */
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   428
#define	MAX_RET	12
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   429
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   430
	/*
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   431
	 * Generic dynamic tags:
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   432
	 * -	Note hole between DT_FLAGS and DT_PREINIT_ARRAY (tag 32).
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   433
	 *	We use a 0, which is the signal for "not defined".
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   434
	 * -	This range has alternative names for dump, requiring an
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   435
	 *	additional array.
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   436
	 */
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   437
	static const Msg	tags_null_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   438
		MSG_DT_NULL_CF,			MSG_DT_NEEDED_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   439
		MSG_DT_PLTRELSZ_CF,		MSG_DT_PLTGOT_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   440
		MSG_DT_HASH_CF,			MSG_DT_STRTAB_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   441
		MSG_DT_SYMTAB_CF,		MSG_DT_RELA_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   442
		MSG_DT_RELASZ_CF,		MSG_DT_RELAENT_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   443
		MSG_DT_STRSZ_CF,		MSG_DT_SYMENT_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   444
		MSG_DT_INIT_CF,			MSG_DT_FINI_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   445
		MSG_DT_SONAME_CF,		MSG_DT_RPATH_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   446
		MSG_DT_SYMBOLIC_CF,		MSG_DT_REL_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   447
		MSG_DT_RELSZ_CF,		MSG_DT_RELENT_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   448
		MSG_DT_PLTREL_CF,		MSG_DT_DEBUG_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   449
		MSG_DT_TEXTREL_CF,		MSG_DT_JMPREL_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   450
		MSG_DT_BIND_NOW_CF,		MSG_DT_INIT_ARRAY_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   451
		MSG_DT_FINI_ARRAY_CF,		MSG_DT_INIT_ARRAYSZ_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   452
		MSG_DT_FINI_ARRAYSZ_CF,		MSG_DT_RUNPATH_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   453
		MSG_DT_FLAGS_CF,		0,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   454
		MSG_DT_PREINIT_ARRAY_CF,	MSG_DT_PREINIT_ARRAYSZ_CF
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   455
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   456
	static const Msg	tags_null_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   457
		MSG_DT_NULL_CFNP,		MSG_DT_NEEDED_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   458
		MSG_DT_PLTRELSZ_CFNP,		MSG_DT_PLTGOT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   459
		MSG_DT_HASH_CFNP,		MSG_DT_STRTAB_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   460
		MSG_DT_SYMTAB_CFNP,		MSG_DT_RELA_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   461
		MSG_DT_RELASZ_CFNP,		MSG_DT_RELAENT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   462
		MSG_DT_STRSZ_CFNP,		MSG_DT_SYMENT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   463
		MSG_DT_INIT_CFNP,		MSG_DT_FINI_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   464
		MSG_DT_SONAME_CFNP,		MSG_DT_RPATH_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   465
		MSG_DT_SYMBOLIC_CFNP,		MSG_DT_REL_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   466
		MSG_DT_RELSZ_CFNP,		MSG_DT_RELENT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   467
		MSG_DT_PLTREL_CFNP,		MSG_DT_DEBUG_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   468
		MSG_DT_TEXTREL_CFNP,		MSG_DT_JMPREL_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   469
		MSG_DT_BIND_NOW_CFNP,		MSG_DT_INIT_ARRAY_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   470
		MSG_DT_FINI_ARRAY_CFNP,		MSG_DT_INIT_ARRAYSZ_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   471
		MSG_DT_FINI_ARRAYSZ_CFNP,	MSG_DT_RUNPATH_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   472
		MSG_DT_FLAGS_CFNP,		0,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   473
		MSG_DT_PREINIT_ARRAY_CFNP,	MSG_DT_PREINIT_ARRAYSZ_CFNP
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   474
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   475
	static const Msg	tags_null_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   476
		MSG_DT_NULL_NF,			MSG_DT_NEEDED_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   477
		MSG_DT_PLTRELSZ_NF,		MSG_DT_PLTGOT_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   478
		MSG_DT_HASH_NF,			MSG_DT_STRTAB_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   479
		MSG_DT_SYMTAB_NF,		MSG_DT_RELA_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   480
		MSG_DT_RELASZ_NF,		MSG_DT_RELAENT_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   481
		MSG_DT_STRSZ_NF,		MSG_DT_SYMENT_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   482
		MSG_DT_INIT_NF,			MSG_DT_FINI_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   483
		MSG_DT_SONAME_NF,		MSG_DT_RPATH_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   484
		MSG_DT_SYMBOLIC_NF,		MSG_DT_REL_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   485
		MSG_DT_RELSZ_NF,		MSG_DT_RELENT_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   486
		MSG_DT_PLTREL_NF,		MSG_DT_DEBUG_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   487
		MSG_DT_TEXTREL_NF,		MSG_DT_JMPREL_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   488
		MSG_DT_BIND_NOW_NF,		MSG_DT_INIT_ARRAY_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   489
		MSG_DT_FINI_ARRAY_NF,		MSG_DT_INIT_ARRAYSZ_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   490
		MSG_DT_FINI_ARRAYSZ_NF,		MSG_DT_RUNPATH_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   491
		MSG_DT_FLAGS_NF,		0,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   492
		MSG_DT_PREINIT_ARRAY_NF,	MSG_DT_PREINIT_ARRAYSZ_NF
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   493
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   494
	static const Msg	tags_null_dmp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   495
		MSG_DT_NULL_CFNP,		MSG_DT_NEEDED_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   496
		MSG_DT_PLTRELSZ_DMP,		MSG_DT_PLTGOT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   497
		MSG_DT_HASH_CFNP,		MSG_DT_STRTAB_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   498
		MSG_DT_SYMTAB_CFNP,		MSG_DT_RELA_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   499
		MSG_DT_RELASZ_CFNP,		MSG_DT_RELAENT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   500
		MSG_DT_STRSZ_CFNP,		MSG_DT_SYMENT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   501
		MSG_DT_INIT_CFNP,		MSG_DT_FINI_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   502
		MSG_DT_SONAME_CFNP,		MSG_DT_RPATH_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   503
		MSG_DT_SYMBOLIC_DMP,		MSG_DT_REL_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   504
		MSG_DT_RELSZ_CFNP,		MSG_DT_RELENT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   505
		MSG_DT_PLTREL_CFNP,		MSG_DT_DEBUG_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   506
		MSG_DT_TEXTREL_CFNP,		MSG_DT_JMPREL_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   507
		MSG_DT_BIND_NOW_CFNP,		MSG_DT_INIT_ARRAY_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   508
		MSG_DT_FINI_ARRAY_CFNP,		MSG_DT_INIT_ARRAYSZ_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   509
		MSG_DT_FINI_ARRAYSZ_CFNP,	MSG_DT_RUNPATH_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   510
		MSG_DT_FLAGS_CFNP,		0,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   511
		MSG_DT_PREINIT_ARRAY_CFNP,	MSG_DT_PREINIT_ARRAYSZ_CFNP
1976
f0691a145b7e PSARC 2006/301 elf_M32.h removal
ab196087
parents: 1824
diff changeset
   512
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   513
	static const conv_ds_msg_t ds_null_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   514
	    CONV_DS_MSG_INIT(DT_NULL, tags_null_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   515
	static const conv_ds_msg_t ds_null_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   516
	    CONV_DS_MSG_INIT(DT_NULL, tags_null_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   517
	static const conv_ds_msg_t ds_null_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   518
	    CONV_DS_MSG_INIT(DT_NULL, tags_null_nf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   519
	static const conv_ds_msg_t ds_null_dmp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   520
	    CONV_DS_MSG_INIT(DT_NULL, tags_null_dmp) };
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   521
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   522
	/*
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   523
	 * DT_SPARC_REGISTER was originally assigned 0x7000001. It is processor
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   524
	 * specific, and should have been in the range DT_LOPROC-DT_HIPROC
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   525
	 * instead of here. When the error was fixed,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   526
	 * DT_DEPRECATED_SPARC_REGISTER was created to maintain backward
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   527
	 * compatability.
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   528
	 */
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   529
	static const Msg	tags_sdreg_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   530
	    MSG_DT_DEP_SPARC_REG_CF };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   531
	static const Msg	tags_sdreg_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   532
	    MSG_DT_DEP_SPARC_REG_CFNP };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   533
	static const Msg	tags_sdreg_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   534
	    MSG_DT_DEP_SPARC_REG_NF };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   535
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   536
	static const conv_ds_msg_t ds_sdreg_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   537
	    CONV_DS_MSG_INIT(DT_DEPRECATED_SPARC_REGISTER, tags_sdreg_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   538
	static const conv_ds_msg_t ds_sdreg_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   539
	    CONV_DS_MSG_INIT(DT_DEPRECATED_SPARC_REGISTER, tags_sdreg_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   540
	static const conv_ds_msg_t ds_sdreg_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   541
	    CONV_DS_MSG_INIT(DT_DEPRECATED_SPARC_REGISTER, tags_sdreg_nf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   542
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   543
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   544
	/*
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   545
	 * SUNW: DT_LOOS -> DT_HIOS range. Note holes between DT_SUNW_TLSSORTSZ,
6206
6b0ed502a8e7 PSARC 2008/179 cross link-editor
ab196087
parents: 5220
diff changeset
   546
	 * DT_SUNW_STRPAD, and DT_SUNW_LDMACH. We handle the outliers
6b0ed502a8e7 PSARC 2008/179 cross link-editor
ab196087
parents: 5220
diff changeset
   547
	 * separately below as single values.
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   548
	 */
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   549
	static const Msg	tags_sunw_auxiliary_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   550
		MSG_DT_SUNW_AUXILIARY_CF,	MSG_DT_SUNW_RTLDINF_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   551
		MSG_DT_SUNW_FILTER_CF,		MSG_DT_SUNW_CAP_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   552
		MSG_DT_SUNW_SYMTAB_CF,		MSG_DT_SUNW_SYMSZ_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   553
		MSG_DT_SUNW_SORTENT_CF,		MSG_DT_SUNW_SYMSORT_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   554
		MSG_DT_SUNW_SYMSORTSZ_CF,	MSG_DT_SUNW_TLSSORT_CF,
11827
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   555
		MSG_DT_SUNW_TLSSORTSZ_CF,	MSG_DT_SUNW_CAPINFO_CF,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   556
		MSG_DT_SUNW_STRPAD_CF,		MSG_DT_SUNW_CAPCHAIN_CF,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   557
		MSG_DT_SUNW_LDMACH_CF,		0,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   558
		MSG_DT_SUNW_CAPCHAINENT_CF,	0,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   559
		MSG_DT_SUNW_CAPCHAINSZ_CF
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   560
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   561
	static const Msg	tags_sunw_auxiliary_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   562
		MSG_DT_SUNW_AUXILIARY_CFNP,	MSG_DT_SUNW_RTLDINF_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   563
		MSG_DT_SUNW_FILTER_CFNP,	MSG_DT_SUNW_CAP_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   564
		MSG_DT_SUNW_SYMTAB_CFNP,	MSG_DT_SUNW_SYMSZ_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   565
		MSG_DT_SUNW_SORTENT_CFNP,	MSG_DT_SUNW_SYMSORT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   566
		MSG_DT_SUNW_SYMSORTSZ_CFNP,	MSG_DT_SUNW_TLSSORT_CFNP,
11827
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   567
		MSG_DT_SUNW_TLSSORTSZ_CFNP,	MSG_DT_SUNW_CAPINFO_CFNP,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   568
		MSG_DT_SUNW_STRPAD_CFNP,	MSG_DT_SUNW_CAPCHAIN_CFNP,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   569
		MSG_DT_SUNW_LDMACH_CFNP,	0,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   570
		MSG_DT_SUNW_CAPCHAINENT_CFNP,	0,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   571
		MSG_DT_SUNW_CAPCHAINSZ_CFNP
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   572
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   573
	static const Msg	tags_sunw_auxiliary_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   574
		MSG_DT_SUNW_AUXILIARY_NF,	MSG_DT_SUNW_RTLDINF_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   575
		MSG_DT_SUNW_FILTER_NF,		MSG_DT_SUNW_CAP_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   576
		MSG_DT_SUNW_SYMTAB_NF,		MSG_DT_SUNW_SYMSZ_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   577
		MSG_DT_SUNW_SORTENT_NF,		MSG_DT_SUNW_SYMSORT_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   578
		MSG_DT_SUNW_SYMSORTSZ_NF,	MSG_DT_SUNW_TLSSORT_NF,
11827
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   579
		MSG_DT_SUNW_TLSSORTSZ_NF,	MSG_DT_SUNW_CAPINFO_NF,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   580
		MSG_DT_SUNW_STRPAD_NF,		MSG_DT_SUNW_CAPCHAIN_NF,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   581
		MSG_DT_SUNW_LDMACH_NF,		0,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   582
		MSG_DT_SUNW_CAPCHAINENT_NF,	0,
d7ef53deac3f 6918143 symbol capabilities
Rod Evans <Rod.Evans@Sun.COM>
parents: 9273
diff changeset
   583
		MSG_DT_SUNW_CAPCHAINSZ_NF
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   584
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   585
	static const conv_ds_msg_t ds_sunw_auxiliary_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   586
	    CONV_DS_MSG_INIT(DT_SUNW_AUXILIARY, tags_sunw_auxiliary_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   587
	static const conv_ds_msg_t ds_sunw_auxiliary_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   588
	    CONV_DS_MSG_INIT(DT_SUNW_AUXILIARY, tags_sunw_auxiliary_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   589
	static const conv_ds_msg_t ds_sunw_auxiliary_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   590
	    CONV_DS_MSG_INIT(DT_SUNW_AUXILIARY, tags_sunw_auxiliary_nf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   591
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   592
	/*
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   593
	 * GNU: (In DT_VALRNGLO section) DT_GNU_PRELINKED - DT_GNU_LIBLISTSZ
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   594
	 */
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   595
	static const Msg	tags_gnu_prelinked_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   596
		MSG_DT_GNU_PRELINKED_CF,	MSG_DT_GNU_CONFLICTSZ_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   597
		MSG_DT_GNU_LIBLISTSZ_CF
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   598
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   599
	static const Msg	tags_gnu_prelinked_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   600
		MSG_DT_GNU_PRELINKED_CFNP,	MSG_DT_GNU_CONFLICTSZ_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   601
		MSG_DT_GNU_LIBLISTSZ_CFNP
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   602
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   603
	static const Msg	tags_gnu_prelinked_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   604
		MSG_DT_GNU_PRELINKED_NF,	MSG_DT_GNU_CONFLICTSZ_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   605
		MSG_DT_GNU_LIBLISTSZ_NF
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   606
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   607
	static const conv_ds_msg_t ds_gnu_prelinked_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   608
	    CONV_DS_MSG_INIT(DT_GNU_PRELINKED, tags_gnu_prelinked_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   609
	static const conv_ds_msg_t ds_gnu_prelinked_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   610
	    CONV_DS_MSG_INIT(DT_GNU_PRELINKED, tags_gnu_prelinked_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   611
	static const conv_ds_msg_t ds_gnu_prelinked_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   612
	    CONV_DS_MSG_INIT(DT_GNU_PRELINKED, tags_gnu_prelinked_nf) };
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   613
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   614
	/*
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   615
	 * SUNW: DT_VALRNGLO - DT_VALRNGHI range.
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   616
	 */
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   617
	static const Msg	tags_checksum_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   618
		MSG_DT_CHECKSUM_CF,		MSG_DT_PLTPADSZ_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   619
		MSG_DT_MOVEENT_CF,		MSG_DT_MOVESZ_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   620
		MSG_DT_FEATURE_1_CF,		MSG_DT_POSFLAG_1_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   621
		MSG_DT_SYMINSZ_CF,		MSG_DT_SYMINENT_CF
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   622
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   623
	static const Msg	tags_checksum_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   624
		MSG_DT_CHECKSUM_CFNP,		MSG_DT_PLTPADSZ_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   625
		MSG_DT_MOVEENT_CFNP,		MSG_DT_MOVESZ_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   626
		MSG_DT_FEATURE_1_CFNP,		MSG_DT_POSFLAG_1_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   627
		MSG_DT_SYMINSZ_CFNP,		MSG_DT_SYMINENT_CFNP
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   628
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   629
	static const Msg	tags_checksum_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   630
		MSG_DT_CHECKSUM_NF,		MSG_DT_PLTPADSZ_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   631
		MSG_DT_MOVEENT_NF,		MSG_DT_MOVESZ_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   632
		MSG_DT_FEATURE_1_NF,		MSG_DT_POSFLAG_1_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   633
		MSG_DT_SYMINSZ_NF,		MSG_DT_SYMINENT_NF
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   634
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   635
	static const conv_ds_msg_t ds_checksum_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   636
	    CONV_DS_MSG_INIT(DT_CHECKSUM, tags_checksum_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   637
	static const conv_ds_msg_t ds_checksum_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   638
	    CONV_DS_MSG_INIT(DT_CHECKSUM, tags_checksum_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   639
	static const conv_ds_msg_t ds_checksum_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   640
	    CONV_DS_MSG_INIT(DT_CHECKSUM, tags_checksum_nf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   641
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   642
	/*
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   643
	 * GNU: (In DT_ADDRRNGLO section) DT_GNU_HASH - DT_GNU_LIBLIST
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   644
	 */
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   645
	static const Msg	tags_gnu_hash_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   646
		MSG_DT_GNU_HASH_CF,		MSG_DT_TLSDESC_PLT_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   647
		MSG_DT_TLSDESC_GOT_CF,		MSG_DT_GNU_CONFLICT_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   648
		MSG_DT_GNU_LIBLIST_CF
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   649
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   650
	static const Msg	tags_gnu_hash_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   651
		MSG_DT_GNU_HASH_CFNP,		MSG_DT_TLSDESC_PLT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   652
		MSG_DT_TLSDESC_GOT_CFNP,	MSG_DT_GNU_CONFLICT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   653
		MSG_DT_GNU_LIBLIST_CFNP
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   654
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   655
	static const Msg	tags_gnu_hash_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   656
		MSG_DT_GNU_HASH_NF,		MSG_DT_TLSDESC_PLT_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   657
		MSG_DT_TLSDESC_GOT_NF,		MSG_DT_GNU_CONFLICT_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   658
		MSG_DT_GNU_LIBLIST_NF
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   659
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   660
	static const conv_ds_msg_t ds_gnu_hash_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   661
	    CONV_DS_MSG_INIT(DT_GNU_HASH, tags_gnu_hash_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   662
	static const conv_ds_msg_t ds_gnu_hash_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   663
	    CONV_DS_MSG_INIT(DT_GNU_HASH, tags_gnu_hash_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   664
	static const conv_ds_msg_t ds_gnu_hash_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   665
	    CONV_DS_MSG_INIT(DT_GNU_HASH, tags_gnu_hash_nf) };
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   666
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   667
	/*
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   668
	 * SUNW: DT_ADDRRNGLO - DT_ADDRRNGHI range.
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   669
	 */
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   670
	static const Msg	tags_config_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   671
		MSG_DT_CONFIG_CF,		MSG_DT_DEPAUDIT_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   672
		MSG_DT_AUDIT_CF,		MSG_DT_PLTPAD_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   673
		MSG_DT_MOVETAB_CF,		MSG_DT_SYMINFO_CF
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   674
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   675
	static const Msg	tags_config_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   676
		MSG_DT_CONFIG_CFNP,		MSG_DT_DEPAUDIT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   677
		MSG_DT_AUDIT_CFNP,		MSG_DT_PLTPAD_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   678
		MSG_DT_MOVETAB_CFNP,		MSG_DT_SYMINFO_CFNP
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   679
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   680
	static const Msg	tags_config_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   681
		MSG_DT_CONFIG_NF,		MSG_DT_DEPAUDIT_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   682
		MSG_DT_AUDIT_NF,		MSG_DT_PLTPAD_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   683
		MSG_DT_MOVETAB_NF,		MSG_DT_SYMINFO_NF
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   684
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   685
	static const conv_ds_msg_t ds_config_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   686
	    CONV_DS_MSG_INIT(DT_CONFIG, tags_config_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   687
	static const conv_ds_msg_t ds_config_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   688
	    CONV_DS_MSG_INIT(DT_CONFIG, tags_config_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   689
	static const conv_ds_msg_t ds_config_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   690
	    CONV_DS_MSG_INIT(DT_CONFIG, tags_config_nf) };
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   691
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   692
	/*
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   693
	 * SUNW: generic range. Note hole between DT_VERSYM and DT_RELACOUNT.
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   694
	 */
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   695
	static const Msg	tags_versym_cf[] = { MSG_DT_VERSYM_CF };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   696
	static const Msg	tags_versym_cfnp[] = { MSG_DT_VERSYM_CFNP };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   697
	static const Msg	tags_versym_nf[] = { MSG_DT_VERSYM_NF };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   698
	static const conv_ds_msg_t ds_versym_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   699
	    CONV_DS_MSG_INIT(DT_VERSYM, tags_versym_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   700
	static const conv_ds_msg_t ds_versym_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   701
	    CONV_DS_MSG_INIT(DT_VERSYM, tags_versym_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   702
	static const conv_ds_msg_t ds_versym_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   703
	    CONV_DS_MSG_INIT(DT_VERSYM, tags_versym_nf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   704
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   705
	static const Msg	tags_relacount_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   706
		MSG_DT_RELACOUNT_CF,		MSG_DT_RELCOUNT_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   707
		MSG_DT_FLAGS_1_CF,		MSG_DT_VERDEF_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   708
		MSG_DT_VERDEFNUM_CF,		MSG_DT_VERNEED_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   709
		MSG_DT_VERNEEDNUM_CF
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   710
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   711
	static const Msg	tags_relacount_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   712
		MSG_DT_RELACOUNT_CFNP,		MSG_DT_RELCOUNT_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   713
		MSG_DT_FLAGS_1_CFNP,		MSG_DT_VERDEF_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   714
		MSG_DT_VERDEFNUM_CFNP,		MSG_DT_VERNEED_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   715
		MSG_DT_VERNEEDNUM_CFNP
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   716
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   717
	static const Msg	tags_relacount_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   718
		MSG_DT_RELACOUNT_NF,		MSG_DT_RELCOUNT_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   719
		MSG_DT_FLAGS_1_NF,		MSG_DT_VERDEF_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   720
		MSG_DT_VERDEFNUM_NF,		MSG_DT_VERNEED_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   721
		MSG_DT_VERNEEDNUM_NF
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   722
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   723
	static const conv_ds_msg_t ds_relacount_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   724
	    CONV_DS_MSG_INIT(DT_RELACOUNT, tags_relacount_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   725
	static const conv_ds_msg_t ds_relacount_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   726
	    CONV_DS_MSG_INIT(DT_RELACOUNT, tags_relacount_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   727
	static const conv_ds_msg_t ds_relacount_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   728
	    CONV_DS_MSG_INIT(DT_RELACOUNT, tags_relacount_nf) };
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   729
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   730
	/*
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   731
	 * DT_LOPROC - DT_HIPROC range: solaris/sparc-only
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   732
	 */
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   733
	static const Msg tags_sparc_reg_cf[] = { MSG_DT_SPARC_REGISTER_CF };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   734
	static const Msg tags_sparc_reg_cfnp[] = { MSG_DT_SPARC_REGISTER_CFNP };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   735
	static const Msg tags_sparc_reg_nf[] = { MSG_DT_SPARC_REGISTER_NF };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   736
	static const Msg tags_sparc_reg_dmp[] = { MSG_DT_SPARC_REGISTER_DMP };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   737
	static const conv_ds_msg_t ds_sparc_reg_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   738
	    CONV_DS_MSG_INIT(DT_SPARC_REGISTER, tags_sparc_reg_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   739
	static const conv_ds_msg_t ds_sparc_reg_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   740
	    CONV_DS_MSG_INIT(DT_SPARC_REGISTER, tags_sparc_reg_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   741
	static const conv_ds_msg_t ds_sparc_reg_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   742
	    CONV_DS_MSG_INIT(DT_SPARC_REGISTER, tags_sparc_reg_nf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   743
	static const conv_ds_msg_t ds_sparc_reg_dmp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   744
	    CONV_DS_MSG_INIT(DT_SPARC_REGISTER, tags_sparc_reg_dmp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   745
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   746
	/*
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   747
	 * DT_LOPROC - DT_HIPROC range: Solaris osabi, all hardware
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   748
	 */
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   749
	static const Msg	tags_auxiliary_cf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   750
		MSG_DT_AUXILIARY_CF,	MSG_DT_USED_CF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   751
		MSG_DT_FILTER_CF
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   752
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   753
	static const Msg	tags_auxiliary_cfnp[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   754
		MSG_DT_AUXILIARY_CFNP,	MSG_DT_USED_CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   755
		MSG_DT_FILTER_CFNP
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   756
	};
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   757
	static const Msg	tags_auxiliary_nf[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   758
		MSG_DT_AUXILIARY_NF,	MSG_DT_USED_NF,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   759
		MSG_DT_FILTER_NF
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   760
	};
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   761
	static const conv_ds_msg_t ds_auxiliary_cf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   762
	    CONV_DS_MSG_INIT(DT_AUXILIARY, tags_auxiliary_cf) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   763
	static const conv_ds_msg_t ds_auxiliary_cfnp = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   764
	    CONV_DS_MSG_INIT(DT_AUXILIARY, tags_auxiliary_cfnp) };
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   765
	static const conv_ds_msg_t ds_auxiliary_nf = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   766
	    CONV_DS_MSG_INIT(DT_AUXILIARY, tags_auxiliary_nf) };
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   767
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   768
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   769
	static const conv_ds_t	*retarr[MAX_RET];
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   770
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   771
	int	ndx = 0;
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   772
	int	fmt_osabi = CONV_TYPE_FMT_ALT(fmt_flags);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   773
	int	mach_sparc, osabi_solaris, osabi_linux;
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   774
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   775
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   776
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   777
	osabi_solaris = (osabi == ELFOSABI_NONE) ||
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   778
	    (osabi == ELFOSABI_SOLARIS) || (osabi == CONV_OSABI_ALL);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   779
	osabi_linux = (osabi == ELFOSABI_LINUX) || (osabi == CONV_OSABI_ALL);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   780
	mach_sparc = (mach == EM_SPARC) || (mach == EM_SPARCV9) ||
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   781
	    (mach == EM_SPARC32PLUS) || (mach == CONV_MACH_ALL);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   782
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   783
	/*
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   784
	 * Fill in retarr with the descriptors for the messages that
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   785
	 * apply to the current osabi. Note that we order these items such
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   786
	 * that the more common are placed at the beginning, and the less
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   787
	 * likely at the end. This should speed the common case.
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   788
	 *
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   789
	 * Note that the CFNP and DMP styles are very similar, so they
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   790
	 * are combined in 'default', and fmt_osabi is consulted when there
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   791
	 * are differences.
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   792
	 */
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   793
	switch (fmt_osabi) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   794
	case CONV_FMT_ALT_CF:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   795
		retarr[ndx++] = CONV_DS_ADDR(ds_null_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   796
		if (osabi_solaris)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   797
			retarr[ndx++] = CONV_DS_ADDR(ds_sunw_auxiliary_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   798
		retarr[ndx++] = CONV_DS_ADDR(ds_checksum_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   799
		retarr[ndx++] = CONV_DS_ADDR(ds_config_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   800
		retarr[ndx++] = CONV_DS_ADDR(ds_versym_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   801
		retarr[ndx++] = CONV_DS_ADDR(ds_relacount_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   802
		if (osabi_solaris) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   803
			retarr[ndx++] = CONV_DS_ADDR(ds_auxiliary_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   804
			if (mach_sparc) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   805
				retarr[ndx++] = CONV_DS_ADDR(ds_sparc_reg_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   806
				retarr[ndx++] = CONV_DS_ADDR(ds_sdreg_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   807
			}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   808
		}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   809
		if (osabi_linux) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   810
			retarr[ndx++] = CONV_DS_ADDR(ds_gnu_prelinked_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   811
			retarr[ndx++] = CONV_DS_ADDR(ds_gnu_hash_cf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   812
		}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   813
		break;
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   814
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   815
	case CONV_FMT_ALT_NF:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   816
		retarr[ndx++] = CONV_DS_ADDR(ds_null_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   817
		if (osabi_solaris)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   818
			retarr[ndx++] = CONV_DS_ADDR(ds_sunw_auxiliary_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   819
		retarr[ndx++] = CONV_DS_ADDR(ds_checksum_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   820
		retarr[ndx++] = CONV_DS_ADDR(ds_config_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   821
		retarr[ndx++] = CONV_DS_ADDR(ds_versym_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   822
		retarr[ndx++] = CONV_DS_ADDR(ds_relacount_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   823
		if (osabi_solaris) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   824
			retarr[ndx++] = CONV_DS_ADDR(ds_auxiliary_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   825
			if (mach_sparc) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   826
				retarr[ndx++] = CONV_DS_ADDR(ds_sparc_reg_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   827
				retarr[ndx++] = CONV_DS_ADDR(ds_sdreg_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   828
			}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   829
		}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   830
		if (osabi_linux) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   831
			retarr[ndx++] = CONV_DS_ADDR(ds_gnu_prelinked_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   832
			retarr[ndx++] = CONV_DS_ADDR(ds_gnu_hash_nf);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   833
		}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   834
		break;
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   835
	default:
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   836
		/*
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   837
		 * The default style for the generic range is CFNP,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   838
		 * while dump has a couple of different strings.
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   839
		 */
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   840
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   841
		retarr[ndx++] = (fmt_osabi == CONV_FMT_ALT_DUMP) ?
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   842
		    CONV_DS_ADDR(ds_null_dmp) : CONV_DS_ADDR(ds_null_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   843
		if (osabi_solaris)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   844
			retarr[ndx++] = CONV_DS_ADDR(ds_sunw_auxiliary_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   845
		retarr[ndx++] = CONV_DS_ADDR(ds_checksum_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   846
		retarr[ndx++] = CONV_DS_ADDR(ds_config_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   847
		retarr[ndx++] = CONV_DS_ADDR(ds_versym_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   848
		retarr[ndx++] = CONV_DS_ADDR(ds_relacount_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   849
		if (osabi_solaris) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   850
			retarr[ndx++] = CONV_DS_ADDR(ds_auxiliary_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   851
			if (mach_sparc) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   852
				/*
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   853
				 * The default style for DT_SPARC_REGISTER
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   854
				 * is the dump style, which omits the 'SPARC_'.
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   855
				 * CFNP keeps the prefix.
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   856
				 */
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   857
				retarr[ndx++] =
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   858
				    (fmt_osabi == CONV_FMT_ALT_CFNP) ?
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   859
				    CONV_DS_ADDR(ds_sparc_reg_cfnp) :
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   860
				    CONV_DS_ADDR(ds_sparc_reg_dmp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   861
				retarr[ndx++] = CONV_DS_ADDR(ds_sdreg_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   862
			}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   863
		}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   864
		if (osabi_linux) {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   865
			retarr[ndx++] = CONV_DS_ADDR(ds_gnu_prelinked_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   866
			retarr[ndx++] = CONV_DS_ADDR(ds_gnu_hash_cfnp);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   867
		}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   868
		break;
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   869
	}
3492
cd4326c9ab0e PSARC 2007/026 ELF symbol sort sections
ab196087
parents: 3466
diff changeset
   870
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   871
	retarr[ndx++] = NULL;
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   872
	assert(ndx <= MAX_RET);
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   873
	return (retarr);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   874
}
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   875
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   876
conv_iter_ret_t
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   877
conv_iter_dyn_tag(conv_iter_osabi_t osabi, Half mach,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   878
    Conv_fmt_flags_t fmt_flags, conv_iter_cb_t func, void *uvalue)
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   879
{
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   880
	return (conv_iter_ds(osabi, mach,
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   881
	    conv_dyn_tag_strings(osabi, mach, fmt_flags), func, uvalue));
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   882
}
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   883
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   884
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   885
#define	BINDTSZ	CONV_EXPN_FIELD_DEF_PREFIX_SIZE +			\
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   886
		MSG_BND_NEEDED_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   887
		MSG_BND_REFER_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   888
		MSG_BND_FILTER_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   889
		CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   890
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   891
/*
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   892
 * Ensure that Conv_bnd_type_buf_t is large enough:
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   893
 *
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   894
 * BINDTSZ is the real minimum size of the buffer required by conv_bnd_type().
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   895
 * However, Conv_bnd_type_buf_t uses CONV_BND_TYPE_BUFSIZE to set the
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   896
 * buffer size. We do things this way because the definition of BINDTSZ uses
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   897
 * information that is not available in the environment of other programs
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   898
 * that include the conv.h header file.
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   899
 */
5152
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   900
#if (CONV_BND_TYPE_BUFSIZE != BINDTSZ) && !defined(__lint)
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   901
#define	REPORT_BUFSIZE BINDTSZ
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   902
#include "report_bufsize.h"
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   903
#error "CONV_BND_TYPE_BUFSIZE does not match BINDTSZ"
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   904
#endif
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   905
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   906
const char *
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   907
conv_bnd_type(uint_t flags, Conv_bnd_type_buf_t *bnd_type_buf)
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   908
{
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   909
	static const Val_desc vda[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   910
		{ BND_NEEDED,		MSG_BND_NEEDED },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   911
		{ BND_REFER,		MSG_BND_REFER },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   912
		{ BND_FILTER,		MSG_BND_FILTER },
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   913
		{ 0,			0 }
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   914
	};
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   915
	static CONV_EXPN_FIELD_ARG conv_arg = {
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   916
	    NULL, sizeof (bnd_type_buf->buf) };
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   917
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   918
	if (flags == 0)
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   919
		return (MSG_ORIG(MSG_STR_EMPTY));
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   920
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   921
	conv_arg.buf = bnd_type_buf->buf;
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   922
	conv_arg.oflags = conv_arg.rflags = flags;
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   923
	(void) conv_expn_field(&conv_arg, vda, 0);
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   924
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   925
	return ((const char *)bnd_type_buf->buf);
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   926
}
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   927
1824
9cc314774a20 6262333 init section of .so dlopened from audit interface not being called
rie
parents: 1698
diff changeset
   928
/*
9cc314774a20 6262333 init section of .so dlopened from audit interface not being called
rie
parents: 1698
diff changeset
   929
 * Note, conv_bnd_obj() is called with either:
9cc314774a20 6262333 init section of .so dlopened from audit interface not being called
rie
parents: 1698
diff changeset
   930
 *	LML_FLG_OBJADDED (possibly with LML_FLG_OBJREEVAL added), or
9cc314774a20 6262333 init section of .so dlopened from audit interface not being called
rie
parents: 1698
diff changeset
   931
 *	LML_FLG_OBJDELETED, or
9cc314774a20 6262333 init section of .so dlopened from audit interface not being called
rie
parents: 1698
diff changeset
   932
 *	LML_FLG_ATEXIT.
9cc314774a20 6262333 init section of .so dlopened from audit interface not being called
rie
parents: 1698
diff changeset
   933
 */
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   934
#define	BINDOSZ	CONV_EXPN_FIELD_DEF_PREFIX_SIZE + \
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   935
		MSG_BND_ADDED_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   936
		MSG_BND_REEVAL_SIZE	+ CONV_EXPN_FIELD_DEF_SEP_SIZE + \
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   937
		CONV_INV_BUFSIZE + CONV_EXPN_FIELD_DEF_SUFFIX_SIZE
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   938
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   939
/*
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   940
 * Ensure that Conv_bnd_obj_buf_t is large enough:
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   941
 *
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   942
 * BINDOSZ is the real minimum size of the buffer required by conv_bnd_obj().
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   943
 * However, Conv_bnd_obj_buf_t uses CONV_BND_OBJ_BUFSIZE to set the
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   944
 * buffer size. We do things this way because the definition of BINDOSZ uses
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   945
 * information that is not available in the environment of other programs
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   946
 * that include the conv.h header file.
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   947
 */
5152
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   948
#if (CONV_BND_OBJ_BUFSIZE != BINDOSZ) && !defined(__lint)
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   949
#define	REPORT_BUFSIZE BINDOSZ
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   950
#include "report_bufsize.h"
fa5ab16f3606 5035454 mixing -Kpic and -KPIC may cause SIGSEGV with -xarch=v9
ab196087
parents: 5088
diff changeset
   951
#error "CONV_BND_OBJ_BUFSIZE does not match BINDOSZ"
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   952
#endif
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   953
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   954
const char *
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   955
conv_bnd_obj(uint_t flags, Conv_bnd_obj_buf_t *bnd_obj_buf)
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   956
{
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   957
	static const Val_desc vda[] = {
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   958
		{ LML_FLG_OBJADDED,	MSG_BND_ADDED },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   959
		{ LML_FLG_OBJREEVAL,	MSG_BND_REEVAL },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   960
		{ LML_FLG_OBJDELETED,	MSG_BND_DELETED },
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   961
		{ LML_FLG_ATEXIT,	MSG_BND_ATEXIT },
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   962
		{ 0,			0 }
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   963
	};
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   964
	static CONV_EXPN_FIELD_ARG conv_arg = {
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   965
	    NULL, sizeof (bnd_obj_buf->buf) };
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   966
1824
9cc314774a20 6262333 init section of .so dlopened from audit interface not being called
rie
parents: 1698
diff changeset
   967
	if ((flags & (LML_FLG_OBJADDED | LML_FLG_OBJREEVAL |
9cc314774a20 6262333 init section of .so dlopened from audit interface not being called
rie
parents: 1698
diff changeset
   968
	    LML_FLG_OBJDELETED | LML_FLG_ATEXIT)) == 0)
9cc314774a20 6262333 init section of .so dlopened from audit interface not being called
rie
parents: 1698
diff changeset
   969
		return (MSG_ORIG(MSG_BND_REVISIT));
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   970
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   971
	/*
1618
8c9a4f31d225 6316708 LD_DEBUG should provide a means of identifying/isolating individual
rie
parents: 280
diff changeset
   972
	 * Note, we're not worried about unknown flags for this family, only
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   973
	 * the selected flags are of interest, so we leave conv_arg.rflags
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   974
	 * set to 0.
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   975
	 */
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   976
	conv_arg.buf = bnd_obj_buf->buf;
2352
9cdfed81bb1c 6421380 nm uses too many digits when formatting 64-bit hex values
ab196087
parents: 1976
diff changeset
   977
	conv_arg.oflags = flags;
9273
9a0603d78ad3 6821619 Solaris linkers need systematic approach to ELF OSABI
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 6206
diff changeset
   978
	(void) conv_expn_field(&conv_arg, vda, 0);
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   979
4734
a4708faa3e85 6583742 ELF string conversion library needs to lose static writable buffers
ab196087
parents: 4679
diff changeset
   980
	return ((const char *)bnd_obj_buf->buf);
280
ffd6f0e5ac00 6301218 Matlab dumps core on startup when running on 112963-22
rie
parents: 0
diff changeset
   981
}