Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-5756

Update Scons to v2.5.0

    XMLWordPrintable

Details

    Description

      Scons 2.5.0 came out over the weekend. There were many fixes to the dependency determination code. The next version of Scons is intended to be 3.0 which will be the first version to support Python 3. Since we fully intend to switch to Python 3.0 in the summer it is prudent for us to ensuer that 2.5.0 works fine before switching to 3.0.0 so that we do not get confused as to why there is breakage in jumping straight to 3.0.0.

      Attachments

        Issue Links

          Activity

            tjenness Tim Jenness added a comment - - edited

            scons 2.4.1 tickled an inconsistency in the partition package relating to #src/ vs */. This has been fixed with approval from smonkewitz. Unfortunately it does not work on older scons so the fix in partition has to wait until scons is upgraded.

            tjenness Tim Jenness added a comment - - edited scons 2.4.1 tickled an inconsistency in the partition package relating to #src/ vs */ . This has been fixed with approval from smonkewitz . Unfortunately it does not work on older scons so the fix in partition has to wait until scons is upgraded.
            tjenness Tim Jenness added a comment -

            With scons 2.5.0 base fails to pass tests on Linux because of an error during import of SWIG wrappers:

            Fatal Python error: PyThreadState_Get: no current thread
            

            This seems to be caused by a change in the way the LoadableModule target is implemented since it adds two new options to the link command:

            -Wl,-Bsymbolic -Wl,-soname=
            

            It is the -Bsymbolic option that is causing the trouble. SharedLibraryModule did not pick up this new behavior.

            tjenness Tim Jenness added a comment - With scons 2.5.0 base fails to pass tests on Linux because of an error during import of SWIG wrappers: Fatal Python error: PyThreadState_Get: no current thread This seems to be caused by a change in the way the LoadableModule target is implemented since it adds two new options to the link command: -Wl,-Bsymbolic -Wl,-soname= It is the -Bsymbolic option that is causing the trouble. SharedLibraryModule did not pick up this new behavior.
            tjenness Tim Jenness added a comment -

            This patch to sconsUtils fixes the problem:

            diff --git a/python/lsst/sconsUtils/builders.py b/python/lsst/sconsUtils/builders.py
            index d631dde..95f5879 100644
            --- a/python/lsst/sconsUtils/builders.py
            +++ b/python/lsst/sconsUtils/builders.py
            @@ -42,6 +42,7 @@ def SwigLoadableModule(self, target, source, **keywords):
                 try:
                     if myenv.whichCc == "gcc":
                         myenv.Append(CCFLAGS=["-fno-strict-aliasing"])
            +            myenv['SHLIBVERSIONFLAGS']=""
                 except AttributeError:
                     pass
                 return myenv.LoadableModule(target, source, **keywords)
            

            The documentation implies that this variable should only be accessed if SHLIBVERSION is set and it seems that SharedLibraryModule does not have the problem and we don't set the shared library version number.

            tjenness Tim Jenness added a comment - This patch to sconsUtils fixes the problem: diff --git a/python/lsst/sconsUtils/builders.py b/python/lsst/sconsUtils/builders.py index d631dde..95f5879 100644 --- a/python/lsst/sconsUtils/builders.py +++ b/python/lsst/sconsUtils/builders.py @@ -42,6 +42,7 @@ def SwigLoadableModule(self, target, source, **keywords): try: if myenv.whichCc == "gcc": myenv.Append(CCFLAGS=["-fno-strict-aliasing"]) + myenv['SHLIBVERSIONFLAGS']="" except AttributeError: pass return myenv.LoadableModule(target, source, **keywords) The documentation implies that this variable should only be accessed if SHLIBVERSION is set and it seems that SharedLibraryModule does not have the problem and we don't set the shared library version number.
            tjenness Tim Jenness added a comment -

            The scons team have acknowledged there is a bug (probably introduced in v2.4.1). They have an example patch at https://bitbucket.org/scons/scons/pull-requests/319/fixed-issue-with-_xxxxxxversionflags

            tjenness Tim Jenness added a comment - The scons team have acknowledged there is a bug (probably introduced in v2.4.1). They have an example patch at https://bitbucket.org/scons/scons/pull-requests/319/fixed-issue-with-_xxxxxxversionflags
            tjenness Tim Jenness added a comment -

            The experimental patch provided by the Scons developers fixes the problem and allows everything to be built on Jenkins without the sconsUtils patch. We can do this upgrade any time but should probably wait until v12.0 is shipped (DM-6057).

            tjenness Tim Jenness added a comment - The experimental patch provided by the Scons developers fixes the problem and allows everything to be built on Jenkins without the sconsUtils patch. We can do this upgrade any time but should probably wait until v12.0 is shipped ( DM-6057 ).
            tjenness Tim Jenness added a comment -

            Scons has been updated to 2.5.0 and the previously approved patch to partition has been re-applied.

            tjenness Tim Jenness added a comment - Scons has been updated to 2.5.0 and the previously approved patch to partition has been re-applied.

            People

              tjenness Tim Jenness
              tjenness Tim Jenness
              Tim Jenness
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Jenkins

                  No builds found.