From b356d4afd6c3e7a2f5dcf62c91cbd312555ce9e3 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 15 Apr 1998 23:09:52 +0000 Subject: [PATCH] * elf.c (prep_headers): Use new EM_SPARCV9 symbol. * elf64-sparc.c (ELF_MACHINE_CODE): Likewise. (ELF_MACHINE_ALT1): New. Set to EM_OLD_SPARC64. --- bfd/ChangeLog | 6 ++++++ bfd/elf.c | 12 +++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 994bcfd0001..7744e46d2e7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +Wed Apr 15 16:08:46 1998 Richard Henderson + + * elf.c (prep_headers): Use new EM_SPARCV9 symbol. + * elf64-sparc.c (ELF_MACHINE_CODE): Likewise. + (ELF_MACHINE_ALT1): New. Set to EM_OLD_SPARC64. + Wed Apr 15 11:34:33 1998 Ian Lance Taylor * configure.in: Add -lkernel32 to WIN32LIBADD on cygwin32. diff --git a/bfd/elf.c b/bfd/elf.c index 5ea51070eb9..954207e757f 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -2855,7 +2855,7 @@ prep_headers (abfd) break; case bfd_arch_sparc: if (bed->s->arch_size == 64) - i_ehdrp->e_machine = EM_SPARC64; + i_ehdrp->e_machine = EM_SPARCV9; else i_ehdrp->e_machine = EM_SPARC; break; @@ -3274,10 +3274,12 @@ _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec) { asection *s; - /* Only set up the segments when all the sections have been set - up. */ - for (s = ibfd->sections; s != NULL; s = s->next) - if (s->output_section == NULL) + /* Only set up the segments if there are no more SEC_ALLOC + sections. FIXME: This won't do the right thing if objcopy is + used to remove the last SEC_ALLOC section, since objcopy + won't call this routine in that case. */ + for (s = isec->next; s != NULL; s = s->next) + if ((s->flags & SEC_ALLOC) != 0) break; if (s == NULL) { -- 2.30.2