Chapter 4. GCC Command Options 109-mno-red-zoneDo not use a so called red zone for x86-64 code. The red zone is mandated by the x86-64 ABI,it is a 128-byte area beyond the location of the stack pointer that will not be modified by signalor interrupt handlers and therefore can be used for temporary data without adjusting the stackpointer. The flag -mno-red-zone disables this red zone.-mcmodel=smallGenerate code for the small code model: the program and its symbols must be linked in the lower2 GB of the address space. Pointers are 64 bits. Programs can be statically or dynamically linked.This is the default code model.-mcmodel=kernelGenerate code for the kernel code model. The kernel runs in the negative 2 GB of the addressspace. This model has to be used for Linux kernel code.-mcmodel=mediumGenerate code for the medium model: The program is linked in the lower 2 GB of the addressspace but symbols can be located anywhere in the address space. Programs can be statically ordynamically linked, but building of shared libraries are not supported with the medium model.-mcmodel=largeGenerate code for the large model: This model makes no assumptions about addresses and sizesof sections. Currently GCC does not implement this model.4.17.4. IA-64 OptionsThese are the -m options defined for the Intel IA-64 architecture.-mbig-endianGenerate code for a big endian target. This is the default for HP-UX.-mlittle-endianGenerate code for a little endian target. This is the default for AIX5 and GNU/Linux.-mgnu-as-mno-gnu-asGenerate (or don’t) code for the GNU assembler. This is the default.-mgnu-ld-mno-gnu-ldGenerate (or don’t) code for the GNU linker. This is the default.-mno-picGenerate code that does not use a global pointer register. The result is not position independentcode, and violates the IA-64 ABI.-mvolatile-asm-stop-mno-volatile-asm-stopGenerate (or don’t) a stop bit immediately before and after volatile asm statements.