summaryrefslogtreecommitdiffstats
path: root/src/ld.c
diff options
context:
space:
mode:
authorUlrich Drepper <[email protected]>2006-05-31 15:50:43 +0000
committerUlrich Drepper <[email protected]>2006-05-31 15:50:43 +0000
commit8c56fe3b2c753234beb6f58a81c8b96f008226ef (patch)
treed61ffb7018be1081e3bba89ba3e7c17338509259 /src/ld.c
parentdf72c45805a859891ed0dcb854ee766f8ebef372 (diff)
Handle as-needed options.
Diffstat (limited to 'src/ld.c')
-rw-r--r--src/ld.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/ld.c b/src/ld.c
index 110072f9..99190df9 100644
--- a/src/ld.c
+++ b/src/ld.c
@@ -71,6 +71,8 @@ enum
ARGP_no_gc_sections,
ARGP_no_undefined,
ARGP_conserve,
+ ARGP_as_needed,
+ ARGP_no_as_needed,
#if YYDEBUG
ARGP_yydebug,
#endif
@@ -192,6 +194,11 @@ Default rules of extracting from archive; weak references are not enough."),
N_("Add/suppress addition indentifying link-editor to .comment section"),
0 },
+ { "as-needed", ARGP_as_needed, NULL, 0,
+ N_("Only set DT_NEEDED for following dynamic libs if actually used"), 0 },
+ { "no-as-needed", ARGP_no_as_needed, NULL, 0,
+ N_("Always set DT_NEEDED for following dynamic libs"), 0 },
+
#if YYDEBUG
{ "yydebug", ARGP_yydebug, NULL, 0,
N_("Select to get parser debug information"), 0 },
@@ -636,6 +643,8 @@ parse_opt_1st (int key, char *arg,
case 'O':
case ARGP_whole_archive:
case ARGP_no_whole_archive:
+ case ARGP_as_needed:
+ case ARGP_no_as_needed:
case 'L':
case '(':
case ')':
@@ -732,6 +741,13 @@ parse_opt_2nd (int key, char *arg,
ld_state.extract_rule = defaultextract;
break;
+ case ARGP_as_needed:
+ ld_state.as_needed = true;
+ break;
+ case ARGP_no_as_needed:
+ ld_state.as_needed = false;
+ break;
+
case ARGP_static:
case ARGP_dynamic:
/* Enable/disable use for DSOs. */
@@ -1107,6 +1123,7 @@ ld_new_inputfile (const char *fname, enum file_type type)
newfile->soname = newfile->fname = newfile->rfname = fname;
newfile->file_type = type;
newfile->extract_rule = ld_state.extract_rule;
+ newfile->as_needed = ld_state.as_needed;
newfile->lazyload = ld_state.lazyload;
newfile->status = not_opened;