diff options
author | Ian Lance Taylor <ian@airs.com> | 1993-12-11 22:46:15 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1993-12-11 22:46:15 +0000 |
commit | 2c6635a46f894fc4e3c0ea6a9023f0ae43b3451f (patch) | |
tree | 1b0cb0f72eb03dbfc35cc3a90ad7a4e64218545f /ld/ldlang.c | |
parent | 2b5936ff87ad3044007ad8109db6d145b790b930 (diff) | |
download | gdb-2c6635a46f894fc4e3c0ea6a9023f0ae43b3451f.zip gdb-2c6635a46f894fc4e3c0ea6a9023f0ae43b3451f.tar.gz gdb-2c6635a46f894fc4e3c0ea6a9023f0ae43b3451f.tar.bz2 |
* ldlang.c (lang_process): Ifdef out final call to
lang_size_sections again (reverting change of Nove 2), since it
breaks the Sun4 linker.
Diffstat (limited to 'ld/ldlang.c')
-rw-r--r-- | ld/ldlang.c | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c index 0fb4a18..a1e4293 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -87,6 +87,7 @@ boolean delete_output_file_on_failure = false; /* IMPORTS */ extern char *default_target; +extern CONST char *output_filename; extern char *current_file; extern bfd *output_bfd; extern enum bfd_architecture ldfile_output_architecture; @@ -785,7 +786,6 @@ open_output (name) extern unsigned long ldfile_output_machine; extern enum bfd_architecture ldfile_output_architecture; - extern CONST char *output_filename; bfd *output; if (output_target == (char *) NULL) @@ -796,7 +796,6 @@ open_output (name) output_target = default_target; } output = bfd_openw (name, output_target); - output_filename = name; if (output == (bfd *) NULL) { @@ -2131,9 +2130,11 @@ lang_common () com->section); newsec = bfd_get_section_by_name (symbfd, name); - /* BFD backend must provide this section. */ + /* This section should have been created by + enter_file_symbols if it did not already + exist. */ if (newsec == (asection *) NULL) - einfo ("%P%F: no output section %s", name); + einfo ("%P%F: no output section %s\n", name); com->section = newsec; } @@ -2329,14 +2330,16 @@ ldlang_add_file (entry) } void -lang_add_output (name) +lang_add_output (name, from_script) CONST char *name; + int from_script; { - lang_output_statement_type *new = new_stat (lang_output_statement, - stat_ptr); - - new->name = name; - had_output_filename = true; + /* Make -o on command line override OUTPUT in script. */ + if (had_output_filename == false || !from_script) + { + output_filename = name; + had_output_filename = true; + } } @@ -2409,12 +2412,10 @@ lang_enter_output_section_statement (output_section_statement_name, void lang_final () { - if (had_output_filename == false) - { - extern CONST char *output_filename; + lang_output_statement_type *new = + new_stat (lang_output_statement, stat_ptr); - lang_add_output (output_filename); - } + new->name = output_filename; } /* Reset the current counters in the regions */ @@ -2570,10 +2571,17 @@ lang_process () /* Final stuffs */ ldemul_finish (); + +#if 0 + /* DO NOT REENABLE THIS CALL. IF THIS CALL IS MADE, THE SUN4 LINKER + CAN NOT BOOTSTRAP!! No, I don't know why, but don't change it + unless you fix it. */ /* Size up the sections. */ lang_size_sections (statement_list.head, abs_output_section, &(statement_list.head), 0, (bfd_vma) 0, false); +#endif + lang_finish (); } @@ -2801,6 +2809,6 @@ lang_add_output_format (format, from_script) CONST char *format; int from_script; { - if (!from_script || output_target == NULL) + if (output_target == NULL || !from_script) output_target = format; } |