aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-03-27 17:34:15 +0000
committerIan Lance Taylor <ian@airs.com>1996-03-27 17:34:15 +0000
commit64664e69cb97239f938f8eacd317f4feb7a268a9 (patch)
treeb1b1af793b5f8a38d7a6c498028ff0ba79b90f82 /ld
parent919cf4b52cdf3d69e9fb5822ab7c6b5e26a8f148 (diff)
downloadgdb-64664e69cb97239f938f8eacd317f4feb7a268a9.zip
gdb-64664e69cb97239f938f8eacd317f4feb7a268a9.tar.gz
gdb-64664e69cb97239f938f8eacd317f4feb7a268a9.tar.bz2
* ldlang.c: Fix some indentation and comments.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog4
-rw-r--r--ld/ldlang.c140
2 files changed, 75 insertions, 69 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 61b91bf..c01cb83 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+Wed Mar 27 12:33:24 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * ldlang.c: Fix some indentation and comments.
+
Tue Mar 26 18:14:49 1996 Ian Lance Taylor <ian@cygnus.com>
* ldmain.c (main): Call bfd_set_error_program_name.
diff --git a/ld/ldlang.c b/ld/ldlang.c
index dc3eaee..c134d0d 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -624,68 +624,64 @@ init_os (s)
get_userdata (s->bfd_section) = (PTR) new;
}
+
+/* The wild routines.
-/***********************************************************************
- The wild routines.
+ These expand statements like *(.text) and foo.o to a list of
+ explicit actions, like foo.o(.text), bar.o(.text) and
+ foo.o(.text, .data). */
- These expand statements like *(.text) and foo.o to a list of
- explicit actions, like foo.o(.text), bar.o(.text) and
- foo.o(.text,.data) .
-
- The toplevel routine, wild, takes a statement, section, file and
- target. If either the section or file is null it is taken to be the
- wildcard. Seperate lang_input_section statements are created for
- each part of the expanstion, and placed after the statement provided.
-
-*/
+/* Add SECTION to the output section OUTPUT. Do this by creating a
+ lang_input_section statement which is placed at PTR. FILE is the
+ input file which holds SECTION. */
void
wild_doit (ptr, section, output, file)
- lang_statement_list_type * ptr;
- asection * section;
- lang_output_section_statement_type * output;
- lang_input_statement_type * file;
+ lang_statement_list_type *ptr;
+ asection *section;
+ lang_output_section_statement_type *output;
+ lang_input_statement_type *file;
{
- if (output->bfd_section == (asection *) NULL)
+ if (output->bfd_section == NULL)
init_os (output);
- if (section != (asection *) NULL
- && section->output_section == (asection *) NULL)
- {
- /* Add a section reference to the list */
- lang_input_section_type *new = new_stat (lang_input_section, ptr);
+ if (section != NULL && section->output_section == NULL)
+ {
+ /* Add a section reference to the list */
+ lang_input_section_type *new = new_stat (lang_input_section, ptr);
- new->section = section;
- new->ifile = file;
- section->output_section = output->bfd_section;
+ new->section = section;
+ new->ifile = file;
+ section->output_section = output->bfd_section;
- /* We don't copy the SEC_NEVER_LOAD flag from an input section to
- an output section, because we want to be able to include a
- SEC_NEVER_LOAD section in the middle of an otherwise loaded
- section (I don't know why we want to do this, but we do).
- build_link_order in ldwrite.c handles this case by turning the
- embedded SEC_NEVER_LOAD section into a fill. */
- section->output_section->flags |=
- section->flags & (flagword) (~ SEC_NEVER_LOAD);
+ /* We don't copy the SEC_NEVER_LOAD flag from an input section
+ to an output section, because we want to be able to include a
+ SEC_NEVER_LOAD section in the middle of an otherwise loaded
+ section (I don't know why we want to do this, but we do).
+ build_link_order in ldwrite.c handles this case by turning
+ the embedded SEC_NEVER_LOAD section into a fill. */
+ section->output_section->flags |=
+ section->flags & (flagword) (~ SEC_NEVER_LOAD);
- if (!output->loadable)
- {
- /* Turn off load flag */
- output->bfd_section->flags &= ~SEC_LOAD;
- output->bfd_section->flags |= SEC_NEVER_LOAD;
- }
- if (section->alignment_power > output->bfd_section->alignment_power)
- {
- output->bfd_section->alignment_power = section->alignment_power;
- }
- /* If supplied an aligmnet, then force it */
- if (output->section_alignment != -1)
- {
- output->bfd_section->alignment_power = output->section_alignment;
+ if (! output->loadable)
+ {
+ /* Turn off load flag */
+ output->bfd_section->flags &= ~SEC_LOAD;
+ output->bfd_section->flags |= SEC_NEVER_LOAD;
+ }
+
+ if (section->alignment_power > output->bfd_section->alignment_power)
+ output->bfd_section->alignment_power = section->alignment_power;
+
+ /* If supplied an aligment, then force it */
+ if (output->section_alignment != -1)
+ output->bfd_section->alignment_power = output->section_alignment;
}
- }
}
+/* Expand a wild statement for a particular FILE. SECTION may be
+ NULL, in which case it is a wild card. */
+
static void
wild_section (ptr, section, file, output)
lang_wild_statement_type *ptr;
@@ -715,16 +711,13 @@ wild_section (ptr, section, file, output)
}
}
-/* passed a file name (which must have been seen already and added to
- the statement tree. We will see if it has been opened already and
- had its symbols read. If not then we'll read it.
+/* This is passed a file name which must have been seen already and
+ added to the statement tree. We will see if it has been opened
+ already and had its symbols read. If not then we'll read it. */
- Archives are pecuilar here. We may open them once, but if they do
- not define anything we need at the time, they won't have all their
- symbols read. If we need them later, we'll have to redo it. */
static lang_input_statement_type *
lookup_name (name)
- CONST char *name;
+ const char *name;
{
lang_input_statement_type *search;
@@ -792,11 +785,16 @@ load_symbols (entry, place)
|| place == NULL)
einfo ("%F%B: file not recognized: %E\n", entry->the_bfd);
- /* Try to interpret the file as a linker script. */
-
bfd_close (entry->the_bfd);
entry->the_bfd = NULL;
+ /* See if the emulation has some special knowledge. */
+
+ if (ldemul_unrecognized_file (entry))
+ return;
+
+ /* Try to interpret the file as a linker script. */
+
ldfile_open_command_file (entry->filename);
hold = stat_ptr;
@@ -858,13 +856,18 @@ load_symbols (entry, place)
entry->loaded = true;
}
+/* Handle a wild statement. SECTION or FILE or both may be NULL,
+ indicating that it is a wildcard. Separate lang_input_section
+ statements are created for each part of the expansion; they are
+ added after the wild statement S. OUTPUT is the output section. */
+
static void
wild (s, section, file, target, output)
- lang_wild_statement_type * s;
- CONST char *section;
- CONST char *file;
- CONST char *target;
- lang_output_section_statement_type * output;
+ lang_wild_statement_type *s;
+ const char *section;
+ const char *file;
+ const char *target;
+ lang_output_section_statement_type *output;
{
lang_input_statement_type *f;
@@ -910,23 +913,22 @@ wild (s, section, file, target, output)
}
}
}
+
if (section != (char *) NULL
&& strcmp (section, "COMMON") == 0
- && default_common_section == (lang_output_section_statement_type *) NULL)
+ && default_common_section == NULL)
{
- /* Remember the section that common is going to incase we later
- get something which doesn't know where to put it */
+ /* Remember the section that common is going to in case we later
+ get something which doesn't know where to put it. */
default_common_section = output;
}
}
-/*
- read in all the files
- */
+/* Open the output file. */
static bfd *
open_output (name)
- CONST char *name;
+ const char *name;
{
bfd *output;