summaryrefslogtreecommitdiff
path: root/src/cmd/INIT/cc.darwin.i386-64
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/INIT/cc.darwin.i386-64')
-rwxr-xr-xsrc/cmd/INIT/cc.darwin.i386-6473
1 files changed, 73 insertions, 0 deletions
diff --git a/src/cmd/INIT/cc.darwin.i386-64 b/src/cmd/INIT/cc.darwin.i386-64
new file mode 100755
index 0000000..9010d96
--- /dev/null
+++ b/src/cmd/INIT/cc.darwin.i386-64
@@ -0,0 +1,73 @@
+: unix wrapper for mac osx cc : 2012-02-29 :
+
+HOSTTYPE=darwin.i386-64
+
+case " $* " in
+*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
+esac
+
+CC=/usr/bin/cc
+op=init
+for arg
+do case $op in
+ init) op=ld
+ set ''
+ ;;
+ esac
+ case $arg in
+ -c) op=cc
+ ;;
+ -E) op=cpp
+ continue
+ ;;
+ -G) op=dll
+ continue
+ ;;
+ -lc) continue
+ ;;
+ -lm) continue
+ ;;
+ -O) continue
+ ;;
+ esac
+ set "$@" "$arg"
+done
+case $# in
+0) ;;
+*) shift ;;
+esac
+case $* in
+-v) $CC "$@"; exit ;;
+esac
+case $op in
+init) echo "cc: arguments expected" >&2
+ exit 1
+ ;;
+cpp) $CC -E "$@"
+ ;;
+cc) $CC -DCLK_TCK=100 "$@"
+ ;;
+dll) # what a compatibility mess -- surely they can get the apis to play nice
+ tmp=/tmp/cc.${USER:-$LOGNAME}.$$.err
+ trap "rm -f $tmp" EXIT
+ case `MACOSX_DEPLOYMENT_TARGET=10.3 ld -undefined dynamic_lookup 2>&1` in
+ *undefined*dynamic_lookup*)
+ ld -m -flat_namespace -undefined suppress -dylib -dynamic \
+ -ldylib1.o "$@" -lcc_dynamic -framework System >$tmp 2>&1
+ status=$?
+ ;;
+ *) MACOSX_DEPLOYMENT_TARGET=10.3 $CC -Wl,-flat_namespace -dynamiclib -undefined dynamic_lookup "$@" >$tmp 2>&1
+ status=$?
+ ;;
+ esac
+ egrep -v ' (warning .*multiple definitions|definition) of ' $tmp >&2
+ exit $status
+ ;;
+ld) tmp=/tmp/cc.${USER:-$LOGNAME}.$$.err
+ trap "rm -f $tmp" EXIT
+ $CC -Wl,-m -DCLK_TCK=100 "$@" >$tmp 2>&1
+ status=$?
+ egrep -v ' (warning .*multiple definitions of|definition of|as lazy binding|not from earlier dynamic) ' $tmp >&2
+ exit $status
+ ;;
+esac