Print this page
11461 should use a native link-editor during the build
11463 SUNWonld has passed its use-by date
11464 cmd/sgs/tools should contain tools, not common code
11465 sgsmsg should be built with the rest of the build tools
@@ -304,10 +304,11 @@
} cw_compiler_t;
typedef struct cw_ictx {
struct cw_ictx *i_next;
cw_compiler_t *i_compiler;
+ char *i_linker;
struct aelist *i_ae;
uint32_t i_flags;
int i_oldargc;
char **i_oldargv;
pid_t i_pid;
@@ -1207,18 +1208,10 @@
arg += 2;
}
/* Just ignore -YS,... for now */
if (strncmp(arg, "S,", 2) == 0)
break;
- if (strncmp(arg, "l,", 2) == 0) {
- char *s = strdup(arg);
- s[0] = '-';
- s[1] = 'B';
- newae(ctx->i_ae, s);
- free(s);
- break;
- }
if (strncmp(arg, "I,", 2) == 0) {
char *s = strdup(arg);
s[0] = '-';
s[1] = 'I';
newae(ctx->i_ae, "-nostdinc");
@@ -1466,10 +1459,13 @@
(void) printf("%s: %s\n", (ctx->i_flags & CW_F_SHADOW) ?
"shadow" : "primary", ctx->i_compiler->c_path);
(void) fflush(stdout);
}
+ if (ctx->i_linker != NULL)
+ setenv("LD_ALTEXEC", ctx->i_linker, 1);
+
if (!(ctx->i_flags & CW_F_XLATE))
return;
switch (ctx->i_compiler->c_style) {
case SUN:
@@ -1725,10 +1721,11 @@
cw_ictx_t *main_ctx;
static struct option longopts[] = {
{ "compiler", no_argument, NULL, 'c' },
+ { "linker", required_argument, NULL, 'l' },
{ "noecho", no_argument, NULL, 'n' },
{ "primary", required_argument, NULL, 'p' },
{ "shadow", required_argument, NULL, 's' },
{ "versions", no_argument, NULL, 'v' },
{ NULL, 0, NULL, 0 },
@@ -1744,10 +1741,14 @@
cflg = B_TRUE;
break;
case 'C':
Cflg = B_TRUE;
break;
+ case 'l':
+ if ((main_ctx->i_linker = strdup(optarg)) == NULL)
+ nomem();
+ break;
case 'n':
nflg = B_TRUE;
break;
case 'p':
if (primary.c_path != NULL) {