1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-02-15 04:32:24 +00:00

Fix Solaris cc wrappers (re: 4e67234a)

The versions from the Solaris patch require $CC_EXPLICIT to be set,
which is specific to the internal Solaris build environment.

src/cmd/INIT/cc.sol11.*:
- Cope without $CC_EXPLICIT set in environment; fall back to $CC
  and if that is not set either, detect whether to use cc or gcc.
- Set appropriate flags for cc (Solaris Studio) or gcc, including
  the necessary -D_XPG6 flag, without which ksh crashes on Solaris.

bin/package, src/cmd/INIT/package.sh:
- Update hack to add the -D_XPG6 flag so it applies to gcc only
  (note: the src/cmd/INIT/cc.* scripts are never used for gcc).
This commit is contained in:
Martijn Dekker 2021-01-16 18:10:39 +01:00
parent 2e839d8775
commit 68a6f9a6e2
6 changed files with 38 additions and 10 deletions

View file

@ -5442,12 +5442,12 @@ make|view)
esac
;;
esac
# Hack for Solaris 11.4, which needs -D_XPG6 in C flags to not segfault
# Hack for Solaris gcc, which needs -D_XPG6 in C flags to not segfault
case `uname` in
SunOS) case " $CCFLAGS " in
SunOS) case "$CC, $CCFLAGS " in
*" -D_XPG6 "*)
;;
*) CCFLAGS="-D_XPG6${CCFLAGS:+ $CCFLAGS}"
*gcc,*) CCFLAGS="-D_XPG6${CCFLAGS:+ $CCFLAGS}"
export CCFLAGS
;;
esac

View file

@ -1,4 +1,4 @@
: solaris.i386 cc wrapper for reasonable ansi C defaults and 32 bit : 2012-05-18 :
: solaris.i386 cc wrapper for reasonable ansi C defaults and 32 bit : 2021-01-16 :
HOSTTYPE=sol11.i386
@ -6,4 +6,11 @@ case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
# Solaris build scripts set $CC_EXPLICIT. If not set, function without it.
case ${CC_EXPLICIT:=$CC} in
'' | cc)
PATH=`/usr/bin/getconf PATH` # avoid infinite recursion executing 'cc'
CC_EXPLICIT=cc
esac
$CC_EXPLICIT -m32 -xc99 -D_XPG6 "$@"

View file

@ -1,4 +1,4 @@
: solaris.i386-64 cc wrapper for reasonable ansi C defaults and 64 bit : 2012-05-18 :
: solaris.i386-64 cc wrapper for reasonable ansi C defaults and 64 bit : 2021-01-16 :
HOSTTYPE=sol11.i386-64
@ -6,4 +6,11 @@ case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
# Solaris build scripts set $CC_EXPLICIT. If not set, function without it.
case ${CC_EXPLICIT:=$CC} in
'' | cc)
PATH=`/usr/bin/getconf PATH` # avoid infinite recursion executing 'cc'
CC_EXPLICIT=cc
esac
$CC_EXPLICIT -m64 -xc99 -D_XPG6 "$@"

View file

@ -1,4 +1,4 @@
: solaris.sparc cc wrapper for reasonable ansi C defaults and 32 bit : 2012-05-18 :
: solaris.sparc cc wrapper for reasonable ansi C defaults and 32 bit : 2021-01-16 :
HOSTTYPE=sol11.sparc
@ -6,4 +6,11 @@ case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
# Solaris build scripts set $CC_EXPLICIT. If not set, function without it.
case ${CC_EXPLICIT:=$CC} in
'' | cc)
PATH=`/usr/bin/getconf PATH` # avoid infinite recursion executing 'cc'
CC_EXPLICIT=cc
esac
$CC_EXPLICIT -m32 -xc99 -D_XPG6 "$@"

View file

@ -1,4 +1,4 @@
: solaris.sparc-64 cc wrapper for reasonable ansi C defaults and 64 bit : 2012-05-18 :
: solaris.sparc-64 cc wrapper for reasonable ansi C defaults and 64 bit : 2021-01-16 :
HOSTTYPE=sol11.sparc-64
@ -6,4 +6,11 @@ case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
# Solaris build scripts set $CC_EXPLICIT. If not set, function without it.
case ${CC_EXPLICIT:=$CC} in
'' | cc)
PATH=`/usr/bin/getconf PATH` # avoid infinite recursion executing 'cc'
CC_EXPLICIT=cc
esac
$CC_EXPLICIT -m64 -xc99 -D_XPG6 "$@"

View file

@ -5441,12 +5441,12 @@ make|view)
esac
;;
esac
# Hack for Solaris 11.4, which needs -D_XPG6 in C flags to not segfault
# Hack for Solaris gcc, which needs -D_XPG6 in C flags to not segfault
case `uname` in
SunOS) case " $CCFLAGS " in
SunOS) case "$CC, $CCFLAGS " in
*" -D_XPG6 "*)
;;
*) CCFLAGS="-D_XPG6${CCFLAGS:+ $CCFLAGS}"
*gcc,*) CCFLAGS="-D_XPG6${CCFLAGS:+ $CCFLAGS}"
export CCFLAGS
;;
esac