aboutsummaryrefslogtreecommitdiff
path: root/src/backend/port/hpux/fixade.h
blob: 62324eb05d7e728cd17b71d62e928401fdde09cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*-------------------------------------------------------------------------
 *
 * fixade.h--
 *    compiler tricks to make things work while POSTGRES does non-native
 *    dereferences on PA-RISC.
 *
 *
 * Copyright (c) 1994, Regents of the University of California
 *
 * $Id: fixade.h,v 1.1.1.1 1996/07/09 06:21:43 scrappy Exp $
 *
 *   NOTES
 *	This must be included in EVERY source file.
 *
 *-------------------------------------------------------------------------
 */
#ifndef	FIXADE_H
#define FIXADE_H

#if !defined(NOFIXADE)

#if defined(HP_S500_ALIGN)
/* ----------------
 *	This cheesy hack turns ON unaligned-access fixup on H-P PA-RISC;
 *	the resulting object files contain code that explicitly handles
 *	realignment on reference, so it slows memory access down by a 
 *	considerable factor.  It must be used in conjunction with the +u 
 *	flag to cc.  The #pragma is included in c.h to be safe since EVERY 
 *	source file that performs unaligned access must contain the #pragma.
 * ----------------
 */
#pragma HP_ALIGN HPUX_NATURAL_S500

#if defined(BROKEN_STRUCT_INIT)
/* ----------------
 *	This is so bogus.  The HP-UX 9.01 compiler has totally broken
 *	struct initialization code.  It actually length-checks ALL 
 *	array initializations within structs against the FIRST one that 
 *	it sees (when #pragma HP_ALIGN HPUX_NATURAL_S500 is defined).. 
 *	we have to throw in this unused structure before struct varlena
 *	is defined.
 *
 *	XXX guess you don't need the #pragma anymore after all :-)
 *	since no one looks at this except me i think i'll just leave
 *	this here for now..
 * ----------------
 */
struct HP_WAY_BOGUS {
	char	hpwb_bogus[8192];
};
struct HP_TOO_BOGUS {
	int	hptb_bogus[8192];
};
#endif /* BROKEN_STRUCT_INIT */
#endif /* HP_S500_ALIGN */

#if defined(WEAK_C_OPTIMIZER)
#pragma OPT_LEVEL 1
#endif /* WEAK_C_OPTIMIZER */

#endif /* !NOFIXADE */

#endif /* FIXADE_H */