home *** CD-ROM | disk | FTP | other *** search
/ IRIS Development Option 6.2 / IRIS_Development_Option_6.2_814-0478-001.iso / relnotes / c_dev / ch2.z / ch2
Text File  |  1996-03-14  |  11KB  |  330 lines

  1.  
  2.  
  3.  
  4.                                                - 1 -
  5.  
  6.  
  7.  
  8.                     6.2 ANSI C Release Notes
  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.  
  64.  
  65.  
  66.  
  67.  
  68.                                                - 2 -
  69.  
  70.  
  71.  
  72.                     DDDDooooccccuuuummmmeeeennnntttt NNNNuuuummmmbbbbeeeerrrr 000000007777----1111666655559999----000011110000
  73.  
  74.  
  75.                     2.  _I_n_s_t_a_l_l_a_t_i_o_n__I_n_f_o_r_m_a_t_i_o_n
  76.  
  77.                     This chapter lists supplemental information to
  78.                     the _I_R_I_S _S_o_f_t_w_a_r_e _I_n_s_t_a_l_l_a_t_i_o_n _G_u_i_d_e.  The
  79.                     information listed here is product-specific; use
  80.                     it with the installation guide to install this
  81.                     product.
  82.  
  83.                     2.1  _A_N_S_I__C__S_u_b_s_y_s_t_e_m_s
  84.  
  85.                     This section lists the subsystems of the ANSI C
  86.                     option.
  87.  
  88.                     If you are installing this option for the first
  89.                     time, the subsystems marked ``default'' are
  90.                     those that are installed if you use the ``go''
  91.                     menu item.  To install a different set of
  92.                     subsystems, use the ``install,'' ``remove,''
  93.                     ``keep,'' and ``step'' commands in _i_n_s_t to
  94.                     customize the list of subsystems to be
  95.                     installed, then select the ``go'' menu item.
  96.  
  97.                     _c__d_e_v._b_o_o_k_s._C_L_a_n_g_u_a_g_e_R_e_f Insight-readable
  98.                                         version of the compiler and
  99.                                         C programmer's reference
  100.                                         guide (default)
  101.  
  102.                     _c__d_e_v._m_a_n._c         Manual page for the _c_c
  103.                                         driver (default)
  104.  
  105.                     _c__d_e_v._m_a_n._u_t_i_l      Manual pages for C source
  106.                                         utilities - _c_f_l_o_w, _c_b, etc.
  107.                                         (default)
  108.  
  109.                     _c__d_e_v._m_a_n._r_e_l_n_o_t_e_s  Online version of these
  110.                                         release notes (default)
  111.  
  112.                     _c__d_e_v._s_w._c          The C front ends and
  113.                                         preprocessors (default)
  114.  
  115.                     _c__d_e_v._s_w._c_o_p_t       The C scalar optimizer
  116.                                         (default)
  117.  
  118.                     _c__d_e_v._h_d_r._l_i_b       _c_o_p_t-specific header files -
  119.                                         _k_a_p_i_o._i_n_t_e_r_n_a_l._h,
  120.                                         _k_a_p_i_o._s_g_i._h (default)
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.                                                - 3 -
  135.  
  136.  
  137.  
  138.                     _c__d_e_v._s_w._l_i_b        _c_o_p_t-specific I/O archive
  139.                                         for shared compiles -
  140.                                         _l_i_b_k_a_p_i_o._a (default)
  141.  
  142.                     _c__d_e_v._s_w._s_p_e_c_l_i_b    _c_o_p_t-specific I/O archive
  143.                                         for non-shared compiles -
  144.                                         _l_i_b_k_a_p_i_o._a
  145.  
  146.                     _c__d_e_v._s_w_3_2._l_i_b      _c_o_p_t-specific I/O archive
  147.                                         (N32 ABI) for shared
  148.                                         compiles - _l_i_b_k_a_p_i_o._a
  149.                                         (default on R8000 and R10000
  150.                                         systems only)
  151.  
  152.                     _c__d_e_v._s_w_3_2._s_p_e_c_l_i_b  _c_o_p_t-specific I/O archive
  153.                                         (N32 ABI) for non-shared
  154.                                         compiles - _l_i_b_k_a_p_i_o._a
  155.  
  156.                     _c__d_e_v._s_w_6_4._l_i_b      _c_o_p_t-specific I/O archive
  157.                                         (64-bit ABI) for shared
  158.                                         compiles - _l_i_b_k_a_p_i_o._a
  159.                                         (default on R8000 and R10000
  160.                                         systems only)
  161.  
  162.                     _c__d_e_v._s_w_6_4._s_p_e_c_l_i_b  _c_o_p_t-specific I/O archive
  163.                                         (64-bit ABI) for non-shared
  164.                                         compiles - _l_i_b_k_a_p_i_o._a
  165.  
  166.                     _c__d_e_v._s_w._u_t_i_l       The C source utilities -
  167.                                         _c_f_l_o_w, _c_b, etc.  (default)
  168.  
  169.                     _c__d_e_v._m_a_n._c_o_p_t      The C scalar optimizer
  170.                                         manual pages (default)
  171.  
  172.                     _c__d_e_v._s_r_c._c_u_s_t_o_m_a_l_l_o_c The C source code for
  173.                                         _c_u_s_t_o_m_a_l_l_o_c memory
  174.                                         allocator.
  175.  
  176.                     _c__d_e_v._s_r_c._a_c_p_p      The C source code for the
  177.                                         ANSI preprocessor _a_c_p_p
  178.  
  179.  
  180.                     2.2  _I_n_s_t_a_l_l_a_t_i_o_n__M_e_t_h_o_d
  181.  
  182.                     All of the subsystems for ANSI C can be
  183.                     installed using IRIX.  You do not need to use
  184.                     the miniroot. Refer to the _I_R_I_S _S_o_f_t_w_a_r_e
  185.                     _I_n_s_t_a_l_l_a_t_i_o_n _G_u_i_d_e for complete installation
  186.                     instructions.
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.                                                - 4 -
  201.  
  202.  
  203.  
  204.                     2.3  _P_r_e_r_e_q_u_i_s_i_t_e_s
  205.  
  206.                     ANSI C 6.2 requires the installation of the IRIS
  207.                     Development Option (compilers portion) release
  208.                     6.2.  For the compiler subsystems, refer to the
  209.                     _6._2 _B_a_s_e _C_o_m_p_i_l_e_r _R_e_l_e_a_s_e _N_o_t_e_s.
  210.  
  211.  
  212.                     2.4  _C_o_m_p_a_t_i_b_i_l_i_t_y
  213.  
  214.                     ANSI C release 6.2 is a compiler aimed at
  215.                     software development for a MIPS3 or MIPS4
  216.                     instruction set architecture (ISA) in 64-bit (-
  217.                     _6_4) or n32 (-_n_3_2) mode, but with options to
  218.                     compile for a MIPS2 or MIPS1 ISA in 32-bit mode
  219.                     (-_3_2).  Refer to the _c_c(1) man pages, the
  220.                     _M_I_P_S_p_r_o _C_o_m_p_i_l_i_n_g, _D_e_b_u_g_g_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e
  221.                     _T_u_n_i_n_g _G_u_i_d_e, the _M_I_P_S_p_r_o _6_4-_B_i_t _P_o_r_t_i_n_g _a_n_d
  222.                     _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e, and the _C _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e
  223.                     _M_a_n_u_a_l for a full description of the differences
  224.                     between 32-bit and 64-bit compilation modes.
  225.                     For a description of the high performance 32-bit
  226.                     (n32) mode, please refer to the _M_I_P_S_p_r_o _N_3_2 _A_B_I
  227.                     _H_a_n_d_b_o_o_k.
  228.  
  229.                     In 32-bit mode, the 6.2 release of the ANSI C
  230.                     compiler is fully compatible with the earlier
  231.                     releases of the compiler with two exceptions:
  232.  
  233.                        +o MIPS2 is the default ISA
  234.  
  235.                        +o COFF is no longer supported
  236.  
  237.                     In 64-bit mode, the 6.2 release of the ANSI C
  238.                     compiler follows a new Applications Binary
  239.                     Interface (ABI).  Objects compiled in 64-bit
  240.                     mode cannot be linked together with objects
  241.                     compiled in 32-bit mode, and 64-bit objects will
  242.                     only run in an Irix 6.2 operating system
  243.                     environment.
  244.  
  245.                     In n32 mode, the 6.2 release of the ANSI C
  246.                     compiler follows a new Applications Binary
  247.                     Interface (ABI).  Objects compiled in n32 mode
  248.                     cannot be linked together with objects compiled
  249.                     in 32-bit mode or with objects compiled in 64-
  250.                     bit mode.  N32 objects will only run in an Irix
  251.                     6.2 operating system environment.
  252.  
  253.                     The 6.2 release of the ANSI C compiler is
  254.                     incompatible with 6.1 release in the way small
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.                                                - 5 -
  267.  
  268.  
  269.  
  270.                     (4 bytes or less) C structures and unions are
  271.                     passed as parameters when compiled -64 or -n32.
  272.                     As a result, both the caller and the callee
  273.                     functions must be compiled with the same version
  274.                     of the compiler, if they use small structures or
  275.                     unions as parameters.  Under our 64-bit and n32
  276.                     calling conventions, small structures or unions
  277.                     are left justified when passed as parameters.
  278.                     Earlier versions of the compiler implemented the
  279.                     convention incorrectly in code of both the
  280.                     callee and caller functions, but in a consistent
  281.                     way (Code passing small structs still "worked").
  282.                     This bug has been fixed, but results in the
  283.                     incompatibility described above.
  284.  
  285.                     The _COMPILER_VERSION predefined variable can be
  286.                     used to identify compiler versions that have
  287.                     this implementation.  You can check the value of
  288.                     this predefine by adding -show to your
  289.                     compilation command line. The 6.2 compiler sets
  290.                     this variable to 621.
  291.  
  292.                     For 64-bit and N32 compilation, the default
  293.                     level of enabled exceptions for speculative code
  294.                     motion (-TENV:X=n) has been changed to X=1 at
  295.                     all optimization levels. This change was made to
  296.                     provide the most uniform behavior across all SGI
  297.                     platforms. For the 6.1 release, this level was
  298.                     documented to be X=1, but implemented as X=3. As
  299.                     a result, some applications running on R8000
  300.                     systems may experience performance degradation
  301.                     if they are recompiled with the default flags.
  302.                     If this performance degradation is significant,
  303.                     you should recompile with -TENV:X=3 explicitly
  304.                     set in your compilation command line.  For more
  305.                     information about this flag, please check the
  306.                     _c_c(1) man pages.
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.