> I have a small patch for scons-addons (attached) that falls back to the
> non-toolset, non-mt versions if it can't find the fully qualified ones.
> There is a potential problem with multi-threaded programs doing that,
> but we haven't seen any actual problems, just as a warning. I sent the
> patch to the scons-addons maintainers, but they're a little busy right
> now, so if somebody wants to try it, please let me know how it works for
> you. It seems to work ok on my FC5 box.
after setting up my buildslave yesterday, i stumpled over this boost
symlink issue again...
i did not apply your patch, but used the BoostBaseDir = '/usr' and
BoostIncludeDir = '/usr/include/boost' arguments. in addition, i had to
create one symlink in /usr/lib (i know, this is not the right way ;-) ).
below is a list of the symlinks present on my system, the last one was
added by myself. with this setup, the unittests are ok.
[EMAIL PROTECTED] /usr/lib $ ls -lhart libboost_filesystem*
-rwxr-xr-x 1 root root 70K Nov 24 13:12 libboost_filesystem.so.1.33.1
lrwxrwxrwx 1 root root 29 Nov 24 13:12 libboost_filesystem.so ->
libboost_filesystem.so.1.33.1
-rw-r--r-- 1 root root 133K Nov 24 13:12 libboost_filesystem.a
-rwxr-xr-x 1 root root 70K Nov 24 13:12 libboost_filesystem-mt.so.1.33.1
lrwxrwxrwx 1 root root 32 Nov 24 13:12 libboost_filesystem-mt.so ->
libboost_filesystem-mt.so.1.33.1
-rw-r--r-- 1 root root 133K Nov 24 13:12 libboost_filesystem-mt.a
lrwxrwxrwx 1 root root 22 Nov 24 13:12 libboost_filesystem-gcc.so ->
libboost_filesystem.so
lrwxrwxrwx 1 root root 21 Nov 24 13:12 libboost_filesystem-gcc.a ->
libboost_filesystem.a
lrwxrwxrwx 1 root root 25 Nov 24 13:12 libboost_filesystem-gcc-mt.so
-> libboost_filesystem-mt.so
lrwxrwxrwx 1 root root 24 Nov 24 13:12 libboost_filesystem-gcc-mt.a ->
libboost_filesystem-mt.a
lrwxrwxrwx 1 root root 28 Dec 20 00:32
libboost_filesystem-gcc-mt-1_33_1.a -> libboost_filesystem-gcc-mt.a
looking at the buildbot logs, also the FC5 box fails because of this
symlink issue... unfortunately, i do not have time to investigate this
further. besides, i'm still 1.x user ;-)
[s]
>
> Yours
>
> Dirk
>
>
> ------------------------------------------------------------------------
>
> Index: src/SConsAddons/Options/Boost.py
> ===================================================================
> --- src/SConsAddons/Options/Boost.py (revision 245)
> +++ src/SConsAddons/Options/Boost.py (working copy)
> @@ -71,6 +71,8 @@
> self.found_lib_paths = []
> self.found_defines = []
>
> + self.found_libs = {} # Names of actual libraries found
> (with or without toolset etc.)
> +
> # configurable options
> self.baseDir = None
> self.incDir = None
> @@ -198,8 +200,12 @@
> print " Searching CPLUS_INCLUDE_PATH..."
> ver_header = SCons.Script.SConscript.FindFile(pj('boost',
> 'version.hpp'),
>
> string.split(env['ENV']['CPLUS_INCLUDE_PATH'], os.pathsep))
> -
> +
> if None == ver_header:
> + print " Searching /usr/include..."
> + ver_header = env.FindFile(pj('boost','version.hpp'), '/usr/include')
> +
> + if None == ver_header:
> self.checkRequired(" could not find boost/version.hpp.")
> else:
> ver_header = str(ver_header)
> @@ -330,10 +336,10 @@
> ######## BUILD CHECKS ###########
> # --- Check building against libraries --- #
>
> - # For each library, find cononical lib name and associated header to
> check
> + # For each library, find canonical lib name and associated header to
> check
> # default to checking lib with config.hpp
> - for libname in self.lib_names:
> - full_libname = self.buildFullLibName(libname,env)
> +
> + def check_lib(libname,lib_filename,env):
> header_to_check = 'boost/config.hpp'
> if self.headerMap.has_key(libname):
> header_to_check = self.headerMap[libname]
> @@ -341,28 +347,45 @@
> # Create config environment
> # - Need to extend the environment
> conf_env = env.Copy()
> +
> conf_env.Append(CPPPATH= self.found_incs,
> LIBPATH = self.found_lib_paths,
> CPPDEFINES = self.found_defines)
> if "python" == libname:
> conf_env.Append(CPPPATH = self.python_inc_dir,
> LIBPATH = self.python_lib_path,
> - #LIBS = [full_libname,] + self.python_extra_libs
> + #LIBS = [lib_filename,] + self.python_extra_libs
> LIBS = self.python_extra_libs
> )
>
> # Thread library needs some additional libraries on Linux... (yuck)
> if "thread" == libname:
> - conf_env.Append(LIBS = [full_libname,] + self.thread_extra_libs)
> + conf_env.Append(LIBS = [lib_filename,] + self.thread_extra_libs)
>
> conf_ctxt = Configure(conf_env)
> - result = conf_ctxt.CheckLibWithHeader(full_libname,
> header_to_check, "c++")
> -
> + result = conf_ctxt.CheckLibWithHeader(lib_filename,
> header_to_check, "c++")
> + conf_ctxt.Finish()
> +
> + return result, header_to_check
> +
> + for libname in self.lib_names:
> + full_libname = self.buildFullLibName(libname,env)
> +
> + result, header_to_check = check_lib(libname, full_libname, env)
> +
> if not result:
> + print " Full version (%s) not found trying without toolset and
> mt..." % full_libname
> + result, header_to_check = check_lib(libname, "boost_" + libname,
> env)
> + if result:
> + self.found_libs[libname] = "boost_" + libname
> + print "Found %s without toolset and mt\n***WARNING: This
> could be a lib without multi-threading support. Use with care in a
> multi-threaded program!" % libname
> + else:
> + self.found_libs[libname] = full_libname
> +
> + if not result:
> passed = False
> self.checkRequired("Can't compile test program: lib: %s
> full_lib: %s header:%s"%(libname,full_libname,header_to_check))
>
> - conf_ctxt.Finish()
>
> # --- Handle final settings ---- #
> if not passed:
> @@ -393,7 +416,7 @@
> env.AppendUnique(CPPDEFINES = self.found_defines,
> LIBPATH = self.found_lib_paths)
> if not self.autoLink:
> - full_libs = [self.buildFullLibName(l,env, useDebug) for l in
> self.lib_names if 'python' != l]
> + full_libs = [self.found_libs[l] for l in self.lib_names if 'python'
> != l]
> env.AppendUnique(LIBS = full_libs)
>
>
>
>
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Opensg-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensg-users
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users