pkgsrc/mk/buildlink3/sunpro-cc-post-logic
grant 1d8168af4e explicitly don't transform "-Wl,*", fixing a bug that meant we were
throwing away all -W arguments that weren't -Wl,-R.

fixes building of a number of packages on Solaris.
2004-07-10 12:55:08 +00:00

89 lines
2 KiB
Text

# $NetBSD: sunpro-cc-post-logic,v 1.12 2004/07/10 12:55:08 grant Exp $
#
# Silently accept some GCC compiler arguments by silently converting
# them to the SunPro compiler equivalents. This makes the SunPro
# compiler wrappers work with more software that seems to assume GCC
# nowadays.
case $arg in
-O[12345])
# SunPro can handle -xO<n> (n={1|2|3|4|5}), so optimistically
# convert those GCC -O<n> values to -xO<n>.
#
arg=`$echo "X$arg" | $Xsed -e "s|^-O|-xO|g"`
addtoprivatecache=yes
;;
-O?*)
# Siliently ignore all other -O* options, except for "-O",
# which SunPro interprets as asking for the default
# optimization level.
#
arg=
addtoprivatecache=yes
;;
-Wl,-R*)
# Directories for the runtime library search path are passed
# via simply "-R<dir>", not "-Wl,-R<dir>".
#
arg=`$echo "X$arg" | $Xsed -e "s|^-Wl,||g" -e "s|,| |g"`
addtoprivatecache=yes
;;
-Wl,*)
# Explicitly do nothing to preserve arguments to be passed to
# the linker.
;;
-W*)
# In fact, SunPro compilers don't even understand any -W*
# arguments, so just silently ignore them all.
#
arg=
addtoprivatecache=yes
;;
-ansi)
# No flag is required to specify ANSI C.
arg=
addtoprivatecache=yes
;;
--export-dynamic)
# Solaris' linker uses -G to create shared objects.
arg=-G
addtoprivatecache=yes
;;
-f[Pp][Ii][Cc])
# SunPro uses -Kpic to create position independent code.
#
arg=-Kpic
addtoprivatecache=yes
;;
-fno-gnu-keywords)
arg=
addtoprivatecache=yes
;;
# No flag is required to enforce strict prototypes.
-fstrict-prototypes)
arg=
addtoprivatecache=yes
;;
-pedantic)
# No flag is required for SunPro to be pedantic.
arg=
addtoprivatecache=yes
;;
-pthread)
# SunPro doesn't understand -pthread, and only -lpthread is
# needed on Solaris.
arg=-lpthread
addtoprivatecache=yes
;;
-shared)
# Solaris' linker uses -G to create shared objects.
#
arg=-G
addtoprivatecache=yes
;;
-static)
# Solaris' linker uses -Bstatic to create static objects.
#
arg=-Bstatic
addtoprivatecache=yes
esac