fixade.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * fixade.h
  4.  *   compiler tricks to make things work while POSTGRES does non-native
  5.  *   dereferences on PA-RISC.
  6.  *
  7.  *
  8.  * Copyright (c) 1994, Regents of the University of California
  9.  *
  10.  * $Id: fixade.h,v 1.7 1999/05/25 16:10:36 momjian Exp $
  11.  *
  12.  *  NOTES
  13.  * This must be included in EVERY source file.
  14.  *
  15.  *-------------------------------------------------------------------------
  16.  */
  17. #ifndef FIXADE_H
  18. #define FIXADE_H
  19. #if !defined(NOFIXADE)
  20. #if defined(HP_S500_ALIGN)
  21. /* ----------------
  22.  * This cheesy hack turns ON unaligned-access fixup on H-P PA-RISC;
  23.  * the resulting object files contain code that explicitly handles
  24.  * realignment on reference, so it slows memory access down by a
  25.  * considerable factor.  It must be used in conjunction with the +u
  26.  * flag to cc.  The #pragma is included in c.h to be safe since EVERY
  27.  * source file that performs unaligned access must contain the #pragma.
  28.  * ----------------
  29.  */
  30. #pragma HP_ALIGN HPUX_NATURAL_S500
  31. #if defined(BROKEN_STRUCT_INIT)
  32. /* ----------------
  33.  * This is so bogus.  The HP-UX 9.01 compiler has totally broken
  34.  * struct initialization code.  It actually length-checks ALL
  35.  * array initializations within structs against the FIRST one that
  36.  * it sees (when #pragma HP_ALIGN HPUX_NATURAL_S500 is defined)..
  37.  * we have to throw in this unused structure before struct varlena
  38.  * is defined.
  39.  *
  40.  * XXX guess you don't need the #pragma anymore after all :-)
  41.  * since no one looks at this except me i think i'll just leave
  42.  * this here for now..
  43.  * ----------------
  44.  */
  45. struct HP_WAY_BOGUS
  46. {
  47. char hpwb_bogus[8191 + 1];
  48. };
  49. struct HP_TOO_BOGUS
  50. {
  51. int hptb_bogus[8191 + 1];
  52. };
  53. #endif  /* BROKEN_STRUCT_INIT */
  54. #endif  /* HP_S500_ALIGN */
  55. #if defined(WEAK_C_OPTIMIZER)
  56. #pragma OPT_LEVEL 1
  57. #endif  /* WEAK_C_OPTIMIZER */
  58. #endif  /* !NOFIXADE */
  59. #endif  /* FIXADE_H */