threads / patch / 2473

patchBuilding git on NetBSD

Subject: [PATCH] Building git on NetBSD

## tl;dr

5 messages between Nov 12, 2005 and Nov 13, 2005. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

walt· Nov 12, 2005, 15:12 UTC · lore
This gets git going on NetBSD:

--- Makefile.orig 2005-11-12 05:06:55.000000000 -0800 +++ Makefile

Show changes to diff +4 −0
@@ -212,6 +212,10 @@ ifeq ($(uname_S),OpenBSD)
 	NEEDS_LIBICONV = YesPlease
 	ALL_CFLAGS += -I/usr/local/include -L/usr/local/lib
 endif
+ifeq ($(uname_S),NetBSD)
+	NEEDS_LIBICONV = YesPlease
+	ALL_CFLAGS += -I/usr/pkg/include -L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib
+endif
 ifneq (,$(findstring arm,$(uname_M)))
 	ARM_SHA1 = YesPlease
 endif

I'm no software developer so I'm not sure about the syntax of the -rpath
flag.  It does what I wanted, but it results in lots of warnings about
not being used because no linking is taking place.  Should this maybe
go in LDFLAGS instead of CFLAGS?  Dunno.

Anyway, I actually used cg-clone on NetBSD to clone the git repository,
and I'll try to get the pkgsrc guys interested in creating packages for
cogito and git.

Oh, one person was concerned about the cogito scripts running on the
NetBSD version of sh, which isn't bash.  So far I've tried cg-clone,
cg-update, and gitk, and all worked just like on linux.  Any chance
that some of the other scripts may not work as well on a non-bash sh?
Andreas Ericsson· Nov 12, 2005, 15:32 UTC · re: walt · lore

Re: [PATCH] Building git on NetBSD

walt wrote:
Show 6 quoted lines
> 
> I'm no software developer so I'm not sure about the syntax of the -rpath
> flag.  It does what I wanted, but it results in lots of warnings about
> not being used because no linking is taking place.  Should this maybe
> go in LDFLAGS instead of CFLAGS?  Dunno.
> 

Yes it should. Currently the git makefile doesn't distinguish between CFLAGS and LDFLAGS which results in a fair few warnings.

Show 5 quoted lines
> Oh, one person was concerned about the cogito scripts running on the
> NetBSD version of sh, which isn't bash.  So far I've tried cg-clone,
> cg-update, and gitk, and all worked just like on linux.  Any chance
> that some of the other scripts may not work as well on a non-bash sh?
> 
gitk is in tcl so I'd be surprised if that didn't work.

I don't think there's been a whole lot of testing for other shells but the friendly folks on this list usually takes care of fixing such things fairly quickly so long as someone tells them where to look or, preferrably, sends a patch that does the trick.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Junio C Hamano· Nov 13, 2005, 02:41 UTC · re: Andreas Ericsson · lore

Re: [PATCH] Building git on NetBSD

Andreas Ericsson <ae@op5.se> writes:
> Yes it should. Currently the git makefile doesn't distinguish between 
> CFLAGS and LDFLAGS which results in a fair few warnings.

Very well. Maybe LDFLAGS and ALL_LDFLAGS pair to parallel CFLAGS and ALL_CFLAGS (the former is for the end user to override from make command line, the latter is for Makefile to augment and use)?

Junio C Hamano· Nov 13, 2005, 09:44 UTC · re: Junio C Hamano · lore

Re: [PATCH] Building git on NetBSD

Junio C Hamano <junkio@cox.net> writes:
Show 9 quoted lines
> Andreas Ericsson <ae@op5.se> writes:
>
>> Yes it should. Currently the git makefile doesn't distinguish between 
>> CFLAGS and LDFLAGS which results in a fair few warnings.
>
> Very well.  Maybe LDFLAGS and ALL_LDFLAGS pair to parallel
> CFLAGS and ALL_CFLAGS (the former is for the end user to
> override from make command line, the latter is for Makefile to
> augment and use)?
Does this look OK?
-- >8 -- cut here -- >8 --
Show changes to Makefile +20 −9
diff --git a/Makefile b/Makefile
index b75cb13..7713c05 100644
--- a/Makefile
+++ b/Makefile
@@ -52,10 +52,12 @@
 
 GIT_VERSION = 0.99.9.GIT
 
-# CFLAGS is for the users to override from the command line.
+# CFLAGS and LDFLAGS are for the users to override from the command line.
 
 CFLAGS = -g -O2 -Wall
