Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#8827 closed Bugs (worksforme)

libboost_regex missing link to libicuuc in openSUSE

Reported by: teddybouch@… Owned by: John Maddock
Milestone: To Be Determined Component: regex
Version: Boost 1.53.0 Severity: Problem
Keywords: opensuse ROS Cc:

Description

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 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.

Change History (3)

comment:1 by John Maddock, 9 years ago

I just built regex on Ubuntu and the ICU libraries are definitely linked in there. I suspect that whoever packaged the binaries for that platform messed up - especially as it worked for 1.49, and I don't recall any significant changes to our build scripts. Suggest you file a bug report with Suse - sorry to pass the buck :-(

Possible workarounds would be to:

  • Rebuild the regex binaries from source.
  • Or temporarily rename the regex .so files, so your application is forced to link against the static .a library.

comment:2 by John Maddock, 9 years ago

Resolution: worksforme
Status: newclosed

comment:3 by anonymous, 9 years ago

Thanks very much for looking into it. I'll pass it along to the openSUSE community.

Note: See TracTickets for help on using tickets.