[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gtags.conf.in ignores custom --libdir if set
From: |
Kevin Farshaw |
Subject: |
Re: gtags.conf.in ignores custom --libdir if set |
Date: |
Sat, 10 Oct 2015 14:34:35 +0200 |
> Sent: Wednesday, October 07, 2015 at 2:30 AM
> From: "Shigio YAMAGUCHI"
> Hi,
> > gtags.conf.in lists the location of the shlibs for the bundles plugins,
> > namely ctags and pygments. The paths used are of the form
> >
> > @prefix_QUOTED@/lib
> >
> > where this should acutally be set according to $libdir which
> > may be customize by the user when invoking configure.
>
> There is a problem with using 'libdir'.
> Without --libdir=xxx, configure script converts "@libdir@" into
> "${exec_prefix}/lib". It is valid in Makefile; it is invalid
> in gtags.conf.
> Do you have a method to settle this?
Why not use the same approach used for "$prefix" in configure.ac?
case "$prefix" in
NONE) prefix_QUOTED=`echo $ac_default_prefix | sed 's/:/\\\\:/g'`;;
*) prefix_QUOTED=`echo $prefix | sed 's/:/\\\\:/g'`;;
esac
If libdir is set, use it, if not, use a defualt value.
> > As a separate issue, I'm don't understand why gtags.conf has
> > paths to the libtool .la files instead of the .so files.
>
> Why do you want to use .so instead of .la?
> The purpose of libtool library is to reduce OS dependence,
> and .la is a common extension for every OS.
>
I am not an expert on libtool by any means, but what I've read about .la files
suggest they're not as useful as you suggest:
https://autotools.io/libtool/lafiles.html:
One of the most commonly misunderstood features of libtool, especially
in modern days, is the presence of the *.la files, the so-called
libtool archives. These files are simple textual file descriptors of a
library built with libtool and are consumed only by libtool and, in
some circumstances, libltdl.
You may not care (and have every right not to) but the fedora packaging
guidelines prohibit .la files:
https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries
libtool archives, foo.la files, should not be included. Packages using
libtool will install these by default even if you configure with
--disable-static, so they may need to be removed before packaging. Due
to bugs in older versions of libtool or bugs in programs that use it,
there are times when it is not always possible to remove *.la files
without modifying the program. In most cases it is fairly easy to work
with upstream to fix these issues.
I also tried to dig up what the debian packaging guidelines have to say on the
subject,
but those make "War & Peace" look like a pamphlet and I grew despondant and
gave up.
IIUC, the files referenced by gtags.conf end up as arguments to a dlopen() call.
Why not name the .so files directly, or their platform-specific equivalent
depending on the compilation target?
> > For reference, here's the associated issue on the fedora bugzilka:
> > https://bugzilla.redhat.com/show_bug.cgi?id=1268763
Thanks,
Kevin Farshaw