* opncls.c (_bfd_id_counter): Rename to bfd_id_counter.

(bfd_reserved_id_counter, bfd_use_reserved_id): New vars.
	(_bfd_new_bfd): Use negative id when bfd_use_reserved_id.
	(bfd_create): Doc fix.
	* bfd-in2.h: Regenerate.
This commit is contained in:
Alan Modra 2010-10-25 06:14:30 +00:00
parent e5940dffc5
commit fc1cfaa5f1
3 changed files with 28 additions and 5 deletions

View File

@ -1,3 +1,11 @@
2010-10-25 Alan Modra <amodra@gmail.com>
* opncls.c (_bfd_id_counter): Rename to bfd_id_counter.
(bfd_reserved_id_counter, bfd_use_reserved_id): New vars.
(_bfd_new_bfd): Use negative id when bfd_use_reserved_id.
(bfd_create): Doc fix.
* bfd-in2.h: Regenerate.
2010-10-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* elfxx-sparc.c (tpoff): Define bed, static_tls_size.

View File

@ -964,6 +964,7 @@ extern struct coff_comdat_info *bfd_coff_get_comdat_section
void bfd_init (void);
/* Extracted from opncls.c. */
extern unsigned int bfd_use_reserved_id;
bfd *bfd_fopen (const char *filename, const char *target,
const char *mode, int fd);

View File

@ -1,6 +1,6 @@
/* opncls.c -- open and close a BFD.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Written by Cygnus Support.
@ -38,9 +38,17 @@
#define S_IXOTH 0001 /* Execute by others. */
#endif
/* Counter used to initialize the bfd identifier. */
/* Counters used to initialize the bfd identifier. */
static unsigned int _bfd_id_counter = 0;
static unsigned int bfd_id_counter = 0;
static unsigned int bfd_reserved_id_counter = 0;
/*
CODE_FRAGMENT
.{* Set to N to open the next N BFDs using an alternate id space. *}
.extern unsigned int bfd_use_reserved_id;
*/
unsigned int bfd_use_reserved_id = 0;
/* fdopen is a loser -- we should use stdio exclusively. Unfortunately
if we do that we can't use fcntl. */
@ -56,7 +64,13 @@ _bfd_new_bfd (void)
if (nbfd == NULL)
return NULL;
nbfd->id = _bfd_id_counter++;
if (bfd_use_reserved_id)
{
nbfd->id = --bfd_reserved_id_counter;
--bfd_use_reserved_id;
}
else
nbfd->id = bfd_id_counter++;
nbfd->memory = objalloc_create ();
if (nbfd->memory == NULL)
@ -753,7 +767,7 @@ SYNOPSIS
DESCRIPTION
Create a new BFD in the manner of <<bfd_openw>>, but without
opening a file. The new BFD takes the target from the target
used by @var{template}. The format is always set to <<bfd_object>>.
used by @var{templ}. The format is always set to <<bfd_object>>.
*/
bfd *