* bfd.c: Fix formatting.
* binary.c: Likewise.
* bout.c: Likewise.
+2000-11-08 Kazu Hirata <kazu@hxi.com>
+
+ * bfd.c: Fix formatting.
+ * binary.c: Likewise.
+ * bout.c: Likewise.
+
2000-11-07 Kazu Hirata <kazu@hxi.com>
* aix386-core.c: Fix formatting.
CODE_FRAGMENT
.
-.struct _bfd
+.struct _bfd
.{
. {* The filename the application opened the BFD with. *}
-. CONST char *filename;
+. CONST char *filename;
.
. {* A pointer to the target jump table. *}
. const struct bfd_target *xvec;
. {* When a file is closed by the caching routines, BFD retains
. state information on the file here: *}
.
-. file_ptr where;
+. file_ptr where;
.
. {* and here: (``once'' means at least once) *}
.
.
. {* File modified time, if mtime_set is true: *}
.
-. long mtime;
+. long mtime;
.
. {* Reserved for an unimplemented file locking extension.*}
.
.
. {* Format_specific flags*}
.
-. flagword flags;
+. flagword flags;
.
. {* Currently my_archive is tested before adding origin to
. anything. I believe that this can become always an add of
. origin, with origin set to 0 for non archive files. *}
.
-. file_ptr origin;
+. file_ptr origin;
.
. {* Remember when output has begun, to stop strange things
. from happening. *}
. {* The number of sections *}
. unsigned int section_count;
.
-. {* Stuff only useful for object files:
+. {* Stuff only useful for object files:
. The start address. *}
. bfd_vma start_address;
.
. unsigned int symcount;
.
. {* Symbol table for output BFD (with symcount entries) *}
-. struct symbol_cache_entry **outsymbols;
+. struct symbol_cache_entry **outsymbols;
.
. {* Pointer to structure which contains architecture information*}
. const struct bfd_arch_info *arch_info;
.
. {* Stuff only useful for archives:*}
-. PTR arelt_data;
+. PTR arelt_data;
. struct _bfd *my_archive; {* The containing archive BFD. *}
. struct _bfd *next; {* The next BFD in the archive. *}
. struct _bfd *archive_head; {* The first BFD in the archive. *}
-. boolean has_armap;
+. boolean has_armap;
.
. {* A chain of BFD structures involved in a link. *}
. struct _bfd *link_next;
.
. {* Used by the back end to hold private data. *}
.
-. union
+. union
. {
. struct aout_data_struct *aout_data;
. struct artdata *aout_ar_data;
. struct netbsd_core_struct *netbsd_core_data;
. PTR any;
. } tdata;
-.
+.
. {* Used by the application to hold private data*}
. PTR usrdata;
.
it to the following struct so that the data will be available in coffcode.h
where it is needed. The typedef's used are defined in bfd.h */
-
\f
/*
SECTION
CONST char *message;
{
if (bfd_get_error () == bfd_error_system_call)
- perror((char *)message); /* must be system error then... */
+ perror((char *)message); /* must be system error then... */
else {
if (message == NULL || *message == '\0')
fprintf (stderr, "%s\n", bfd_errmsg (bfd_get_error ()));
_bfd_error_program_name = name;
}
-
/*
FUNCTION
bfd_get_error_handler
*/
-
long
bfd_get_reloc_upper_bound (abfd, asect)
bfd *abfd;
The @var{syms} table is also needed for horrible internal magic
reasons.
-
*/
long
bfd_canonicalize_reloc (abfd, asect, location, symbols)
The argument @var{abfd} is ignored.
*/
-/*ARGSUSED*/
+
void
bfd_set_reloc (ignore_abfd, asect, location, count)
bfd *ignore_abfd ATTRIBUTE_UNUSED;
return true;
}
-
/*
FUNCTION
bfd_get_mtime
(string[0] == '0') && ((string[1] == 'x') || (string[1] == 'X')))
string += 2;
/* XXX should we also skip over "0b" or "0B" if base is 2? */
-
+
/* Speed could be improved with a table like hex_value[] in gas. */
#define HEX_VALUE(c) \
(isxdigit ((unsigned char) c) \
boolean bfd_copy_private_bfd_data(bfd *ibfd, bfd *obfd);
DESCRIPTION
- Copy private BFD information from the BFD @var{ibfd} to the
+ Copy private BFD information from the BFD @var{ibfd} to the
the BFD @var{obfd}. Return <<true>> on success, <<false>> on error.
Possible error returns are:
boolean bfd_merge_private_bfd_data(bfd *ibfd, bfd *obfd);
DESCRIPTION
- Merge private BFD information from the BFD @var{ibfd} to the
+ Merge private BFD information from the BFD @var{ibfd} to the
the output file BFD @var{obfd} when linking. Return <<true>>
on success, <<false>> on error. Possible error returns are:
s->filepos = s->lma - low;
/* Skip following warning check for sections that will not
- occupy file space. */
+ occupy file space. */
if ((s->flags
& (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_NEVER_LOAD))
!= (SEC_HAS_CONTENTS | SEC_ALLOC))
LMA's all over the place, huge (sparse?) binary files may
result. This condition attempts to detect this situation
and print a warning. Better heuristics would be nice to
- have. */
+ have. */
if (s->filepos < 0)
(*_bfd_error_handler)
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
NULL,
-
+
NULL
};
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
#include "bfd.h"
#include "sysdep.h"
#include "libbfd.h"
#include "aout/stab_gnu.h"
#include "libaout.h" /* BFD a.out internal data structures */
-
static int aligncode PARAMS ((bfd *abfd, asection *input_section,
arelent *r, unsigned int shrink));
static void perform_slip PARAMS ((bfd *abfd, unsigned int slip,
{
struct external_exec *bytes = (struct external_exec *)raw_bytes;
- /* Now fill in fields in the raw data, from the fields in the exec struct. */
+ /* Now fill in fields in the raw data, from the fields in the exec struct. */
bfd_h_put_32 (abfd, execp->a_info , bytes->e_info);
PUT_WORD (abfd, execp->a_text , bytes->e_text);
PUT_WORD (abfd, execp->a_data , bytes->e_data);
bytes->e_relaxable[0] = execp->a_relaxable;
}
-
static const bfd_target *
b_out_object_p (abfd)
bfd *abfd;
return aout_32_some_aout_object_p (abfd, &anexec, b_out_callback);
}
-
/* Finish up the opening of a b.out file for reading. Fill in all the
fields that are not handled by common code. */
obj_textsec (abfd)->rel_filepos = N_TROFF(*execp);
obj_datasec (abfd)->rel_filepos = N_DROFF(*execp);
- adata(abfd).page_size = 1; /* Not applicable. */
- adata(abfd).segment_size = 1; /* Not applicable. */
+ adata(abfd).page_size = 1; /* Not applicable. */
+ adata(abfd).segment_size = 1; /* Not applicable. */
adata(abfd).exec_bytes_size = EXEC_BYTES_SIZE;
if (execp->a_relaxable)
#define CALL 0x09000000
#define PCREL13_MASK 0x1fff
-
#define output_addr(sec) ((sec)->output_offset+(sec)->output_section->vma)
/* Magic to turn callx into calljx */
return bfd_reloc_ok;
}
-
/* Magic to turn call into callj */
static bfd_reloc_status_type
callj_callback (abfd, link_info, reloc_entry, data, srcidx, dstidx,
/* The next symbol should be an N_BALNAME. */
BFD_ASSERT(IS_BALNAME(balsym->other));
-
+
/* We are calling a leaf, so replace the call instruction with a
bal. */
word = BAL | ((word
static reloc_howto_type howto_reloc_pcrel13 =
HOWTO(PCREL13, 0, 2, 13, true, 0, complain_overflow_signed,0,"pcrel13", true, 0x00001fff,0x00001fff,false);
-
static reloc_howto_type howto_reloc_abs32codeshrunk =
HOWTO(ABS32CODE_SHRUNK, 0, 2, 24, true, 0, complain_overflow_signed, 0,"callx->callj", true, 0x00ffffff, 0x00ffffff,false);
return false;
}
-
-
if (bfd_header_big_endian (abfd)) {
/* big-endian bit field allocation order */
pcrel_mask = 0x80;
}
}
-
if (relocs != NULL)
free (relocs);
asect->relocation = reloc_cache;
asect->reloc_count = count;
-
return true;
}
-
static boolean
b_out_squirt_out_relocs (abfd, section)
bfd *abfd;
return sizeof(struct internal_exec);
}
-
-
/************************************************************************/
static bfd_vma
get_value (reloc, link_info, input_section)
gap = value - (dot - shrink);
-
if (-1<<23 < (long)gap && (long)gap < 1<<23 )
{
/* Change the reloc type from 32bitcode possible 24, to 24bit
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& b_out_vec_little_host,
-
+
(PTR) 0,
};
-
const bfd_target b_out_vec_little_host =
{
"b.out.little", /* name */
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& b_out_vec_big_host,
-
+
(PTR) 0
};