Coder Social home page Coder Social logo

Comments (29)

davidlt avatar davidlt commented on September 27, 2024

The last time I built newer Boost ROOT5 wasn't happy (Dictionaries + GCCXML + Boost combo). Yet I can give it a shot again.

from cmsdist.

apfeiffer1 avatar apfeiffer1 commented on September 27, 2024

Hi David,

The last time I built newer Boost ROOT5 wasn't happy (Dictionaries +
GCCXML + Boost combo). Yet I can give it a shot again.

ah. :( Do you remember which version of boost/root that were ?

Thanks,
cheers, andreas

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

I did it incrementally and, I think, it was just one or two versions above the current one.

I am already experimenting on 1.57.0, but more or less the whole SPEC finally needs to be re-written. There is lots of not needed legacy bits + boost by default compiles with AVX2 and SSSE3, which are auto-detected and no manual disabling in available via b2.

I will see if this works with CMSSW/ROOT5/GCCXML.

from cmsdist.

apfeiffer1 avatar apfeiffer1 commented on September 27, 2024

I did it incrementally and, I think, it was just one or two versions above
the current one.

:(

I am already experimenting on 1.57.0, but more or less the whole SPEC
finally needs to be re-written. There is lots of not needed legacy bits +
boost by default compiles with AVX2 and SSSE3, which are auto-detected and
no manual disabling in available via b2.

I will see if this works with CMSSW/ROOT5/GCCXML.

OK, thanks ! Keep me updated ! ;)

Thanks,
cheers, andreas

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

yaml-cpp also required an update (couldn't find boost). CMake we have only checks for 1.56.0 at most. There is CMake 3.x already. At least two issues popped out.

Generated dictionary fails to compile (PhysicsToolsFWLite/a/xr.cc)
PhysicsToolsFWLite/a/xr.cc: In function 'void {anonymous}::converter_13932(void*, void*, const std::vector<void*>&, void*)':
PhysicsToolsFWLite/a/xr.cc:640:255: error: 'const class boost::shared_ptr<reco::parser::SelectorBase>' has no member named 'operator reco::parser::SelectorBase* boost::shared_ptr<reco::parser::SelectorBase>::*'
   if (retaddr) new (retaddr) (reco::parser::SelectorBase* boost::shared_ptr<reco::parser::SelectorBase>::*)((((const ::boost::shared_ptr<reco::parser::SelectorBase>*)o)->operator reco::parser::SelectorBase* boost::shared_ptr<reco::parser::SelectorBase>::*)());
                                                                                                                                                                                                                                                               ^
PhysicsToolsFWLite/a/xr.cc:641:156: error: 'const class boost::shared_ptr<reco::parser::SelectorBase>' has no member named 'operator reco::parser::SelectorBase* boost::shared_ptr<reco::parser::SelectorBase>::*'
   else   (((const ::boost::shared_ptr<reco::parser::SelectorBase>*)o)->operator reco::parser::SelectorBase* boost::shared_ptr<reco::parser::SelectorBase>::*)();
                                                                                                                                                            ^
PhysicsToolsFWLite/a/xr.cc: In function 'void {anonymous}::converter_13911(void*, void*, const std::vector<void*>&, void*)':
PhysicsToolsFWLite/a/xr.cc:1114:265: error: 'const class boost::shared_ptr<reco::parser::ExpressionBase>' has no member named 'operator reco::parser::ExpressionBase* boost::shared_ptr<reco::parser::ExpressionBase>::*'
   if (retaddr) new (retaddr) (reco::parser::ExpressionBase* boost::shared_ptr<reco::parser::ExpressionBase>::*)((((const ::boost::shared_ptr<reco::parser::ExpressionBase>*)o)->operator reco::parser::ExpressionBase* boost::shared_ptr<reco::parser::ExpressionBase>::*)());
                                                                                                                                                                                                                                                                         ^
PhysicsToolsFWLite/a/xr.cc:1115:162: error: 'const class boost::shared_ptr<reco::parser::ExpressionBase>' has no member named 'operator reco::parser::ExpressionBase* boost::shared_ptr<reco::parser::ExpressionBase>::*'
   else   (((const ::boost::shared_ptr<reco::parser::ExpressionBase>*)o)->operator reco::parser::ExpressionBase* boost::shared_ptr<reco::parser::ExpressionBase>::*)();
                                                                                                                                                                  ^
In file included from /build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/shared_ptr.hpp:17:0,
                 from /build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/CommonTools/Utils/src/ExpressionPtr.h:12,
                 from /build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/PhysicsTools/FWLite/src/classes.h:3,
                 from PhysicsToolsFWLite/a/xr.cc:29:
/build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/smart_ptr/shared_ptr.hpp: In instantiation of 'typename boost::detail::sp_array_access<T>::type boost::shared_ptr<T>::operator[](std::ptrdiff_t) const [with T = reco::parser::SelectorBase; typename boost::detail::sp_array_access<T>::type = void; std::ptrdiff_t = long int]':
PhysicsToolsFWLite/a/xr.cc:629:103:   required from here
/build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/smart_ptr/shared_ptr.hpp:658:22: error: return-statement with a value, in function returning 'void' [-fpermissive]
         return px[ i ];
                      ^
/build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/smart_ptr/shared_ptr.hpp: In instantiation of 'typename boost::detail::sp_array_access<T>::type boost::shared_ptr<T>::operator[](std::ptrdiff_t) const [with T = reco::parser::ExpressionBase; typename boost::detail::sp_array_access<T>::type = void; std::ptrdiff_t = long int]':
PhysicsToolsFWLite/a/xr.cc:1103:105:   required from here
/build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/smart_ptr/shared_ptr.hpp:658:22: error: return-statement with a value, in function returning 'void' [-fpermissive]
gmake: *** [tmp/slc6_amd64_gcc481/src/PhysicsTools/FWLite/src/PhysicsToolsFWLite/a/xr.o] Error 1
Boost changed some interfaces to match C++11 requirements (kills Framework)
/build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet/src/AllowedLabelsDesc
riptionBase.cc: In member function 'virtual void edm::AllowedLabelsDescriptionBase::validate_(edm::ParameterSet&, std::set<std::basic_string<char> >&, bool) const':
/build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet/src/AllowedLabelsDesc
riptionBase.cc:57:58: error: use of deleted function 'void boost::cref(const T&&) [with T = const edm::AllowedLabelsDescriptionBase*]'
                                          boost::cref(this),
                                                          ^
In file included from /build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/ref.hpp:15:0,
                 from /build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet
/src/AllowedLabelsDescriptionBase.cc:8:
/build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/core/ref.hpp:179:24: error: declared here
 template<class T> void cref(T const&&) BOOST_REF_DELETE;
                        ^
/build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet/src/AllowedLabelsDescriptionBase.cc:60:67: error: invalid use of void expression
                                          std::ref(validatedLabels)));
                                                                   ^
