美文网首页
查看arm-linux-gcc某个版本支持的-mcpu,-mar

查看arm-linux-gcc某个版本支持的-mcpu,-mar

作者: 柏666 | 来源:发表于2019-07-09 22:52 被阅读0次

alan@alan-virtual-machine:~/work/tools/arm-linux-gcc-4.4.3/bin$ ./arm-linux-gcc --target-help

The following options are target specific:

  -mabi=                      Specify an ABI

  -mabort-on-noreturn         Generate a call to abort if a noreturn function

                              returns

  -mapcs-float                Pass FP arguments in FP registers

  -mapcs-frame                Generate APCS conformant stack frames

  -mapcs-reentrant            Generate re-entrant, PIC code

  -march=                     Specify the name of the target architecture

  -mbig-endian                Assume target CPU is configured as big endian

  -mcallee-super-interworking Thumb: Assume non-static functions may be called

                              from ARM code

  -mcaller-super-interworking Thumb: Assume function pointers may go to non-

                              Thumb aware code

  -mcirrus-fix-invalid-insns  Cirrus: Place NOPs to avoid invalid instruction

                              combinations

  -mcpu=                      Specify the name of the target CPU

  -mfix-cortex-m3-ldrd        Avoid overlapping destination and address

                              registers on LDRD instructions that may trigger

                              Cortex-M3 errata.

  -mfloat-abi=                Specify if floating point hardware should be used

  -mfpu=                      Specify the name of the target floating point

                              hardware/format

  -mglibc                     Use GNU libc instead of uClibc

  -mhard-float                Alias for -mfloat-abi=hard

  -mlittle-endian             Assume target CPU is configured as little endian

  -mlong-calls                Generate call insns as indirect calls, if

                              necessary

  -mpic-register=             Specify the register to be used for PIC addressing

  -mpoke-function-name        Store function names in object code

  -msched-prolog              Permit scheduling of a function's prologue

                              sequence

  -msingle-pic-base           Do not load the PIC register in function prologues

  -msoft-float                Alias for -mfloat-abi=soft

  -mstructure-size-boundary=  Specify the minimum bit alignment of structures

  -mthumb                     Compile for the Thumb not the ARM

  -mthumb-interwork           Support calls between Thumb and ARM instruction

                              sets

  -mtp=                       Specify how to access the thread pointer

  -mtpcs-frame                Thumb: Generate (non-leaf) stack frames even if

                              not needed

  -mtpcs-leaf-frame           Thumb: Generate (leaf) stack frames even if not

                              needed

  -mtune=                     Tune code for the given processor

  -muclibc                    Use uClibc instead of GNU libc

  -mvectorize-with-neon-quad  Use Neon quad-word (rather than double-word)

                              registers for vectorization

  -mword-relocations          Only generate absolute relocations on word sized

                              values.

  -mwords-little-endian       Assume big endian bytes, little endian words

  Known ARM CPUs (for use with the -mcpu= and -mtune= options):

    cortex-m1, cortex-m3, cortex-r4f, cortex-r4, cortex-a9, cortex-a8,

    arm1156t2-s, mpcore, mpcorenovfp, arm1176jzf-s, arm1176jz-s, arm1136jf-s,

    arm1136j-s, arm1026ej-s, arm926ej-s, iwmmxt2, iwmmxt, xscale, arm1022e,

    arm1020e, arm10e, arm968e-s, arm966e-s, arm946e-s, arm9e, arm1020t,

    arm10tdmi, ep9312, arm940t, arm922t, arm920t, arm920, arm9tdmi, arm9,

    arm740t, arm720t, arm710t, arm7tdmi-s, arm7tdmi, strongarm1110,

    strongarm1100, strongarm110, strongarm, arm810, arm8, arm7dmi, arm7dm,

    arm7m, arm7500fe, arm7500, arm7100, arm710c, arm720, arm710, arm700i,

    arm700, arm70, arm7di, arm7d, arm7, arm620, arm610, arm600, arm60, arm6,

    arm3, arm250, arm2

  Known ARM architectures (for use with the -march= option):

    iwmmxt2, iwmmxt, ep9312, armv7-m, armv7-r, armv7-a, armv7, armv6-m, armv6t2,

    armv6zk, armv6z, armv6k, armv6j, armv6, armv5te, armv5e, armv5t, armv5,

    armv4t, armv4, armv3m, armv3, armv2a, armv2

 ARM-specific assembler options:

  -k                      generate PIC code

  -mthumb                 assemble Thumb code

  -mthumb-interwork       support ARM/Thumb interworking

  -mapcs-32               code uses 32-bit program counter

  -mapcs-26               code uses 26-bit program counter

  -mapcs-float            floating point args are in fp regs

  -mapcs-reentrant        re-entrant code

  -matpcs                 code is ATPCS conformant

  -mbig-endian            assemble for big-endian

  -mlittle-endian         assemble for little-endian

  -mapcs-frame            use frame pointer

  -mapcs-stack-check      use stack size checking

  -mno-warn-deprecated    do not warn on use of deprecated feature

  -mcpu=<cpu name>      assemble for CPU <cpu name>

  -march=<arch name>      assemble for architecture <arch name>

  -mfpu=<fpu name>      assemble for FPU architecture <fpu name>

  -mfloat-abi=<abi>      assemble for floating point ABI <abi>

  -meabi=<ver>          assemble for eabi version <ver>

  -mimplicit-it=<mode>      controls implicit insertion of IT instructions

  -EB                     assemble code for a big-endian cpu

  -EL                     assemble code for a little-endian cpu

  --fix-v4bx              Allow BX in ARMv4 code

