diff --git a/ghc/lib/std/cbits/timezone.h b/ghc/lib/std/cbits/timezone.h index 46b907f269c53ab296879822292f73a96cc5c329..e9b4bdaf38a628ad3867904f1a3b281759c88371 100644 --- a/ghc/lib/std/cbits/timezone.h +++ b/ghc/lib/std/cbits/timezone.h @@ -3,6 +3,19 @@ #define _OSF_SOURCE +#if linux_TARGET_OS +/* Sigh, RedHat 5 has the TM_ZONE stuff, but only when _BSD_SOURCE is + * on. The configure script erroneously says we've got TM_ZONE, so + * make sure we use the TZNAME stuff instead. + * + * Aside: tzname is POSIX, whereas tm_zone is BSD. We should be using + * tzname by preference, but the GNU configure stuff gives us HAVE_TM_ZONE + * in preference to HAVE_TZNAME. More sighs. + */ +# undef HAVE_TM_ZONE +# define HAVE_TZNAME 1 +#endif + #if TIME_WITH_SYS_TIME # include <sys/time.h> # include <time.h>