[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#365120: Bug#528201: FTBFS: debian/tmp/usr/bin/tic: undefined symbol: _tracef



severity 528201 normal
reassign 365120 ncurses
merge 365120 528201
thanks

On 2009-05-11 13:11 +0200, Bradley Smith wrote:

> Package: ncurses
> Severity: wishlist
>
> Hi,
>
> Whilst building your package on AVR32, the build failed with:
>
>   debian/tmp/usr/bin/tic: symbol lookup error: debian/tmp/usr/bin/tic: undefined symbol: _tracef
>
> After having a quick look at the packaging, it seems the problem is that
> debian/tmp/usr/bin/tic is coming from the obj-debug directory so has been
> linked against the debug version of libncurses5 which does indeed contain
> the symbol _tracef, whilst the non-debug version does not. Although I'm
> not sure how other architectures seem to get away with this?

Apparently because their loader is lazy; the symbol lookup error only
occurs then only if you use a high debug level in tic (option -v2 or
higher).  See #365120.

> Help in
> resolving this would be very much appreciated, even if it turns out not to
> be a bug in the ncurses packaging. Thanks.

It definitely is a bug in the packaging, but I'm not sure how to best
resolve it.  My favorite solution would be to build the regular
libraries without -DNDEBUG and use detached debugging symbols instead of
extra libraries in the -dbg packages.  However, this is a rather radical
change.  Minimally obtrusive might be this patch:

--8<---------------cut here---------------start------------->8---
diff --git a/debian/rules b/debian/rules
index e7712a6..04c1c13 100755
--- a/debian/rules
+++ b/debian/rules
@@ -285,7 +285,7 @@ endif
 	mkdir -p $(tempdir)/etc
 
 	# Install into our base directory
-	GZIP='-9' $(MAKE) -C $(objdir-debug) install
+	$(MAKE) -C $(objdir-debug) install.libs
 	$(MAKE) -C $(wobjdir-debug) install.libs
 
 	# Copy libraries to the debug directory
@@ -298,7 +298,7 @@ endif
 	done
 
 	# Install non -DTRACE versions.
-	$(MAKE) -C $(objdir) install.libs
+	GZIP='-9' $(MAKE) -C $(objdir) install
 	$(MAKE) -C $(wobjdir) install.libs
 
 	# Move terminfo files to the right place.
--8<---------------cut here---------------end--------------->8---

This solves the problem of the symbol lookup error, but makes it harder
to debug the programs in ncurses-bin, because they are built with -DNEDUG
and without -DTRACE.

Sven



Reply to: