summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhobbs <hobbs>2005-01-31 19:22:38 (GMT)
committerhobbs <hobbs>2005-01-31 19:22:38 (GMT)
commit3d863ac6d7b40ec6ebb3be86b30dd8d7db93b528 (patch)
tree55a705bc32dfc6838336163b0cc1135af444e375
parent410686f2a264ee5ee804fb1742e85f024783ddc6 (diff)
downloadtk-3d863ac6d7b40ec6ebb3be86b30dd8d7db93b528.zip
tk-3d863ac6d7b40ec6ebb3be86b30dd8d7db93b528.tar.gz
tk-3d863ac6d7b40ec6ebb3be86b30dd8d7db93b528.tar.bz2
* unix/tcl.m4, unix/configure: add solaris-64 gcc build
support. [Bug 1021871]
-rw-r--r--ChangeLog5
-rwxr-xr-xunix/configure29
-rw-r--r--unix/tcl.m425
3 files changed, 49 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 0c87f69..bded451 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-31 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * unix/tcl.m4, unix/configure: add solaris-64 gcc build
+ support. [Bug 1021871]
+
2005-01-31 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
* generic/tkImgPhoto.c (PhotoFormatThreadExitProc): Made the
diff --git a/unix/configure b/unix/configure
index 9b1a2fa..4444c36 100755
--- a/unix/configure
+++ b/unix/configure
@@ -5568,8 +5568,16 @@ _ACEOF
arch=`isainfo`
if test "$arch" = "sparcv9 sparc" ; then
if test "$GCC" = "yes" ; then
- { echo "$as_me:$LINENO: WARNING: \"64bit mode not supported with GCC on $system\"" >&5
-echo "$as_me: WARNING: \"64bit mode not supported with GCC on $system\"" >&2;}
+ if test "`gcc -dumpversion | awk -F. '{print $1}'`" -lt "3" ; then
+ { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5
+echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;}
+ else
+ do64bit_ok=yes
+ CFLAGS="$CFLAGS -m64 -mcpu=v9"
+ LDFLAGS="$LDFLAGS -m64 -mcpu=v9"
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD_FLAGS=""
+ fi
else
do64bit_ok=yes
if test "$do64bitVIS" = "yes" ; then
@@ -5581,8 +5589,8 @@ echo "$as_me: WARNING: \"64bit mode not supported with GCC on $system\"" >&2;}
fi
fi
else
- { echo "$as_me:$LINENO: WARNING: \"64bit mode only supported sparcv9 system\"" >&5
-echo "$as_me: WARNING: \"64bit mode only supported sparcv9 system\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: 64bit mode only supported sparcv9 system" >&5
+echo "$as_me: WARNING: 64bit mode only supported sparcv9 system" >&2;}
fi
fi
@@ -5597,6 +5605,15 @@ echo "$as_me: WARNING: \"64bit mode only supported sparcv9 system\"" >&2;}
SHLIB_LD="$CC -shared"
CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ if test "$do64bit_ok" = "yes" ; then
+ # We need to specify -static-libgcc or we need to
+ # add the path to the sparv9 libgcc.
+ SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc"
+ # for finding sparcv9 libgcc, get the regular libgcc
+ # path, remove so name and append 'sparcv9'
+ #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
+ #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir"
+ fi
else
SHLIB_LD="/usr/ccs/bin/ld -G -z text"
CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
@@ -5674,8 +5691,8 @@ echo "${ECHO_T}$found" >&6
esac
if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then
- { echo "$as_me:$LINENO: WARNING: \"64bit support being disabled -- don\'t know magic for this platform\"" >&5
-echo "$as_me: WARNING: \"64bit support being disabled -- don\'t know magic for this platform\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5
+echo "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;}
fi
if test "$do64bit" = "yes" -a "$do64bit_ok" = "yes" ; then
diff --git a/unix/tcl.m4 b/unix/tcl.m4
index 94bf885..b7ad5d9 100644
--- a/unix/tcl.m4
+++ b/unix/tcl.m4
@@ -1596,13 +1596,21 @@ dnl AC_CHECK_TOOL(AR, ar)
[Do we really want to follow the standard? Yes we do!])
SHLIB_CFLAGS="-KPIC"
-
+
# Check to enable 64-bit flags for compiler/linker
if test "$do64bit" = "yes" ; then
arch=`isainfo`
if test "$arch" = "sparcv9 sparc" ; then
if test "$GCC" = "yes" ; then
- AC_MSG_WARN("64bit mode not supported with GCC on $system")
+ if test "`gcc -dumpversion | awk -F. '{print [$]1}'`" -lt "3" ; then
+ AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system])
+ else
+ do64bit_ok=yes
+ CFLAGS="$CFLAGS -m64 -mcpu=v9"
+ LDFLAGS="$LDFLAGS -m64 -mcpu=v9"
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD_FLAGS=""
+ fi
else
do64bit_ok=yes
if test "$do64bitVIS" = "yes" ; then
@@ -1614,7 +1622,7 @@ dnl AC_CHECK_TOOL(AR, ar)
fi
fi
else
- AC_MSG_WARN("64bit mode only supported sparcv9 system")
+ AC_MSG_WARN([64bit mode only supported sparcv9 system])
fi
fi
@@ -1629,6 +1637,15 @@ dnl AC_CHECK_TOOL(AR, ar)
SHLIB_LD="$CC -shared"
CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ if test "$do64bit_ok" = "yes" ; then
+ # We need to specify -static-libgcc or we need to
+ # add the path to the sparv9 libgcc.
+ SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc"
+ # for finding sparcv9 libgcc, get the regular libgcc
+ # path, remove so name and append 'sparcv9'
+ #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
+ #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir"
+ fi
else
SHLIB_LD="/usr/ccs/bin/ld -G -z text"
CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
@@ -1670,7 +1687,7 @@ dnl AC_CHECK_TOOL(AR, ar)
esac
if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then
- AC_MSG_WARN("64bit support being disabled -- don\'t know magic for this platform")
+ AC_MSG_WARN([64bit support being disabled -- don't know magic for this platform])
fi
if test "$do64bit" = "yes" -a "$do64bit_ok" = "yes" ; then