When hwloc.h is included in C++ source, we should just set __hwloc_inline__ to 
"inline" (not __inline__ or otherwise), because "inline" is part of the C++ 
language.

We found this in testing OMPI with the Solaris Studio compilers -- their C++ 
compiler doesn't recognize __inline__.  This is a new issue because the OMPI 
C++ bindings are now including <hwloc.h> (due to some lengthy header dependency 
chains...).

Samuel -- does this look right to you?  If so, I can apply to 1.3, 1.4, and 
trunk.

Index: include/hwloc/autogen/config.h.in
===================================================================
--- include/hwloc/autogen/config.h.in   (revision 26414)
+++ include/hwloc/autogen/config.h.in   (working copy)
@@ -2,7 +2,7 @@
  * Copyright © 2009 CNRS
  * Copyright © 2009-2010 inria.  All rights reserved.
  * Copyright © 2009-2012 Université Bordeaux 1
- * Copyright © 2009-2011 Cisco Systems, Inc.  All rights reserved.
+ * Copyright © 2009-2012 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */

@@ -21,7 +21,11 @@
 # endif
 #endif

-#if defined(_MSC_VER) || defined(__HP_cc)
+/* Note that if we're compiling C++, then just use the "inline"
+   keyword, since it's part of C++ */
+#if defined(c_plusplus) || defined(__cplusplus)
+#  define __hwloc_inline inline
+#elif defined(_MSC_VER) || defined(__HP_cc)
 #  define __hwloc_inline __inline
 #else
 #  define __hwloc_inline __inline__


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to