Hello Ambarish,
The default compiler for S32 Design Studio is GCC. You can find the GCC compiler manual on the Internet or in S32DS local folder:
<S32DS_ARM>\Cross_Tools\gcc-arm-none-eabi-4_9\share\doc\gcc-arm-none-eabi\pdf\gcc\gcc.pdf
Regarding interrupts:
Due to ARM cortex core design an interrupt handler routine written in C does not differ from a C subroutine.
Therefore you don't need any "interrupt" key word support by the compiler.
All you need to do is correctly calculate the address of redirected handler and place the handler name it into the vector table e.g.:

Regarding to "no init" variables:
I'd suggest you to create a separate section for uninitialized variables e.g. "m_no_init" + ".NO_INIT_DATA_RAM":
MEMORY
{
/* Flash */
m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x00000410, LENGTH = 0x0007FBF0
/* SRAM_L */
m_no_init (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00001000
m_data (RW) : ORIGIN = 0x1FFF9000, LENGTH = 0x00007000
/* SRAM_U */
m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007000
}
/* Define output sections */
SECTIONS
{
.NO_INIT_DATA_RAM :
{
. = ALIGN(4);
KEEP(*(.NO_INIT_DATA_RAM)) /* Keep section even if not referenced. */
} > m_no_init
Then you can create a macro that places the variable into this section:
#define __NO_INIT __attribute__((section(".NO_INIT_DATA_RAM")))
__NO_INIT char str[10];
Another approach is to add the section into .data but then you can adjust the startup routine to avoid the copy-down for this subsection.
Hope it helps.
Stan