Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Compile problem on Linux



When compiling zsh on my PC (which runs SuSE Linux 6.1). I got errors
relating to RLIM_NLIMITS being undefined. I traced the cause of this
down to autoconf erroneously reporting sys/resource.h to not exist
(while correctly finding getrlimit).

Checking config.log, I found:

configure:2496: gcc -E  conftest.c >/dev/null 2>conftest.out
In file included from /usr/include/sys/resource.h:27,
                 from configure:2492:
/usr/include/resourcebits.h:103: warning: `RLIM_INFINITY' redefined
/usr/include/asm/resource.h:25: warning: this is the location of the previous definition
configure: failed program was:
#line 2491 "configure"
#include "confdefs.h"
#include <sys/resource.h>

confdefs.h was apparently empty and indeed the following gave the same
warnings:
echo "#include <sys/resource.h>" > t.c
gcc -E t.c >/dev/null

Is this a problem with autoconf not effectively determining if
conftest.out indicates an error, are the include files on my system
broken or should zsh's configure.in be putting some sort of work-around
in confdefs.h?

Looking at the include files, resourcebits.h has the definition:
/* Kinds of resource limit.  */
enum __rlimit_resource
{
 .
 .
 .
  /* Value to indicate that there is no limit.  */
  RLIM_INFINITY = (long int)(~0UL >> 1)
#define RLIM_INFINITY RLIM_INFINITY
};

And in asm/resource.h:
/*
 * SuS says limits have to be unsigned.
 * Which makes a ton more sense anyway.
 */
#define RLIM_INFINITY   (~0UL)

Any ideas? Should I be sending this to the autoconf maintainers? The
problem could have been around a while - I recently cleared out my
autoconf cache to solve another problem (see msg 9602 (thanks Sven
that was the problem)). My old configure cache reported
sys/resource.h's presence but I may have manually edited it -
regenerating the configure script with an old autoconf was no help.

Oliver Kiddle



Messages sorted by: Reverse Date, Date, Thread, Author