aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog8
-rw-r--r--ld/emultempl/hppaosf.em74
2 files changed, 49 insertions, 33 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 1a7c1e7..3ddaa41 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,11 @@
+Fri Feb 4 23:02:19 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
+
+ * ldlang.h (LANG_FOR_EACH_{INPUT,OUTPUT}_SECTION): Delete (unused)
+ GNU C specific macros.
+
+ * emultempl/hppaosf.em (hppaosf_finish): Expand the only remaining
+ call to LANG_FOR_EACH_INPUT_SECTION.
+
Fri Feb 4 16:26:08 1994 David J. Mackenzie (djm@thepub.cygnus.com)
* ldmisc.c (ldmalloc, xmalloc, ldrealloc, xrealloc): Functions
diff --git a/ld/emultempl/hppaosf.em b/ld/emultempl/hppaosf.em
index e363722..fe98f4f 100644
--- a/ld/emultempl/hppaosf.em
+++ b/ld/emultempl/hppaosf.em
@@ -103,41 +103,49 @@ hppaosf_finish()
if (link_info.relocateable == false)
{
/* check for needed stubs */
- LANG_FOR_EACH_INPUT_SECTION
- (statement, abfd, section,
- (
- {
- int new_sym_cnt = 0;
- int i,j;
- asymbol *syms = hppa_look_for_stubs_in_section (stub_file->the_bfd,
- abfd,
- output_bfd,
- section,
- statement->asymbols,
- &new_sym_cnt,
- &link_info);
-
- if ( (new_sym_cnt > 0) && syms )
- {
- struct symbol_cache_entry **old_asymbols = stub_file->asymbols;
-
- stub_file->asymbols = ldmalloc((stub_file->symbol_count + new_sym_cnt) * sizeof(asymbol *));
-
- for ( j = 0; j < stub_file->symbol_count; j++ )
- stub_file->asymbols[j] = old_asymbols[j];
-
- for ( j = 0, i = stub_file->symbol_count; j < new_sym_cnt; j++, i++ )
- stub_file->asymbols[i] = &syms[j];
-
- stub_file->symbol_count += new_sym_cnt;
- /* Now, attach the contents of the new linker stub(s) */
- /* to the linker stub input section. */
+ extern lang_statement_list_type file_chain;
+ lang_input_statement_type *statement;
+
+ for (statement = (lang_input_statement_type *)file_chain.head;
+ statement != (lang_input_statement_type *)NULL;
+ statement = (lang_input_statement_type *)statement->next)
+ {
+ asection *section;
+ bfd *abfd = statement->the_bfd;
+ for (section = abfd->sections;
+ section != (asection *)NULL;
+ section = section ->next)
+ {
+ int new_sym_cnt = 0;
+ int i,j;
+ asymbol *syms;
+
+ syms = hppa_look_for_stubs_in_section (stub_file->the_bfd,
+ abfd,
+ output_bfd,
+ section,
+ statement->asymbols,
+ &new_sym_cnt,
+ &link_info);
+ if ( (new_sym_cnt > 0) && syms )
+ {
+ struct symbol_cache_entry **old_asymbols;
+
+ old_asymbols = stub_file->asymbols;
+
+ stub_file->asymbols = ldmalloc((stub_file->symbol_count + new_sym_cnt) * sizeof(asymbol *));
+
+ for ( j = 0; j < stub_file->symbol_count; j++ )
+ stub_file->asymbols[j] = old_asymbols[j];
- }
- }
- )
- )
+ for ( j = 0, i = stub_file->symbol_count; j < new_sym_cnt; j++, i++ )
+ stub_file->asymbols[i] = &syms[j];
+
+ stub_file->symbol_count += new_sym_cnt;
+ }
+ }
+ }
/* Add a statement to get the linker stubs included in the output */
lang_add_wild(".hppa_linker_stubs",NULL);