CommandLine.cpp:189: error: `strdup' undeclared

Hi

I've found below declaration of strdup in /usr/include/string.h.

But, I'm wondering why it doesn't belong to the ordinary function prototypes as extern char * __cdecl strcpy(char *, const char *);.

Are you able to explain below meaning to me?

#if defined(_ALL_SOURCE) \
      >> (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED==1)) \
      >> (__STDC__ - 0 == 0 && !defined(_POSIX_C_SOURCE))
extern char* __cdecl strdup(const char *);
#endif /* defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED == 1) */

My version of GCC is Interix gcc 3.3.

/Henrik