Cleanup some ancient Ultrix / Alpha code in main() that is intended to

modify how unaligned memory accesses are dealt with. Document that this
is really what is going on, and merge the NOFIXADE and NOPRINTADE code
paths.
This commit is contained in:
Neil Conway 2004-09-24 06:29:07 +00:00
parent 3331180bb4
commit ae72283816

View File

@ -13,7 +13,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/main/main.c,v 1.89 2004/08/29 05:06:43 momjian Exp $
* $PostgreSQL: pgsql/src/backend/main/main.c,v 1.90 2004/09/24 06:29:07 neilc Exp $
*
*-------------------------------------------------------------------------
*/
@ -71,18 +71,23 @@ main(int argc, char *argv[])
#if defined(__alpha) /* no __alpha__ ? */
#ifdef NOFIXADE
int buffer[] = {SSIN_UACPROC, UAC_SIGBUS};
#endif /* NOFIXADE */
#ifdef NOPRINTADE
int buffer[] = {SSIN_UACPROC, UAC_NOPRINT};
#endif /* NOPRINTADE */
int buffer[] = {SSIN_UACPROC, UAC_SIGBUS | UAC_NOPRINT};
#endif
#endif /* __alpha */
#ifdef WIN32
char *env_locale;
#endif
#if defined(NOFIXADE) || defined(NOPRINTADE)
/*
* On some platforms, unaligned memory accesses result in a kernel
* trap; the default kernel behavior is to emulate the memory
* access, but this results in a significant performance
* penalty. We ought to fix PG not to make such unaligned memory
* accesses, so this code disables the kernel emulation: unaligned
* accesses will result in SIGBUS instead.
*/
#ifdef NOFIXADE
#if defined(ultrix4)
syscall(SYS_sysmips, MIPS_FIXADE, 0, NULL, NULL, NULL);
@ -94,7 +99,7 @@ main(int argc, char *argv[])
write_stderr("%s: setsysinfo failed: %s\n",
argv[0], strerror(errno));
#endif
#endif /* NOFIXADE || NOPRINTADE */
#endif /* NOFIXADE */
#if defined(WIN32)
{