https://bugzilla.novell.com/show_bug.cgi?id=829702 https://bugzilla.novell.com/show_bug.cgi?id=829702#c0 Summary: libboost_regex in Boost v1.53 missing link to libicuuc when installed via YaST Classification: openSUSE Product: openSUSE 12.3 Version: Final Platform: x86-64 OS/Version: openSUSE 12.3 Status: NEW Severity: Normal Priority: P5 - None Component: Other AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: andrewtbouchard@gmail.com QAContact: qa-bugs@suse.de Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.68 Safari/537.36 I am running openSUSE 12.3, which installs with Boost v1.49 and just used YaST to update Boost to v1.53 along with a number of associated libraries. But when I go to install ROS, which uses libboost_regex, I get a series of errors that all look like the following: /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `u_tolower_51' After talking with someone on the Boost IRC channel who was very helpful, I was able to use readelf to look at the Version needs section of libboost_regex.so.1.53.0 and determine that libicuuc.so is not linked, which provides those missing references. I reported the bug on the Boost bug tracker, but apparently they do not do the packaging for openSUSE, and the issue is isolated to just this distribution. I wish that I could offer a fix, but I'm way out of my depth here. If someone could please fix this linking issue and let me know how to do so on my system, I would greatly appreciate it. Thanks very much. Reproducible: Always Steps to Reproduce: 1. Uninstall Boost components using YaST 2. Re-install Boost components using YaST 3. Attempt to build ROS Actual Results: ==> Processing catkin package: 'pluginlib' ==> Building with env: '/opt/ros/groovy/env.sh' Makefile exists, skipping explicit cmake invocation... ==> make cmake_check_build_system in '/home/abouchard/ros_catkin_ws/build_isolated/pluginlib' ==> make -j2 -l2 in '/home/abouchard/ros_catkin_ws/build_isolated/pluginlib' Linking CXX executable /home/abouchard/ros_catkin_ws/devel_isolated/pluginlib/lib/pluginlib/plugin_tool /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `u_tolower_51' /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `u_isblank_51' /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `u_charType_51' /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `u_charFromName_51' /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `icu_51::Locale::Locale(icu_51::Locale const&)' /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `u_isspace_51' /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `icu_51::Locale::Locale()' /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `icu_51::Locale::~Locale()' /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `icu_51::Collator::createInstance(icu_51::Locale const&, UErrorCode&)' /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../lib64/libboost_regex-mt.so: undefined reference to `u_digit_51' collect2: error: ld returned 1 exit status make[2]: *** [/home/abouchard/ros_catkin_ws/devel_isolated/pluginlib/lib/pluginlib/plugin_tool] Error 1 make[1]: *** [CMakeFiles/plugin_tool.dir/all] Error 2 make: *** [all] Error 2 Traceback (most recent call last): File "./src/catkin/bin/../python/catkin/builder.py", line 722, in build_workspace_isolated number=index + 1, of=len(ordered_packages) File "./src/catkin/bin/../python/catkin/builder.py", line 497, in build_package install, force_cmake, quiet, last_env, cmake_args, make_args + catkin_make_args File "./src/catkin/bin/../python/catkin/builder.py", line 353, in build_catkin_package run_command(make_cmd, build_dir, quiet) File "./src/catkin/bin/../python/catkin/builder.py", line 198, in run_command raise subprocess.CalledProcessError(proc.returncode, ' '.join(cmd)) CalledProcessError: Command '/opt/ros/groovy/env.sh make -j2 -l2' returned non-zero exit status 2 <== Failed to process package 'pluginlib': Command '/opt/ros/groovy/env.sh make -j2 -l2' returned non-zero exit status 2 Reproduce this error by running: ==> /opt/ros/groovy/env.sh make -j2 -l2 Command failed, exiting. Expected Results: What should happen is that the libboost_regex-mt.so should build with the links to the references in icu. I can provide more information if requested, but I'm not sure what would be helpful. In parallel, I'm going to attempt to install this Boost library from source and see if I can fix it manually, but like I said, I'm out of my depth here. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.