On Solaris, enable the -KPIC option by default when compiling shared objects, and...
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 24 Aug 2005 17:33:37 +0000 (17:33 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 24 Aug 2005 17:33:37 +0000 (17:33 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1342 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/RELEASE.txt
src/engine/SCons/Tool/hpc++.py
src/engine/SCons/Tool/hpcc.py
src/engine/SCons/Tool/sunc++.py
src/engine/SCons/Tool/suncc.py

index e568b312c831e54b744f073a70ed04c154438a6f..4846e44159e6649e57c28d648d1c0e8f5084971d 100644 (file)
@@ -318,6 +318,9 @@ RELEASE 0.97 - XXX
   - Add the 'f90' and 'f95' tools to the list of Fortran compilers
     searched for by default.
 
+  - Add the +Z option by default when compiling shared objects on
+    HP-UX.
+
   From Chen Lee:
 
   - Handle Visual Studio project and solution files in Unicode.
@@ -607,6 +610,15 @@ RELEASE 0.97 - XXX
 
   - Allow $JARCHDIR to be expanded to other construction variables.
 
+  From Steve-o:
+
+  - Add the -KPIC option by default when compiling shared objects on
+    Solaris.
+
+  - Change the default suffix for Solaris objects to .o, to conform to
+    Sun WorkShop's expectations.  Change the profix to so_ so they can
+    still be differentiated from static objects in the same directory.
+
   From Amir Szekely:
 
   - When calling the resource compiler on MinGW, add --include-dir and
index 472874899e84ef1cfdcbd9a36bf58ccce31a7850..e8bc3fdc6dc2b8946aae28e59228e2b36aecce09 100644 (file)
@@ -157,6 +157,13 @@ RELEASE 0.97 - XXX
 
             env = Environment(tools = ['default', 'f77'])
 
+    --  SOLARIS DEFAULT SHARED OBJECT PREFIXES AND SUFFIXES HAVE CHANGED
+
+        On Solaris, SCons now builds shared objects from C and C++ source
+        files with a default prefix of "so_" and a default suffix of ".o".
+        The previous default suffix of ".os" caused problems when trying
+        to use SCons with Sun WorkShop.
+
     --  CACHED Configure() RESULTS ARE STORED IN A DIFFERENT FILE
 
         The Configure() subsystem now stores its cached results in a
index 3276412dacd41016a70e5d105507bc37b16ed1d3..8c4b4ddbf38ee42903bbe4c196a4ecdc237d4cab 100644 (file)
@@ -64,6 +64,7 @@ def generate(env):
 
     if acc:
         env['CXX']        = acc or 'aCC'
+        env['SHCXXFLAGS'] = SCons.Util.CLVar('$CXXFLAGS +Z')
         # determine version of aCC
         line = os.popen(acc + ' -V 2>&1').readline().rstrip()
         if string.find(line, 'aCC: HP ANSI C++') == 0:
index f4ff80c025bd476125c57e4e5d2834c1e15bcdf8..15f23dc756eae7c3d0d67d7121bb575a5772492e 100644 (file)
@@ -32,6 +32,8 @@ selection method.
 
 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
+import SCons.Util
+
 import cc
 
 def generate(env):
@@ -39,6 +41,7 @@ def generate(env):
     cc.generate(env)
 
     env['CXX']        = 'aCC'
+    env['SHCCFLAGS']  = SCons.Util.CLVar('$CCFLAGS +Z')
 
 def exists(env):
     return env.Detect('aCC')
index 22d01dbc49a259360d202feff7d4055cfe5650af..91c0f6cb23f3583af53b2f33c98dc52041dd2156 100644 (file)
@@ -33,6 +33,8 @@ selection method.
 
 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
+import SCons.Util
+
 import os.path
 
 cplusplus = __import__('c++', globals(), locals(), [])
@@ -66,7 +68,9 @@ def generate(env):
     env['CXX'] = cxx
     env['SHCXX'] = shcxx
     env['CXXVERSION'] = version
-    env['SHOBJSUFFIX'] = '.os'
+    env['SHCXXFLAGS']   = SCons.Util.CLVar('$CXXFLAGS -KPIC')
+    env['SHOBJPREFIX']  = 'so_'
+    env['SHOBJSUFFIX']  = '.o'
     
 def exists(env):
     path, cxx, shcxx, version = get_cppc(env)
index e851cd1a2f1cc7277feb18354cadd82f76bae6af..35d2aca102278e6d5abb1eab20a8f674518a057d 100644 (file)
@@ -32,6 +32,8 @@ selection method.
 
 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
+import SCons.Util
+
 import cc
 
 def generate(env):
@@ -41,7 +43,10 @@ def generate(env):
     """
     cc.generate(env)
 
-    env['CXX']        = 'CC'
+    env['CXX']          = 'CC'
+    env['SHCCFLAGS']    = SCons.Util.CLVar('$CCFLAGS -KPIC')
+    env['SHOBJPREFIX']  = 'so_'
+    env['SHOBJSUFFIX']  = '.o'
 
 def exists(env):
     return env.Detect('CC')