Updated 2007/05/31

Sun Studio 12: Fortran 95 Readme 


  1. Introduction
  2. About Sun Studio 12 Fortran 95
  3. New and Changed Features
  4. Software Corrections
  5. Problems and Workarounds
  6. Limitations and Incompatibilities
  7. Documentation Errors
  8. Required Patches for Fortran 95
  9. Shippable Libraries

A. Introduction

This document contains information about this release of the Sun[tm] Studio 12 Fortran 95 compiler, f95. This document describes the software corrections, known problems, limitations, and incompatibilities of this release.

Product Documentation

Product documentation for this release of Sun Studio includes the following:

B. About Sun Studio 12 Fortran 95

This readme has been updated with information describing new and changed features in this release of f95.

Version 8.3 of the Fortran 95 compiler f95 is released as a component of Sun Studio 12, and is available on Solaris Operating System (Solaris OS) versions 9, and 10, on SPARC(R)  and x86 platforms, and on Linux x86/x64 platforms.

The previous version of the compiler was version 8.2, released with Sun Studio 11 .

C. New and Changed Features

This section describes new and changed features for this release of Fortran 95. For details on any of the compiler options, see the Fortran User's Guide and the f95(1) man page.

New Features and Updates Common To All Compilers on SPARC and x86 Platforms

A New Way To Specify 32-bit or 64-bit Address Model

You no longer need use the -xarch option to specify a 32-bit or 64-bit address model (LP64 versus ILP32). Two new options make it easier:

Deprecated -xarch Flags and Their Replacements Across SPARC and x86

If you are using -xarch=v9 or -xarch=amd64 to specify a 64-bit address model, use just -m64 instead. No -xarch value is required.

Deprecated -xarch Flags and Their Replacements on SPARC Only

Deprecated -xarch Flags and Their Replacements on x86 Only

Disallowed Combinations and Warnings

The compilers do not allow the combination of a deprecated -xarch value and the new -m32, -m64 options on the command line. For example, specifying -xarch=v9 -m32 is now a fatal error. Specifying -xarch=sparc -xarch=v9 is also a fatal error.

Some older -xarch values do not have 64-bit counterparts. You cannot combine the following -xarch options with -m64 on the command line:

  For SPARC platforms: -xarch=v7, -xarch=v8, -xarch=v8a
  For x86 platforms: -xarch=386, -xarch=pentium_pro, -xarch=pentium_proa, -xarch=sse, -xarch=ssea

If you specify a 32-bit -xarch value followed by -m64, the compiler does not issue a warning. For example -m64 -fast or -fast -m64 are allowed. However, if you specify a 64-bit -xarch value followed by -m32, the compiler issues a warning that -m32 overrides the -xarch value. This situation does not occur using macro options, only when an -xarch option has been explicitly specified.

New x86 Features and Updates Common To All Compilers

The following are new x86 flags for the -xarch option:

Changes to -fast Option

The -fast option on x86 now includes -xregs=frameptr, which means that the compiler can use the frameptr register (%ebp on IA32, %rbp on AMD64) as a general purpose register to generate code for all the compilation units. Consequently frame pointers will not be generated in each function or routine.

However, if you want to override this new behavior, specify -xregs=no%frameptr after -fast in the compilation command and the frameptr register will not be used as a general purpose register. The following example demonstrates how to override the -fast default for -xregs:

      cc -fast -xregs=no%frameptr foo.c

New SPARC Features and Updates Common To All Compilers

This release of the Sun Studio compilers includes support for the SPARC64 VI and UltraSPARC T2 processors. Use the following new options to specify these processors:

You can also specify the following -xchip options to generate code for these processors without setting the -xarch value automatically as happens when you use -xtarget:

New Math and Visual Instruction Set Support in SPARC64 VI

Specify the following new option if you want to use instructions from the SPARC-V9 instruction set including the UltraSPARC extensions, the Visual Instruction Set (VIS) version 1.0, the UltraSPARC-III extensions, the Visual Instruction Set (VIS) version 2.0, and the SPARC64 VI extensions for floating-point multiply-add:

You must also specify -m32 or -m64 when you specify -xarch=sparcfmaf to get 32-bit code or 64-bit code respectively . When you specify -xarch=sparcfmaf, the compiler predefines the following new values:

Note: You must use -xarch=sparcfmaf in conjunction with the new -fma=fused option detailed below and some optimization level in order for the compiler to find opportunities to use the multiply-add instructions automatically.

New Option for Floating-Point, Fused or Multiply-Add Instructions

Specify the following new option to enable or disable the automatic generation of floating-point, fused, multiply-add instructions:

The none value indicates that the compiler should not generate any floating-point, fused, or multiply-add instructions. The fused value allows the compiler to attempt to find opportunities to improve the performance of the code by using floating-point, fused, or multiply-add instructions.

Linux Support

This release of the Sun Studio compilers supports the Linux OS. See the release notes for processor and distro version requirements.

There are some limitations with f95 on Linux. See Section F. below for details.

The New Thread Analyzer

The following new compiler option causes the compiler to instrument your multi-threaded application for analysis by the new Thread Analyzer. 

The default is -xinstrument=no%datarace.

Additional Notes:

D. Software Corrections

No information at this time.

E. Problems and Workarounds

This section discusses known software problems in this release and possible workarounds for those problems.

F. Limitations and Incompatibilities

This section discusses limitations and incompatibilities with systems or other software.

Known Limitations on Linux

Previous releases of the f95 compiler introduced incompatibilities that carry forward to this release of the compiler and should be noted if you are updating from earlier f95 releases. The following incompatibilies are worth noting:

The following general items should also be noted:

G. Documentation Errors

No information at this time.  Additional information may be made available at http://developers.sun.com/sunstudio/

H. Required Patches for Fortran 95

For information about required and optional patches for this release, see the Sun Studio release notes at http://developers.sun.com/sunstudio/documentation/ss12/release_notes.html.

I. Shippable Libraries

If your executable uses a Sun dynamic library listed at http://developers.sun.com/sunstudio/documentation/ss12/mr/runtime.libraries.html, your license includes the right to redistribute the library to your customer.

You cannot redistribute or otherwise disclose the header files, source code, object modules, or static libraries of object modules in any form.

The License to Use appears in the End User Object Code License, which you can view from the back of the plastic case containing the CD-ROM.

Copyright © 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.