From: Alan Modra Date: Mon, 13 Aug 2001 14:28:57 +0000 (+0000) Subject: * emultempl/elf32.em: For SEC_EXCLUDE sections, ensure that X-Git-Tag: cygnus_cvs_20020108_pre~1682 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=22af9fd35cb3a598f2bb2021c42cc1bd1424270f;p=platform%2Fupstream%2Fbinutils.git * emultempl/elf32.em: For SEC_EXCLUDE sections, ensure that output_section is set non-NULL. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 45cb574..aa042b3 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,8 @@ 2001-08-13 Alan Modra + * emultempl/elf32.em: For SEC_EXCLUDE sections, ensure that + output_section is set non-NULL. + * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Return `true' for SEC_EXCLUDE sections so that the generic code doesn't needlessly create an output_section_statement. Treat a correctly @@ -229,7 +232,7 @@ 2001-07-14 Nick Clifton - * Makefile.am (em32relf.c): Chnage dependencu from generic.em to + * Makefile.am (em32relf.c): Change dependency from generic.em to elf32.em. * Makefile.in: Regenerate. @@ -346,7 +349,7 @@ * ldlang.c (walk_wild): Only call walk_wild_file if lookup_name returns something. (lookup_name): If load_symbols fails, return NULL. - (load_symbols): Chnage to a boolean function. + (load_symbols): Change to a boolean function. (open_input_bfds): If load_symbols fails then do not make the executable. diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index d6d4729..ce06310 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -1084,7 +1084,7 @@ gld${EMULATION_NAME}_place_orphan (file, s) & (SEC_LOAD | SEC_ALLOC)) == 0)) { /* We already have an output section statement with this - name, and its bfd section has compatible flags. */ + name, and its bfd section, if any, has compatible flags. */ wild_doit (&os->children, s, os, file); return true; } @@ -1113,7 +1113,11 @@ gld${EMULATION_NAME}_place_orphan (file, s) (hold.os != NULL || (hold.os = lang_output_section_find (name)) != NULL) if (s->flags & SEC_EXCLUDE) - return true; + { + if (s->output_section == NULL) + s->output_section = bfd_abs_section_ptr; + return true; + } place = NULL; if ((s->flags & SEC_ALLOC) == 0)