freebsd.h (CPP_CPU64_DEFAULT_SPEC): Define __arch64__.

2002-11-01  David O'Brien  <obrien@FreeBSD.org>
	* config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Define __arch64__.
	(TRANSFER_FROM_TRAMPOLINE): Reformat.
	Add comment.

Approved by:  Mark Mitchell <mark@codesourcery.com>
              Message-ID: <15490000.1036182355@warlock.codesourcery.com>

From-SVN: r58730
This commit is contained in:
David O'Brien 2002-11-01 22:19:38 +00:00 committed by David O'Brien
parent 616dc555ce
commit 8df91177c0
2 changed files with 31 additions and 29 deletions

View File

@ -1,3 +1,9 @@
2002-11-01 David O'Brien <obrien@FreeBSD.org>
* config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Define __arch64__.
(TRANSFER_FROM_TRAMPOLINE): Reformat.
Add comment.
2002-11-01 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.h (CAN_ELIMINATE): Simplify.

View File

@ -18,11 +18,13 @@ You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* FreeBSD needs's the platform name (sparc64) defined. */
/* FreeBSD needs's the platform name (sparc64) defined.
Emacs needs to know if the arch is 64 or 32-bits. */
#undef CPP_CPU64_DEFAULT_SPEC
#define CPP_CPU64_DEFAULT_SPEC "-D__sparc64__ -D__sparc_v9__"
#define CPP_CPU64_DEFAULT_SPEC "-D__sparc64__ -D__sparc_v9__ -D__arch64__"
/* Because we include sparc/sysv4.h. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES FBSD_CPP_PREDEFINES
@ -97,35 +99,29 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define SPARC_DEFAULT_CMODEL CM_MEDLOW
#define TRANSFER_FROM_TRAMPOLINE \
static int need_enable_exec_stack; \
static int need_enable_exec_stack; \
static void check_enabling(void) __attribute__ ((constructor)); \
static void check_enabling(void) \
{ \
extern int sysctlbyname(const char *, void *, size_t *, void *, size_t);\
int prot = 0; \
size_t len = sizeof(prot); \
\
static void check_enabling(void) __attribute__ ((constructor)); \
static void check_enabling(void) \
{ \
extern int sysctlbyname(const char *, void *, size_t *, void *, size_t);\
size_t len; \
int prot; \
\
prot = 0; \
len = sizeof(prot); \
sysctlbyname ("kern.stackprot", &prot, &len, NULL, 0); \
if (prot != 7) \
need_enable_exec_stack = 1; \
} \
\
extern void __enable_execute_stack (void *); \
void \
__enable_execute_stack (addr) \
void *addr; \
{ \
if (!need_enable_exec_stack) \
return; \
else { \
/* 7 is PROT_READ | PROT_WRITE | PROT_EXEC */ \
if (mprotect (addr, TRAMPOLINE_SIZE, 7) < 0) \
perror ("mprotect of trampoline code"); \
sysctlbyname ("kern.stackprot", &prot, &len, NULL, 0); \
if (prot != 7) \
need_enable_exec_stack = 1; \
} \
}
extern void __enable_execute_stack (void *); \
void __enable_execute_stack (void *addr) \
{ \
if (!need_enable_exec_stack) \
return; \
else { \
/* 7 is PROT_READ | PROT_WRITE | PROT_EXEC */ \
if (mprotect (addr, TRAMPOLINE_SIZE, 7) < 0) \
perror ("mprotect of trampoline code"); \
} \
}
/************************[ Assembler stuff ]********************************/