diff options
author | Alan Modra <amodra@gmail.com> | 2001-05-17 03:58:45 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2001-05-17 03:58:45 +0000 |
commit | d1778b88f8d8444f15ecf2dbbbf680c5659efb53 (patch) | |
tree | d0c2d446eb4084bf8e218f551028a2e03d985b17 /bfd | |
parent | aaa4f6d96fb87589796623dfc045d7a8b68c7228 (diff) | |
download | gdb-d1778b88f8d8444f15ecf2dbbbf680c5659efb53.zip gdb-d1778b88f8d8444f15ecf2dbbbf680c5659efb53.tar.gz gdb-d1778b88f8d8444f15ecf2dbbbf680c5659efb53.tar.bz2 |
Add a flag to asection, linker_has_input, and use it to reliably
determine whether an input section is the first one assigned to
an output section.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 4 | ||||
-rw-r--r-- | bfd/ecoff.c | 14 | ||||
-rw-r--r-- | bfd/section.c | 15 |
4 files changed, 30 insertions, 10 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b180d2e..85a6b13 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2001-05-16 Alan Modra <amodra@one.net.au> + + * section.c (asection): Add linker_has_input field. + (STD_SECTION): Adjust initialization to suit. + * ecoff.c (bfd_debug_section): Likewise. + * bfd-in2.h: Regenerate. + 2001-05-15 Alexandre Oliva <aoliva@redhat.com> * elf-m10300.c (mn10300_elf_relax_section): Don't relax diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index bce9c0e..c94b097 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1127,6 +1127,10 @@ typedef struct sec /* A mark flag used by some of the linker backends. */ unsigned int linker_mark : 1; + /* Another mark flag used by some of the linker backends. Set for + output sections that have a input section. */ + unsigned int linker_has_input : 1; + /* A mark flag used by some linker backends for garbage collection. */ unsigned int gc_mark : 1; diff --git a/bfd/ecoff.c b/bfd/ecoff.c index 2237441..d05c15f 100644 --- a/bfd/ecoff.c +++ b/bfd/ecoff.c @@ -74,12 +74,14 @@ static unsigned int ecoff_armap_hash PARAMS ((CONST char *s, static asection bfd_debug_section = { - /* name, id, index, next, flags, user_set_vma, reloc_done, */ - "*DEBUG*", 0, 0, NULL, 0, 0, 0, - /* linker_mark, gc_mark, segment_mark, vma, lma, _cooked_size, */ - 0, 0, 0, 0, 0, 0, - /* _raw_size, output_offset, output_section, alignment_power, */ - 0, 0, NULL, 0, + /* name, id, index, next, flags, user_set_vma, reloc_done, */ + "*DEBUG*", 0, 0, NULL, 0, 0, 0, + /* linker_mark, linker_has_input, gc_mark, segment_mark, */ + 0, 0, 0, 0, + /* vma, lma, _cooked_size, _raw_size, */ + 0, 0, 0, 0, + /* output_offset, output_section, alignment_power, */ + 0, NULL, 0, /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ NULL, NULL, 0, 0, 0, /* line_filepos, userdata, contents, lineno, lineno_count, */ diff --git a/bfd/section.c b/bfd/section.c index 623e8b6..ad90462 100644 --- a/bfd/section.c +++ b/bfd/section.c @@ -372,6 +372,10 @@ CODE_FRAGMENT . {* A mark flag used by some of the linker backends. *} . unsigned int linker_mark : 1; . +. {* Another mark flag used by some of the linker backends. Set for +. output sections that have a input section. *} +. unsigned int linker_has_input : 1; +. . {* A mark flag used by some linker backends for garbage collection. *} . unsigned int gc_mark : 1; . @@ -578,11 +582,14 @@ static const asymbol global_syms[] = /* name, id, index, next, flags, user_set_vma, reloc_done, */ \ { NAME, IDX, 0, NULL, FLAGS, 0, 0, \ \ - /* linker_mark, gc_mark, segment_mark, vma, lma, _cooked_size, */ \ - 0, 1, 0, 0, 0, 0, \ + /* linker_mark, linker_has_input, gc_mark, segment_mark, */ \ + 0, 0, 1, 0, \ + \ + /* vma, lma, _cooked_size, _raw_size, */ \ + 0, 0, 0, 0, \ \ - /* _raw_size, output_offset, output_section, alignment_power, */ \ - 0, 0, (struct sec *) &SEC, 0, \ + /* output_offset, output_section, alignment_power, */ \ + 0, (struct sec *) &SEC, 0, \ \ /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \ NULL, NULL, 0, 0, 0, \ |