[Scons-users] missing platforms (aix, hpux, etc.) in shlib_emitter_names

Bill Deegan bill at baddogconsulting.com
Wed Aug 5 15:21:15 EDT 2015


Chris,

Will this only work if you use gcc on aix, or also work with xlc?

-Bill

On Wed, Aug 5, 2015 at 11:55 AM, Malek,Christophe [CMC] <
Christophe.Malek at ec.gc.ca> wrote:

> Hi Scons devs,
>
> Hopefully, providing you with a small fix... :)
>
> I am trying to compile Subversoin on AIX from source and noticed that you
> are missing platform checks for several platforms in shlib_emitter_names in
> SCons/Tool/link.py. I am using the latest version 2.3.6 of SCons but an old
> version of Python (sorry).
>
> The result is the following exception:
>
> scons: Reading SConscript files ...
>
> IndexError: list index out of range:
>
>   File
> "/ssm/net/cmda/thirdparty/15.2-rc1/subversion_1819_aix-7.1-ppc7-64/serf-1.3.8/SConstruct",
> line 275:
>
>     lib_shared = env.SharedLibrary(LIBNAME, SOURCES + SHARED_SOURCES)
>
>   File
> "/ssm/net/cmda/thirdparty/15.2-rc1/subversion_1819_aix-7.1-ppc7-64/lib/python2.6/site-packages/SCons/Environment.py",
> line 260:
>
>     return MethodWrapper.__call__(self, target, source, *args, **kw)
>
>   File
> "/ssm/net/cmda/thirdparty/15.2-rc1/subversion_1819_aix-7.1-ppc7-64/lib/python2.6/site-packages/SCons/Environment.py",
> line 224:
>
>     return self.method(*nargs, **kwargs)
>
>   File
> "/ssm/net/cmda/thirdparty/15.2-rc1/subversion_1819_aix-7.1-ppc7-64/lib/python2.6/site-packages/SCons/Builder.py",
> line 631:
>
>     return self._execute(env, target, source, OverrideWarner(kw), ekw)
>
>   File
> "/ssm/net/cmda/thirdparty/15.2-rc1/subversion_1819_aix-7.1-ppc7-64/lib/python2.6/site-packages/SCons/Builder.py",
> line 552:
>
>     tlist, slist = self._create_nodes(env, target, source)
>
>   File
> "/ssm/net/cmda/thirdparty/15.2-rc1/subversion_1819_aix-7.1-ppc7-64/lib/python2.6/site-packages/SCons/Builder.py",
> line 516:
>
>     target, source = self.emitter(target=tlist, source=slist, env=env)
>
>   File
> "/ssm/net/cmda/thirdparty/15.2-rc1/subversion_1819_aix-7.1-ppc7-64/lib/python2.6/site-packages/SCons/Builder.py",
> line 342:
>
>     target, source = e(target, source, env)
>
>   File
> "/ssm/net/cmda/thirdparty/15.2-rc1/subversion_1819_aix-7.1-ppc7-64/lib/python2.6/site-packages/SCons/Tool/link.py",
> line 87:
>
>     target[0].attributes.shlibname = version_names[0]
>
> Traceback (most recent call last):
>
>   File "/ssm/net/env/master/ssm_10.9_all/lib/ssm.d/python/ssm/package.py",
> line 233, in install
>
>     self.execute_script("post-install")
>
>   File "/ssm/net/env/master/ssm_10.9_all/lib/ssm.d/python/ssm/package.py",
> line 191, in execute_script
>
>     raise Exception("error: execute script failed")
>
> Exception: error: execute script failed
>
> because the version_names variable remains empty after the call to
> shlib_emitter_names.
>
> The fix appears to be very simple, as I believe you only need to add the
> additional platform to line 113 in link.py:
>
> if platform == 'posix' or platform == 'sunos' or platform == 'aix':
>
> etc.
>
> At least this change appears to work for me.
>
> It might also be nice if you included an "else" condition to the platform
> check and throw a better exception when the platform isn't found.
>
> Hope this helps!
>
> - Chris
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20150805/57753dd7/attachment.html>


More information about the Scons-users mailing list