mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-24 11:30:50 +00:00
* section.c (struct sec): Remove kept_section.
(STD_SECTION): Remove kept_section initialisation. (bfd_make_section_anyway): Here too. * ecoff.c (bfd_debug_section): Remove kept_section initialisation. * cofflink.c (_bfd_coff_link_input_bfd): Don't test kept_section. * elflink.h (elf_link_input_bfd): Set discarded link-once section symbols to zero, and remove all code involved with kept_section and tracking section symbol values. * bfd-in2.h: Regenerate. * configure.in: Bump version number. * configure: Regenerate. * ldlang.c (section_already_linked): Remove assignment to kept_section.
This commit is contained in:
parent
65f38f15bf
commit
862517b650
@ -1,3 +1,17 @@
|
|||||||
|
2001-09-29 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* section.c (struct sec): Remove kept_section.
|
||||||
|
(STD_SECTION): Remove kept_section initialisation.
|
||||||
|
(bfd_make_section_anyway): Here too.
|
||||||
|
* ecoff.c (bfd_debug_section): Remove kept_section initialisation.
|
||||||
|
* cofflink.c (_bfd_coff_link_input_bfd): Don't test kept_section.
|
||||||
|
* elflink.h (elf_link_input_bfd): Set discarded link-once section
|
||||||
|
symbols to zero, and remove all code involved with kept_section
|
||||||
|
and tracking section symbol values.
|
||||||
|
* bfd-in2.h: Regenerate.
|
||||||
|
* configure.in: Bump version number.
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
2001-09-29 Alan Modra <amodra@bigpond.net.au>
|
2001-09-29 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* elf64-ppc.c (struct ppc_dyn_relocs): New.
|
* elf64-ppc.c (struct ppc_dyn_relocs): New.
|
||||||
|
@ -1319,10 +1319,6 @@ typedef struct sec
|
|||||||
|
|
||||||
struct bfd_comdat_info *comdat;
|
struct bfd_comdat_info *comdat;
|
||||||
|
|
||||||
/* Points to the kept section if this section is a link-once section,
|
|
||||||
and is discarded. */
|
|
||||||
struct sec *kept_section;
|
|
||||||
|
|
||||||
/* When a section is being output, this value changes as more
|
/* When a section is being output, this value changes as more
|
||||||
linenumbers are written out. */
|
linenumbers are written out. */
|
||||||
|
|
||||||
|
@ -1516,15 +1516,13 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
|
|||||||
|
|
||||||
#ifndef COFF_WITH_PE
|
#ifndef COFF_WITH_PE
|
||||||
/* Skip section symbols for sections which are not going to be
|
/* Skip section symbols for sections which are not going to be
|
||||||
emitted, or which belong to linkonce sections that are going
|
emitted. */
|
||||||
to be discarded. */
|
|
||||||
if (!skip
|
if (!skip
|
||||||
&& isym.n_sclass == C_STAT
|
&& isym.n_sclass == C_STAT
|
||||||
&& isym.n_type == T_NULL
|
&& isym.n_type == T_NULL
|
||||||
&& isym.n_numaux > 0)
|
&& isym.n_numaux > 0)
|
||||||
{
|
{
|
||||||
if ((*secpp)->output_section == bfd_abs_section_ptr
|
if ((*secpp)->output_section == bfd_abs_section_ptr)
|
||||||
|| (*secpp)->kept_section)
|
|
||||||
skip = true;
|
skip = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
2
bfd/configure
vendored
2
bfd/configure
vendored
@ -1127,7 +1127,7 @@ fi
|
|||||||
|
|
||||||
PACKAGE=bfd
|
PACKAGE=bfd
|
||||||
|
|
||||||
VERSION=2.11.91
|
VERSION=2.11.92
|
||||||
|
|
||||||
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
|
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
|
||||||
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
|
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
|
||||||
|
@ -7,7 +7,7 @@ AC_INIT(libbfd.c)
|
|||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
AC_ISC_POSIX
|
AC_ISC_POSIX
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE(bfd, 2.11.91)
|
AM_INIT_AUTOMAKE(bfd, 2.11.92)
|
||||||
|
|
||||||
dnl These must be called before AM_PROG_LIBTOOL, because it may want
|
dnl These must be called before AM_PROG_LIBTOOL, because it may want
|
||||||
dnl to call AC_CHECK_PROG.
|
dnl to call AC_CHECK_PROG.
|
||||||
|
@ -86,8 +86,8 @@ static asection bfd_debug_section =
|
|||||||
NULL, NULL, 0, 0, 0,
|
NULL, NULL, 0, 0, 0,
|
||||||
/* line_filepos, userdata, contents, lineno, lineno_count, */
|
/* line_filepos, userdata, contents, lineno, lineno_count, */
|
||||||
0, NULL, NULL, NULL, 0,
|
0, NULL, NULL, NULL, 0,
|
||||||
/* entsize, comdat, kept_section, moving_line_filepos, */
|
/* entsize, comdat, moving_line_filepos, */
|
||||||
0, NULL, NULL, 0,
|
0, NULL, 0,
|
||||||
/* target_index, used_by_bfd, constructor_chain, owner, */
|
/* target_index, used_by_bfd, constructor_chain, owner, */
|
||||||
0, NULL, NULL, NULL,
|
0, NULL, NULL, NULL,
|
||||||
/* symbol, */
|
/* symbol, */
|
||||||
|
@ -5962,12 +5962,8 @@ elf_link_input_bfd (finfo, input_bfd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
name = NULL;
|
|
||||||
if (isym->st_shndx == SHN_UNDEF)
|
if (isym->st_shndx == SHN_UNDEF)
|
||||||
{
|
isec = bfd_und_section_ptr;
|
||||||
isec = bfd_und_section_ptr;
|
|
||||||
name = isec->name;
|
|
||||||
}
|
|
||||||
else if (isym->st_shndx > 0 && isym->st_shndx < SHN_LORESERVE)
|
else if (isym->st_shndx > 0 && isym->st_shndx < SHN_LORESERVE)
|
||||||
{
|
{
|
||||||
isec = section_from_elf_index (input_bfd, isym->st_shndx);
|
isec = section_from_elf_index (input_bfd, isym->st_shndx);
|
||||||
@ -5979,15 +5975,9 @@ elf_link_input_bfd (finfo, input_bfd)
|
|||||||
isym->st_value, (bfd_vma) 0);
|
isym->st_value, (bfd_vma) 0);
|
||||||
}
|
}
|
||||||
else if (isym->st_shndx == SHN_ABS)
|
else if (isym->st_shndx == SHN_ABS)
|
||||||
{
|
isec = bfd_abs_section_ptr;
|
||||||
isec = bfd_abs_section_ptr;
|
|
||||||
name = isec->name;
|
|
||||||
}
|
|
||||||
else if (isym->st_shndx == SHN_COMMON)
|
else if (isym->st_shndx == SHN_COMMON)
|
||||||
{
|
isec = bfd_com_section_ptr;
|
||||||
isec = bfd_com_section_ptr;
|
|
||||||
name = isec->name;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Who knows? */
|
/* Who knows? */
|
||||||
@ -6002,39 +5992,18 @@ elf_link_input_bfd (finfo, input_bfd)
|
|||||||
|
|
||||||
if (ELF_ST_TYPE (isym->st_info) == STT_SECTION)
|
if (ELF_ST_TYPE (isym->st_info) == STT_SECTION)
|
||||||
{
|
{
|
||||||
asection *ksec;
|
/* If this is a discarded link-once section symbol, set its
|
||||||
|
value to 0. We should really undefine it, and complain
|
||||||
/* Save away all section symbol values. */
|
if anything in the final link tries to use it, but
|
||||||
if (isec != NULL)
|
DWARF-based exception handling might have an entry in
|
||||||
{
|
.eh_frame to describe a routine in the linkonce section,
|
||||||
if (name)
|
and it turns out to be hard to remove the .eh_frame entry
|
||||||
{
|
too. FIXME. */
|
||||||
if (isec->symbol->value != isym->st_value)
|
|
||||||
(*_bfd_error_handler)
|
|
||||||
(_("%s: invalid section symbol index 0x%x (%s) ignored"),
|
|
||||||
bfd_archive_filename (input_bfd), isym->st_shndx,
|
|
||||||
name);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
isec->symbol->value = isym->st_value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If this is a discarded link-once section symbol, update
|
|
||||||
it's value to that of the kept section symbol. The
|
|
||||||
linker will keep the first of any matching link-once
|
|
||||||
sections, so we should have already seen it's section
|
|
||||||
symbol. I trust no-one will have the bright idea of
|
|
||||||
re-ordering the bfd list... */
|
|
||||||
if (isec != NULL
|
if (isec != NULL
|
||||||
&& (bfd_get_section_flags (input_bfd, isec) & SEC_LINK_ONCE) != 0
|
&& (bfd_get_section_flags (input_bfd, isec) & SEC_LINK_ONCE) != 0
|
||||||
&& (ksec = isec->kept_section) != NULL)
|
&& bfd_is_abs_section (isec->output_section))
|
||||||
{
|
{
|
||||||
isym->st_value = ksec->symbol->value;
|
isym->st_value = 0;
|
||||||
|
|
||||||
/* That put the value right, but the section info is all
|
|
||||||
wrong. I hope this works. */
|
|
||||||
isec->output_offset = ksec->output_offset;
|
|
||||||
isec->output_section = ksec->output_section;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We never output section symbols. Instead, we use the
|
/* We never output section symbols. Instead, we use the
|
||||||
|
@ -485,10 +485,6 @@ CODE_FRAGMENT
|
|||||||
.
|
.
|
||||||
. struct bfd_comdat_info *comdat;
|
. struct bfd_comdat_info *comdat;
|
||||||
.
|
.
|
||||||
. {* Points to the kept section if this section is a link-once section,
|
|
||||||
. and is discarded. *}
|
|
||||||
. struct sec *kept_section;
|
|
||||||
.
|
|
||||||
. {* When a section is being output, this value changes as more
|
. {* When a section is being output, this value changes as more
|
||||||
. linenumbers are written out. *}
|
. linenumbers are written out. *}
|
||||||
.
|
.
|
||||||
@ -599,8 +595,8 @@ static const asymbol global_syms[] =
|
|||||||
/* line_filepos, userdata, contents, lineno, lineno_count, */ \
|
/* line_filepos, userdata, contents, lineno, lineno_count, */ \
|
||||||
0, NULL, NULL, NULL, 0, \
|
0, NULL, NULL, NULL, 0, \
|
||||||
\
|
\
|
||||||
/* entsize, comdat, kept_section, moving_line_filepos, */ \
|
/* entsize, comdat, moving_line_filepos, */ \
|
||||||
0, NULL, NULL, 0, \
|
0, NULL, 0, \
|
||||||
\
|
\
|
||||||
/* target_index, used_by_bfd, constructor_chain, owner, */ \
|
/* target_index, used_by_bfd, constructor_chain, owner, */ \
|
||||||
0, NULL, NULL, NULL, \
|
0, NULL, NULL, NULL, \
|
||||||
@ -807,7 +803,6 @@ bfd_make_section_anyway (abfd, name)
|
|||||||
newsect->line_filepos = 0;
|
newsect->line_filepos = 0;
|
||||||
newsect->owner = abfd;
|
newsect->owner = abfd;
|
||||||
newsect->comdat = NULL;
|
newsect->comdat = NULL;
|
||||||
newsect->kept_section = NULL;
|
|
||||||
|
|
||||||
/* Create a symbol whos only job is to point to this section. This is
|
/* Create a symbol whos only job is to point to this section. This is
|
||||||
useful for things like relocs which are relative to the base of a
|
useful for things like relocs which are relative to the base of a
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2001-09-29 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* ldlang.c (section_already_linked): Remove assignment to kept_section.
|
||||||
|
|
||||||
2001-09-26 Alan Modra <amodra@bigpond.net.au>
|
2001-09-26 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* ldmisc.c (USE_STDARG): Remove.
|
* ldmisc.c (USE_STDARG): Remove.
|
||||||
|
@ -1013,11 +1013,8 @@ section_already_linked (abfd, sec, data)
|
|||||||
|
|
||||||
/* Set the output_section field so that lang_add_section
|
/* Set the output_section field so that lang_add_section
|
||||||
does not create a lang_input_section structure for this
|
does not create a lang_input_section structure for this
|
||||||
section. Since there might be a symbol in the section
|
section. */
|
||||||
being discarded, we must retain a pointer to the section
|
|
||||||
which we are really going to use. */
|
|
||||||
sec->output_section = bfd_abs_section_ptr;
|
sec->output_section = bfd_abs_section_ptr;
|
||||||
sec->kept_section = l->sec;
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user