From: Stefan Sperling <hidden> Date: 2016-06-15 22:50:47
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'
Signed-off-by: Stefan Sperling <redacted>
---
sha1_file.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
From: Jonathan Nieder <hidden> Date: 2016-06-15 22:50:48
(+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'
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 <redacted>
Signed-off-by: Jonathan Nieder <redacted>
---
git-compat-util.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Hi,
On Fri, Mar 18, 2011 at 4:23 PM, Jonathan Nieder [off-list ref] wrote:
(+cc: Shawn, Erik)
Hi Stefan,
Stefan Sperling wrote:
quoted
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'
This also fix the build on FreeBSD 8 (did not test other version).
- Arnaud
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 <redacted>
Signed-off-by: Jonathan Nieder <redacted>
---
git-compat-util.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
#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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Jonathan Nieder <hidden> Date: 2016-06-15 22:50:57
Date: Fri, 18 Mar 2011 15:23:52 -0500
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:
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 <redacted>
Tested-by: Stefan Sperling <redacted> [on OpenBSD]
Tested-by: Arnaud Lacombe <redacted> [on FreeBSD 8]
Signed-off-by: Jonathan Nieder <redacted>
---
Oops, should have sent this as its own message before. Thanks to
doug on irc for a ping.
git-compat-util.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)