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