Ethereal-dev: Re: [ethereal-dev] Libtool changes checked in

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <gharris@xxxxxxxxxxxx>
Date: Tue, 28 Dec 1999 00:26:19 -0800
> > 	The build still fails with the following.  Not sure
> > 	this is problem with libtool, or problem on ethereal.
> 
> That'd be a bit annoying to debug, as
> 
> 	1) it may be specific to NetBSD (I didn't see it on FreeBSD);
> 
> 	2) the Makefile cheerfully destroyed the evidence by removing
> 	   ".libs/etherealS.o", so you'd have to tweak the Makefile by
> 	   hand not to do that - and I'm not sure where it does that.

It doesn't.  It's done by the "libtool" script in the top-level
directory; I replaced

	rm="rm -f"

with a command that just echoes stuff, and managed to get
".libs/etherealS.c" to stick around.

Unfortunately, all it reveals is that this may be orders of magnitude
more irritating to debug than I thought.  ".libs/etherealS.c" defines
"lt_preloaded_symbols" as:

	/* The mapping between symbol names and symbols. */
	const struct {
	  const char *name;
	  lt_ptr_t address;
	}
	lt_preloaded_symbols[] =
	{
	  {0, (lt_ptr_t) 0}
	};

and "libltdl/ltdl.c" defines it as:

	#ifndef HAVE_PRELOADED_SYMBOLS
	/* If libtool won't define it, we'd better do */
	const lt_dlsymlist lt_preloaded_symbols[1] = { { 0, 0 } };
	#endif

HAVE_PRELOADED_SYMBOLS *is* defined by "libltdl/config.h" on FreeBSD.

"lt_dlsymlist" is defined by "libltdl/ltdl.h" as

	typedef struct {
	        const char *name;
	        lt_ptr_t address;
	} lt_dlsymlist;

so the only way it should think those two definitions have a different
size is if "lt_ptr_t" has a different size when building "etherealS.c"
and "ltdl.c".

It appears to be declared as either a "void *" or a "char *" everywhere,
so they shouldn't have a different size...

...and they *don't*, on my machine.

Perhaps there's some problem with "libtool" on NetBSD 1.4[.x]; perhaps
there's some stuff left over from your installation of an earlier
version of "libtool"; perhaps there's some other problem.  Teledebugging
it could be very time-consuming, unfortunately - you might want to try
the steps I did, and see what you discover.