strdup is in the bsd.h extensions (along with getopt). perhaps it wasn't or isn't ANSI; at any rate, that's what APE thinks of it.