pkgsrc/mk/wrapper/transform-gcc
2020-05-02 19:32:59 +00:00

165 lines
3.3 KiB
Text

# $NetBSD: transform-gcc,v 1.35 2020/05/02 19:32:59 rillig Exp $
#
# This file handles the transformations needed for gcc that can be done
# looking at only one argument at a time.
#
transform_setname "transform-gcc"
case $arg in
# Standard options.
-[EcgOos] |\
-[DILlU]?* |\
-O[01] ) transform_pass ;;
# Needed for the GNU configure scripts:
-V |\
-v |\
--version ) transform_pass ;;
# We occasionally override specs to force particular options.
-specs=* |\
-specs ) transform_pass ;;
# GCC extensions.
- |\
-dynamic |\
-export-dynamic |\
-falign-functions=* |\
-falign-loops=* |\
-falign-jumps=* |\
-fexpensive-optimizations |\
-ffast-math |\
-ffloat-store |\
-fhonour-copts |\
-finline-functions |\
-fno-align-* |\
-fno-builtin* |\
-fno-common |\
-fno-implicit-templates |\
-fno-inline-functions |\
-fno-strict-aliasing |\
-fomit-frame-pointer |\
-fPIC |\
-fpic |\
-fPIE |\
-fpie |\
-fpcc-struct-return |\
-freg-struct-return |\
-frename-registers |\
-fsigned-char |\
-fstack-protector |\
-fstack-protector-all |\
-funroll-loops |\
-funsigned-char |\
-fweb |\
-fwrapv |\
-ggdb |\
-isystem,* |\
-M |\
-M[DFMPT] |\
-MMD |\
-m32 |\
-m64 |\
-mabi=* |\
-march=* |\
-mcpu=* |\
-momit-leaf-frame-pointer |\
-mpreferred-stack-boundary=* |\
-mpush-args |\
-mschedule=* |\
-mieee-fp |\
-O[23s] |\
-pedantic |\
-pedantic-errors |\
-pie |\
-pipe |\
-pthread |\
-print-prog-name=* |\
-print-search-dirs |\
-S |\
-shared |\
-shared-gcc |\
-shared-libgcc |\
-static |\
-std=c99 |\
-std=gnu89 |\
-std=gnu99 |\
-W |\
-W[cLlS],* |\
-Wall |\
-Wbounded |\
-Wcast-align |\
-Wcast-qual |\
-Wchar-subscripts |\
-Wconversion |\
-Wextra |\
-Werror |\
-Werror-implicit-function-declaration |\
-Werror=* |\
-Wformat* |\
-Winline |\
-Wmissing-declarations |\
-Wmissing-format-attribute |\
-Wmissing-prototypes |\
-Wnested-externs |\
-Wno-* |\
-Wparentheses |\
-Wpointer-arith |\
-Wredundant-decls |\
-Wreturn-type |\
-Wshadow |\
-Wsign-compare |\
-Wstrict-aliasing |\
-Wstrict-prototypes |\
-Wswitch |\
-Wtrigraphs |\
-Wunused |\
-Wundef |\
-Wwrite-strings ) transform_pass ;;
# There are some packages suppressing all warnings. We don't want that.
-w ) transform_discard ;;
# Options specific to g++.
-fexceptions |\
-fmessage-length=* |\
-fno-check-new |\
-fno-exceptions |\
-fno-rtti |\
-Wno-non-virtual-dtor |\
-ftemplate-depth=* ) transform_pass ;;
# Options specific to Objective C
-fgnu-runtime |\
-fconstant-string-class=* ) transform_pass ;;
# Old-style rpath specifier, may come from autoconf's AC_PATH_XTRA.
# Our gcc re-orders -R args relative to -Wl,-R specifiers (puts -R
# args at the front of the "ld" invocation), which messes up the relative
# search order. Fix this by rewriting -R to -Wl,-R.
-R* ) transform_to "-Wl,$arg" ;;
# Other compiler's options that have corresponding GCC options.
-Kpic |\
-kpic |\
-KPIC |\
-kPIC ) transform_to "-fPIC" ;;
-mt ) transform_discard ;;
-64 ) transform_to "-m64" ;;
# Ignore SunPRO flags to prevent it from being recognized as a entry point
# option for `ld'.
-errwarn=* |\
-errwarn ) transform_discard_with_warning ;;
# Disable the flags for PKGSRC_MKPIE.
-fno-pie |\
-fno-PIE |\
-nopie ) MKPIE_CFLAGS=; MKPIE_LDFLAGS=; transform_pass ;;
# Unknown options.
-* ) transform_pass_with_warning ;;
esac