From: Jonathan Nieder <jrnieder@gmail.com>
To: Stefan Sperling <stsp@stsp.name>
Cc: git@vger.kernel.org, "Shawn O. Pearce" <spearce@spearce.org>,
Erik Faye-Lund <kusmabite@gmail.com>
Subject: Re: [PATCH] Include headers for getrlimit() in sha1_file.c
Date: Fri, 18 Mar 2011 15:23:52 -0500 [thread overview]
Message-ID: <20110318202351.GA22696@elie> (raw)
In-Reply-To: <1300271879-2050-1-git-send-email-stsp@stsp.name>
(+cc: Shawn, Erik)
Hi Stefan,
Stefan Sperling wrote:
> Fixes compilation error on OpenBSD:
> sha1_file.c: In function 'open_packed_git_1':
> sha1_file.c:718: error: storage size of 'lim' isn't known
> sha1_file.c:721: warning: implicit declaration of function 'getrlimit'
> sha1_file.c:721: error: 'RLIMIT_NOFILE' undeclared (first use in this function)
> sha1_file.c:718: warning: unused variable 'lim'
Good catch.
> --- a/sha1_file.c
> +++ b/sha1_file.c
> @@ -18,6 +18,10 @@
> #include "pack-revindex.h"
> #include "sha1-lookup.h"
>
> +#include <sys/types.h>
> +#include <sys/time.h>
> +#include <sys/resource.h>
System headers like this tend to go in git-compat-util.h, so
portability fixes having to do with compatibility replacements or
order of inclusion only need to happen in one place.
In this case, afaict sys/resource.h is not available on mingw, meaning
the #include would probably go in the "#ifndef __MINGW32__" block.
Maybe something like this (untested)?
-- 8< --
Subject: compat: add missing #include <sys/resource.h>
Starting with commit c793430 (Limit file descriptors used by packs,
2011-02-28), git uses getrlimit to tell how many file descriptors it
can use. Unfortunately it does not include the header declaring that
function, resulting in compilation errors on OpenBSD:
sha1_file.c: In function 'open_packed_git_1':
sha1_file.c:718: error: storage size of 'lim' isn't known
sha1_file.c:721: warning: implicit declaration of function 'getrlimit'
sha1_file.c:721: error: 'RLIMIT_NOFILE' undeclared (first use in this function)
sha1_file.c:718: warning: unused variable 'lim'
The standard header to include for this is <sys/resource.h> (which on
some systems itself requires declarations from <sys/types.h> or
<sys/time.h>). Probably the problem was missed until now because in
current glibc sys/resource.h happens to be included by sys/wait.h.
MinGW does not provide sys/resource.h (and compat/mingw takes care of
providing getrlimit some other way), so add the missing #include to
the "#ifndef __MINGW32__" block in git-compat-util.h.
Reported-by: Stefan Sperling <stsp@stsp.name>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
git-compat-util.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/git-compat-util.h b/git-compat-util.h
index 49b50ee..40498b3 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -118,6 +118,7 @@
#endif
#ifndef __MINGW32__
#include <sys/wait.h>
+#include <sys/resource.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <termios.h>
--
1.7.4.1
next prev parent reply other threads:[~2011-03-18 20:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-16 10:37 [PATCH] Include headers for getrlimit() in sha1_file.c Stefan Sperling
2011-03-18 20:23 ` Jonathan Nieder [this message]
2011-03-19 0:22 ` Arnaud Lacombe
2011-03-19 9:09 ` Stefan Sperling
2011-03-31 22:59 ` [PATCH maint resend] compat: add missing #include <sys/resource.h> Jonathan Nieder
2011-04-03 19:13 ` Jonathan Nieder
2011-04-03 19:27 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110318202351.GA22696@elie \
--to=jrnieder@gmail.com \
--cc=git@vger.kernel.org \
--cc=kusmabite@gmail.com \
--cc=spearce@spearce.org \
--cc=stsp@stsp.name \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.