You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by se...@apache.org on 2008/05/09 03:58:32 UTC

svn commit: r654664 - /stdcxx/branches/4.2.x/etc/config/gcc.config

Author: sebor
Date: Thu May  8 18:58:32 2008
New Revision: 654664

URL: http://svn.apache.org/viewvc?rev=654664&view=rev
Log:
2008-05-08  Martin Sebor  <se...@roguewave.com>

	STDCXX-929
	* etc/config/gcc.config: Unconditionally checked code generated
	by the compiler to see if it's ILP32 or LP64.
	[HP-UX] (CXXFLAGS.wide, LDFLAGS.wide, LDSOFLAGS.wide): Removed
	assumption that -milp64 is the default on IPF.

Modified:
    stdcxx/branches/4.2.x/etc/config/gcc.config

Modified: stdcxx/branches/4.2.x/etc/config/gcc.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/gcc.config?rev=654664&r1=654663&r2=654664&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/gcc.config (original)
+++ stdcxx/branches/4.2.x/etc/config/gcc.config Thu May  8 18:58:32 2008
@@ -277,45 +277,47 @@
 SINGL_CPPFLAGS =
 SINGL_LDFLAGS  =
 
-# (try to) determine the architecture via the (non-standard) -p option
-# the option is recognized on at least HP-UX, IRIX, and Linux (are there
-# any other systems running on IA64?)
-arch=$(shell uname -p 2>/dev/null)
+# gcc can generate 32-bit or 64-bit code by default, depending
+# on how it's configured
+# determine whether the default compiler invocation produces
+# wide (64-bit) or narrow (32-bit) code and set compiler,
+# linker, and other options accordingly
+wide = $(shell    cd /tmp; tmpfile=stdcxx-longsize-$$; export tmpfile;  \
+                  echo "int main() { return 8 == sizeof (long); }"      \
+                       > $$tmpfile.c                                    \
+               && $(CXX) $$tmpfile.c >/dev/null 2>&1 -o $$tmpfile;      \
+               ./$$tmpfile; echo $$?; rm -f $$tmpfile.c $$tmpfile)
+
+ifeq ($(wide),0)
+    # narrow (32-bit) mode is implicit
+    # use wide (64-bit) flags to explicitly enable LP64 mode
+
+    ifeq ($(OSNAME),HP-UX)
+        # -milp32 and -mlp64 are options specific to HP-UX
+        CXXFLAGS.wide    = -mlp64
+        LDFLAGS.wide     = -mlp64
+        LDSOFLAGS.wide   = -mlp64
+        ARFLAGS.wide     =
+    else
+        CXXFLAGS.wide    = -m64
+        LDFLAGS.wide     = -m64
+        LDSOFLAGS.wide   = -m64
+        ARFLAGS.wide     =
+    endif
+
+else
+    # wide (64-bit) mode is implicit
+    # use narrow (32-bit) flags to explicitly enable ILP32 mode
 
-ifeq ($(arch),ia64)
-    # LP64 is the default (implicit) setting on IA64
     ifeq ($(OSNAME),HP-UX)
-        # -milp32, -mlp64, etc. are options specific to HP-UX
         CXXFLAGS.narrow  = -milp32
         LDFLAGS.narrow   = -milp32
         LDSOFLAGS.narrow = -milp32
         ARFLAGS.narrow   =
-    endif
-else
-    # determine whether the default compiler invocation produces
-    # wide (64-bit) or narrow (32-bit) code and set compiler,
-    # linker, and other flags accordingly
-    wide = $(shell tmpfile=/tmp/longsize-$$; export tmpfile;           \
-                   echo "int main() { return 8 == sizeof (long); }"    \
-                        > $$tmpfile.c                                  \
-                   && $(CXX) $$tmpfile.c >/dev/null 2>&1 -o $$tmpfile; \
-                   $$tmpfile; echo $$?; rm -f $$tmpfile.c $$tmpfile)
-
-    ifeq ($(wide),0)
-        # wide (64-bit) flags
-        CXXFLAGS.wide  = -m64
-        LDFLAGS.wide   = -m64
-        LDSOFLAGS.wide = -m64
-        ARFLAGS.wide   =
-
-        # narrow (32-bit) mode is implicit
     else
-        # narrow (32-bit) flags
         CXXFLAGS.narrow  = -m32
         LDFLAGS.narrow   = -m32
         LDSOFLAGS.narrow = -m32
         ARFLAGS.narrow   =
-
-        # wide (64-bit) mode is implicit
     endif
 endif