diff options
Diffstat (limited to 'gnu/usr.bin/ld/ld.c')
-rw-r--r-- | gnu/usr.bin/ld/ld.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gnu/usr.bin/ld/ld.c b/gnu/usr.bin/ld/ld.c index 257df1b..089dba4 100644 --- a/gnu/usr.bin/ld/ld.c +++ b/gnu/usr.bin/ld/ld.c @@ -32,7 +32,7 @@ static char sccsid[] = "@(#)ld.c 6.10 (Berkeley) 5/22/91"; Set, indirect, and warning symbol features added by Randy Smith. */ /* - * $Id: ld.c,v 1.43 1997/04/11 17:08:56 bde Exp $ + * $Id: ld.c,v 1.44 1997/04/25 19:43:19 bde Exp $ */ /* Define how to initialize system-dependent header fields. */ @@ -448,6 +448,8 @@ classify_arg(arg) return 1; if (!strcmp(&arg[2], "dynamic")) return 1; + if (!strcmp(&arg[2], "forcedynamic")) + return 1; case 'T': if (arg[2] == 0) @@ -533,6 +535,8 @@ decode_command(argc, argv) link_mode &= ~DYNAMIC; else if (strcmp(string, "dynamic") == 0) link_mode |= DYNAMIC; + else if (strcmp(string, "forcedynamic") == 0) + link_mode |= DYNAMIC|FORCEDYNAMIC; else if (strcmp(string, "symbolic") == 0) link_mode |= SYMBOLIC; else if (strcmp(string, "forcearchive") == 0) @@ -546,6 +550,10 @@ decode_command(argc, argv) link_mode &= ~SILLYARCHIVE; #endif } + if (!strcmp(argv[i] + 1, "assert")) { + if (!strcmp(string, "pure-text")) + link_mode |= WARNRRSTEXT; + } if (argv[i][1] == 'A') { if (p != file_table) errx(1, "-A specified before an input file other than the first"); @@ -633,6 +641,8 @@ decode_option(swt, arg) return; if (!strcmp(swt + 1, "Bdynamic")) return; + if (!strcmp(swt + 1, "Bforcedynamic")) + return; if (!strcmp(swt + 1, "Bsymbolic")) return; if (!strcmp(swt + 1, "Bforcearchive")) @@ -2624,7 +2634,7 @@ write_header() */ flags = 0; - if (oldmagic && (flags & EX_DPMASK)) + if (oldmagic && (flags & EX_DPMASK) && !(link_mode & FORCEDYNAMIC)) warnx("Cannot set flag in old magic headers\n"); N_SET_FLAG (outheader, flags); |