[ros-users] [PCL-users] release vs relwithdebinfo

Eric Perko wisesage5001 at gmail.com
Tue Feb 22 19:59:38 UTC 2011

On Tue, Feb 22, 2011 at 1:51 PM, Radu Bogdan Rusu <rusu at willowgarage.com>wrote:

> Hi all,
> This question is mainly for our ROS PCL users, as that's the only forum
> where we provide binaries for PCL (via DEB
> packages)...
> We did some tests yesterday and we discovered that in its default
> "RelWithDebInfo" configuration, the perception_pcl
> stack libraries occupy around 300MB, due to the explicit template
> instantiations that we do there. (More on how to
> improve this for 2.0 later.) However, when changed to "Release", the entire
> think dropped to 30MB or so.

> Right now we have no way to change between the two modes while we build the
> debian packages (we could create a ticket
> for that if we feel it's necessary), so we have to select one or the other.
> Do folks here have any preferences? If you're doing development, and you're
> missing out on debug information, it might
> be hard to trace bugs. And PCL can be buggy -- "stable" means the API is
> locked, not that we solved all our bugs :)
> However, is the archive size is important, and you would like to apt-get
> install less stuff, going to Release will
> shrink down the files by an order of magnitude.

> Suggestions? Ideas?

Can we have it both ways? :)

For example, there are numerous libraries in the Ubuntu repositories that
provide both a -dbg and a regular version. One example: the GNU C library
has both the "libc6" package, as well as the "libc6-dbg" package that
provides debugging symbols (or a version that doesn't have debugging symbols
stripped out). I'm a bit fuzzy on exactly what they are doing, but my point
is that they have two separate packages, one with debugging symbols and one
without and I get to choose which to install. Could PCL do something

I can see being able to choose which side of the tradeoff I want being
useful. For example, on my development workstations I would prefer the
debugging symbols and have disk space aplenty to waste on them when I'm not
using them. On the robot however, disk space is very limited and we
generally don't do debugging directly on the robot, so saving 270MB on
debugging symbols that won't get used would be a definite win.

I'm not sure how this would affect the debs that depend on PCL though. Can
we mix and match code compiled with and without debugging symbols without
any downsides? Would there need to be two sets of debs for every single
package that depended on PCL (transitively), one set that boiled down to
depending on the Release build and one set that depended on the -dbg
version? Could the -dbg version just say it "provides" the standard version
and then all packages can safely depend solely on ros-*-perception-pcl
without caring whether I've installed the version with or without debugging

- Eric

> Thanks,
> Radu.
> --
> http://pointclouds.org
> _______________________________________________
> PCL-users at code.ros.org / http://pointclouds.org
> https://code.ros.org/mailman/listinfo/pcl-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20110222/66c0ff16/attachment-0004.html>

More information about the ros-users mailing list