/build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet/src/ParameterWildcard
.cc: In member function 'virtual void edm::ParameterWildcard<edm::ParameterSetDescription>::validate_(edm::ParameterSet&, std::set<std::basic_string<char> >&, bool) const':
/build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet/src/ParameterWildcard
.cc:67:43: error: use of deleted function 'void boost::cref(const T&&) [with T = const edm::ParameterWildcard<edm::ParameterSetDescription>*]'
                           boost::cref(this),
                                           ^
In file included from /build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/ref.hpp:15:0,
                 from /build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet
/src/ParameterWildcard.cc:8:
/build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/core/ref.hpp:179:24: error: declared here
 template<class T> void cref(T const&&) BOOST_REF_DELETE;
                        ^
/build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet/src/ParameterWildcard.cc:69:41: error: invalid use of void expression
                           std::ref(pset)));
                                         ^
/build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet/src/ParameterWildcard.cc: In member function 'virtual void edm::ParameterWildcard<std::vector<edm::ParameterSet> >::validate_(edm::ParameterSet&, std::set<std::basic_string<char> >&, bool) const':
/build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet/src/ParameterWildcard.cc:184:43: error: use of deleted function 'void boost::cref(const T&&) [with T = const edm::ParameterWildcard<std::vector<edm::ParameterSet> >*]'
                           boost::cref(this),
                                           ^
In file included from /build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/ref.hpp:15:0,
                 from /build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet/src/ParameterWildcard.cc:8:
/build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/core/ref.hpp:179:24: error: declared here
 template<class T> void cref(T const&&) BOOST_REF_DELETE;
                        ^
