[ros-users] [PCL-users] release vs relwithdebinfo
Nizar Khalifa Sallem
nksallem at laas.fr
Tue Feb 22 20:24:49 UTC 2011
At Tue, 22 Feb 2011 14:59:38 -0500,
Eric Perko wrote:
> 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
> 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 similar?
> 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 symbols?
> - Eric
> PCL-users at code.ros.org / http://pointclouds.org
I completely agree with Eric many libraries have a release and a debug
version and personaly in my projects I do have the release for
deployment and debug for wip but I will back to the discussion I had
once with Radu about writing real CMakeLists.txt for PCL, which can
solve this problem along with the install issue (another point for the
pcl-1.0 :) ).
More information about the ros-users