Как правило, решение состоит в том, чтобы использовать autoconf
или какой-либо аналогичный инструмент для определения того, имеет ли текущая платформа getline
или нет, и предоставлять свое собственное определение только при необходимости.
Пример:
# configure.ac
AC_CHECK_FUNCS([getline])
// compat.h
#include "config.h"
#ifndef HAVE_GETLINE
ssize_t getline(char **lineptr, size_t *n, FILE *stream);
#endif
// getline.c
ssize_t getline(char **lineptr, size_t *n, FILE *stream) {
/* definition */
}
# Makefile.am
program_LDADD = $(if $(HAVE_GETLINE),,getline.o)
или что-то в этом духе, вам придется настроить его в соответствии с вашей собственной программой.