Release Notes for KAP C Version 3.1 on Digital UNIX[R] Version 3.2[*] and Version 4.0b[*] Version 3.1 k271904 961113 December 1996 1 Purpose of Release Notes These release notes provide information about this version of KAP C software and user documentation. Please read before using this product. 2 Changes Since KAP C Version 3.0 When the KAP driver, kcc, parallelizes code for SMP systems, it now uses the Digital UNIX default linker switch selection -call_ shared. The -call_shared switch causes the image to be linked with shared libraries instead of with archive libraries. In pre- vious releases the driver overrode -call_shared by setting the linker switch -non_shared which caused the image to be linked with archive libraries. This change enables programs to use the versions of libraries on whatever system the program runs on without the need to relink. This is particularly important for the case of the DECthreads library, which changes with each minor and major revision of the operating system. For example, programs built on Digital UNIX 4.0 can run on Digital UNIX 4.0b. IMPORTANT Due to differences in the DECthreads library between Digi- tal UNIX Version 3.2 and Version 4.0b, parallelized appli- cations built on Digital UNIX Version 4.0b will not run on Digital UNIX Version 3.2. However, parallelized applica- tions built on Digital UNIX 3.2 will run on Digital UNIX Version 4.0b. The KAP kit nolonger includes the DECthreads archive library libpthread.a. Although Digital recommends that you use the DECthreads shared library default, you can link an image to the DECthreads archive library libpthread.a, by using the -non_ shared linker switch and one of the following procedures based on your version of Digital UNIX: o Digital UNIX Version 4.0: ___________________ [*] Digital UNIX V3.2 and V4.0b are X/Open UNIX 93 branded products. If you are upgrading from KAP Version 3.0 to 3.1, you should have performed the following installation steps: 1. Copy /usr/opt/KPCBASE300/libpthread.a, to a private area, for example, /usr/users/tmp/libpthread.a 2. Remove KPCBASE300 as follows: /usr/sbin/setld -d KPCBASE300 3. Install KPCBASE310 as follows: /usr/sbin/setld -i KPCBASE310 4. Create a link to the saved libpthread.a as follows: ln -sf /usr/users/tmp/libpthread.a /usr/lib/libpthread.a 5. Use the following command when you build your program: kcc -ckapargs='-conc' -non_shared myprog.c o Digital UNIX Version 4.0a: Version 4.0a does not contain libpthread.a. Your choices are as follows: 1. Upgrade to Version 4.0b and use the method for that ver- sion. 2. Downgrade to Version 4.0 and use the method for that version. 3. Use the Digital UNIX default linker switch selection -call_shared which links an image with the DECthreads shared library /usr/shlib/libpthread.so. o Digital UNIX Version 4.0b: You should have installed the CMPDEVENH subset (Development Enhancements for Digital UNIX) from the Digital UNIX 4.0b operating system CD-ROM. The DECthreads archive library is at the following location: /usr/opt/alt/user/lib/threads/libpthread.a To link to libpthread.a when you are building a parallel program, use the following command: kcc -ckapargs='-conc' -non_shared \ /usr/opt/alt/usr/lib/threads/libpthread.a myprog.c Two versions of the KAP parallel processing library are included in the kit. Library libkmp_osf.a is used on Digital UNIX Version 3.2, and library libkmp_osfp10.a is used on Digital UNIX Version 4.0. The kcc driver automatically chooses the correct library to link with. 2 The parallel processing libraries now have version numbers associated with them. You can view the version numbers with the what command, for example: 1. For the Digital UNIX Version 3.2 library, libkmp_osf.a: what /usr/lib/libkmp_osf.a This command returns: version bl26.2 2. For the Digital UNIX Version 4.0b library, libkmp_osfp10.a: what /usr/lib/libkmp_osfp10.a This command returns: KAP parallel library 2701 $Revision: 1.4 $ (C) Copyright 1996 Kuck & Associates, Inc. version bl27.2_posix_10 Version 3.1 of KAP for C, KAP Fortran 90, and KAP for DEC For- tran, use identical parallel libraries. If you use different languages within a parallelized program, you should use Version 3.0 of all the KAP products. Changes have been made to the switch defaults set by the kcc driver to optimize those defaults to the DEC C compiler. Those changes are as follows: 1. The C compiler switch -fast is set by default on Digital UNIX Version 4.0. 2. The compiler and linker switch -pthread is set by default on Digital UNIX Version 4.0b when the KAP switch -concurrentize is set. This release of KAP has several new switches and new switch defaults: o The linker switch -call_shared is set by default when the KAP switch -concurrent or -minconcurrent has been set. o A new parallel processing directive has been added: #pragma _KAP concurrent ignore call The effect of this directive is the same as if the following two directives had been used: #pragma _KAP concurrent #pragma _KAP concurrent call The new directive was added so that users who found them- selves frequently using the combination of the two directives listed above, could replace them with a single directive. 3 3 Known Problems The error message returned when your threaded application has run out of stack space has changed. The Digital UNIX Version 4.0b message is as follows: DECthreads Last Chance handler: thread 1 exiting on status exception 0x177db005 Exception: Invalid memory address (dce / thd) If this happens, try unlimiting your process quotas using the cshell unlimit command. AlphaGeneration, DEC C, DECthreads, Digital, and the DIGITAL logo are trademarks of Digital Equipment Corporation. KAP is a trademark of Kuck & Associates, Inc. UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Company Ltd. All other trademarks and registered trademarks are the property of their respective holders. ©Digital Equipment Corporation. 1996. All Rights Reserved. 4