View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0013148CMakeCMakepublic2012-04-19 08:242012-09-03 16:01
ReporterJim Hague 
Assigned ToBrad King 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformPowerPCOSAIXOS Version5.2
Product VersionCMake-2-8 
Target VersionCMake 2.8.9Fixed in VersionCMake 2.8.9 
Summary0013148: Compiling cmake fails under xlc/xlC v6 in 2.8.8
Descriptionxlc v6 can't cope with:

1. 'inline' in archive_endian.h
2. A trailing ',' in enum definitions

The following patch gets cmake building.
Additional Informationchive_endian.h.orig ./Utilities/cmlibarchive/libarchive/archive_endian.h
--- ./Utilities/cmlibarchive/libarchive/archive_endian.h.orig 2012-04-19 10:14:59.000000000 +0100
+++ ./Utilities/cmlibarchive/libarchive/archive_endian.h 2012-04-19 10:16:40.000000000 +0100
@@ -45,7 +45,7 @@
  * - SGI MIPSpro
  * - Microsoft Visual C++ 6.0 (supposedly newer versions too)
  */
-#if defined(__WATCOMC__) || defined(__sgi) || defined(__hpux) || defined(__BORLANDC__)
+#if defined(__WATCOMC__) || defined(__sgi) || defined(__hpux) || defined(__BORLANDC__) || defined(_AIX)
 #define inline
 #elif defined(_MSC_VER) || defined(__osf__)
 #define inline __inline
--- ./Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c.orig 2012-04-19 10:17:22.000000000 +0100
+++ ./Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c 2012-04-19 10:18:17.000000000 +0100
@@ -197,7 +197,7 @@
        enum {
                NO = 0,
                BOOT_CATALOG,
- BOOT_IMAGE,
+ BOOT_IMAGE
        } boot;
 
        /*
@@ -850,7 +850,7 @@
        DIR_REC_VD, /* Stored in Volume Descriptor. */
        DIR_REC_SELF, /* Stored as Current Directory. */
        DIR_REC_PARENT, /* Stored as Parent Directory. */
- DIR_REC_NORMAL, /* Stored as Child. */
+ DIR_REC_NORMAL /* Stored as Child. */
 };
 
 /*
@@ -860,7 +860,7 @@
        VDC_STD,
        VDC_LOWERCASE,
        VDC_UCS2,
- VDC_UCS2_DIRECT,
+ VDC_UCS2_DIRECT
 };
 
 /*
@@ -897,7 +897,7 @@
 
 enum char_type {
        A_CHAR,
- D_CHAR,
+ D_CHAR
 };
 
 
@@ -3989,7 +3989,7 @@
        KEY_FLG,
        KEY_STR,
        KEY_INT,
- KEY_HEX,
+ KEY_HEX
 };
 static void
 set_option_info(struct archive_string *info, int *opt, const char *key,

TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0029236)
Brad King (manager)
2012-04-19 08:58

I'll apply these fixes, but for a platform to be officially supported it must have nightly testing so we can maintain support. Nightly testing results report to the dashboard:

 http://open.cdash.org/index.php?project=CMake [^]

See instructions here:

 http://www.cmake.org/Wiki/CMake/Git/Dashboard [^]

to set up a build.
(0029237)
Brad King (manager)
2012-04-19 08:59

The || defined(_AIX) test is too broad. We have testing on that platform that passes with newer compilers. It's only the ancient compiler that has trouble with "inline". We need a test against "__IBMC__". What is the value of this macro on XL v6?
(0029238)
Brad King (manager)
2012-04-19 09:02

I've applied the trailing "," part of the fix. Thanks:

 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a8995ebe [^]
(0029243)
Jim Hague (reporter)
2012-04-19 09:40

Thanks Brad. I did suspect _AIX was too broad, but lack access to anything more modern.

__IBMC__ is 600 on my compiler.

I'd love to set up a nightly test, but unfortunately I don't have access to any AIX machines that can see the public internet. :-(
(0029246)
Brad King (manager)
2012-04-19 09:48

Re 0013148:0029243: Thanks for the info. Does this patch work?

diff --git a/Utilities/cmlibarchive/libarchive/archive_endian.h b/Utilities/cmlibarchive/libarchive/archive_endian.h

index 1dd8536..c3c78b3 100644
--- a/Utilities/cmlibarchive/libarchive/archive_endian.h
+++ b/Utilities/cmlibarchive/libarchive/archive_endian.h
@@ -44,9 +44,12 @@
  * - Watcom C++ in C code.  (For any version?)
  * - SGI MIPSpro
  * - Microsoft Visual C++ 6.0 (supposedly newer versions too)
+ * - IBM VisualAge 6 (XL v6)
  */
 #if defined(__WATCOMC__) || defined(__sgi) || defined(__hpux) || defined(__BORLANDC__)
 #define        inline
+#elif defined(__IBMC__) && __IBMC__ < 700
+#define        inline
 #elif defined(_MSC_VER) || defined(__osf__)
 #define inline __inline
 #endif
(0029248)
Jim Hague (reporter)
2012-04-19 10:02

Yes, that patch works.
(0029249)
Brad King (manager)
2012-04-19 10:11

Thanks for testing! Applied:

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=09a91c6d [^]
(0030867)
David Cole (manager)
2012-09-03 16:01

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2012-04-19 08:24 Jim Hague New Issue
2012-04-19 08:58 Brad King Note Added: 0029236
2012-04-19 08:59 Brad King Note Added: 0029237
2012-04-19 08:59 Brad King Assigned To => Brad King
2012-04-19 08:59 Brad King Status new => assigned
2012-04-19 09:02 Brad King Note Added: 0029238
2012-04-19 09:40 Jim Hague Note Added: 0029243
2012-04-19 09:48 Brad King Note Added: 0029246
2012-04-19 10:02 Jim Hague Note Added: 0029248
2012-04-19 10:11 Brad King Note Added: 0029249
2012-04-19 10:11 Brad King Status assigned => resolved
2012-04-19 10:11 Brad King Resolution open => fixed
2012-04-19 14:31 Brad King Fixed in Version => CMake 2.8.9
2012-04-19 14:31 Brad King Target Version => CMake 2.8.9
2012-09-03 16:01 David Cole Note Added: 0030867
2012-09-03 16:01 David Cole Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team