diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2006-08-08 16:08:47 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2006-08-08 16:08:47 +0000 |
commit | e6f2cbf536d07211d8ff0d47c2f961a216f046f8 (patch) | |
tree | 25ae860b384d83bcd80e84f3966aefecaaea77ea /ld/ldlang.h | |
parent | 6798554723617c1f63f3359e89aa96df72f9daf3 (diff) | |
download | binutils-e6f2cbf536d07211d8ff0d47c2f961a216f046f8.zip binutils-e6f2cbf536d07211d8ff0d47c2f961a216f046f8.tar.gz binutils-e6f2cbf536d07211d8ff0d47c2f961a216f046f8.tar.bz2 |
2006-08-08 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3006
* ldlang.c (lang_section_bst_type): Moved to ...
* ldlang.h: Here.
* ldlang.h (lang_wild_statement_struct): Add a tree field.
* ldlang.c (wild_sort_fast): Use the tree field for BST.
(wild): Likeise.
(analyze_walk_wild_section_handler): Initialize the tree field.
Diffstat (limited to 'ld/ldlang.h')
-rw-r--r-- | ld/ldlang.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ld/ldlang.h b/ld/ldlang.h index 91a4344..c23c3e5 100644 --- a/ld/ldlang.h +++ b/ld/ldlang.h @@ -305,6 +305,15 @@ typedef void (*walk_wild_section_handler_t) (lang_wild_statement_type *, typedef bfd_boolean (*lang_match_sec_type_func) (bfd *, const asection *, bfd *, const asection *); +/* Binary search tree structure to efficiently sort sections by + name. */ +typedef struct lang_section_bst +{ + asection *section; + struct lang_section_bst *left; + struct lang_section_bst *right; +} lang_section_bst_type; + struct lang_wild_statement_struct { lang_statement_header_type header; @@ -316,6 +325,7 @@ struct lang_wild_statement_struct walk_wild_section_handler_t walk_wild_section_handler; struct wildcard_list *handler_data[4]; + lang_section_bst_type *tree; }; typedef struct lang_address_statement_struct |