[Scons-dev] Emulate SVR4/Linux like SONAME for AIX
Michael Haubenwallner
michael.haubenwallner at ssi-schaefer.com
Tue May 20 03:42:48 EDT 2014
On 05/16/2014 07:27 PM, Dirk Bächle wrote:
>> based on the pull requests #138 #139 #140, fixing various issues,
Thank you for merging them!
>> now I've been able to get the "aix-soname" thingy into SCons.
>> However, as a SCons newbie, I'm unsure whether the way I've implemented
>> this into SCons is based on correct assumptions on how SCons should work.
>>
>> Actually, I've been able to reduce the number of failing tests
>> from 90 to 65 on the AIX box I'm working on.
>>
>> https://bitbucket.org/haubi/scons/commits/76108c06ac81150a4d79a52583d3cf7a5e6fa1cd
>>
>> Thoughts?
>
> I had a quick glance at your pull requests and the commit mentioned above.
> To me it looks like you're doing solid work, please keep it up.
Thank you!
> Someone else (Gary?) should comment on your introduction of "CCVENDOR", I'm a bit
IMO, CCVENDOR is the same level as CCVERSION: Knowing a compiler's version is less
useful when not knowing the vendor defining this version. For serf-trunk actually,
besides other small ones I'm using this diff to SConstruct - please note the comment:
@@ -229,7 +229,7 @@
# linkflags.append('-Wl,-install_name, at executable_path/%s.dylib' % (LIBNAME,))
env.Append(LINKFLAGS='-Wl,-install_name,%s/%s.dylib' % (thisdir, LIBNAME,))
-if sys.platform != 'win32':
+if env.get('CCVENDOR') == 'GNU':
### gcc only. figure out appropriate test / better way to check these
### flags, and check for gcc.
env.Append(CFLAGS='-std=c89')
> unsure whether this is the way to go while having the new toolchain design in mind.
FWIW - without knowing how far the new toolchain is designed already - what I do miss
from the current Toolchain design (besides CCVENDOR) is:
* NM Tool (Vendor+Version)
* STRIP Tool (Vendor+Version)
* Which ld (Vendor+Version) used by $LINK
(fex. gcc is configured to use either GNU-ld or AIX-ld)
Additionally, I've thought of these ones:
* From what I've seen so far, feels like cross-compiling isn't really supported.
* When fixing 'list index out of range' when Tool.link.shlib_emitter_names() returns
the empty list, traditional AIX shared library versioning (with SHLIBEXT=".a") leads
to this error with serf-trunk:
scons: *** Two different builders (InstallBuilder and InstallVersionedBuilder) were specified for the same target: /usr/local/lib/libserf-2.a
* And please don't kill me for this: Especially for yet unsupported platforms, please
let me suggest to allow (downstream distro maintainers) to still /use/ libtool to
wrap the compiling and linking steps.
> Please try to use bookmarks instead of named branches for organizing your local work and commits. See also:
>
> http://www.scons.org/wiki/SconsMercurialWorkflows
Subversion and Git knowledge seems to confuse me as a Mercurial newbie... sorry!
> Other than that, "good job" and thanks for all the effort you have put into this!
Thanks again!
/haubi/
More information about the Scons-dev
mailing list