bug-libtool
[Top][All Lists]
Advanced

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

Libtool and staged installs (-L$install-libdir before -L$staged-install-


From: Ulrik Petersen
Subject: Libtool and staged installs (-L$install-libdir before -L$staged-install-libdir)
Date: 15 May 2003 14:08:59 +0200

Hello,

I'm using a fairly recent CVS snapshot of libtool (April 25, 2003),
along with a CVS snapshot of autoconf from the same day, and Automake
1.7.4.

Automake allows "staged installs".  A description of how to do "staged
installs" could be as follows (taking my Emdros software package as an
example):

-- example description begins --
The following assumes that you want to install in /opt/Emdros and build
the package in /var/tmp/Emdros before installing.

1. ./configure --prefix=/opt/EmdrosPQ
2. make
3. mkdir /tmp/EmdrosPQ
4. make DESTDIR=/tmp/EmdrosPQ install
5. build package in /tmp/EmdrosPQ for installation in /opt/EmdrosPQ
-- example description ends --

When running

$ make DESTDIR=/tmp/EmdrosPQ install

libtool relinks the shared libraries.  Below I have reproduced four
lines of the output from this command, with most spaces converted to
newlines + indentation.  The lines are numbered.


1. /bin/bash ../libtool --mode=install .././install-sh -c  libmql.la
/tmp/EmdrosPQ/opt/EmdrosPQ/lib/emdros/libmql.la

2. libtool: install: warning: relinking `libmql.la'

3. (cd /var/tmp/emdros-1.1.11.pre31/MQL; /bin/bash ../libtool
--mode=relink CC -g
    -L/opt/PostgreSQL/lib
    -o libmql.la
    -rpath /opt/EmdrosPQ/lib/emdros
    -version-info 2:0:0
    -R/opt/PostgreSQL/lib
    -R/opt/EmdrosPQ/lib/emdros
    -L/opt/WS6/SUNWspro/lib
    emdros_environment.lo
    mql_database_statements.lo
    mql_enumeration_statements.lo
    mql_error.lo
    mql_execute.lo
    mql_execution_environment.lo
    mql_features_statements.lo
    mql_helper_classes.lo
    mql_meta_statements.lo
    mql_monads_statements.lo
    mql_mo_nr.lo
    mql_object.lo
    mql_object_statements.lo
    mql_object_type_statements.lo
    mql_query.lo
    mql_R.lo
    mql_result.lo
    mql_segment_statements.lo
    mql_select_statements.lo
    mql_sheaf.lo
    mql_statement.lo
    mql_symboltable.lo
    mql_utility.lo
    mql_yylex.lo
    mql_parser.lo
    mql_lexer.lo
    mql_get_query.lo
    ../EMdF/libpgemdf.la
    ../EMdF/libemdf.la
    -inst-prefix-dir /tmp/EmdrosPQ)

4. CC -G -nolib -hlibmql.so.2 -o .libs/libmql.so.2.0.0
    .libs/emdros_environment.o
    .libs/mql_database_statements.o
    .libs/mql_enumeration_statements.o
    .libs/mql_error.o
    .libs/mql_execute.o
    .libs/mql_execution_environment.o
    .libs/mql_features_statements.o
    .libs/mql_helper_classes.o
    .libs/mql_meta_statements.o
    .libs/mql_monads_statements.o
    .libs/mql_mo_nr.o
    .libs/mql_object.o
    .libs/mql_object_statements.o
    .libs/mql_object_type_statements.o
    .libs/mql_query.o
    .libs/mql_R.o
    .libs/mql_result.o
    .libs/mql_segment_statements.o
    .libs/mql_select_statements.o
    .libs/mql_sheaf.o
    .libs/mql_statement.o
    .libs/mql_symboltable.o
    .libs/mql_utility.o
    .libs/mql_yylex.o
    .libs/mql_parser.o
    .libs/mql_lexer.o
    .libs/mql_get_query.o
    -R/opt/EmdrosPQ/lib/emdros
    -R/opt/PostgreSQL/lib
    -L/opt/PostgreSQL/lib
    -L/opt/WS6/SUNWspro/lib
    -L/opt/EmdrosPQ/lib/emdros
    -L/tmp/EmdrosPQ/opt/EmdrosPQ/lib/emdros
    -lpgemdf
    -lemdf  


Problem is, libtool (in line 4.) adds a -L/opt/EmdrosPQ/lib/emdros
switch before the -L/tmp/EmdrosPQ/opt/EmdrosPQ/lib/emdros switch:

    -L/opt/EmdrosPQ/lib/emdros
    -L/tmp/EmdrosPQ/opt/EmdrosPQ/lib/emdros

(see the last four "lines" of line 4.)

This means that if there was an old version of the package lying around
in the installation directory (/opt/EmdrosPQ/lib/emdros), the old
versions of any dependency-libraries (in this case -lpgemdf and -lemdf)
are linked against rather than the ones in 

    -L/tmp/EmdrosPQ/opt/EmdrosPQ/lib/emdros

I hope you will take the time to fix this, if you agree with me that it
is a bug.  Perhaps it is automake that is at fault.

Regards,

Ulrik Petersen


-- 
Ulrik Petersen, Denmark
Emdros - the database engine for analyzed or annotated text
http://emdros.org/





reply via email to

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