Linker options

==============

Use "-Wl,OPTION" to pass "OPTION" to the linker.

armelf_linux_eabi:

  --build-id[=STYLE]          Generate build ID note

  -Bgroup                     Selects group name lookup rules for DSO

  --disable-new-dtags         Disable new dynamic tags

  --enable-new-dtags          Enable new dynamic tags

  --eh-frame-hdr              Create .eh_frame_hdr section

  --hash-style=STYLE          Set hash style to sysv, gnu or both

  -z combreloc                Merge dynamic relocs into one section and sort

  -z defs                     Report unresolved symbols in object files.

  -z execstack                Mark executable as requiring executable stack

  -z execheap                 Mark executable as requiring executable heap

  -z initfirst                Mark DSO to be initialized first at runtime

  -z interpose                Mark object to interpose all DSOs but executable

  -z lazy                     Mark object lazy runtime binding (default)

  -z loadfltr                 Mark object requiring immediate process

  -z muldefs                  Allow multiple definitions

  -z nocombreloc              Don't merge dynamic relocs into one section

  -z nocopyreloc              Don't create copy relocs

  -z nodefaultlib             Mark object not to use default search paths

  -z nodelete                 Mark DSO non-deletable at runtime

  -z nodlopen                 Mark DSO not available to dlopen

  -z nodump                   Mark DSO not available to dldump

  -z noexecstack              Mark executable as not requiring executable stack

  -z noexecheap               Mark executable as not requiring executable heap

  -z norelro                  Don't create RELRO program header

  -z now                      Mark object non-lazy runtime binding

  -z origin                   Mark object requiring immediate $ORIGIN

                                processing at runtime

  -z relro                    Create RELRO program header

  -z max-page-size=SIZE       Set maximum page size to SIZE

  -z common-page-size=SIZE    Set common page size to SIZE

  -z KEYWORD                  Ignored for Solaris compatibility

  --thumb-entry=<sym>         Set the entry point to be Thumb symbol <sym>

  --be8                       Output BE8 format image

  --target1=rel               Interpret R_ARM_TARGET1 as R_ARM_REL32

  --target1=abs               Interpret R_ARM_TARGET1 as R_ARM_ABS32

  --target2=<type>            Specify definition of R_ARM_TARGET2

  --fix-v4bx                  Rewrite BX rn as MOV pc, rn for ARMv4

  --fix-v4bx-interworking     Rewrite BX rn branch to ARMv4 interworking veneer

  --use-blx                   Enable use of BLX instructions

  --vfp11-denorm-fix          Specify how to fix VFP11 denorm erratum

  --no-enum-size-warning      Don't warn about objects with incompatible

                                enum sizes

  --no-wchar-size-warning     Don't warn about objects with incompatible                                wchar_t sizes

  --pic-veneer                Always generate PIC interworking veneers

   --stub-group-size=N   Maximum size of a group of input sections that can be

                           handled by one stub section.  A negative value

                           locates all stubs after their branches (with a

                           group size of -N), while a positive value allows

                           two groups of input sections, one before, and one

                           after each stub section.  Values of +/-1 indicate

                           the linker should choose suitable defaults.

  --[no-]fix-cortex-a8        Disable/enable Cortex-A8 Thumb-2 branch erratum fix

