[GCC-XML] Compiling gccxml with homebrewed gcc4.9

Mark Moll mmoll at rice.edu
Tue Oct 21 14:54:25 EDT 2014


Here are couple more errors when parsing boost headers:

/opt/local/include/boost/unordered/detail/allocate.hpp:223: sorry, unimplemented: call_expr cannot be mangled due to a defect in the C++ ABI
/opt/local/include/boost/unordered/detail/allocate.hpp:223: sorry, unimplemented: call_expr cannot be mangled due to a defect in the C++ ABI
/opt/local/include/boost/math/constants/constants.hpp:90: sorry, unimplemented: call_expr cannot be mangled due to a defect in the C++ ABI

This is Boost 1.56 on OS X 10.10. The first error corresponds to this code:

    template <typename T, T Value>
    struct integral_constant { enum { value = Value }; };

which looks pretty harmless to me. I keep hoping that there is some magic combination of compile flags that will make everything just work. On OS X 10.9 I used llvm-gcc-4.2 to compile gccxml and as the compiler that gccxml would simulate. This all worked with the latest clang and boost on 10.9. Unfortunately, llvm-gcc-4.2 doesn’t compile on 10.10.



> On Oct 21, 2014, at 11:59 AM, Mark Moll <mmoll at rice.edu> wrote:
> 
> I ran into the same problem. I have a hacky fix that at least makes the tests pass. After the build/install is completed, I patch ${prefix}/share/gccxml-0.9 to look like this:
> 
> GCCXML_COMPILER="/opt/local/bin/g++-mp-4.9"
> GCCXML_CXXFLAGS="-m64 -pipe -Os -include /opt/local/share/gccxml-0.9/gccxml.h"
> 
> (As you can probably guess, I am using MacPorts, not HomeBrew.) The gccxml.h currently contains this:
> 
> #define __deprecated_msg(msg) deprecated
> #undef __SIZEOF_INT128__
> #define _POSIX_C_SOURCE 199506L
> #define BOOST_MATH_DISABLE_FLOAT128 1
> #define __atomic_thread_fence(order) {}
> #define __atomic_signal_fence(order) {}
> 
> It is still a work in progress. I am trying to use gccxml with Py++ to generate python bindings. The code for which I am trying to generate bindings heavily relies on Boost. The installed version of Boost has been compiled with clang. This causes all kinds of problems. I am now stuck at this error:
> 
> xml_find_template_parm encountered unsupported type identifier_node
> /opt/local/include/boost/ratio/detail/mpl/abs.hpp:83: sorry, unimplemented: call_expr cannot be mangled due to a defect in the C++ ABI
> 
> 
> -- 
> Mark Moll
> 
> 
> 

-- 
Mark Moll






More information about the gccxml mailing list