/build/davidlt/boost/a/tmp/BUILDROOT/29adb76dfbe685d03959fb3173393efd/opt/cmssw/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/FWCore/ParameterSet/src/ParameterWildcard.cc:186:41: error: invalid use of void expression
                           std::ref(pset)));
                                         ^

from cmsdist.

apfeiffer1 avatar apfeiffer1 commented on September 27, 2024

Thanks, David,

yaml-cpp also required an update (couldn't find boost). CMake we have only

checks for 1.56.0 at most. There is CMake 3.x already. At least two
issues popped out.

OK, I'll check then with 1.56.0 and see if that fixes my issue as well.
If the issues are really that big as you indicate in [1], then I'll work to
see if I can make a minimal patch for 1.51.0 which fixes my issue.

Thanks,
cheers, andreas

[1] https://hypernews.cern.ch/HyperNews/CMS/get/edmFramework/3393.html

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

I will continue looking into Boost 1.57.0+ in CMSSW, but no ETA (still studying the issues).

from cmsdist.

apfeiffer1 avatar apfeiffer1 commented on September 27, 2024

I will continue looking into Boost 1.57.0+ in CMSSW, but no ETA (still
studying the issues).

ok - thanks !

   cheers, andreas

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

I believe I have identified the first (dictionary issue) and it's related to C++11 features. boost::shared_ptr is used on those dictionaries (is it allowed?), yet different signatures for conversions are provided based on C++ standard. There is no need for nasty hacks in C++11 for bool conversions since boost 1.53.0.

One could re-enable the C++03 hackish version by BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS define. Not sure if it's enough to set in boost user configuration like I did for ROOT6 branch (no support for inline assembly in ROOT6 JIT yet): https://github.com/cms-sw/cmsdist/blob/IB/CMSSW_7_3_X/root6/boost-1.51.0-define-BOOST_SP_USE_SPINLOCK.patch

Okay, it seems to work, but does not solve all the errors in dictionary.

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

Time to share a second part of the puzzle.

The problems are caused starting 1.53.0. Boost extended boost::shared_ptr with ability to hold a pointer to a dynamically allocated array.

Starting with Boost release 1.53, shared_ptr can be used to hold a pointer to a dynamically allocated array. This is accomplished by using an array type (T[] or T[N]) as the template parameter. There is almost no difference between using an unsized array, T[], and a sized array, T[N]; the latter just enables operator[] to perform a range check on the index.

Example:
shared_ptr<double[1024]> p1( new double[1024] );
shared_ptr<double[]> p2( new double[n] );

The types we have in a dictionary are based on boost::shared_ptr, but their are not array type.

--->> genreflex: INFO: Using typedef reco::parser::SelectorPtrs to select class std::vector<boost::shared_ptr<reco::parser::SelectorBase> >
--->> genreflex: INFO: Using typedef reco::parser::ExpressionPtrs to select class std::vector<boost::shared_ptr<reco::parser::ExpressionBase> >
--->> genreflex: INFO: Using typedef reco::parser::ExpressionPtr to select class boost::shared_ptr<reco::parser::ExpressionBase>
--->> genreflex: INFO: Using typedef reco::parser::SelectorPtr to select class boost::shared_ptr<reco::parser::SelectorBase>

Boost implementation checks if pointer is an array on the fly. Thus operator[] is provided for all possible boost::shared_ptr (even if it's not a pointer to an array).

652     // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT)
653     typename boost::detail::sp_array_access< T >::type operator[] ( std::ptrdiff_t i ) const
654     {
655         BOOST_ASSERT( px != 0 );
656         BOOST_ASSERT( i >= 0 && ( i < boost::detail::sp_extent< T >::value || boost::detail::sp_extent< T >::value == 0 ) );
657
658         return px[ i ];
659     }

723     element_type * px;                 // contained pointer
724     boost::detail::shared_count pn;    // reference counter
725
726 };  // shared_ptr

Our type example:

typename boost::detail::sp_array_access<T>::type boost::shared_ptr<T>::operator[](std::ptrdiff_t) const 
[with T = reco::parser::SelectorBase; 
typename boost::detail::sp_array_access<T>::type = void; 
std::ptrdiff_t = long int]'

Thus trait boost::detail::sp_array_access<reco::parser::SelectorBase>::type returns void. It's no an array, thus expected. Then operator[] returns void, but the body actually has return statement. This acts almost like a static assert.

We "call" operator[] because Relfex generates wrappers for them.

 627 static  void operator_13930( void*, void* o, const std::vector<void*>& arg, void*)
 628 {
 629   (((const ::boost::shared_ptr<reco::parser::SelectorBase>*)o)->operator[])(*(::std::ptrdiff_t*)arg[0]);
 630 }

1101 static  void operator_13909( void*, void* o, const std::vector<void*>& arg, void*)
1102 {
1103   (((const ::boost::shared_ptr<reco::parser::ExpressionBase>*)o)->operator[])(*(::std::ptrdiff_t*)arg[0]);
1104 }

Errors compiling the dictionary. Compiler flags could be used to force it compiling or maybe a move to std::shared_ptr could save the day.

In file included from PhysicsToolsFWLite/a/xr.cc:29:
In file included from /build/davidlt/boost/CMSSW_7_3_X_2014-11-06-0200/src/PhysicsTools/FWLite/src/classes.h:3:
In file included from /build/davidlt/boost/a/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/CommonTools/Utils/src/ExpressionPtr.h:12:
In file included from /build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/shared_ptr.hpp:17:
/build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/smart_ptr/shared_ptr.hpp:658:9: error: void function 'operator[]' should not return a value [-Wreturn-type]
        return px[ i ];
        ^      ~~~~~~~
PhysicsToolsFWLite/a/xr.cc:629:65: note: in instantiation of member function 'boost::shared_ptr<reco::parser::SelectorBase>::operator[]' requested here
  (((const ::boost::shared_ptr<reco::parser::SelectorBase>*)o)->operator[])(*(::std::ptrdiff_t*)arg[0]);
                                                                ^
In file included from PhysicsToolsFWLite/a/xr.cc:29:
In file included from /build/davidlt/boost/CMSSW_7_3_X_2014-11-06-0200/src/PhysicsTools/FWLite/src/classes.h:3:
In file included from /build/davidlt/boost/a/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_3_X_2014-11-06-0200/src/CommonTools/Utils/src/ExpressionPtr.h:12:
In file included from /build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/shared_ptr.hpp:17:
/build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/smart_ptr/shared_ptr.hpp:658:9: error: void function 'operator[]' should not return a value [-Wreturn-type]
        return px[ i ];
        ^      ~~~~~~~
PhysicsToolsFWLite/a/xr.cc:1103:67: note: in instantiation of member function 'boost::shared_ptr<reco::parser::ExpressionBase>::operator[]' requested here
  (((const ::boost::shared_ptr<reco::parser::ExpressionBase>*)o)->operator[])(*(::std::ptrdiff_t*)arg[0]);
                                                                  ^
6 warnings and 2 errors generated.

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

Framework fixes: cms-sw/cmssw#6278

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

I just made a PR to resolve operator[] on boost::shared_ptr issue in Boost 1.53.0+ : cms-sw/cmssw#6289

from cmsdist.

apfeiffer1 avatar apfeiffer1 commented on September 27, 2024

I just made a PR to resolve operator[] on boost::shared_ptr issue in
Boost 1.53.0+ : cms-sw/cmssw#6289
cms-sw/cmssw#6289

great !

Thanks !

   cheers, andreas

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

cref and ref C++11 issues are resolved, and operator[] changes were just merged. The next IB (1400) should be a good base to work on. This mostly would target CMSWW_7_3_0_pre3. Proper testing of Boost 1.57.0 will take some time. Boost itself will be compiled with BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS, two more patches need to written for disabling SSSE3 and AVX2 auto-enable thingie. I will also disable Pyste mostly likely as it requires GCCXML, which is about to vanish with ROOT6.

To be updated once I have access to IB.

from cmsdist.

apfeiffer1 avatar apfeiffer1 commented on September 27, 2024

Hi David,

cref and ref C++11 issues are resolved, and operator[] changes were just
merged. The next IB (1400) should be a good base to work on. This mostly
would target CMSWW_7_3_0_pre3. Proper testing of Boost 1.57.0 will take
some time. Boost itself will be compiled with
BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS, two more patches need to
written for disabling SSSE3 and AVX2 auto-enable thingie.

OK, very good, thanks !

I will also disable Pyste mostly likely as it requires GCCXML, which is
about to vanish with ROOT6.

To be updated once I have access to IB.

hmm ... not fully sure about this part. We want to use the boost.python
stuff to generate the XML dynamically from a python script. Though I'm not
100% sure, I think boost will use pyste for that, no ?

Thanks,
cheers, andreas

from cmsdist.

apfeiffer1 avatar apfeiffer1 commented on September 27, 2024

Hi again,

[...]

I will also disable Pyste mostly likely as it requires GCCXML, which is
about to vanish with ROOT6.

To be updated once I have access to IB.

hmm ... not fully sure about this part. We want to use the boost.python
stuff to generate the XML dynamically from a python script. Though I'm not
100% sure, I think boost will use pyste for that, no ?

ah, just checked the 1.57 docs and it seems that pyste is not needed, they
moved to a new tool ("Py++").

Thanks,
cheers, andreas

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

Using GCCXML is unrecommended and it's aging too fast. This will potentially block further development (C++11, C++14). It will not supported any new architectures will look into (AArch64/ARM64, POWER8).
If you need GCCXML, then redesign the software to avoid it.

For now we can keep it, but definitely do not design software using it.

from cmsdist.

apfeiffer1 avatar apfeiffer1 commented on September 27, 2024

Using GCCXML is unrecommended and it's aging too fast. This will
potentially block further development (C++11, C++14). It will not supported
any new architectures will look into (AArch64/ARM64, POWER8).
If you need GCCXML, then redesign the software to avoid it.

For now we can keep it, but definitely do not design software using it.

no need, see my other reply (boost 1.57 is not using pyste, but their new
tool Py++ for the python bindings).

So please go ahead and remove Pyste as you planned.

Thanks,
cheers, andreas

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

Okay. Next things, we will need to disable __int128 as it gets into GCCXML (BOOST_HAS_INT128). EOS Portable Archive is not compiling as in 1.56.0 Boost Serialization was refactored. I have an idea for a fix, but need to confirm it. There are more ref/cref breakage. Then there are bizarre serialization shared_ptr related compile failures.

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

The following fixes are needed:
https://svn.boost.org/trac/boost/ticket/10749
https://svn.boost.org/trac/boost/ticket/10348

They will land in 1.58.0

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

Another puzzle piece queued: cms-sw/cmssw#6353

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

ROOT5 rootcint failure happens, because we use -p option. It forces rootcint to use GCC/Clang per-processor instead the one from CINT.

Use the -p option to request the use of the compiler's preprocessor
instead of CINT's preprocessor.  This is useful to handle header
files with macro construct not handled by CINT.

This will cause the breakage, because __SIZEOF_INT128__ is then defined. This declares that __int128 type is available, but CINT cannot fully handle it (it's also disabled in GCCXML). Thus CINT dies once __int128 is found.

Error: class,struct,union or type __int128 not defined  /build/davidlt/boost/a/slc6_amd64_gcc481/external/boost/1.57.0/include/boost/config/suffix.hpp:496:

from cmsdist.

apfeiffer1 avatar apfeiffer1 commented on September 27, 2024

Hi David,

thanks for the info/updates - and, of course, for the work behind it !!!

   cheers, andreas

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

It seems I have the last outstanding issue left while compiling CMSSW with boost 1.57.0. It's related to the fact that new boost version do not export ctor/dtor for shared_ptr_helper. There were some refactoring done in boost for serialization.

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

AFAIK, this is not replaced with boost::serialization::shared_ptr_helper, the problem is that shared_ptr_helper.cpp is not compiled-in.

Easiest why is to drop shared_ptr support.

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

It's listed out from serialization sources and adding it is not an option (does not compile). Found another report and they went with removal.

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

cms-sw/cmssw#6399

The following will clean up the warnings with Boost 1.57.0. Boost.Signals is unmaintained and deprecated now.

cms-sw/cmssw#6369

This one resolved issues with shared_ptr support in EOS Portable Archive. The include is no more needed since 1.56.0.

from cmsdist.

ktf avatar ktf commented on September 27, 2024

This was done, right? Can you close this?

from cmsdist.

davidlt avatar davidlt commented on September 27, 2024

AFAIK this should be in CMSSW_7_4_X now. Closing.

from cmsdist.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.