mk-config.sh: SunOS/Solaris: normal $CC algo, favour OpenSource CCs
authorSteffen Nurpmeso <steffen@sdaoden.eu>
Thu, 10 Dec 2020 21:15:07 +0000 (22:15 +0100)
committerSteffen Nurpmeso <steffen@sdaoden.eu>
Sat, 12 Dec 2020 23:23:15 +0000 (00:23 +0100)
INSTALL
mk/make-config.sh

diff --git a/INSTALL b/INSTALL
index 627107197d82dfbb44431e54a1efc2f0eaa9253d..aec44e542b3786fe0060564e99b7bb61dc8d8694 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -311,6 +311,10 @@ Pre-release, and other landmarks:
     their Solaris build cluster!
     (Sparc and x86 machines with SunOS 5.9, 5.10 and 5.11.)
 
+  - We yet favoured Sun's compiler, but now use the default algorithm
+    which goes for $CC/$CFLAGS if set before searching default
+    open-source compilers, before trying special SUN flags.
+
   * The original Sun roff (aka AT&T ditroff) is not capable to display
     the manual.  We offer preformatted manual pages, please see the
     actual release announcement for details.
@@ -323,8 +327,8 @@ Pre-release, and other landmarks:
          symbol                             in file
         __builtin_stdarg_start              auxlily.o
       you have to overwrite the symbol with __builtin_va_start,
-      e.g., in conjunction with OPT_AUTOCC add this:
        EXTRA_CFLAGS='-D__builtin_stdarg_start=__builtin_va_start'
+      This will not work with OPT_AUTOCC.
 
   - You may see failures in Unicode-related tests due to outdated or
     false Unicode tables on elder releases (as in NetBSD).
index a87c069b6f80c32cc600653fc39270877e2ab4a3..2f53b389e6857dcb70a5633fa8cdad322f6288fb 100644 (file)
@@ -282,6 +282,7 @@ SU_FIND_COMMAND_INCLUSION=1 . "${TOPDIR}"mk/su-find-command.sh
 # TODO cc_maxopt is brute simple, we should compile test program and dig real
 # compiler versions for known compilers, then be more specific
 [ -n "${cc_maxopt}" ] || cc_maxopt=100
+#cc_os_search=
 #cc_no_stackprot=
 #cc_no_fortify=
 #ld_need_R_flags=
@@ -323,17 +324,10 @@ os_setup() {
       LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${DYLD_LIBRARY_PATH}
    elif [ ${OS} = sunos ]; then
       msg ' . have special SunOS / Solaris "setup" rules ...'
+      cc_os_search=_cc_os_sunos
       _os_setup_sunos
    elif [ ${OS} = unixware ]; then
-      if feat_yes AUTOCC && acmd_set CC cc; then
-         msg ' . have special UnixWare environmental rules ...'
-         feat_yes DEBUG && _CFLAGS='-v -Xa -g' || _CFLAGS='-Xa -O'
-
-         CFLAGS="${_CFLAGS} ${EXTRA_CFLAGS}"
-         LDFLAGS="${_LDFLAGS} ${EXTRA_LDFLAGS}"
-         export CC CFLAGS LDFLAGS
-         OPT_AUTOCC=0 ld_need_R_flags=-R
-      fi
+      cc_os_search=_cc_os_unixware
    elif [ -n "${VERBOSE}" ]; then
       msg ' . no special treatment for this system necessary or known'
    fi
@@ -379,18 +373,9 @@ _os_setup_sunos() {
    OS_DEFINES="${OS_DEFINES}#define __EXTENSIONS__\n"
    #OS_DEFINES="${OS_DEFINES}#define _POSIX_C_SOURCE 200112L\n"
 
-   if feat_yes AUTOCC; then
-      if acmd_set CC cc; then
-         feat_yes DEBUG && _CFLAGS="-v -Xa -g" || _CFLAGS="-Xa -O"
-
-         CFLAGS="${_CFLAGS} ${EXTRA_CFLAGS}"
-         LDFLAGS="${_LDFLAGS} ${EXTRA_LDFLAGS}"
-         export CC CFLAGS LDFLAGS
-         OPT_AUTOCC=0 ld_need_R_flags=-R
-      else
-         cc_maxopt=2 cc_no_stackprot=1
-      fi
-   fi
+   msg 'Whatever $CC, turning off stack protection (see INSTALL)!'
+   cc_maxopt=2 cc_no_stackprot=1
+   return 1
 }
 
 # Check out compiler ($CC) and -flags ($CFLAGS)
@@ -416,6 +401,9 @@ cc_setup() {
          acmd_set CC tcc || acmd_set CC pcc ||
          acmd_set CC c89 || acmd_set CC c99; then
       :
+
+   elif [ -n "${cc_os_search}" ] && ${cc_os_search}; then
+      :
    else
       msg 'boing booom tschak'
       msg 'ERROR: I cannot find a compiler!'
@@ -432,6 +420,35 @@ cc_setup() {
    esac
 }
 
+_cc_os_unixware() {
+   if feat_yes AUTOCC && acmd_set CC cc; then
+      msg ' . have special UnixWare environmental rules ...'
+      feat_yes DEBUG && _CFLAGS='-v -Xa -g' || _CFLAGS='-Xa -O'
+
+      CFLAGS="${_CFLAGS} ${EXTRA_CFLAGS}"
+      LDFLAGS="${_LDFLAGS} ${EXTRA_LDFLAGS}"
+      export CC CFLAGS LDFLAGS
+      OPT_AUTOCC=0 ld_need_R_flags=-R
+      return 0
+   fi
+   return 1
+}
+
+_cc_os_sunos() {
+   if feat_yes AUTOCC && acmd_set CC cc; then
+      feat_yes DEBUG && _CFLAGS="-v -Xa -g" || _CFLAGS="-Xa -O"
+
+      CFLAGS="${_CFLAGS} ${EXTRA_CFLAGS}"
+      LDFLAGS="${_LDFLAGS} ${EXTRA_LDFLAGS}"
+      export CC CFLAGS LDFLAGS
+      OPT_AUTOCC=0 ld_need_R_flags=-R
+      return 0
+   else
+      : # cc_maxopt=2 cc_no_stackprot=1
+   fi
+   return 1
+}
+
 _cc_default() {
    if [ -z "${CC}" ]; then
       msg 'To go on like you have chosen, please set $CC, rerun.'
This page took 0.053534 seconds and 4 git commands to generate.