View Single Post
Old 05-11-2016, 04:41 PM   #107
geekmaster
Carpe diem, c'est la vie.
geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.geekmaster ought to be getting tired of karma fortunes by now.
 
geekmaster's Avatar
 
Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
Despite what the docs say, here are the options the compiler says it supports:
Code:

C:\SHARE\kindle\K1>"C:\Program Files (x86)\CodeSourcery\Sourcery G++\bin\arm-none-linux-gnueabi-gcc.exe" --target-help

Target specific options:
  -mno-cirrus-fix-invalid-insns Cirrus: Do not break up invalid instruction combinations with NOPs
  -mcirrus-fix-invalid-insns Cirrus: Place NOPs to avoid invalid instruction combinations
  -mcaller-super-interworking Thumb: Assume function pointers may go to non-Thumb aware code
  -mcallee-super-interworking Thumb: Assume non-static functions may be called from ARM code
  -mtpcs-leaf-frame         Thumb: Generate (leaf) stack frames even if not needed
  -mtpcs-frame              Thumb: Generate (non-leaf) stack frames even if not needed
  -mthumb                   Compile for the Thumb not the ARM
  -mlong-calls              Generate call insns as indirect calls, if necessary
  -msingle-pic-base         Do not load the PIC register in function prologues
  -mno-sched-prolog         Do not move instructions into a function's prologue
  -mabort-on-noreturn       Generate a call to abort if a noreturn function returns
  -mthumb-interwork         Support calls between Thumb and ARM instruction sets
  -mwords-little-endian     Assume big endian bytes, little endian words
  -mlittle-endian           Assume target CPU is configured as little endian
  -mbig-endian              Assume target CPU is configured as big endian
  -mapcs-reentrant          Generate re-entrant, PIC code
  -mapcs-float              Pass FP arguments in FP registers
  -mpoke-function-name      Store function names in object code
  -mapcs-frame              Generate APCS conformant stack frames
  -mtp=                     Specify how to access the thread pointer
  -mhard-float              Alias for -mfloat-abi=hard
  -msoft-float              Alias for -mfloat-abi=soft
  -mabi=                    Specify an ABI
  -mpic-register=           Specify the register to be used for PIC addressing
  -mstructure-size-boundary= Specify the minimum bit alignment of structures
  -mfloat-abi=              Specify if floating point hardware should be used
  -mfpu=                    Specify the name of the target floating point hardware/format
  -march=                   Specify the name of the target architecture
  -mcpu=                    Specify the name of the target CPU
 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
  -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>
  -EB                     assemble code for a big-endian cpu
  -EL                     assemble code for a little-endian cpu
armelf_linux_eabi:
  -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
  -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 initfirst          Mark DSO to be initialized first at runtime
  -z interpose          Mark object to interpose all DSOs but executable
  -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 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 KEYWORD            Ignored for Solaris compatibility
     --thumb-entry=<sym>      Set the entry point to be Thumb symbol <sym>
     --be8                    Oputput 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
     --use-blx                Enable use of BLX instructions
geekmaster is offline   Reply With Quote