* strbuf name conflict on Mac OS
@ 2009-03-31 20:17 Joshua Juran
2009-03-31 20:24 ` Johannes Schindelin
2009-03-31 20:26 ` Brian Gernhardt
0 siblings, 2 replies; 5+ messages in thread
From: Joshua Juran @ 2009-03-31 20:17 UTC (permalink / raw)
To: git
Apple's OpenTransport.h from Universal Interfaces 3.4.2 defines its
own struct strbuf, with which git's collides.
Since OpenTransport.h also defines some POSIX constants (such as
O_NONBLOCK) as enums, it's necessary to include OpenTransport.h from
fcntl.h (and other affected headers) so as to control the order in
which the definitions appear in the translation unit.
This is the minimal patch:
diff --git a/strbuf.h b/strbuf.h
index 89bd36e..b8f380e 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -40,6 +40,8 @@
#include <assert.h>
+#define strbuf git_strbuf
+
extern char strbuf_slopbuf[];
struct strbuf {
size_t alloc;
Josh
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: strbuf name conflict on Mac OS
2009-03-31 20:17 strbuf name conflict on Mac OS Joshua Juran
@ 2009-03-31 20:24 ` Johannes Schindelin
2009-03-31 21:36 ` Jay Soffian
2009-03-31 20:26 ` Brian Gernhardt
1 sibling, 1 reply; 5+ messages in thread
From: Johannes Schindelin @ 2009-03-31 20:24 UTC (permalink / raw)
To: Joshua Juran; +Cc: git
Hi,
On Tue, 31 Mar 2009, Joshua Juran wrote:
> Apple's OpenTransport.h from Universal Interfaces 3.4.2 defines its own struct
> strbuf, with which git's collides.
>
> Since OpenTransport.h also defines some POSIX constants (such as O_NONBLOCK)
> as enums, it's necessary to include OpenTransport.h from fcntl.h (and other
> affected headers) so as to control the order in which the definitions appear
> in the translation unit.
>
> This is the minimal patch:
>
>
> diff --git a/strbuf.h b/strbuf.h
> index 89bd36e..b8f380e 100644
> --- a/strbuf.h
> +++ b/strbuf.h
> @@ -40,6 +40,8 @@
>
> #include <assert.h>
>
> +#define strbuf git_strbuf
> +
> extern char strbuf_slopbuf[];
> struct strbuf {
> size_t alloc;
How about this instead?
-- snip --
diff --git a/Makefile b/Makefile
index 32d6782..370c2d9 100644
--- a/Makefile
+++ b/Makefile
@@ -659,6 +659,7 @@ ifeq ($(uname_S),SCO_SV)
TAR = gtar
endif
ifeq ($(uname_S),Darwin)
+ BASIC_CFLAGS += -Dstrbuf=git_strbuf
NEEDS_SSL_WITH_CRYPTO = YesPlease
NEEDS_LIBICONV = YesPlease
ifeq ($(shell expr "$(uname_R)" : '[15678]\.'),2)
-- snap --
No need to let other platforms (and the C source) suffer...
Ciao,
Dscho
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: strbuf name conflict on Mac OS
2009-03-31 20:17 strbuf name conflict on Mac OS Joshua Juran
2009-03-31 20:24 ` Johannes Schindelin
@ 2009-03-31 20:26 ` Brian Gernhardt
1 sibling, 0 replies; 5+ messages in thread
From: Brian Gernhardt @ 2009-03-31 20:26 UTC (permalink / raw)
To: Joshua Juran; +Cc: git
On Mar 31, 2009, at 4:17 PM, Joshua Juran wrote:
> Apple's OpenTransport.h from Universal Interfaces 3.4.2 defines its
> own struct strbuf, with which git's collides.
>
> Since OpenTransport.h also defines some POSIX constants (such as
> O_NONBLOCK) as enums, it's necessary to include OpenTransport.h from
> fcntl.h (and other affected headers) so as to control the order in
> which the definitions appear in the translation unit.
Just to be clear, this is related to your work on LAMP under Classic
and not OS X, correct? If so, perhaps you need to create a compat/
classic_mac.h file that's included (when the correct #defines are
seen) from git-compat-util.h in the manner of compat/
{cygwin,mingw}.h. I'm assuming that this naming conflict is not the
only such you'll find and it's better to keep platform specific tweaks
to a single place when possible.
~~ Brian
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: strbuf name conflict on Mac OS
2009-03-31 20:24 ` Johannes Schindelin
@ 2009-03-31 21:36 ` Jay Soffian
2009-03-31 21:57 ` Joshua Juran
0 siblings, 1 reply; 5+ messages in thread
From: Jay Soffian @ 2009-03-31 21:36 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Joshua Juran, git
On Tue, Mar 31, 2009 at 4:24 PM, Johannes Schindelin
<Johannes.Schindelin@gmx.de> wrote:
> How about this instead?
> ifeq ($(uname_S),Darwin)
> + BASIC_CFLAGS += -Dstrbuf=git_strbuf
Heh, wrong platform. See Joshua's other message about porting git to
Mac OS (not Mac OS X). :-)
j.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: strbuf name conflict on Mac OS
2009-03-31 21:36 ` Jay Soffian
@ 2009-03-31 21:57 ` Joshua Juran
0 siblings, 0 replies; 5+ messages in thread
From: Joshua Juran @ 2009-03-31 21:57 UTC (permalink / raw)
To: Jay Soffian; +Cc: Johannes Schindelin, git
On Mar 31, 2009, at 2:36 PM, Jay Soffian wrote:
> On Tue, Mar 31, 2009 at 4:24 PM, Johannes Schindelin
> <Johannes.Schindelin@gmx.de> wrote:
>> How about this instead?
>> ifeq ($(uname_S),Darwin)
>> + BASIC_CFLAGS += -Dstrbuf=git_strbuf
>
> Heh, wrong platform. See Joshua's other message about porting git to
> Mac OS (not Mac OS X). :-)
That, and I'm not using make. There's no need for this to be any
more painful than necessary. :-)
I've added compat/lamp.h, following Brian's suggestion.
Josh
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-03-31 21:59 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-31 20:17 strbuf name conflict on Mac OS Joshua Juran
2009-03-31 20:24 ` Johannes Schindelin
2009-03-31 21:36 ` Jay Soffian
2009-03-31 21:57 ` Joshua Juran
2009-03-31 20:26 ` Brian Gernhardt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox