Next:IA-64 Options, Previous:H8/300 Options, Up:Machine-Dependent Options [Contents][Index]
These ‘-m’ options are defined for the HPPA family of computers:
-march=architecture-type ¶Generate code for the specified architecture. The choices forarchitecture-type are ‘1.0’ for PA 1.0, ‘1.1’ for PA1.1, and ‘2.0’ for PA 2.0 processors. Refer to/usr/lib/sched.models on an HP-UX system to determine the properarchitecture option for your machine. Code compiled for lower numberedarchitectures runs on higher numbered architectures, but not theother way around.
-mpa-risc-1-0 ¶-mpa-risc-1-1-mpa-risc-2-0Synonyms for-march=1.0,-march=1.1, and-march=2.0,respectively.
-matomic-libcalls ¶-mno-atomic-libcallsGenerate libcalls for atomic loads and stores when sync libcalls are disabled.This option is enabled by default. It only affects the generation ofatomic libcalls by the HPPA backend.
Both the sync andlibatomic libcall implementations use locking.As a result, processor stores are not atomic with respect to otheratomic operations. Processor loads up to DImode are atomic withrespect to other atomic operations provided they are implemented asa single access.
The PA-RISC architecture does not support any atomic operations inhardware except for theldcw instruction. Thus, all atomicsupport is implemented using sync and atomic libcalls. Sync libcallsupport is inlibgcc.a. Atomic libcall support is inlibatomic.
This option generates__atomic_exchange calls for atomic stores.It also provides special handling for atomic DImode accesses on 32-bittargets.
-mcaller-copies ¶The caller copies function arguments passed by hidden reference. Thisoption should be used with care as it is not compatible with the default32-bit runtime. However, only aggregates larger than eight bytes arepassed by hidden reference and the option provides better compatibilitywith OpenMP.
-mcoherent-ldcw ¶Use ldcw/ldcd coherent cache-control hint.
-mdisable-fpregs ¶Disable floating-point registers. Equivalent to-msoft-float.
-mdisable-indexing ¶Prevent the compiler from using indexing address modes. This avoids somerather obscure problems when compiling MIG generated code under MACH.
-mfast-indirect-calls ¶Generate code that assumes calls never cross space boundaries. Thisallows GCC to emit code that performs faster indirect calls.
This option does not work in the presence of shared libraries or nestedfunctions.
-mfixed-range=register-range ¶Generate code treating the given register range as fixed registers.A fixed register is one that the register allocator cannot use. This isuseful when compiling kernel code. A register range is specified astwo registers separated by a dash. Multiple register ranges can bespecified separated by a comma.
-mgas ¶Enable the use of assembler directives only GAS understands.
-mgnu-ld ¶Use options specific to GNUld.This passes-shared told whenbuilding a shared library. It is the default when GCC is configured,explicitly or implicitly, with the GNU linker. This option does notaffect whichld is called; it only changes what parametersare passed to thatld.Theld that is called is determined by the--with-ld configure option, GCC’s program search path, andfinally by the user’sPATH. The linker used by GCC can be printedusing ‘which `gcc -print-prog-name=ld`’. This option is only availableon the 64-bit HP-UX GCC, i.e. configured with ‘hppa*64*-*-hpux*’.
-mhp-ld ¶Use options specific to HPld.This passes-b told when buildinga shared library and passes+Accept TypeMismatch told on alllinks. It is the default when GCC is configured, explicitly orimplicitly, with the HP linker. This option does not affectwhichld is called; it only changes what parameters are passed to thatld.Theld that is called is determined by the--with-ldconfigure option, GCC’s program search path, and finally by the user’sPATH. The linker used by GCC can be printed using ‘which`gcc -print-prog-name=ld`’. This option is only available on the 64-bitHP-UX GCC, i.e. configured with ‘hppa*64*-*-hpux*’.
-mlinker-opt ¶Enable the optimization pass in the HP-UX linker. Note this makes symbolicdebugging impossible.
-mlong-calls ¶Generate code that uses long call sequences. This ensures that a callis always able to reach linker generated stubs. The default is to generatelong calls only when the distance from the call site to the beginningof the function or translation unit, as the case may be, exceeds apredefined limit set by the branch type being used. The limits fornormal calls are 7,600,000 and 240,000 bytes, respectively for thePA 2.0 and PA 1.X architectures. Sibling calls are always limited at240,000 bytes.
Distances are measured from the beginning of functions when using the-ffunction-sections option, or when using the-mgasand-mno-portable-runtime options together under HP-UX withthe SOM linker.
It is normally not desirable to use this option as it degradesperformance. However, it may be useful in large applications,particularly when partial linking is used to build the application.
The types of long calls used depends on the capabilities of theassembler and linker, and the type of code being generated. Theimpact on systems that support long absolute calls, and long PICsymbol-difference or PC-relative calls should be relatively small.However, an indirect call is used on 32-bit ELF systems in PIC codeand it is quite long.
-mlong-load-store ¶Generate 3-instruction load and store sequences as sometimes required bythe HP-UX 10 linker. This is equivalent to the ‘+k’ option tothe HP compilers.
-mno-space-regs ¶Generate code that assumes the target has no space registers. This allowsGCC to generate faster indirect calls and use unscaled index address modes.
Such code is suitable for level 0 PA systems and kernels.
-mordered ¶Assume memory references are ordered and barriers are not needed.
-mportable-runtime ¶Use the portable calling conventions proposed by HP for ELF systems.
-mschedule=cpu-type ¶Schedule code according to the constraints for the machine typecpu-type. The choices forcpu-type are ‘700’‘7100’, ‘7100LC’, ‘7200’, ‘7300’ and ‘8000’. Referto/usr/lib/sched.models on an HP-UX system to determine theproper scheduling option for your machine. The default scheduling is‘8000’.
-msio ¶-mwsioThe-msio generates the predefine,_SIO, for server IO.The default is-mwsio. This generates the predefines,__hp9000s700,__hp9000s700__ and_WSIO, for workstation IO. Theseoptions are available under HP-UX and HI-UX.
-msoft-float ¶Generate output containing library calls for floating point.Warning: the requisite libraries are not available for all HPPAtargets. Normally the facilities of the machine’s usual C compiler areused, but this cannot be done directly in cross-compilation. You must makeyour own arrangements to provide suitable library functions forcross-compilation.
-msoft-float changes the calling convention in the output file;therefore, it is only useful if you compileall of a program withthis option. In particular, you need to compilelibgcc.a, thelibrary that comes with GCC, with-msoft-float in order forthis to work.
-msoft-mult ¶Use software integer multiplication.
This disables the use of thexmpyu instruction.
-munix=unix-std ¶Generate compiler predefines and select a startfile for the specifiedUNIX standard. The choices forunix-std are ‘93’, ‘95’and ‘98’. ‘93’ is supported on all HP-UX versions. ‘95’is available on HP-UX 10.10 and later. ‘98’ is available on HP-UX11.11 and later. The default values are ‘93’ for HP-UX 10.00,‘95’ for HP-UX 10.10 though to 11.00, and ‘98’ for HP-UX 11.11and later.
-munix=93 provides the same predefines as GCC 3.3 and 3.4.-munix=95 provides additional predefines forXOPEN_UNIXand_XOPEN_SOURCE_EXTENDED, and the startfileunix95.o.-munix=98 provides additional predefines for_XOPEN_UNIX,_XOPEN_SOURCE_EXTENDED,_INCLUDE__STDC_A1_SOURCE and_INCLUDE_XOPEN_SOURCE_500, and the startfileunix98.o.
It isimportant to note that this option changes the interfacesfor various library routines. It also affects the operational behaviorof the C library. Thus,extreme care is needed in using thisoption.
Library code that is intended to operate with more than one UNIXstandard must test, set and restore the variable__xpg4_extended_maskas appropriate. Most GNU software doesn’t provide this capability.
-nolibdld ¶Suppress the generation of link options to searchlibdld.sl when the-static option is specified on HP-UX 10 and later.
-static ¶The HP-UX C library implementation ofsetlocale has a dependency onlibdld.sl. There isn’t an archive version oflibdld.sl. Thus,when the-static option is specified, special link optionsare needed to resolve this dependency.
On HP-UX 10 and later, the GCC driver adds the necessary options tolink withlibdld.sl when the-static option is specified.This causes the resulting binary to be dynamic. On the 64-bit port,the linkers generate dynamic binaries by default in any case. The-nolibdld option can be used to prevent the GCC driver fromadding these link options.
-threads ¶Add support for multithreading with thedce thread libraryunder HP-UX. This option sets flags for both the preprocessor andlinker.
Next:IA-64 Options, Previous:H8/300 Options, Up:Machine-Dependent Options [Contents][Index]