gcc: HPPA Options

1 
1 3.18.17 HPPA Options
1 --------------------
1 
1 These '-m' options are defined for the HPPA family of computers:
1 
1 '-march=ARCHITECTURE-TYPE'
1      Generate code for the specified architecture.  The choices for
1      ARCHITECTURE-TYPE are '1.0' for PA 1.0, '1.1' for PA 1.1, and '2.0'
1      for PA 2.0 processors.  Refer to '/usr/lib/sched.models' on an
1      HP-UX system to determine the proper architecture option for your
1      machine.  Code compiled for lower numbered architectures runs on
1      higher numbered architectures, but not the other way around.
1 
1 '-mpa-risc-1-0'
1 '-mpa-risc-1-1'
1 '-mpa-risc-2-0'
1      Synonyms for '-march=1.0', '-march=1.1', and '-march=2.0'
1      respectively.
1 
1 '-mcaller-copies'
1      The caller copies function arguments passed by hidden reference.
1      This option should be used with care as it is not compatible with
1      the default 32-bit runtime.  However, only aggregates larger than
1      eight bytes are passed by hidden reference and the option provides
1      better compatibility with OpenMP.
1 
1 '-mjump-in-delay'
1      This option is ignored and provided for compatibility purposes
1      only.
1 
1 '-mdisable-fpregs'
1      Prevent floating-point registers from being used in any manner.
1      This is necessary for compiling kernels that perform lazy context
1      switching of floating-point registers.  If you use this option and
1      attempt to perform floating-point operations, the compiler aborts.
1 
1 '-mdisable-indexing'
1      Prevent the compiler from using indexing address modes.  This
1      avoids some rather obscure problems when compiling MIG generated
1      code under MACH.
1 
1 '-mno-space-regs'
1      Generate code that assumes the target has no space registers.  This
1      allows GCC to generate faster indirect calls and use unscaled index
1      address modes.
1 
1      Such code is suitable for level 0 PA systems and kernels.
1 
1 '-mfast-indirect-calls'
1      Generate code that assumes calls never cross space boundaries.
1      This allows GCC to emit code that performs faster indirect calls.
1 
1      This option does not work in the presence of shared libraries or
1      nested functions.
1 
1 '-mfixed-range=REGISTER-RANGE'
1      Generate code treating the given register range as fixed registers.
1      A fixed register is one that the register allocator cannot use.
1      This is useful when compiling kernel code.  A register range is
1      specified as two registers separated by a dash.  Multiple register
1      ranges can be specified separated by a comma.
1 
1 '-mlong-load-store'
1      Generate 3-instruction load and store sequences as sometimes
1      required by the HP-UX 10 linker.  This is equivalent to the '+k'
1      option to the HP compilers.
1 
1 '-mportable-runtime'
1      Use the portable calling conventions proposed by HP for ELF
1      systems.
1 
1 '-mgas'
1      Enable the use of assembler directives only GAS understands.
1 
1 '-mschedule=CPU-TYPE'
1      Schedule code according to the constraints for the machine type
1      CPU-TYPE.  The choices for CPU-TYPE are '700' '7100', '7100LC',
1      '7200', '7300' and '8000'.  Refer to '/usr/lib/sched.models' on an
1      HP-UX system to determine the proper scheduling option for your
1      machine.  The default scheduling is '8000'.
1 
1 '-mlinker-opt'
1      Enable the optimization pass in the HP-UX linker.  Note this makes
1      symbolic debugging impossible.  It also triggers a bug in the HP-UX
1      8 and HP-UX 9 linkers in which they give bogus error messages when
1      linking some programs.
1 
1 '-msoft-float'
1      Generate output containing library calls for floating point.
1      *Warning:* the requisite libraries are not available for all HPPA
1      targets.  Normally the facilities of the machine's usual C compiler
1      are used, but this cannot be done directly in cross-compilation.
1      You must make your own arrangements to provide suitable library
1      functions for cross-compilation.
1 
1      '-msoft-float' changes the calling convention in the output file;
1      therefore, it is only useful if you compile _all_ of a program with
1      this option.  In particular, you need to compile 'libgcc.a', the
1      library that comes with GCC, with '-msoft-float' in order for this
1      to work.
1 
1 '-msio'
1      Generate the predefine, '_SIO', for server IO.  The default is
1      '-mwsio'.  This generates the predefines, '__hp9000s700',
1      '__hp9000s700__' and '_WSIO', for workstation IO.  These options
1      are available under HP-UX and HI-UX.
1 
1 '-mgnu-ld'
1      Use options specific to GNU 'ld'.  This passes '-shared' to 'ld'
1      when building a shared library.  It is the default when GCC is
1      configured, explicitly or implicitly, with the GNU linker.  This
1      option does not affect which 'ld' is called; it only changes what
1      parameters are passed to that 'ld'.  The 'ld' that is called is
1      determined by the '--with-ld' configure option, GCC's program
1      search path, and finally by the user's 'PATH'.  The linker used by
1      GCC can be printed using 'which `gcc -print-prog-name=ld`'.  This
1      option is only available on the 64-bit HP-UX GCC, i.e. configured
1      with 'hppa*64*-*-hpux*'.
1 
1 '-mhp-ld'
1      Use options specific to HP 'ld'.  This passes '-b' to 'ld' when
1      building a shared library and passes '+Accept TypeMismatch' to 'ld'
1      on all links.  It is the default when GCC is configured, explicitly
1      or implicitly, with the HP linker.  This option does not affect
1      which 'ld' is called; it only changes what parameters are passed to
1      that 'ld'.  The 'ld' that is called is determined by the
1      '--with-ld' configure option, GCC's program search path, and
1      finally by the user's 'PATH'.  The linker used by GCC can be
1      printed using 'which `gcc -print-prog-name=ld`'.  This option is
1      only available on the 64-bit HP-UX GCC, i.e. configured with
1      'hppa*64*-*-hpux*'.
1 
1 '-mlong-calls'
1      Generate code that uses long call sequences.  This ensures that a
1      call is always able to reach linker generated stubs.  The default
1      is to generate long calls only when the distance from the call site
1      to the beginning of the function or translation unit, as the case
1      may be, exceeds a predefined limit set by the branch type being
1      used.  The limits for normal calls are 7,600,000 and 240,000 bytes,
1      respectively for the PA 2.0 and PA 1.X architectures.  Sibcalls are
1      always limited at 240,000 bytes.
1 
1      Distances are measured from the beginning of functions when using
1      the '-ffunction-sections' option, or when using the '-mgas' and
1      '-mno-portable-runtime' options together under HP-UX with the SOM
1      linker.
1 
1      It is normally not desirable to use this option as it degrades
1      performance.  However, it may be useful in large applications,
1      particularly when partial linking is used to build the application.
1 
1      The types of long calls used depends on the capabilities of the
1      assembler and linker, and the type of code being generated.  The
1      impact on systems that support long absolute calls, and long pic
1      symbol-difference or pc-relative calls should be relatively small.
1      However, an indirect call is used on 32-bit ELF systems in pic code
1      and it is quite long.
1 
1 '-munix=UNIX-STD'
1      Generate compiler predefines and select a startfile for the
1      specified UNIX standard.  The choices for UNIX-STD are '93', '95'
1      and '98'.  '93' is supported on all HP-UX versions.  '95' is
1      available on HP-UX 10.10 and later.  '98' is available on HP-UX
1      11.11 and later.  The default values are '93' for HP-UX 10.00, '95'
1      for HP-UX 10.10 though to 11.00, and '98' for HP-UX 11.11 and
1      later.
1 
1      '-munix=93' provides the same predefines as GCC 3.3 and 3.4.
1      '-munix=95' provides additional predefines for 'XOPEN_UNIX' and
1      '_XOPEN_SOURCE_EXTENDED', and the startfile 'unix95.o'.
1      '-munix=98' provides additional predefines for '_XOPEN_UNIX',
1      '_XOPEN_SOURCE_EXTENDED', '_INCLUDE__STDC_A1_SOURCE' and
1      '_INCLUDE_XOPEN_SOURCE_500', and the startfile 'unix98.o'.
1 
1      It is _important_ to note that this option changes the interfaces
1      for various library routines.  It also affects the operational
1      behavior of the C library.  Thus, _extreme_ care is needed in using
1      this option.
1 
1      Library code that is intended to operate with more than one UNIX
1      standard must test, set and restore the variable
1      '__xpg4_extended_mask' as appropriate.  Most GNU software doesn't
1      provide this capability.
1 
1 '-nolibdld'
1      Suppress the generation of link options to search libdld.sl when
1      the '-static' option is specified on HP-UX 10 and later.
1 
1 '-static'
1      The HP-UX implementation of setlocale in libc has a dependency on
1      libdld.sl.  There isn't an archive version of libdld.sl.  Thus,
1      when the '-static' option is specified, special link options are
1      needed to resolve this dependency.
1 
1      On HP-UX 10 and later, the GCC driver adds the necessary options to
1      link with libdld.sl when the '-static' option is specified.  This
1      causes the resulting binary to be dynamic.  On the 64-bit port, the
1      linkers generate dynamic binaries by default in any case.  The
1      '-nolibdld' option can be used to prevent the GCC driver from
1      adding these link options.
1 
1 '-threads'
1      Add support for multithreading with the "dce thread" library under
1      HP-UX.  This option sets flags for both the preprocessor and
1      linker.
1