Enquanto a opção -fno-builtin-function
para gcc
funciona para funções internas, como malloc
e strlen
(consulte Outras funções internas fornecidas pelo GCC ), ele não funciona para glibc
extensões GNU incorporadas, como a função getline
.
Similar a algumas das soluções apontadas pelo link de jw013, você pode tentar inserir #define
declarações nos arquivos fonte para renomear a função getline
definida pelo programa, e. g. #define getline my_getline
.
Aqui está um pequeno exemplo de código para ilustrar essa abordagem.
/*
gcc -Wall -Wextra -o mystrdup mystrdup.c
./mystrdup
*/
#include <stdio.h>
#include <string.h>
// mystrdup.c:14: error: conflicting types for 'strdup'
//#define strdup my_strdup
char *strdup(char *str) {
str = str;
return str;
}
int main (void) {
char *str = 0;
char mystr[] = "Hello, mystrdup!";
str = strdup(mystr);
printf("%s\n", str);
return 0;
}