bug-gnulib
[Top][All Lists]
Advanced

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

relocatable-lib{,-lgpl}


From: Reuben Thomas
Subject: relocatable-lib{,-lgpl}
Date: Tue, 7 Mar 2017 12:19:24 +0000

I am trying to use relocatable-lib-lgpl, to make Enchant relocatable. (Enchant is a spell-checker library wrapper, itself a library, and it needs to be able to find resources such as dictionaries at run-time, relative to the library's location. See https://github.com/AbiWord/enchant/ )

I have read the documentation in gnulib, and also dug out the original announcement, coincidentally almost exactly 10 years old: http://lists.gnu.org/archive/html/bug-gnulib/2003-03/msg00020.html

(Thanks, Bruno!)

However, I can't work out how to use relocatable-lib in a library, as the documentation seems only to cover use in programs (which I've used before).

There seem to be some magic symbols such as IN_LIBRARY (not defined anywhere in gnulib that I can see) and the function compute_curr_prefix is automagically renamed to local_compute_curr_prefix and made static in a library. It seems that a library has to arrange calling set_relocation_prefix itself; I presume the first argument can be passed in from the configure-time prefix?

Anyway, given some brief details, I'd be very happy to mark the 10th anniversary of this excellent contribution to gnulib by adding documentation for relocatable-lib{,-lgpl}.

As relocatable-lib was originally written for gettext, I had a look at gettext to see what I could glean. I see that it defines IN_LIBRARY when building libintl.

So my guess at what a library should do is something like:

Installation considerations are the same as for relocatable{,-prog,…}, so no need to add anything there. (That is, the only differences are for maintainers.)

Maintainers need to:

1. Define IN_LIBRARY when building the library sources.

2. Call set_relocation_prefix at a suitable time, e.g. when the library is initialised, or the first time it needs to look for other files. The first argument can be set from @address@hidden

Otherwise, usage seems is the same: call "relocate" as needed, except the convenience function "compute_curr_prefix" is called "local_compute_curr_prefix".

--
http://rrt.sc3d.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]