summaryrefslogtreecommitdiff
path: root/usr/src/tools/cw/cw.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/tools/cw/cw.c')
-rw-r--r--usr/src/tools/cw/cw.c189
1 files changed, 1 insertions, 188 deletions
diff --git a/usr/src/tools/cw/cw.c b/usr/src/tools/cw/cw.c
index a8c2cfb4f3..de3a57dcb9 100644
--- a/usr/src/tools/cw/cw.c
+++ b/usr/src/tools/cw/cw.c
@@ -37,7 +37,7 @@
*/
/* If you modify this file, you must increment CW_VERSION */
-#define CW_VERSION "2.0"
+#define CW_VERSION "3.0"
/*
* -# Verbose mode
@@ -56,8 +56,6 @@
* as errors
* -fast Optimize using a selection of options
* -fd Report old-style function definitions and declarations
- * -features=zla Allow zero-length arrays
- * -flags Show this summary of compiler options
* -fnonstd Initialize floating-point hardware to non-standard preferences
* -fns[=<yes|no>] Select non-standard floating point mode
* -fprecision=<p> Set FP rounding precision mode p(single, double, extended)
@@ -84,17 +82,12 @@
* -native Find available processor, generate code accordingly
* -nofstore Do not force floating pt. values to target precision
* on assignment
- * -nolib Same as -xnolib
- * -noqueue Disable queuing of compiler license requests
* -norunpath Do not build in a runtime path for shared libraries
* -O Use default optimization level (-xO2 or -xO3. Check man page.)
* -o <outputfile> Set name of output file to <outputfile>
* -P Compile source through preprocessor only, output to .i file
- * -PIC Alias for -KPIC or -xcode=pic32
* -p Compile for profiling with prof
- * -pic Alias for -Kpic or -xcode=pic13
* -Q[y|n] Emit/don't emit identification info to output file
- * -qp Compile for profiling with prof
* -R<dir[:dir]> Build runtime search path list into executable
* -S Compile and only generate assembly code (.s)
* -s Strip symbol table from the executable file
@@ -106,16 +99,12 @@
* -w Suppress compiler warning messages
* -Xa Compile assuming ANSI C conformance, allow K & R extensions
* (default mode)
- * -Xc Compile assuming strict ANSI C conformance
* -Xs Compile assuming (pre-ANSI) K & R C style code
* -Xt Compile assuming K & R conformance, allow ANSI C
- * -x386 Generate code for the 80386 processor
- * -x486 Generate code for the 80486 processor
* -xarch=<a> Specify target architecture instruction set
* -xbuiltin[=<b>] When profitable inline, or substitute intrinisic functions
* for system functions, b={%all,%none}
* -xCC Accept C++ style comments
- * -xchar_byte_order=<o> Specify multi-char byte order <o> (default, high, low)
* -xchip=<c> Specify the target processor for use by the optimizer
* -xcode=<c> Generate different code for forming addresses
* -xcrossfile[=<n>] Enable optimization and inlining across source files,
@@ -133,15 +122,9 @@
* -xlibmil Inline selected libm math routines for optimization
* -xlic_lib=sunperf Link in the Sun supplied performance libraries
* -xlicinfo Show license server information
- * -xM Generate makefile dependencies
- * -xM1 Generate makefile dependencies, but exclude /usr/include
* -xmaxopt=[off,1,2,3,4,5] maximum optimization level allowed on #pragma opt
- * -xnolib Do not link with default system libraries
- * -xnolibmil Cancel -xlibmil on command line
* -xO<n> Generate optimized code (n={1|2|3|4|5})
* -xP Print prototypes for function definitions
- * -xpentium Generate code for the pentium processor
- * -xpg Compile for profiling with gprof
* -xprofile=<p> Collect data for a profile or use a profile to optimize
* <p>={{collect,use}[:<path>],tcov}
* -xregs=<r> Control register allocation
@@ -155,8 +138,6 @@
* -xtarget=<t> Specify target system for optimization
* -xtemp=<dir> Set directory for temporary files to <dir>
* -xtime Report the execution time for each compilation phase
- * -xtransition Emit warnings for differences between K&R C and ANSI C
- * -xtrigraphs[=<yes|no>] Enable|disable trigraph translation
* -xunroll=n Enable unrolling loops n times where possible
* -Y<c>,<dir> Specify <dir> for location of component <c> (a,l,m,p,0,h,i,u)
* -YA,<dir> Change default directory searched for components
@@ -184,8 +165,6 @@
* -errwarn=%all -Werror else -Wno-error
* -fast error
* -fd error
- * -features=zla ignore
- * -flags --help
* -fnonstd error
* -fns[=<yes|no>] error
* -fprecision=<p> error
@@ -212,16 +191,12 @@
* -native error
* -nofstore error
* -nolib -nodefaultlibs
- * -noqueue ignore
* -norunpath ignore
* -O -O1 (Check the man page to be certain)
* -o <outputfile> pass-thru
* -P -E -o filename.i (or error)
- * -PIC -fPIC (C++ only)
* -p pass-thru
- * -pic -fpic (C++ only)
* -Q[y|n] error
- * -qp -p
* -R<dir[:dir]> pass-thru
* -S pass-thru
* -s -Wl,-s
@@ -233,20 +208,15 @@
* -Wp,<arg> pass-thru except -xc99=<a>
* -Wl,<arg> pass-thru
* -W{m,0,2,h,i,u> error/ignore
- * -Wu,-xmodel=kernel -ffreestanding -mcmodel=kernel -mno-red-zone
* -xmodel=kernel -ffreestanding -mcmodel=kernel -mno-red-zone
* -Wu,-save_args -msave-args
* -w pass-thru
* -Xa -std=iso9899:199409 or -ansi
- * -Xc -ansi -pedantic
* -Xt error
* -Xs -traditional -std=c89
- * -x386 -march=i386 (x86 only)
- * -x486 -march=i486 (x86 only)
* -xarch=<a> table
* -xbuiltin[=<b>] -fbuiltin (-fno-builtin otherwise)
* -xCC ignore
- * -xchar_byte_order=<o> error
* -xchip=<c> table
* -xcode=<c> table
* -xdebugformat=<format> ignore (always use dwarf-2 for gcc)
@@ -260,15 +230,9 @@
* -xlibmieee error
* -xlibmil error
* -xlic_lib=sunperf error
- * -xM -M
- * -xM1 -MM
* -xmaxopt=[...] error
- * -xnolib -nodefaultlibs
- * -xnolibmil error
* -xO<n> -O<n>
* -xP error
- * -xpentium -march=pentium (x86 only)
- * -xpg error
* -xprofile=<p> error
* -xregs=<r> table
* -xs error
@@ -281,7 +245,6 @@
* -xtemp=<dir> error
* -xtime error
* -xtransition -Wtransition
- * -xtrigraphs=<yes|no> -trigraphs -notrigraphs
* -xunroll=n error
* -W0,-xdbggen=no%usedonly -fno-eliminate-unused-debug-symbols
* -fno-eliminate-unused-debug-types
@@ -527,18 +490,6 @@ Xamode(struct aelist __unused *h)
}
static void
-Xcmode(struct aelist *h)
-{
- static int xconce;
-
- if (xconce++)
- return;
-
- newae(h, "-ansi");
- newae(h, "-pedantic-errors");
-}
-
-static void
Xsmode(struct aelist *h)
{
static int xsonce;
@@ -719,23 +670,6 @@ do_gcc(cw_ictx_t *ctx)
newae(ctx->i_ae, "-Werror");
continue;
}
- if (strcmp(arg, "-noex") == 0) {
- /* no exceptions */
- newae(ctx->i_ae, "-fno-exceptions");
- /* no run time type descriptor information */
- newae(ctx->i_ae, "-fno-rtti");
- continue;
- }
- if (strcmp(arg, "-pic") == 0) {
- newae(ctx->i_ae, "-fpic");
- pic = 1;
- continue;
- }
- if (strcmp(arg, "-PIC") == 0) {
- newae(ctx->i_ae, "-fPIC");
- pic = 1;
- continue;
- }
if (strcmp(arg, "-norunpath") == 0) {
/* gcc has no corresponding option */
continue;
@@ -874,20 +808,6 @@ do_gcc(cw_ictx_t *ctx)
}
error(arg);
break;
- case 'f':
- if (strcmp(arg, "-flags") == 0) {
- newae(ctx->i_ae, "--help");
- break;
- }
- if (strncmp(arg, "-features=zla", 13) == 0) {
- /*
- * Accept but ignore this -- gcc allows
- * zero length arrays.
- */
- break;
- }
- error(arg);
- break;
case 'G':
newae(ctx->i_ae, "-shared");
nolibc = 1;
@@ -964,15 +884,6 @@ do_gcc(cw_ictx_t *ctx)
free(s);
}
break;
- case 'n':
- if (strcmp(arg, "-noqueue") == 0) {
- /*
- * Horrid license server stuff - n/a
- */
- break;
- }
- error(arg);
- break;
case 'O':
if (arglen == 1) {
newae(ctx->i_ae, "-O");
@@ -992,13 +903,6 @@ do_gcc(cw_ictx_t *ctx)
op = CW_O_PREPROCESS;
nolibc = 1;
break;
- case 'q':
- if (strcmp(arg, "-qp") == 0) {
- newae(ctx->i_ae, "-p");
- break;
- }
- error(arg);
- break;
case 's':
if (arglen == 1) {
newae(ctx->i_ae, "-Wl,-s");
@@ -1042,18 +946,6 @@ do_gcc(cw_ictx_t *ctx)
newae(ctx->i_ae, arg);
break;
}
- if (strcmp(arg, "-W0,-xc99=pragma") == 0) {
- /* (undocumented) enables _Pragma */
- break;
- }
- if (strcmp(arg, "-W0,-xc99=%none") == 0) {
- /*
- * This is a polite way of saying
- * "no c99 constructs allowed!"
- * For now, just accept and ignore this.
- */
- break;
- }
if (strcmp(arg, "-W0,-noglobal") == 0 ||
strcmp(arg, "-W0,-xglobalstatic") == 0) {
/*
@@ -1084,13 +976,6 @@ do_gcc(cw_ictx_t *ctx)
*/
break;
}
- if (strcmp(arg, "-W2,-Rcond_elim") == 0) {
- /*
- * Elimination and expansion of conditionals;
- * gcc has no direct equivalent.
- */
- break;
- }
if (strcmp(arg, "-Wd,-xsafe=unboundsym") == 0) {
/*
* Prevents optimizing away checks for
@@ -1120,13 +1005,6 @@ do_gcc(cw_ictx_t *ctx)
break;
}
#if defined(__x86)
- if (strcmp(arg, "-Wu,-xmodel=kernel") == 0) {
- newae(ctx->i_ae, "-ffreestanding");
- newae(ctx->i_ae, "-mno-red-zone");
- model = "-mcmodel=kernel";
- nolibc = 1;
- break;
- }
if (strcmp(arg, "-Wu,-save_args") == 0) {
newae(ctx->i_ae, "-msave-args");
break;
@@ -1140,10 +1018,6 @@ do_gcc(cw_ictx_t *ctx)
Xamode(ctx->i_ae);
break;
}
- if (strcmp(arg, "-Xc") == 0) {
- Xcmode(ctx->i_ae);
- break;
- }
if (strcmp(arg, "-Xs") == 0) {
Xsmode(ctx->i_ae);
break;
@@ -1154,22 +1028,6 @@ do_gcc(cw_ictx_t *ctx)
if (arglen == 1)
error(arg);
switch (arg[2]) {
-#if defined(__x86)
- case '3':
- if (strcmp(arg, "-x386") == 0) {
- newae(ctx->i_ae, "-march=i386");
- break;
- }
- error(arg);
- break;
- case '4':
- if (strcmp(arg, "-x486") == 0) {
- newae(ctx->i_ae, "-march=i486");
- break;
- }
- error(arg);
- break;
-#endif /* __x86 */
case 'a':
if (strncmp(arg, "-xarch=", 7) == 0) {
mflag |= xlate_xtb(ctx->i_ae, arg + 7);
@@ -1210,15 +1068,11 @@ do_gcc(cw_ictx_t *ctx)
pic = 1;
break;
}
- if (strncmp(arg, "-xcache=", 8) == 0)
- break;
if (strncmp(arg, "-xcrossfile", 11) == 0)
break;
error(arg);
break;
case 'd':
- if (strcmp(arg, "-xdepend") == 0)
- break;
if (strncmp(arg, "-xdebugformat=", 14) == 0)
break;
error(arg);
@@ -1255,24 +1109,6 @@ do_gcc(cw_ictx_t *ctx)
error(arg);
break;
#endif /* __x86 */
- case 'M':
- if (strcmp(arg, "-xM") == 0) {
- newae(ctx->i_ae, "-M");
- break;
- }
- if (strcmp(arg, "-xM1") == 0) {
- newae(ctx->i_ae, "-MM");
- break;
- }
- error(arg);
- break;
- case 'n':
- if (strcmp(arg, "-xnolib") == 0) {
- nolibc = 1;
- break;
- }
- error(arg);
- break;
case 'O':
if (strncmp(arg, "-xO", 3) == 0) {
size_t len = strlen(arg);
@@ -1306,17 +1142,6 @@ do_gcc(cw_ictx_t *ctx)
}
error(arg);
break;
- case 'p':
- if (strcmp(arg, "-xpentium") == 0) {
- newae(ctx->i_ae, "-march=pentium");
- break;
- }
- if (strcmp(arg, "-xpg") == 0) {
- newae(ctx->i_ae, "-pg");
- break;
- }
- error(arg);
- break;
case 'r':
if (strncmp(arg, "-xregs=", 7) == 0) {
xlate(ctx->i_ae, arg + 7, xregs_tbl);
@@ -1332,18 +1157,6 @@ do_gcc(cw_ictx_t *ctx)
error(arg);
break;
case 't':
- if (strcmp(arg, "-xtransition") == 0) {
- newae(ctx->i_ae, "-Wtransition");
- break;
- }
- if (strcmp(arg, "-xtrigraphs=yes") == 0) {
- newae(ctx->i_ae, "-trigraphs");
- break;
- }
- if (strcmp(arg, "-xtrigraphs=no") == 0) {
- newae(ctx->i_ae, "-notrigraphs");
- break;
- }
if (strncmp(arg, "-xtarget=", 9) == 0) {
xlate(ctx->i_ae, arg + 9, xtarget_tbl);
break;