Terry / Eugene -- Can you comment?
On Feb 22, 2012, at 3:16 PM, Paul H. Hargrove wrote: > I think I have the beginning of a fix for this issue. > > I had not even noticed earlier that the error in event.h is from the C++ > compiler, when compiling file.cxx in the c++ bindings. That makes the > vendor-specific addition of "-library=stlport4" to CXXFLAGS quite relevant to > the problem/solution. > > It eventually occurred to me that when VT's sub-configure told me to add > configure arguments, I could have used --with-contrib-vt-flags to pass that > ONLY to VT and perhaps NOT mess with whatever karma was providing the > definition of u_char. However, when I tried that I was disappointed to find > that the bit of configure logic that suggests/requires > CXXFLAGS=-library=stlport4 (from ompi/contrib/vt/configure.m4) runs BEFORE > the processing of --with-contrib-vt-flags. So, that was a dead end. > > So, the next idea was to look for a fix specific to sltport. I tried adding > near the top of opal/event/event.h (after the WINDOWS equivalent): >> #ifdef STLPORT >> typedef unsigned char u_char; >> #endif > > That managed to clear up the original problem w/ SS12.2. > With SS12.3, things also built fine. > This suggests the typedef is not "conflicting" with whatever other defn was > present. > I think the "safety" of this needs to be examined more widely before this can > be adopted. > My concern is that some system could "typedef char u_char" if it has char > unsigned by default, leading to a conflict. > Now that would, I suppose, only be a problem if STLPORT is also defined. > So, maybe I am over thinking this. > > -Paul > > On 2/21/2012 11:10 PM, Paul H. Hargrove wrote: >> More notes: >> >> I've tested ompi-1.5.4 and it has the same problem. So, this is NOT a >> regression. >> >> Terry D. has observed that Ubuntu is NOT a supported platform for the >> Solaris Studio compilers. >> So, I've reproduced on a Scientific Linux 5.5 platform (Red Hat Enterprise >> Linux 5.5 clone, like CentOS) to be sure that was NOT the cause. >> >> When I configure for the SS12.x compilers, I've been passing >> CXXFLAGS="-library=stlport4" as the VT sub-configure has informed me I >> should, due to something wrong the the default STL. I tried dropping that >> from configure, and THE BUILD WAS SUCCESSFUL. >> >> So, one has 2 choices: >> + build w/ SS12.2 without VT >> + update to SS12.3 and have VT >> >> I don't think there is sufficient reason to delay 1.5.5 for this. >> >> -Paul >> >> On 2/21/2012 4:39 PM, Paul H. Hargrove wrote: >>> A few things to note: >>> >>> 1) This is NOT a problem w/ the SS12.3 compilers on the same machine. >>> So, one could say "upgrade your compiler" (a free download) and not delay >>> 1.5.5 for this issue. >>> >>> 2) This is ONLY a problem on Linux, and not on Solaris (both SS12.2 and >>> SS12.3 tested for x86, x86-64, Sparc/v9 and Sparc/v8plus) >>> >>> 3) Testing the trunk I DON'T see the problem with either SS12.2 or SS12.3. >>> This is interesting, because it probably means that a u_char definition is >>> SOMEWHERE in the headers (because libevent *is* getting built). >>> >>> Whatever else may be done, I think this should be fixed "properly" >>> (whatever that may equate to) for 1.6. >>> The way I see it now, it feels like OMPI is getting a definition of u_char >>> only "by accident". >>> >>> -Paul >>> >>> On 2/21/2012 12:16 PM, Paul H. Hargrove wrote: >>>> Building the v1.5 branch on Linux with the Solaris Studio 12.2 compilers I >>>> see the following failure: >>>>> "[srcdir]/opal/event/event.h", line 797: Error: Type name expected >>>>> instead of "u_char". >>>>> "[srcdir]/opal/event/event.h", line 798: Error: Type name expected >>>>> instead of "u_char". >>>>> "[srcdir]/opal/event/event.h", line 1184: Error: "," expected instead of >>>>> "*". >>>> Where line 1184 is a prototype containing "u_char *". >>>> >>>> As far as I can find, only several files below opal/event/ contain any use >>>> of "u_char". >>>> There is a typedef for u_char in hwloc, but no use that I could see. >>>> >>>> To the best of my knowledge u_char is NOT defined by any standard, and >>>> thus there is no particular header one can reliably find it in. >>>> The alternatives, of course are "unsigned char" or "uint8_t" (defined in >>>> stdint.h). >>>> >>>> I had a look at the trunk and VISUALLY is appears the same problem exists >>>> in: >>>> opal/event/event.h >>>> opal/mca/event/libevent2013/libevent/event.h >>>> However, my testing is currently confined to the v1.5 branch in the hopes >>>> of finally getting the next 1.5.5rc out the door. >>>> >>>> -Paul >>>> >>> >> > > -- > Paul H. Hargrove phhargr...@lbl.gov > Future Technologies Group > HPC Research Department Tel: +1-510-495-2352 > Lawrence Berkeley National Laboratory Fax: +1-510-486-6900 > > _______________________________________________ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/