* 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> 2010-10-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* elfxx-sparc.c (tpoff): Define bed, static_tls_size. * 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); void bfd_init (void);
/* Extracted from opncls.c. */ /* Extracted from opncls.c. */
extern unsigned int bfd_use_reserved_id;
bfd *bfd_fopen (const char *filename, const char *target, bfd *bfd_fopen (const char *filename, const char *target,
const char *mode, int fd); const char *mode, int fd);

View File

@ -1,6 +1,6 @@
/* opncls.c -- open and close a BFD. /* opncls.c -- open and close a BFD.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 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. Free Software Foundation, Inc.
Written by Cygnus Support. Written by Cygnus Support.
@ -38,9 +38,17 @@
#define S_IXOTH 0001 /* Execute by others. */ #define S_IXOTH 0001 /* Execute by others. */
#endif #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 /* fdopen is a loser -- we should use stdio exclusively. Unfortunately
if we do that we can't use fcntl. */ if we do that we can't use fcntl. */
@ -56,7 +64,13 @@ _bfd_new_bfd (void)
if (nbfd == NULL) if (nbfd == NULL)
return 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 (); nbfd->memory = objalloc_create ();
if (nbfd->memory == NULL) if (nbfd->memory == NULL)
@ -753,7 +767,7 @@ SYNOPSIS
DESCRIPTION DESCRIPTION
Create a new BFD in the manner of <<bfd_openw>>, but without Create a new BFD in the manner of <<bfd_openw>>, but without
opening a file. The new BFD takes the target from the target 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 * bfd *