Dúvidas em uma definição

Cambada, estou com uma dúvida aqui quanto a esta definição:
Em outra seção do código, onde um array é declarado e definido:
Uma mensagem de erro é dada ao compilar o código, dizendo algo como: impossível alocar (em tempo de compilação o array: "static int data" devido o índice não ser uma constante!
Oka, sei que macros são raízes de todo o bem, mas o cast presente nas definições apenas serve para garantir o truncamente, correto? O mais engraçado é que esse código era compilado normalmente por outros compiladores, no gcc não passa! Existe alguma diretiva de compilação que possa ser passada no Makefile garantindo a compilação?
- Código: Selecionar todos
#define SAMPLE_RATE 200 /* Sample rate in Hz. */
#define MS_PER_SAMPLE ( (double) 1000/ (double) SAMPLE_RATE)
#define MS10 ((int) (10/ MS_PER_SAMPLE + 0.5))
#define MS25 ((int) (25/MS_PER_SAMPLE + 0.5))
#define DERIV_LENGTH MS10
#define LPBUFFER_LGTH ((int) (2*MS25))
#define HPBUFFER_LGTH MS125
Em outra seção do código, onde um array é declarado e definido:
- Código: Selecionar todos
static int data[LPBUFFER_LGTH], ptr = 0 ;
Uma mensagem de erro é dada ao compilar o código, dizendo algo como: impossível alocar (em tempo de compilação o array: "static int data" devido o índice não ser uma constante!
Oka, sei que macros são raízes de todo o bem, mas o cast presente nas definições apenas serve para garantir o truncamente, correto? O mais engraçado é que esse código era compilado normalmente por outros compiladores, no gcc não passa! Existe alguma diretiva de compilação que possa ser passada no Makefile garantindo a compilação?