armelfb_linux_eabi:

  --build-id[=STYLE]          Generate build ID note

  -Bgroup                     Selects group name lookup rules for DSO

  --disable-new-dtags         Disable new dynamic tags

  --enable-new-dtags          Enable new dynamic tags

  --eh-frame-hdr              Create .eh_frame_hdr section

  --hash-style=STYLE          Set hash style to sysv, gnu or both

  -z combreloc                Merge dynamic relocs into one section and sort

  -z defs                     Report unresolved symbols in object files.

  -z execstack                Mark executable as requiring executable stack

  -z execheap                 Mark executable as requiring executable heap

  -z initfirst                Mark DSO to be initialized first at runtime

  -z interpose                Mark object to interpose all DSOs but executable

  -z lazy                     Mark object lazy runtime binding (default)

  -z loadfltr                 Mark object requiring immediate process

  -z muldefs                  Allow multiple definitions

  -z nocombreloc              Don't merge dynamic relocs into one section

  -z nocopyreloc              Don't create copy relocs

  -z nodefaultlib             Mark object not to use default search paths

  -z nodelete                 Mark DSO non-deletable at runtime

  -z nodlopen                 Mark DSO not available to dlopen

  -z nodump                   Mark DSO not available to dldump

  -z noexecstack              Mark executable as not requiring executable stack

  -z noexecheap               Mark executable as not requiring executable heap

  -z norelro                  Don't create RELRO program header

  -z now                      Mark object non-lazy runtime binding

  -z origin                   Mark object requiring immediate $ORIGIN

                                processing at runtime

  -z relro                    Create RELRO program header

  -z max-page-size=SIZE       Set maximum page size to SIZE

  -z common-page-size=SIZE    Set common page size to SIZE

  -z KEYWORD                  Ignored for Solaris compatibility

  --thumb-entry=<sym>         Set the entry point to be Thumb symbol <sym>

  --be8                       Output BE8 format image

  --target1=rel               Interpret R_ARM_TARGET1 as R_ARM_REL32

  --target1=abs               Interpret R_ARM_TARGET1 as R_ARM_ABS32

  --target2=<type>            Specify definition of R_ARM_TARGET2

  --fix-v4bx                  Rewrite BX rn as MOV pc, rn for ARMv4

  --fix-v4bx-interworking     Rewrite BX rn branch to ARMv4 interworking veneer

  --use-blx                   Enable use of BLX instructions

  --vfp11-denorm-fix          Specify how to fix VFP11 denorm erratum

  --no-enum-size-warning      Don't warn about objects with incompatible

                                enum sizes

  --no-wchar-size-warning     Don't warn about objects with incompatible                                wchar_t sizes

  --pic-veneer                Always generate PIC interworking veneers

   --stub-group-size=N   Maximum size of a group of input sections that can be

                           handled by one stub section.  A negative value

                           locates all stubs after their branches (with a

                           group size of -N), while a positive value allows

                           two groups of input sections, one before, and one

                           after each stub section.  Values of +/-1 indicate

                           the linker should choose suitable defaults.

  --[no-]fix-cortex-a8        Disable/enable Cortex-A8 Thumb-2 branch erratum fix

alan@alan-virtual-machine:~/work/tools/arm-linux-gcc-4.4.3/bin$

原文:https://blog.csdn.net/alan0521/article/details/7855932

相关文章

网友评论

      本文标题:查看arm-linux-gcc某个版本支持的-mcpu,-mar

      本文链接:https://www.haomeiwen.com/subject/raqlkctx.html