* [PATCH] Build on Debian GNU/Hurd @ 2006-09-15 12:58 Gerrit Pape 2006-09-15 15:47 ` Martin Waitz 2006-09-16 5:35 ` Junio C Hamano 0 siblings, 2 replies; 7+ messages in thread From: Gerrit Pape @ 2006-09-15 12:58 UTC (permalink / raw) To: git Patch from Cyril Brulebois to make the build process detect and support the Debian GNU/Hurd architecture, see http://bugs.debian.org/379841 Signed-off-by: Gerrit Pape <pape@smarden.org> --- Makefile | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/Makefile b/Makefile index 7b3114f..6e36eff 100644 --- a/Makefile +++ b/Makefile @@ -383,6 +383,11 @@ ifeq ($(uname_S),NetBSD) ALL_CFLAGS += -I/usr/pkg/include ALL_LDFLAGS += -L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib endif +ifeq ($(uname_S),GNU) + # GNU stands for GNU/Hurd + NO_STRLCPY = YesPlease + ALL_CFLAGS += -DPATH_MAX=4096 +endif ifeq ($(uname_S),AIX) NO_STRCASESTR=YesPlease NO_STRLCPY = YesPlease -- 1.4.2.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Build on Debian GNU/Hurd 2006-09-15 12:58 [PATCH] Build on Debian GNU/Hurd Gerrit Pape @ 2006-09-15 15:47 ` Martin Waitz 2006-09-16 5:35 ` Junio C Hamano 1 sibling, 0 replies; 7+ messages in thread From: Martin Waitz @ 2006-09-15 15:47 UTC (permalink / raw) To: git [-- Attachment #1: Type: text/plain, Size: 316 bytes --] hoi :) On Fri, Sep 15, 2006 at 12:58:46PM +0000, Gerrit Pape wrote: > +ifeq ($(uname_S),GNU) > + # GNU stands for GNU/Hurd > + NO_STRLCPY = YesPlease > + ALL_CFLAGS += -DPATH_MAX=4096 > +endif I guess this arbitrary limit will upset all the Hurd enthusiasts... ;-) -- Martin Waitz [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Build on Debian GNU/Hurd 2006-09-15 12:58 [PATCH] Build on Debian GNU/Hurd Gerrit Pape 2006-09-15 15:47 ` Martin Waitz @ 2006-09-16 5:35 ` Junio C Hamano 2006-09-19 17:03 ` Gerrit Pape 1 sibling, 1 reply; 7+ messages in thread From: Junio C Hamano @ 2006-09-16 5:35 UTC (permalink / raw) To: Gerrit Pape; +Cc: git Gerrit Pape <pape@smarden.org> writes: > Patch from Cyril Brulebois to make the build process detect and support the > Debian GNU/Hurd architecture, see > http://bugs.debian.org/379841 > > Signed-off-by: Gerrit Pape <pape@smarden.org> > > +ifeq ($(uname_S),GNU) > + # GNU stands for GNU/Hurd > + NO_STRLCPY = YesPlease > + ALL_CFLAGS += -DPATH_MAX=4096 > +endif Two questions come to mind. (1) Does GNU stand for GNU/Hurd and nobody else? (2) Does everybody else have PATH_MAX? Adding NO_STRLCPY I do not have much problems with, but something like the attached may be cleaner to deal with PATH_MAX; of course now there is an issue of what the appropriate value for that symbol should be. Would including git-compat-util.h in builtin.h break somebody? -- >8 -- Define fallback PATH_MAX on systems that do not define one in <limits.h> Notably GNU/Hurd, as reported by Gerrit Pape. Signed-off-by: Junio C Hamano <junkio@cox.net> --- diff --git a/git-compat-util.h b/git-compat-util.h index 552b8ec..0272d04 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -26,6 +26,13 @@ #include <netinet/in.h> #include <sys/types.h> #include <dirent.h> +/* On most systems <limits.h> would have given us this, but + * not on some systems (e.g. GNU/Hurd). + */ +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif + #ifdef __GNUC__ #define NORETURN __attribute__((__noreturn__)) #else diff --git a/builtin.h b/builtin.h index 34ed7b9..1d41f83 100644 --- a/builtin.h +++ b/builtin.h @@ -1,8 +1,7 @@ #ifndef BUILTIN_H #define BUILTIN_H -#include <stdio.h> -#include <limits.h> +#include "git-compat-util.h" extern const char git_version_string[]; extern const char git_usage_string[]; ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Build on Debian GNU/Hurd 2006-09-16 5:35 ` Junio C Hamano @ 2006-09-19 17:03 ` Gerrit Pape 2006-09-21 17:37 ` Ramsay Jones 0 siblings, 1 reply; 7+ messages in thread From: Gerrit Pape @ 2006-09-19 17:03 UTC (permalink / raw) To: git On Fri, Sep 15, 2006 at 10:35:57PM -0700, Junio C Hamano wrote: > Gerrit Pape <pape@smarden.org> writes: > > Patch from Cyril Brulebois to make the build process detect and support the > > Debian GNU/Hurd architecture, see > > http://bugs.debian.org/379841 > > > > Signed-off-by: Gerrit Pape <pape@smarden.org> > > > > +ifeq ($(uname_S),GNU) > > + # GNU stands for GNU/Hurd > > + NO_STRLCPY = YesPlease > > + ALL_CFLAGS += -DPATH_MAX=4096 > > +endif > > Two questions come to mind. (1) Does GNU stand for GNU/Hurd and > nobody else? (2) Does everybody else have PATH_MAX? I'm not that familiar with the Hurd, but (1) seems to be so according to http://www.gnu.org/software/hurd/hurd.html; it looks like either GNU or GNU/Hurd is used. (2) For IRIX64 PATH_MAX also is defined explicitly git$ grep -B7 -A3 PATH_MAX Makefile ifeq ($(uname_S),IRIX64) NO_IPV6=YesPlease NO_SETENV=YesPlease NO_STRCASESTR=YesPlease NO_STRLCPY = YesPlease NO_SOCKADDR_STORAGE=YesPlease SHELL_PATH=/usr/gnu/bin/bash ALL_CFLAGS += -DPATH_MAX=1024 # for now, build 32-bit version ALL_LDFLAGS += -L/usr/lib32 endif that's where I got it from. > Adding NO_STRLCPY I do not have much problems with, but > something like the attached may be cleaner to deal with PATH_MAX; > of course now there is an issue of what the appropriate value > for that symbol should be. It's been so before it seems, I'm not sure why it changed. http://www.debian.org/ports/hurd/hurd-devel-debian says one cannot expect PATH_MAX to be defined on a POSIX system, so defining it conditionally IMHO is the right thing. git$ PAGER=cat git log -p 579d1fb..8e76483 commit 8e76483ce0ce256b01345abc4ca97b1f94aed354 Author: Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk> Date: Sun Jul 30 17:00:40 2006 +0100 Fix header breakage due to redefining PATH_MAX. The header builtin.h was, incorrectly, redefining PATH_MAX which causes a header order dependency in builtin-write-tree.c. The fix is to simply include <limits.h> directly to obtain the correct definition of PATH_MAX. Signed-off-by: Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <junkio@cox.net> diff --git a/builtin.h b/builtin.h index 1c8637a..88c4d84 100644 --- a/builtin.h +++ b/builtin.h @@ -2,10 +2,7 @@ #ifndef BUILTIN_H #define BUILTIN_H #include <stdio.h> - -#ifndef PATH_MAX -# define PATH_MAX 4096 -#endif +#include <limits.h> extern const char git_version_string[]; HTH, Gerrit. ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH] Build on Debian GNU/Hurd 2006-09-19 17:03 ` Gerrit Pape @ 2006-09-21 17:37 ` Ramsay Jones 2006-09-21 17:53 ` Linus Torvalds 0 siblings, 1 reply; 7+ messages in thread From: Ramsay Jones @ 2006-09-21 17:37 UTC (permalink / raw) To: Gerrit Pape; +Cc: git On Tues Sept 19, 2006 at 18:04, Gerrit Pape wrote: > On Fri, Sep 15, 2006 at 10:35:57PM -0700, Junio C Hamano wrote: > > Gerrit Pape <pape@smarden.org> writes: > > > Patch from Cyril Brulebois to make the build process detect > and support the > > > Debian GNU/Hurd architecture, see > > > http://bugs.debian.org/379841 > > > > > > Signed-off-by: Gerrit Pape <pape@smarden.org> > > > > > > +ifeq ($(uname_S),GNU) > > > + # GNU stands for GNU/Hurd > > > + NO_STRLCPY = YesPlease > > > + ALL_CFLAGS += -DPATH_MAX=4096 > > > +endif > > > > Two questions come to mind. (1) Does GNU stand for GNU/Hurd and > > nobody else? (2) Does everybody else have PATH_MAX? > > I'm not that familiar with the Hurd, but (1) seems to be so according > to http://www.gnu.org/software/hurd/hurd.html; it looks like either GNU > or GNU/Hurd is used. (2) For IRIX64 PATH_MAX also is defined explicitly > > git$ grep -B7 -A3 PATH_MAX Makefile > ifeq ($(uname_S),IRIX64) > NO_IPV6=YesPlease > NO_SETENV=YesPlease > NO_STRCASESTR=YesPlease > NO_STRLCPY = YesPlease > NO_SOCKADDR_STORAGE=YesPlease > SHELL_PATH=/usr/gnu/bin/bash > ALL_CFLAGS += -DPATH_MAX=1024 > # for now, build 32-bit version > ALL_LDFLAGS += -L/usr/lib32 > endif > > that's where I got it from. > > > Adding NO_STRLCPY I do not have much problems with, but > > something like the attached may be cleaner to deal with PATH_MAX; > > of course now there is an issue of what the appropriate value > > for that symbol should be. > > It's been so before it seems, I'm not sure why it changed. Because without the change (below), git would not compile for me ;-) Indeed it would not compile for any system that: 1) defines PATH_MAX in limits.h AND 2) conditionally defines PATH_MAX to a different value. (Actually, it does not have to be a different value, just a different token sequence, including the presence/absence of whitespace/comments) Note that other systems use a different "PATH_MAX value", (a value of 1024 is common), and in particular, earlier version of linux use a value of 4095. > http://www.debian.org/ports/hurd/hurd-devel-debian says one cannot > expect PATH_MAX to be defined on a POSIX system, Correct. Although PATH_MAX is a POSIX symbol, it is not required to be defined; it *may* be defined in limits.h and, if so, must have a value of at least 256. The symbol _PC_PATH_MAX *may* also be defined and, if so, may be used in a call to pathconf() to *maybe* determine a "PATH_MAX value" at runtime; it can return a value, indicate no limit, or an "indeterminate" limit. ... so defining it > conditionally IMHO is the right thing. IMHO, setting the value in the Makefile, for systems that don't define PATH_MAX, is a much better solution. In fact, that is what I thought was already being done. All the best, Ramsay > > git$ PAGER=cat git log -p 579d1fb..8e76483 > commit 8e76483ce0ce256b01345abc4ca97b1f94aed354 > Author: Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk> > Date: Sun Jul 30 17:00:40 2006 +0100 > > Fix header breakage due to redefining PATH_MAX. > > The header builtin.h was, incorrectly, redefining PATH_MAX which > causes a header order dependency in builtin-write-tree.c. The fix > is to simply include <limits.h> directly to obtain the correct > definition of PATH_MAX. > > Signed-off-by: Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk> > Signed-off-by: Junio C Hamano <junkio@cox.net> > > diff --git a/builtin.h b/builtin.h > index 1c8637a..88c4d84 100644 > --- a/builtin.h > +++ b/builtin.h > @@ -2,10 +2,7 @@ #ifndef BUILTIN_H > #define BUILTIN_H > > #include <stdio.h> > - > -#ifndef PATH_MAX > -# define PATH_MAX 4096 > -#endif > +#include <limits.h> > > extern const char git_version_string[]; > ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH] Build on Debian GNU/Hurd 2006-09-21 17:37 ` Ramsay Jones @ 2006-09-21 17:53 ` Linus Torvalds 2006-09-22 17:22 ` Ramsay Jones 0 siblings, 1 reply; 7+ messages in thread From: Linus Torvalds @ 2006-09-21 17:53 UTC (permalink / raw) To: Ramsay Jones; +Cc: Gerrit Pape, git On Thu, 21 Sep 2006, Ramsay Jones wrote: > > IMHO, setting the value in the Makefile, for systems that don't define > PATH_MAX, is a much better solution. In fact, that is what I thought was > already being done. Well, considering that we _can_ test defines, why not just do it automatically. In other words, instead of this patch: > > - > > -#ifndef PATH_MAX > > -# define PATH_MAX 4096 > > -#endif > > +#include <limits.h> Just make the code read #include <limits.h> /* * Insane systems don't have a fixed PATH_MAX, it's POSIX * compliant but not worth worrying about, so if we didn't * get PATH_MAX from <limits.h>, just make up our own */ #ifndef PATH_MAX # define PATH_MAX 4096 #endif and after that we can just ignore the issue forever more. The thing is, it's not like we even really _care_ what PATH_MAX is all that deeply. We just want to get some random value that is reasonable. Linus ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH] Build on Debian GNU/Hurd 2006-09-21 17:53 ` Linus Torvalds @ 2006-09-22 17:22 ` Ramsay Jones 0 siblings, 0 replies; 7+ messages in thread From: Ramsay Jones @ 2006-09-22 17:22 UTC (permalink / raw) To: Linus Torvalds; +Cc: Gerrit Pape, git On Thurs Sept 21 at 18:54, Linus Torvalds wrote: > On Thu, 21 Sep 2006, Ramsay Jones wrote: > > > > IMHO, setting the value in the Makefile, for systems that don't define > > PATH_MAX, is a much better solution. In fact, that is what I thought was > > already being done. > > Well, considering that we _can_ test defines, why not just do it > automatically. > > In other words, instead of this patch: > > > > - > > > -#ifndef PATH_MAX > > > -# define PATH_MAX 4096 > > > -#endif > > > +#include <limits.h> > > Just make the code read > > #include <limits.h> > > /* > * Insane systems don't have a fixed PATH_MAX, it's POSIX > * compliant but not worth worrying about, so if we didn't > * get PATH_MAX from <limits.h>, just make up our own > */ > #ifndef PATH_MAX > # define PATH_MAX 4096 > #endif > > and after that we can just ignore the issue forever more. Yes, that would certainly be a solution. (Of course, setting the value in the Makefile would still be a better solution ;-) However, ... > > The thing is, it's not like we even really _care_ what PATH_MAX is all > that deeply. We just want to get some random value that is reasonable. > > Linus > ... given the above, a better solution is: don't use PATH_MAX. Simply #define a new symbol in a suitable git header file and globally replace uses of PATH_MAX with the new symbol. Job done. All the best, Ramsay ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2006-09-22 17:22 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-09-15 12:58 [PATCH] Build on Debian GNU/Hurd Gerrit Pape 2006-09-15 15:47 ` Martin Waitz 2006-09-16 5:35 ` Junio C Hamano 2006-09-19 17:03 ` Gerrit Pape 2006-09-21 17:37 ` Ramsay Jones 2006-09-21 17:53 ` Linus Torvalds 2006-09-22 17:22 ` Ramsay Jones
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 NNTP newsgroup(s).