#936 strings.h header problem

open
nobody
build (67)
5
2005-08-16
2005-08-16
Riccardo Mottola
No

compiling on AIX 4.2 yields torubles due to strings.h not
being included.

my config.h says
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1

/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1

while the convoluted code in platforms.h

#ifdef HAVE_STRING_H
# ifndef STDC_HEADERS
# ifdef HAVE_MEMORY_H
# include <memory.h>
# endif
# endif // ! STDC_HEADERS
# include STD_LIB_NAME(string)
#else // ! HAVE_STRING_H
# ifdef HAVE_STRINGS_H
# include <strings.h>
# endif
#endif // ! HAVE_STRING_H

doesn't seem to work properly. I still need to include strings.h
manually after. doing that everything compiles

maybe on some platforms BOTH headers need to be
included? I had an implicitely defined symbol and it is
declared in strings.h.
extern int strcasecmp(const char *, const char *);

to be precise.

possibly it is correct to include strings.h only and not string.h
(on macosx the former just includes the latter).

on AIX I found in strings.h
#ifdef _ALL_SOURCE
#include <string.h>
#endif /* _ALL_SOURCE */

I don't know if _ALL_SOURCE is set... but anyway
everything suggests that the jikes include guard checks
should be reversed.

Discussion