library in lib and not in lib64 when installing tcl8.6 on CentOS 6 64bit

581 views
Skip to first unread message

Harald Oehlmann

unread,
May 3, 2012, 11:19:35 AM5/3/12
to
- Current TCL 8.6 trunk
- CentOS 6 64 bit Linux
- ./configure --enable-thread --enable-64bit
-> detects 64 bit
- make ; install
installs the lib files into /usr/local/lib
they should be in /usr/local/lib64
(at least the libtcl8.6.so)

Is there any clue to acheve this ?

Thank you,
Harald

Joe English

unread,
May 3, 2012, 1:47:21 PM5/3/12
to
Autoconf-generated configure scripts do not (and *should not*)
know about lib vs. lib64 or other multiarch conventions;
it leaves that decision up to packagers.

You must explicitly specify --libdir=... at configure-time.
Alternately, you can set this and other defaults in
${prefix}/share/config.site; see

<URL: http://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Site-Defaults.html#Site-Defaults >

for details.


--Joe English

Harald Oehlmann

unread,
May 4, 2012, 2:16:49 AM5/4/12
to
>     <URL:http://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/S...>
>
> for details.
>
> --Joe English

Thank you for the answer.
This is helpful, it is my first 64bit Linux experience...
-Harald

Harald Oehlmann

unread,
May 4, 2012, 2:45:41 AM5/4/12
to
On 3 Mai, 19:47, Joe English <jengl...@fdip.bad-monkeys.com> wrote:
>     <URL:http://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/S...>
>
> for details.

Using the last example on the url gave the desired effect:

Create a file

/usr/local/share/config.site

with the contents:

<contents /usr/local/share/config.site>
# /usr/local/share/config.site for platforms that prefer
# the directory /usr/local/lib64 over /usr/local/lib.
test "$libdir" = '${exec_prefix}/lib' && libdir='${exec_prefix}/lib64'
</contents>

Thank you,
Harald

Harald Oehlmann

unread,
May 4, 2012, 2:54:55 AM5/4/12
to
On 4 Mai, 08:45, Harald Oehlmann <wortka...@yahoo.de> wrote:
>
> Using the last example on the url gave the desired effect:
>
> Create a file
>
> /usr/local/share/config.site
>
> with the contents:
>
> <contents /usr/local/share/config.site>
> # /usr/local/share/config.site for platforms that prefer
> # the directory /usr/local/lib64 over /usr/local/lib.
> test "$libdir" = '${exec_prefix}/lib' && libdir='${exec_prefix}/lib64'
> </contents>

The resulting file distribution is:
/usr/local/lib
tcl8/
tcl8.6/
/usr/local/lib64
libtcl8.6.so
libtclstub8.6.so
pkconfig/
tclConfig.sh
tclooConfig.sh

This seams reosanable...

Thank you,
Harald

Harald Oehlmann

unread,
May 4, 2012, 3:40:07 AM5/4/12
to
Here is a message I just wanted to write to tcl-core.

But thinking a bit about it makes things resonable:

System: CentOS 6 Linux 64 bit
Tcl 8.6 trunk
Requirement: tcllib8.6.so should go in folder /usr/local/lib64 as this
is contained in the library search path.

Solution for Tcl (http://wiki.tcl.tk/3298):
configure --enable-64bit --libdir=/usr/local/bin64

This will install library files in lib64 and tcl files in lib (which
is imho reasonable).

When installing itcl trunk with the same method, I get one folder
named "itcl4.0b7" in lib64 with a shared library and tcl scripts and
nothing in lib.

This does not feel right.

Nevertheless, a "package require Itcl" succeeds.

The tcl auto path contains: lib/tcl8.6, lib, lib64

So this is normal:
- tcl-only packages are installed in lib
- binary packages are installed in lib64

Thanks,
Harald
Reply all
Reply to author
Forward
0 new messages