Bruce Simpson wrote:

It looks like the fix went in between those two releases.
I'll see what can be done about forward porting a patch.

I don't see the issue with the version of SCons I have installed, the bug has been resolved there. Considering the version of SCons which is affected, is nearly a year old, it may be worthwhile updating if at all possible.

I tried overriding SCons' built-in Mkdir() action, however this approach consistently didn't work.

The bug is very clearly in SCons itself.
Can you try this patch, which tries to catch the EEXIST exception?

thanks,
BMS
Index: SConstruct
===================================================================
--- SConstruct  (revision 11676)
+++ SConstruct  (working copy)
@@ -605,7 +605,11 @@
        # $BUILDIR/lib will contain .so symlinks
        #
        xorp_alias_libdir = os.path.join(builddir, 'lib')
-       Execute(Mkdir(xorp_alias_libdir))
+       # XXX workaround Mkdir() failure on EEXIST, SCons < 20090223.
+       try:
+               Execute(Mkdir(xorp_alias_libdir))
+       except:
+               pass
        env['xorp_alias_libdir'] = xorp_alias_libdir
        #
        # Build a further alias for the benefit of entities which
@@ -616,8 +620,13 @@
        xorp_alias_subdir = os.path.join(xorp_alias_libdir, 'xorp')
        Execute(Mkdir(xorp_alias_subdir))
        #
+       # XXX workaround Mkdir() failure on EEXIST, SCons < 20090223.
        xorp_module_alias_libdir = os.path.join(xorp_alias_subdir, 'lib')
-       Execute(env.Symlink(xorp_alias_libdir, xorp_module_alias_libdir))
+       try:
+               Execute(env.Symlink(xorp_alias_libdir,
+                                   xorp_module_alias_libdir))
+       except:
+               pass
        env['xorp_module_alias_libdir'] = xorp_module_alias_libdir
 
        # Tell rtld to turn on $ORIGIN processing by default.
_______________________________________________
Xorp-hackers mailing list
[email protected]
http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers

Reply via email to