diff options
Diffstat (limited to 'usr/src/tools/cw/cw.c')
-rw-r--r-- | usr/src/tools/cw/cw.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/usr/src/tools/cw/cw.c b/usr/src/tools/cw/cw.c index 9d2e88f6fb..933ee9cf56 100644 --- a/usr/src/tools/cw/cw.c +++ b/usr/src/tools/cw/cw.c @@ -1010,6 +1010,14 @@ do_gcc(cw_ictx_t *ctx) "-fno-eliminate-unused-debug-types"); break; } + if (strcmp(arg, "-W2,-xwrap_int") == 0) { + /* + * Use the legacy behaviour (pre-SS11) + * for integer wrapping. + * gcc does not need this. + */ + break; + } if (strcmp(arg, "-W2,-Rcond_elim") == 0) { /* * Elimination and expansion of conditionals; @@ -1038,6 +1046,13 @@ do_gcc(cw_ictx_t *ctx) */ break; } + if (strcmp(arg, "-Wc,-Qassembler-ounrefsym=0") == 0) { + /* + * Prevents optimizing away of static variables. + * gcc does not do this, so it's not needed. + */ + break; + } #if defined(__x86) if (strcmp(arg, "-Wu,-no_got_reloc") == 0) { newae(ctx->i_ae, "-fno-jump-tables"); @@ -1621,10 +1636,10 @@ main(int argc, char **argv) if ((dir = getenv("SPRO_VROOT")) != NULL) { (void) snprintf(cc_buf, MAXPATHLEN, "%s/bin", dir); } else if ((dir = getenv("SPRO_ROOT")) != NULL) { - (void) snprintf(cc_buf, MAXPATHLEN, "%s/SOS10/bin", dir); + (void) snprintf(cc_buf, MAXPATHLEN, "%s/SS11/bin", dir); } else if ((dir = getenv("BUILD_TOOLS")) != NULL) { (void) snprintf(cc_buf, MAXPATHLEN, - "%s/SUNWspro/SOS10/bin", dir); + "%s/SUNWspro/SS11/bin", dir); } if (dir != NULL) { dirs[CIDX(CW_C_CC, 0)] = (const char *)cc_buf; |