========================================================================= * * IBM C for AIX, Version 6.0 * 5765-F57-00 * * Licensed Materials - Property of IBM * (C) Copyright IBM Corp. 1991, 2005. All Rights Reserved. * * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. * ========================================================================= This README file contains the latest information about C for AIX, Version 6.0 that was not available for our printed publications or our on-line help. The latest information about installing C for AIX, Version 6.0 with License Use Management (LUM) can be found in /usr/vac/README.password. PLEASE READ THIS FILE BEFORE USING THE PRODUCT. By using C for AIX, Version 6.0, you agree to the terms of the license information. The License Information document is available as a PDF file and can be found in /usr/vac/pdf/en_US/license.pdf. You will need to install Adobe Acrobat** Reader 3.0 or later to view the file. You can download the reader from the Adobe website at http://www.adobe.com. Note: IBM C for AIX, Version 6.0 is licensed based on a charge unit of one authorized user. The Program may be stored on more than one machine, provided that the Program is not in active use on more than one machine at the same time. An authorized user is an individual or specific named user authorized to have access to the program or any portion of the program. The Proof of Entitlement for this program is evidence of your authorization. Each individual or specific named user must obtain a Proof of Entitlement. ============== README CONTENT * Documentation Issues * Miscellaneous Issues * Operating System Migration from AIX Version 4.3.3 to AIX Version5.1/5.2 * February 2005 C for AIX, V6.0 PTF Update * December 2004 C for AIX V6.0 PTF Update * October 2004 C for AIX V6.0 PTF Update * August 2004 C for AIX, V6.0 PTF Update ==================== Documentation Issues 1) The following -qlanglvl suboptions are accepted but ignored by the C compiler. Use -qlanglvl=extended, -qlanglvl=extc99,or -qlanglvl=extc89 to enable the functions that these suboptions imply. For other values of -qlanglvl, the functions implied by these suboptions are disabled. a) [no]gnu_assert GNU C portability option. b) [no]gnu_explicitregvar GNU C portability option. c) [no]gnu_include_next GNU C portability option. d) [no]gnu_locallabel GNU C portability option. e) [no]gnu_warning GNU C portability option. 2) -qipa=pdfname=filename The -qipa compiler option includes a new suboption with the following syntax: -qipa=pdfname=filename This option specifies the name of the profile data file containing the PDF profiling information. If you do not specify a filename, the compiler uses ._pdf as the default file name. The profile is placed in the current working directory or in the directory named by the PDFDIR environment variable. This lets you do simultaneous runs of multiple executables using the same PDFDIR, which can be useful when tuning with PDF on dynamic libraries. 3) -qpdf1 / -qpdf2 The -qpdf1 / -qpdf2 documentation should be changed as follows. a) Disregard any references to -lpdf in the documentation. b) You must specify at least the -O2 level of optimization when using the -qpdf option. For best performance, use the -O3, -O4, or -O5 optimization levels. c) Do not compile or run two different applications that use the same PDFDIR directory at the same time, unless you have used the -qipa=pdfname suboption to distinguish the sets of profiling information. d) The showpdf utility is not supported. e) The resetpdf utility, found in /usr/xlopt/bin, can be used to reset all profiling information to zeros. The profiling data files are not removed, and remain in the pathname directory or in the PDFDIR directory if the pathname is not specified, or in the current directory if PDFDIR is not set. When you make changes to the application and recompile some files, the profiling information for those files is automatically reset because the changes may alter the program flow. Run resetpdf to reset the profiling information for the entire application after you make significant changes that may change execution counts for parts of the program that were not recompiled. 4) The compiler will not automatically detect reductions on loops marked with the IBM parallel_loop pragma. To correctly parallelize loops with reductions, either use the OMP parallel for pragma and specify the reductions explicitly or use the IBM independent_loop pragma, which will let the compiler discover the reductions. This is a change in behaviour from C for AIX, V5.0. 5) New Suboptions for -qshowinc Suboptions have been added to the -qshowinc option as follows: -qshowinc: Include all of the included files in the source listing. -qnoshowinc: Do not include any of the included files in the source listing. -qshowinc=:: ... The available suboptions are: all same as -qshowinc usr include the user header files sys include the system header files 6) C compiler no longer supporting "inline" under -qlanglvl=extended The C compiler previously turned on the support of "inline" keyword under -qlanglvl=extended and -qlanglvl=extc89. This support has been turned off by default for these language levels. If you need to use "inline" keyword under these language levels, specify -qkeyword=inline option. 7) Viewing Documentation Documentation is in HTML format and must be viewed with a frames-capable HTML browser. Documentation is also available in PDF format. To start the HTML help system, invoke "/usr/vacpp/bin/vacpphelp". This tool is contained in the vacpp.html.help fileset. Note: Certain versions of Netscape Communicator have a well-known problem with HTML frames when they are first loaded. According to Netscape, you should restart the browser to make subsequent calls to framesets will display properly. 8) Browser Settings a) Ensure that the environment SOCKS_NS is not set. b) Your browser must not have proxy handling for the localhost port. Ensure you turn off proxy handling for localhost in your browser. In Netscape 4 (Communicator): 1. Select Edit... Preferences.. 2. Double-click Advanced in the Category tree 3. Click Proxies in the Advanced subtree 4. Click View at the Manual Proxy Configuration selection 5. Type: localhost:49213 in the "Exceptions... Do not use proxy servers for domains beginning with" box. If you have other entries here, separate the new entry with a comma. 6. Click OK, then click OK to exit the Preferences Window. c) If you experience a problem installing the IMNSearch component, completely remove the component and re-install. Do not rely on installp -u to clean up everything, such as "group" creates. Note: This only applies to new installs of the IMNSearch component. If you have a previous version of the IMNSearch component, you should not remove the component before trying to re-install. 9) Distributed Debugger Online Help a) To access the Distributed Debugger online help that is specific to this product, ensure that the product name is selected in the Select product context dialog box. To access this dialog box, select Change Product Context from the Distributer Debugger's Help pull-down menu. b) When using an English version of Netscape to view Japanese or Simplified Chinese versions of the Distributed Debugger online help, fly-over help may be corrupted when it is used over the navigation bar of the online help. 10) In the "Getting Started" and "Memo to Users" documentation under the section about filesets required for the Online Help, the IMNSearch filesets are shipped with the AIX operating system. The latest level of the IMNSearch filesets should be obtained and installed prior to installing the C for AIX product. For convenience, a version of IMNSearch is available on the CD-ROM. See bullet 3 under Miscellaneous Issues in this README file. 11) Addition of Support for -qweaksymbol Option: On AIX Version 5.1 with APAR IY31207 or AIX Version 5.2, you may use -qweaksymbol to enable generation of weak symbols. -qweaksymbol: enable generation of weak symbols -qnoweaksymbol: disable generation of weak symbols (default) When the -qweaksymbol option is specified, the compiler generates weak symbols for the following: a) inline functions with external linkage b) identifiers specified as weak with #pragma weak or functions specified as weak with __attribute__((weak)) 1. #pragma weak id If id is defined in the same compilation unit, it makes id a weak definition. If id is not defined in the same compilation unit, it makes references to id weak references. 2. #pragma weak id1=id2 Defines id1 as a weak global symbol, and references to id1 will use the value of id2. 3. __attribute__((weak)) If the function is defined, make it a weak definition. If it is only referenced, make all references weak references. 12) Addition of c99 Invocation Command: On AIX 5.2, you may use c99 to invoke the compiler for C source files, with support for ISO C99 language features. 13) Support of -qroptr (read-only pointers) Option On AIX Version 5.2 with APAR IY49415, you may use -qroptr to enable read-only pointers (address constants) to be moved from the .data section to the .text section. The .text section is always read-only and is never modified by either the loader or by an application. Since .text is shared among multiple processes, but .data is not, a reduction in memory usage is possible when a move has been made of an application's constant pointers using -qroptr. This option is not supported for linked libraries, ie. code that links into a share library. -qroptr: enable read-only pointers to be moved to the .text section -qnoroptr: leave read-only pointers in the .data section (default) ==================== Miscellaneous Issues 1) When using UTF-8 locales, invoking 'xlc' (or its equivalents) by itself to display online help might not work properly. You can work around this problem by piping the output to "more" command: xlc 2>&1 | more 2) Compiler Option -r: When specifying -r with C for AIX, Version 6.0, the linker does not link to any libraries. This is a change in behavior from C for AIX, Version 4.4 or earlier, which allowed the linker to link libraries when the corresponding flags are set (for example, specifying -g causes the linker to link libg.a with C for AIX, Version 4.4, but not C for AIX, Version 5.0 or 6.0.) 3) Installation fails due to missing or down-level IMNSearch or LUM filesets on system. For convenience, a version of IMNSearch and LUM are available with this product on the CD-ROM. However, the version on the CD may not be the latest version. It is recommended that the latest version be installed on your system. To install LUM from the CD, insert the CD-ROM into the CD-ROM drive. Mount the CD-ROM as follows: a) As root, invoke "smit". b) Select "System Storage Management (Physical & Logical Storage)", press the "enter" key. c) Select "File Systems", press the "enter" key. d) Select "Add / Change / Show / Delete File Systems", press the "enter" key. e) Select "CDROM File Systems", press the "enter" key. f) Select "Add a CDROM File System", press the "enter" key. g) Enter the "DEVICE" name (e.g. "cd0"). h) Enter the "MOUNT POINT" where you would like to mount the CD-ROM (e.g. "/cdrom"). i) Press the "enter" key. j) Exit "smit". The IMNSearch installp images are available in the sub-directory "IMNSearch" indicated by the mount point of the CD-ROM (e.g. "/cdrom/IMNSearch".) The LUM installp images are available in the sub-directory "lum" indicated by the mount point of the CD-ROM (e.g. "/cdrom/lum".) ======================================================================== Operating System Migration from AIX Version 4.3.3 to AIX Version 5.1/5.2 DURING AN OPERATING SYSTEM MIGRATION, USERS ARE REQUIRED TO PERFORM TWO STEPS TO ENSURE VISUALAGE C++ WILL CONTINUE TO OPERATE CORRECTLY. THIS IS DUE TO THE LIMITATION OF THE AIX MIGRATION PROCESS. The VisualAge C++ product contains a number of filesets specific to the operating system level which are not contained on the AIX media. Therefore, after migrating from an earlier version of AIX to AIX 5L Version 5.1, users will be required to manually install the AIX 5L versions of the filesets from the VisualAge C++ media. Only the filesets which are required by the users need to be installed. These filesets are: memdbg.aix50.adt vacpp.cmp.aix50.lib vacpp.cmp.aix50.tools vacpp.memdbg.aix50.lib vacpp.memdbg.aix50.rte xlopt.aix50.lib xlsmp.aix50.rte After the migration, if there exist AIX 4.3.3 versions of the above filesets but the AIX 5L versions are missing, you will be required to install them. ======================================== February 2005 C for AIX, V6.0 PTF Update Compiler Options ---------------- -O0 Option ---------- You can specify the -O0 option as a synonym for -qnooptimize. Specifying -O0 disables almost all optimizations. Documentation Errata -------------------- Please note that all errata have been included in the February 2005 PTF Update documentation. Getting Started Guide Errata ---------------------------- In the Installing section of the Getting Started Guide, the following URL: http://www.ibm.com/software/is/lum now reads http://www.ibm.com/software/awdtools/lum/ Compiler Reference Errata ------------------------- #pragma ibm snapshot -------------------- The following text in the Compiler Reference: #pragma ibm snapshot directive sets a debugging breakpoint at the point of the pragma, and defines a list of variables to examine when program execution reaches that point. now reads The #pragma ibm snapshot allows the user to set a breakpoint at the location of the pragma, and defines a list of variables to examine when program execution reaches the breakpoint. The following is an added consideration for users of the snapshot pragma: At high optimization levels, snapshot does not consistently preserve the contents of variables with a static storage class. ======================================= December 2004 C for AIX V6.0 PTF Update The December 2004 C for AIX V6.0 PTF contains no documentation updates or errata. ====================================== October 2004 C for AIX V6.0 PTF Update The October 2004 C for AIX V6.0 PTF contains no documentation updates or errata. ====================================== August 2004 C for AIX, V6.0 PTF Update 1) OS Support IBM C for AIX now runs on AIX 5L for POWER V5.3. 2) Configuration File Updates and Operating System Migration If you were using a previous version of the AIX operating system and you want to migrate to the new version, you need to manually update the configuration file symbolic link to point to the matching OS-specific configuration file after OS migration. You must have root user access to link the file. You can update the configuration file by performing the following command: ln -fs /etc/vac.cfg.OS_Level /etc/vac.cfg Where OS_level can be any of the following: * 51 * 52 * 53 If you have made any customization to the configuration file for the previous version and you want the changes to take effect in the new version, you should make the same customization for the new version.