relocate.c revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
#include "msg.h"
#include "_debug.h"
#include "libld.h"
#include <sys/elf_SPARC.h>
void
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
else
}
void
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
else
else
if (DBG_NOTDETAIL())
return;
/*
* Determine the relocation titles from the sections type.
*/
else
}
#if !defined(_ELF64)
void
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
}
#endif /* !defined(_ELF64) */
void
{
const char *sec;
const char *msg;
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
if (DBG_NOTLONG())
else
if (osp) {
} else
}
void
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
else
}
void
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
}
void
const char *sym)
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
sym);
}
void
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
#if defined(_ELF64)
#else
#endif
value);
}
#if !defined(_ELF64)
void
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
/*
* Print the actual relocation being applied to the specified output
* section, the offset represents the actual relocation address, and the
* value is the new data being written to that address).
*/
}
#endif /* !defined(_ELF64) */
void
const char *relsectname)
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
}
void
const char *iname)
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
}
void
const char *com)
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
}
/*
* Print a output relocation structure(Rel_desc).
*/
void
{
const char *os_name;
const char *sym_name;
const char *msg;
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
if (DBG_NOTLONG())
else
else if (orsp->rel_osdesc)
else
/*
* Register symbols can be relocated/initialized
* to a constant, which is a special case where
* the symbol index is 0.
*/
else
}
/*
* Print a Active relocation structure (Rel_desc).
*/
void
{
const char *os_name;
const char *msg;
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
if (DBG_NOTLONG())
else
else
}
#if !defined(_ELF64)
void
{
const char *str;
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (type == DBG_REL_FINISH) {
if (info)
else
} else {
if (info)
else
}
if (type == DBG_REL_START) {
if (DBG_NOTDETAIL())
return;
} else
} else {
if (type == DBG_REL_NONE) {
} else
}
}
void
int zero)
{
const char *str;
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
if (zero)
else
}
/*
* Print a relocation entry. This can either be an input or output
* relocation record, and specifies the relocation section for which is
* associated.
*/
void
{
const char *msg;
if (DBG_NOTLONG())
else
} else {
if (DBG_NOTLONG())
else
}
else
}
void
{
const char *msg;
/*
* Register relocations can use a constant initialzer,
* in which case the associated symbol is 0.
*/
if (DBG_NOTLONG())
else
} else {
if (DBG_NOTLONG())
else
}
} else {
}
} else {
} else {
}
}
}
#endif /* !defined(_ELF64) */
#if defined(_ELF64)
void
const char *symname)
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
}
void
{
if (DBG_NOTCLASS(DBG_RELOC))
return;
if (DBG_NOTDETAIL())
return;
}
#endif