threads / patch / 2760

patchInitial AIX portability fixes.

Subject: [PATCH] Initial AIX portability fixes.

## tl;dr

5 messages between Dec 6, 2005 and Dec 7, 2005. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

Jason Riedy· Dec 6, 2005, 22:20 UTC · lore

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
Show changes to 3 files +7 −1

Makefile, convert-objects.c, mailinfo.c

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· Dec 6, 2005, 23:58 UTC · re: Jason Riedy · lore

Re: [PATCH] Initial AIX portability fixes.

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· Dec 7, 2005, 00:07 UTC · re: Johannes Schindelin · lore

Re: [PATCH] Initial AIX portability fixes.

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· Dec 7, 2005, 00:12 UTC · re: Jason Riedy · lore

Re: [PATCH] Initial AIX portability fixes.

Jason Riedy <ejr@EECS.Berkeley.EDU> writes:
Show 9 quoted lines
> 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.
Junio C Hamano· Dec 7, 2005, 00:08 UTC · re: Johannes Schindelin · lore

Re: [PATCH] Initial AIX portability fixes.

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 15 quoted lines
> 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.

← back to recent threads