# [PATCH] Initial AIX portability fixes.

5 messages from 2005-12-06 to 2005-12-07. Participants: Jason Riedy, Johannes Schindelin, Junio C Hamano.
Thread: https://gitlist.dev/t/2760

## Jason Riedy, 2005-12-06 22:20

Subject: [PATCH] Initial AIX portability fixes.
Message-ID: <20493.1133907616@lotus.CS.Berkeley.EDU>
URL: https://gitlist.dev/e/20493.1133907616%40lotus.CS.Berkeley.EDU

```

Added an AIX clause in the Makefile; that clause likely
will be wrong for any AIX pre-5.2, but I can only test
on 5.3.  mailinfo.c was missing the compat header file,
and convert-objects.c needs to define a specific
_XOPEN_SOURCE as well as _XOPEN_SOURCE_EXTENDED.

Signed-off-by: E. Jason Riedy <ejr@cs.berkeley.edu>

---

 Makefile          |    4 ++++
 convert-objects.c |    3 ++-
 mailinfo.c        |    1 +
 3 files changed, 7 insertions(+), 1 deletions(-)

54b8c282e017b246612b94bcbf5b88ab39c042a0
diff --git a/Makefile b/Makefile
index 425c519..01b6643 100644
--- a/Makefile
+++ b/Makefile
@@ -243,6 +243,10 @@ 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),AIX)
+	NO_STRCASESTR=YesPlease
+	NEEDS_LIBICONV=YesPlease
+endif
 ifneq (,$(findstring arm,$(uname_M)))
 	ARM_SHA1 = YesPlease
 endif
diff --git a/convert-objects.c b/convert-objects.c
index d78a8b4..b49bce2 100644
--- a/convert-objects.c
+++ b/convert-objects.c
@@ -1,4 +1,5 @@
-#define _XOPEN_SOURCE /* glibc2 needs this */
+#define _XOPEN_SOURCE 500 /* glibc2 and AIX 5.3L need this */
+#define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */
 #include <time.h>
 #include "cache.h"
 
diff --git a/mailinfo.c b/mailinfo.c
index 3b97a89..d4b4163 100644
--- a/mailinfo.c
+++ b/mailinfo.c
@@ -8,6 +8,7 @@
 #include <string.h>
 #include <ctype.h>
 #include <iconv.h>
+#include "git-compat-util.h"
 #include "cache.h"
 
 static FILE *cmitmsg, *patchfile;
-- 
0.99.9.GIT

```

## Johannes Schindelin, 2005-12-06 23:58

Subject: Re: [PATCH] Initial AIX portability fixes.
Message-ID: <Pine.LNX.4.63.0512070055430.5888@wbgn013.biozentrum.uni-wuerzburg.de>
URL: https://gitlist.dev/e/Pine.LNX.4.63.0512070055430.5888%40wbgn013.biozentrum.uni-wuerzburg.de
In-Reply-To: <20493.1133907616@lotus.CS.Berkeley.EDU>

```
Hi,

On Tue, 6 Dec 2005, Jason Riedy wrote:

> -#define _XOPEN_SOURCE /* glibc2 needs this */
> +#define _XOPEN_SOURCE 500 /* glibc2 and AIX 5.3L need this */
> +#define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */

Why not enclose the #define in #ifndef/#endif, and do the real magic in 
the Makefile? Within the AIX clause:

	ALL_CFLAGS += -D_XOPEN_SOURCE=500 -XOPEN_SOURCE_EXTENDED=1

This way the source does not get cluttered with platform dependent 
defines.

Hth,
Dscho

```

## Jason Riedy, 2005-12-07 00:07

Subject: Re: [PATCH] Initial AIX portability fixes.
Message-ID: <21075.1133914036@lotus.CS.Berkeley.EDU>
URL: https://gitlist.dev/e/21075.1133914036%40lotus.CS.Berkeley.EDU
In-Reply-To: <Pine.LNX.4.63.0512070055430.5888@wbgn013.biozentrum.uni-wuerzburg.de>

```
And Johannes Schindelin writes:
 - Why not enclose the #define in #ifndef/#endif, and do the real magic in 
 - the Makefile? Within the AIX clause:
 - 	ALL_CFLAGS += -D_XOPEN_SOURCE=500 -XOPEN_SOURCE_EXTENDED=1

Because other files do _not_ compile when given those options.
I'm going for minimal changes to the existing structure; the
#define for glibc2 has been there a long, long time.  Yes, it
probably can be done better, but these are 1.0rc versions...

Jason

```

## Junio C Hamano, 2005-12-07 00:08

Subject: Re: [PATCH] Initial AIX portability fixes.
Message-ID: <7vzmndzs3u.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vzmndzs3u.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <Pine.LNX.4.63.0512070055430.5888@wbgn013.biozentrum.uni-wuerzburg.de>

```
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> Hi,
>
> On Tue, 6 Dec 2005, Jason Riedy wrote:
>
>> -#define _XOPEN_SOURCE /* glibc2 needs this */
>> +#define _XOPEN_SOURCE 500 /* glibc2 and AIX 5.3L need this */
>> +#define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */
>
> Why not enclose the #define in #ifndef/#endif, and do the real magic in 
> the Makefile? Within the AIX clause:
>
> 	ALL_CFLAGS += -D_XOPEN_SOURCE=500 -XOPEN_SOURCE_EXTENDED=1
>
> This way the source does not get cluttered with platform dependent 
> defines.

True but the original convert-objects.c defines _XOPEN_SOURCE on
all platforms not just AIX.

```

## Junio C Hamano, 2005-12-07 00:12

Subject: Re: [PATCH] Initial AIX portability fixes.
Message-ID: <7vvey1zrwb.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vvey1zrwb.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <21075.1133914036@lotus.CS.Berkeley.EDU>

```
Jason Riedy <ejr@EECS.Berkeley.EDU> writes:

> And Johannes Schindelin writes:
>  - Why not enclose the #define in #ifndef/#endif, and do the real magic in 
>  - the Makefile? Within the AIX clause:
>  - 	ALL_CFLAGS += -D_XOPEN_SOURCE=500 -XOPEN_SOURCE_EXTENDED=1
>
> Because other files do _not_ compile when given those options.
> I'm going for minimal changes to the existing structure; the
> #define for glibc2 has been there a long, long time.  Yes, it
> probably can be done better, but these are 1.0rc versions...

I agree with your approach of least impact for now.  Thanks.

```
