Sun C Compiler

From MultimediaWiki
Revision as of 11:46, 23 September 2010 by Mik (talk | contribs)
Jump to navigation Jump to search

The Sun C Compiler (suncc) is a part of the Oracle Solaris Studio (previously Sun Studio) compiler suite which latest version is freely downloadable for OTN members. The license terms are quite restrictive though. Oracle Solaris Studio 12.2 provides suncc of version 5.11, the suite itself is available for the following platforms:

  • Solaris10/SPARC
  • Solaris10/x86
  • Linux/x86

The Sun Studio 12 Update 1 and some older Express Editions still can be installed on OpenSolaris from the IPS repositories.

FFmpeg

The most of compiler-related issues are raised with inline assembly and optimizations enabled. The simplest workaround is to pass --disable-asm option to configure.

FATE currently covers two x86 configurations.

suncc 5.10

The GPL code is needed to be disabled because of bug #6901853 (a deadlock of the optimizer during compiling libpostproc/postprocess.c) and #6905799 (an assertion when compiling libswscale/swscale.c). These issues can be worked around by reducing the optimization level to -O2 and -O3 respectively.

Linux/x86_32

The function get_cabac_bypass_sign() is miscompiled (bug #6895158 - registers mentioned in the clobber list are used by the compiler).

Linux/x86_64

A number of functions are miscompiled due to bug #6895158.

The assembler does not accept 32-bit register addressing unless -a32 option is used (bug #6905803), --extra-cflags=-Wa,-a32 may be added to the list of configure options as a workaround.

libavcodec/x86/mlpdsp.c is unbuildable, compilation fails with the messages "address of a void object cannot be taken". A possible workaround is to disable the mlp decoder using a configure option.

suncc 5.11

Linux/x86_64

The bugs #6986254 and #6986266 does not allow to enable inline assembly (FTBS). In addition, the x86 implementation of av_bswap64 is miscompiled (bug #6986168).