diff usr/src/cmd/sgs/include/sparc/machdep_sparc.h @ 8501:e544a13d2b41

6789925 64-bit applications with SF1_SUNW_ADDR32 require non-default starting address
author Rod Evans <Rod.Evans@Sun.COM>
date Wed, 07 Jan 2009 15:27:19 -0800
parents 60e027e61b69
children 0867fc633d66
line wrap: on
line diff
--- a/usr/src/cmd/sgs/include/sparc/machdep_sparc.h	Wed Jan 07 16:30:55 2009 -0500
+++ b/usr/src/cmd/sgs/include/sparc/machdep_sparc.h	Wed Jan 07 15:27:19 2009 -0800
@@ -23,7 +23,7 @@
  *	Copyright (c) 1988 AT&T
  *	  All Rights Reserved
  *
- * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  *
  * Global include file for all sgs SPARC machine dependent macros, constants
@@ -167,15 +167,21 @@
 #ifdef _ELF64
 #define	M_SEGM_ALIGN	ELF_SPARCV9_MAXPGSZ
 /*
- * Put 64-bit programs above 4 gigabytes to help insure correctness,
- * so any 64-bit programs that truncate pointers will fault now instead of
- * corrupting itself and dying mysteriously.
+ * Put default 64-bit programs above 4 gigabytes to help insure correctness, so
+ * that any 64-bit programs that truncate pointers will fault now instead of
+ * corrupting itself and dying mysteriously.  64-bit programs can also be
+ * restricted to a 32-bit address space (SF1_SUNW_ADDR32), and these programs
+ * provide an alternative origin.
  */
-#define	M_SEGM_ORIGIN	(Addr)0x100000000ULL  /* default first segment offset */
+#define	M_SEGM_ORIGIN	(Addr)0x100000000ULL	/* default 1st segment origin */
+#define	M_SEGM_AORIGIN	(Addr)0x100000ULL	/* alternative 1st segment */
+						/*    origin */
 #define	M_WORD_ALIGN	8
 #else
 #define	M_SEGM_ALIGN	ELF_SPARC_MAXPGSZ
-#define	M_SEGM_ORIGIN	(Addr)0x10000	/* default first segment offset */
+#define	M_SEGM_ORIGIN	(Addr)0x10000		/* default 1st segment origin */
+#define	M_SEGM_AORIGIN	M_SEGM_ORIGIN		/* alternative 1st segment */
+						/*    origin */
 #define	M_WORD_ALIGN	4
 #endif