+LDFLAGS =
 ALL_CFLAGS = $(CFLAGS)
+ALL_LDFLAGS = $(LDFLAGS)
 
 prefix = $(HOME)
 bindir = $(prefix)/bin
@@ -187,9 +189,11 @@ ifeq ($(uname_S),Darwin)
 	NEEDS_SSL_WITH_CRYPTO = YesPlease
 	NEEDS_LIBICONV = YesPlease
 	## fink
-	ALL_CFLAGS += -I/sw/include -L/sw/lib
+	ALL_CFLAGS += -I/sw/include
+	ALL_LDFLAGS += -L/sw/lib
 	## darwinports
-	ALL_CFLAGS += -I/opt/local/include -L/opt/local/lib
+	ALL_CFLAGS += -I/opt/local/include
+	ALL_LDFLAGS += -L/opt/local/lib
 endif
 ifeq ($(uname_S),SunOS)
 	NEEDS_SOCKET = YesPlease
@@ -211,7 +215,13 @@ endif
 ifeq ($(uname_S),OpenBSD)
 	NO_STRCASESTR = YesPlease
 	NEEDS_LIBICONV = YesPlease
-	ALL_CFLAGS += -I/usr/local/include -L/usr/local/lib
+	ALL_CFLAGS += -I/usr/local/include
+	ALL_LDFLAGS += -L/usr/local/lib
+endif
+ifeq ($(uname_S),NetBSD)
+	NEEDS_LIBICONV = YesPlease
+	ALL_CFLAGS += -I/usr/pkg/include
+	ALL_LDFLAGS += -L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib
 endif
 ifneq (,$(findstring arm,$(uname_M)))
 	ARM_SHA1 = YesPlease
@@ -221,7 +231,7 @@ endif
 
 ifndef NO_CURL
 	ifdef CURLDIR
-		# This is still problematic -- gcc does not want -R.
+		# This is still problematic -- gcc does not always want -R.
 		ALL_CFLAGS += -I$(CURLDIR)/include
 		CURL_LIBCURL = -L$(CURLDIR)/lib -R$(CURLDIR)/lib -lcurl
 	else
@@ -369,12 +379,13 @@ git-cherry-pick: git-revert
 	$(CC) -o $*.o -c $(ALL_CFLAGS) $<
 
 git-%$X: %.o $(LIB_FILE)
-	$(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
+	$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
 
 git-mailinfo$X : SIMPLE_LIB += $(LIB_4_ICONV)
 $(SIMPLE_PROGRAMS) : $(LIB_FILE)
 $(SIMPLE_PROGRAMS) : git-%$X : %.o
-	$(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIB_FILE) $(SIMPLE_LIB)
+	$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
+		$(LIB_FILE) $(SIMPLE_LIB)
 
 git-http-fetch$X: fetch.o
 git-local-fetch$X: fetch.o
@@ -408,10 +419,10 @@ test: all
 	$(MAKE) -C t/ all
 
 test-date$X: test-date.c date.o ctype.o
-	$(CC) $(ALL_CFLAGS) -o $@ test-date.c date.o ctype.o
+	$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) test-date.c date.o ctype.o
 
 test-delta$X: test-delta.c diff-delta.o patch-delta.o
-	$(CC) $(ALL_CFLAGS) -o $@ $^
+	$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $^
 
 check:
 	for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i; done
wa1ter@myrealbox.com· Nov 13, 2005, 22:51 UTC · re: Junio C Hamano · lore

Re: [PATCH] Building git on NetBSD

On Sun, 13 Nov 2005, Junio C Hamano wrote:
Show 8 quoted lines
> Date: Sun, 13 Nov 2005 01:44:37 -0800
> From: Junio C Hamano <junkio@cox.net>
> Cc: git@vger.kernel.org
> Newsgroups: gmane.comp.version-control.git
> Subject: Re: [PATCH] Building git on NetBSD
>
> Junio C Hamano <junkio@cox.net> writes:
>
Show 6 quoted lines
> > Very well.  Maybe LDFLAGS and ALL_LDFLAGS pair to parallel
> > CFLAGS and ALL_CFLAGS (the former is for the end user to
> > override from make command line, the latter is for Makefile to
> > augment and use)?
>
> Does this look OK?
<patch snipped>

Yes, git now compiles on NetBSD without modification and with no warnings about unused linker flags. Thanks!

← back to recent threads