Policy proposal: Cpu extension code, update-ldsoconf
Greetings! This is hardly formal, but it seems as though we don't
have a policy on this yet, and a number of packages are appearing
(e.g. atlas, gmp2) which can benefit enormously through the use of cpu
extension instructions, such as {SSE,3DNow{{1,2}.
Proposal outline:
1) All code which will not run on all machines of its general
architecture should be separated into a shared library.
2) This library should be placed in a designated subdir of /usr/lib
specialized for code requiring the cpu extension in question. All
such directories should be agreed on and sanctioned by the policy
committee. As a suggestion, the directory might be named after
the cpu capability (as reported in /proc/cpuinfo) required to run
the code, e.g. /usr/lib/xmm, /usr/lib/3dnowext, etc.)
3) All functionality provided by this code should also be provided by
a binary-equivalent generic shared lib of the same name and soname
in /usr/lib.
4) Ideally, ldso should be smart enough to search the special
directories first given the running cpu characteristics. Barring
this, a system script, update-ldsoconf, should be created, which
packages can call at install/remove time, to add/remove the
specialized paths appropriate to the running cpu to /etc/ld.so.conf
ahead of /usr/lib and then run ldconfig. Optionally (and
preferably), this script could also be run at boot time to catch
cpu-upgrades and/or kernel upgrades (SSE requires kernel support).
The path need not be added, and can be removed, if no libs exist in
the directory.
Comments most welcome, but please cc me directly, as I'm not
subscribed to some of these lists.
Thanks for your work on Debian!
--
Camm Maguire camm@enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
Reply to: