git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH 1/4] Support builds when sys/param.h is missing
@ 2012-12-14 19:56 David Michael
  2012-12-14 23:41 ` Junio C Hamano
  0 siblings, 1 reply; 4+ messages in thread
From: David Michael @ 2012-12-14 19:56 UTC (permalink / raw)
  To: git@vger.kernel.org; +Cc: gitster

An option is added to the Makefile to skip the inclusion of sys/param.h.
The only known platform with this condition thus far is the z/OS UNIX System
Services environment.

Signed-off-by: David Michael <fedora.dm0@gmail.com>
---
 Makefile          | 5 +++++
 configure.ac      | 6 ++++++
 git-compat-util.h | 2 ++
 3 files changed, 13 insertions(+)

diff --git a/Makefile b/Makefile
index 736ecd4..8c3a0dd 100644
--- a/Makefile
+++ b/Makefile
@@ -165,6 +165,8 @@ all::
 # Define NO_POLL if you do not have or don't want to use poll().
 # This also implies NO_SYS_POLL_H.
 #
+# Define NO_SYS_PARAM_H if you don't have sys/param.h.
+#
 # Define NO_PTHREADS if you do not have or do not want to use Pthreads.
 #
 # Define NO_PREAD if you have a problem with pread() system call (e.g.
@@ -1748,6 +1750,9 @@ endif
 ifdef NO_SYS_POLL_H
     BASIC_CFLAGS += -DNO_SYS_POLL_H
 endif
+ifdef NO_SYS_PARAM_H
+    BASIC_CFLAGS += -DNO_SYS_PARAM_H
+endif
 ifdef NO_INTTYPES_H
     BASIC_CFLAGS += -DNO_INTTYPES_H
 endif
diff --git a/configure.ac b/configure.ac
index ad215cc..317bfc6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -699,6 +699,12 @@ AC_CHECK_HEADER([sys/poll.h],
 [NO_SYS_POLL_H=UnfortunatelyYes])
 GIT_CONF_SUBST([NO_SYS_POLL_H])
 #
+# Define NO_SYS_PARAM_H if you don't have sys/param.h
+AC_CHECK_HEADER([sys/param.h],
+[NO_SYS_PARAM_H=],
+[NO_SYS_PARAM_H=UnfortunatelyYes])
+GIT_CONF_SUBST([NO_SYS_PARAM_H])
+#
 # Define NO_INTTYPES_H if you don't have inttypes.h
 AC_CHECK_HEADER([inttypes.h],
 [NO_INTTYPES_H=],
diff --git a/git-compat-util.h b/git-compat-util.h
index 2e79b8a..ace1549 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -104,7 +104,9 @@
 #endif
 #include <errno.h>
 #include <limits.h>
+#ifndef NO_SYS_PARAM_H
 #include <sys/param.h>
+#endif
 #include <sys/types.h>
 #include <dirent.h>
 #include <sys/time.h>
--
1.7.11.7

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/4] Support builds when sys/param.h is missing
  2012-12-14 19:56 [PATCH 1/4] Support builds when sys/param.h is missing David Michael
@ 2012-12-14 23:41 ` Junio C Hamano
  2012-12-15  2:46   ` David Michael
  0 siblings, 1 reply; 4+ messages in thread
From: Junio C Hamano @ 2012-12-14 23:41 UTC (permalink / raw)
  To: David Michael; +Cc: git@vger.kernel.org

David Michael <fedora.dm0@gmail.com> writes:

> An option is added to the Makefile to skip the inclusion of sys/param.h.
> The only known platform with this condition thus far is the z/OS UNIX System
> Services environment.
>
> Signed-off-by: David Michael <fedora.dm0@gmail.com>
> ---

Hmm, makes me wonder if we can remove that inclusion everywhere
instead.  What definitions are we getting from it?

8695c8b (Add "show-files" command to show the list of managed (or
non-managed) files., 2005-04-11) added it to show-files, and without
the include the compilation failed due to lack of MAXPATHLEN, but
you shouldn't be using that in the first place (we tend to either
use PATH_MAX or lift the upper limit using strbuf these days.).

65bb491 (Add the ability to prefix something to the pathname to
"checkout-cache.c", 2005-04-21) does the same to checkout-cache.c
to grab MAXPATHLEN.

bb233d6 (Add support for a "GIT_INDEX_FILE" environment variable.,
2005-04-21) moves these two inclusions to cache.h; removing it
bteaks compilation due to lack of MAXPATHLEN, ULONG_MAX, etc.,

I didn't check what else sys/parms.h was accicdentally slurping into
the compilation, but ULONG_MAX is what we explicitly ask for by
including either inttypes or stdint these days.

Later 4050c0d (Clean up compatibility definitions., 2005-12-05)
further consolidated the headers by moving inclusion around.  This
commit did not audit unused headers.

I have this suspicion that nobody would notice if we simply stopped
including the header.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/4] Support builds when sys/param.h is missing
  2012-12-14 23:41 ` Junio C Hamano
@ 2012-12-15  2:46   ` David Michael
  2012-12-15 17:53     ` Junio C Hamano
  0 siblings, 1 reply; 4+ messages in thread
From: David Michael @ 2012-12-15  2:46 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git@vger.kernel.org

Hi,

On Fri, Dec 14, 2012 at 6:41 PM, Junio C Hamano <gitster@pobox.com> wrote:
> I have this suspicion that nobody would notice if we simply stopped
> including the header.

While I'm not aware of any subtleties it could be causing on other
platforms, it does seem fine to drop sys/param.h on my test GNU/Linux
systems.

I can resend the series and just remove the include, if preferred.

Thanks.

David

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/4] Support builds when sys/param.h is missing
  2012-12-15  2:46   ` David Michael
@ 2012-12-15 17:53     ` Junio C Hamano
  0 siblings, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2012-12-15 17:53 UTC (permalink / raw)
  To: David Michael; +Cc: git@vger.kernel.org

David Michael <fedora.dm0@gmail.com> writes:

> On Fri, Dec 14, 2012 at 6:41 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> I have this suspicion that nobody would notice if we simply stopped
>> including the header.
>
> While I'm not aware of any subtleties it could be causing on other
> platforms, it does seem fine to drop sys/param.h on my test GNU/Linux
> systems.
>
> I can resend the series and just remove the include, if preferred.

I am sure the patch as posted is much safer, but I was hoping that
folks on non-Linux platforms may say "I tried to compile with the
include removed, and I get identical binaries from before".  Until
that happens, I would prefer queuing your patch as-is.

Thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-12-15 17:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-14 19:56 [PATCH 1/4] Support builds when sys/param.h is missing David Michael
2012-12-14 23:41 ` Junio C Hamano
2012-12-15  2:46   ` David Michael
2012-12-15 17:53     ` Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).