/* Base configuration file for all NetBSD targets.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2007 Free Software Foundation, Inc.
+ 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of GCC.
#undef TARGET_POSIX_IO
#define TARGET_POSIX_IO
-/* Handle #pragma weak and #pragma pack. */
-
-#define HANDLE_SYSV_PRAGMA 1
-
/* Don't assume anything about the header files. */
#undef NO_IMPLICIT_EXTERN_C
#define NO_IMPLICIT_EXTERN_C 1
#undef WINT_TYPE
#define WINT_TYPE "int"
-\f
-
-/* Attempt to turn on execute permission for the stack. This may be
- used by INITIALIZE_TRAMPOLINE of the target needs it (that is,
- if the target machine can change execute permissions on a page).
-
- There is no way to query the execute permission of the stack, so
- we always issue the mprotect() call.
-
- Note that we go out of our way to use namespace-non-invasive calls
- here. Unfortunately, there is no libc-internal name for mprotect().
-
- Also note that no errors should be emitted by this code; it is considered
- dangerous for library calls to send messages to stdout/stderr. */
-
-#define NETBSD_ENABLE_EXECUTE_STACK \
-extern void __enable_execute_stack (void *); \
-void \
-__enable_execute_stack (void *addr) \
-{ \
- extern int mprotect (void *, size_t, int); \
- extern int __sysctl (int *, unsigned int, void *, size_t *, \
- void *, size_t); \
- \
- static int size; \
- static long mask; \
- \
- char *page, *end; \
- \
- if (size == 0) \
- { \
- int mib[2]; \
- size_t len; \
- \
- mib[0] = 6; /* CTL_HW */ \
- mib[1] = 7; /* HW_PAGESIZE */ \
- len = sizeof (size); \
- (void) __sysctl (mib, 2, &size, &len, NULL, 0); \
- mask = ~((long) size - 1); \
- } \
- \
- page = (char *) (((long) addr) & mask); \
- end = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \
- \
- /* 7 == PROT_READ | PROT_WRITE | PROT_EXEC */ \
- (void) mprotect (page, end - page, 7); \
-}