From afab11767af9fdea160d5b81634389be006c34a4 Mon Sep 17 00:00:00 2001 From: branch-fixup Date: Tue, 17 Jun 2008 12:58:28 +0000 Subject: [PATCH] Add files from parent branch HEAD: mk/wrapper/transform-sunpro-cc --- mk/wrapper/transform-sunpro-cc | 165 +++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 mk/wrapper/transform-sunpro-cc diff --git a/mk/wrapper/transform-sunpro-cc b/mk/wrapper/transform-sunpro-cc new file mode 100644 index 000000000000..ea2361c08063 --- /dev/null +++ b/mk/wrapper/transform-sunpro-cc @@ -0,0 +1,165 @@ +# $NetBSD: transform-sunpro-cc,v 1.29 2007/11/28 13:03:56 rillig Exp $ +# +# Copyright (c) 2004 The NetBSD Foundation, Inc. +# All rights reserved. +# +# This code is derived from software contributed to The NetBSD Foundation +# by Johnny C. Lam. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by the NetBSD +# Foundation, Inc. and its contributors. +# 4. Neither the name of The NetBSD Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +transform_setname "transform-sunpro-cc" + +case $arg in + +# libstdc++ is specific to the GNU C++ compiler. +-lstdc++ ) transform_discard_with_warning ;; + +# Standard options, except -O0 and -O1. +-[cEgOos] |\ +-[DILlU]?* ) transform_pass ;; + +# Create dependency lines for Makefiles +-MM ) transform_to "-xM1" ;; + +# SunPro can handle -xO (n={0|1|2|3|4|5}), so optimistically +# convert those GCC -O values to -xO. +-O[012345] ) transform_to "-xO${arg#-O}" ;; + +# Ignore all other -O* options. +-O* ) transform_discard_with_warning ;; + +# Directories for the runtime library search path are passed via +# simply "-R", not "-Wl,-R". This is because the C++ compiler +# does not know about the -W?,* options. +-Wl,-R* ) transform_to "${arg#-Wl,}" ;; +-R* ) transform_pass ;; + +# SunPro uses -h to set the shared object name. +-Wl,-soname=* ) transform_to "-h${arg#-Wl,-soname=}" ;; + +# Solaris' linker exports all dynamic symbols by default when +# building a shared object. +-export-dynamic |\ +-Wl,--export-dynamic |\ +-Wl,-E ) transform_discard ;; + +-W[02aclmop],* ) case $wrapper_type in + CC) transform_pass ;; + CXX) transform_discard_with_warning ;; + *) echo "ERROR: [transform-sunpro-cc] unknown wrapper type: $wrapper_type"; exit 1 ;; + esac ;; + +-Wall |\ +-W ) case $wrapper_type in + CC) transform_to "-v" ;; + CXX) transform_to_and_split "+w +w2" ;; + *) echo "ERROR: [transform-sunpro-cc] unknown wrapper type: $wrapper_type"; exit 1 ;; + esac ;; + +# Ignore options that are probably meant for GCC. +-W* |\ +-Xc ) transform_discard_with_warning ;; + +-static ) transform_to "-Bstatic" ;; + +--export-dynamic |\ +-shared ) transform_to "-G" ;; + +# SunPro on amd64 does not know the -xcode= option (see PR 35555). +-fpic |\ +-Kpic |\ +-xcode=pic13 ) transform_to "-Kpic" ;; +-fPIC |\ +-KPIC |\ +-xcode=pic32 ) transform_to "-KPIC" ;; + +# SunPro needs -mt -lpthread for POSIX threads. +-pthread ) transform_to_and_split "-mt -lpthread" ;; + +# -fast implies -xlibmopt, which uses the optimized math +# routines in libsunmath. libsunmath is only available as part of +# SunPro, so disable the use of the optimized math library +# (at least until it can be statically linked). +-fast ) transform_to_and_split "-fast -xnolibmopt" ;; + +# Pass through those options that SunPro understands. +-#* |\ +-Bdynamic |\ +-Bstatic |\ +-fd |\ +-features* |\ +-flags |\ +-flteval* |\ +-fnonstd* |\ +-fns* |\ +-fprecision* |\ +-fround* |\ +-fsimple* |\ +-fsingle |\ +-fstore |\ +-ftrap* |\ +-G |\ +-h*.so.* |\ +-m32 |\ +-m64 |\ +-mcpu=* |\ +-mt |\ +-S |\ +-template=* |\ +-V |\ +-v |\ +-xarch=* |\ +-xcode=* |\ +-xdepend |\ +-xstrconst |\ +-xtarget=* ) transform_pass ;; + +#-std=gnu99 ) transform_to "-xc99" ;; +#-xc99 ) transform_to_and_split "-xc99 -D_XOPEN_SOURCE=600 -D__EXTENSIONS__" ;; + +-ggdb ) transform_to "-g" ;; + +# Ignore some flags that are unnecessary for SunPro. +-ansi |\ +-fPIE |\ +-fpie |\ +-pedantic |\ +-pie |\ +-pipe |\ +-rdynamic |\ +-traditional ) transform_discard ;; + +# Ignore all other -f flags. +-f* ) transform_discard_with_warning ;; + +# Unknown options. +-* ) transform_pass_with_warning ;; + +esac -- 2.41.0