* objcopy.c: Include elf-bfd.h.
(is_strip_section): Don't strip debugging sections if STRIP_NONDEBUG. (setup_section): If STRIP_NONDEBUG make SEC_ALLOC sections ~(SEC_LOAD | SEC_HAS_CONTENTS) and on ELF targets also SHT_NOBITS. * objcopy.c (copy_section): Free relpp if relcount == 0.
This commit is contained in:
parent
6bdafbeb57
commit
f0312d395b
2 changed files with 21 additions and 1 deletions
|
@ -1,3 +1,13 @@
|
||||||
|
2004-01-12 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* objcopy.c: Include elf-bfd.h.
|
||||||
|
(is_strip_section): Don't strip debugging sections if
|
||||||
|
STRIP_NONDEBUG.
|
||||||
|
(setup_section): If STRIP_NONDEBUG make SEC_ALLOC sections
|
||||||
|
~(SEC_LOAD | SEC_HAS_CONTENTS) and on ELF targets also SHT_NOBITS.
|
||||||
|
|
||||||
|
* objcopy.c (copy_section): Free relpp if relcount == 0.
|
||||||
|
|
||||||
2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
|
2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
|
||||||
|
|
||||||
* stabs.c (parse_stab_argtypes): Handle g++ ABI version 3 names.
|
* stabs.c (parse_stab_argtypes): Handle g++ ABI version 3 names.
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "budbg.h"
|
#include "budbg.h"
|
||||||
#include "filenames.h"
|
#include "filenames.h"
|
||||||
#include "fnmatch.h"
|
#include "fnmatch.h"
|
||||||
|
#include "elf-bfd.h"
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
/* A list of symbols to explicitly strip out, or to keep. A linked
|
/* A list of symbols to explicitly strip out, or to keep. A linked
|
||||||
|
@ -776,7 +777,7 @@ is_strip_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return strip_symbols == STRIP_NONDEBUG ? TRUE : FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Choose which symbol entries to copy; put the result in OSYMS.
|
/* Choose which symbol entries to copy; put the result in OSYMS.
|
||||||
|
@ -1909,6 +1910,13 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
|
||||||
|
|
||||||
if (p != NULL && p->set_flags)
|
if (p != NULL && p->set_flags)
|
||||||
flags = p->flags | (flags & (SEC_HAS_CONTENTS | SEC_RELOC));
|
flags = p->flags | (flags & (SEC_HAS_CONTENTS | SEC_RELOC));
|
||||||
|
else if (strip_symbols == STRIP_NONDEBUG && (flags & SEC_ALLOC) != 0)
|
||||||
|
{
|
||||||
|
flags &= ~(SEC_HAS_CONTENTS | SEC_LOAD);
|
||||||
|
if (obfd->xvec->flavour == bfd_target_elf_flavour)
|
||||||
|
elf_section_type (osection) = SHT_NOBITS;
|
||||||
|
}
|
||||||
|
|
||||||
if (!bfd_set_section_flags (obfd, osection, flags))
|
if (!bfd_set_section_flags (obfd, osection, flags))
|
||||||
{
|
{
|
||||||
err = _("flags");
|
err = _("flags");
|
||||||
|
@ -2029,6 +2037,8 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
|
||||||
}
|
}
|
||||||
|
|
||||||
bfd_set_reloc (obfd, osection, relcount == 0 ? NULL : relpp, relcount);
|
bfd_set_reloc (obfd, osection, relcount == 0 ? NULL : relpp, relcount);
|
||||||
|
if (relcount == 0)
|
||||||
|
free (relpp);
|
||||||
}
|
}
|
||||||
|
|
||||||
isection->_cooked_size = isection->_raw_size;
|
isection->_cooked_size = isection->_raw_size;
|
||||||
|
|
Loading…
Add table
Reference in a new issue