[csw-maintainers] HELP NEEDED: libtool

Peter FELECAN pfelecan at opencsw.org
Sat Jul 18 11:36:39 CEST 2009


Ihsan Dogan <ihsan at opencsw.org> writes:

> Am 17.7.2009 19:29 Uhr, Peter FELECAN schrieb:
>
>>> The current Libtool package is unfortunately not fully functional. That
>>> means, that certain packages do not build anymore.
>>>
>>> As far as I could figure out, Libtool seems not to be aware of all the
>>> compilers that we are using on our buildfarm.
>>>
>>> Because I'm not an Libtool expert, I would like to ask if anybody with
>>> good Libtool knowledge could have a look into that. Dago placed
>>> everything, including the patch that has been used in the old version,
>>> into Gar.
>>
>> Can you give a concrete example such as we can try to help?
>
> I'm getting this:
>
> /opt/csw/bin/libtool --mode=compile /opt/csw/gcc4/bin/gcc  -O2 -pipe
> -mcpu=v8 -I/opt/csw/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS
> -Wall -D_GNU_SOURCE -DNDEBUG -D_LIBRADIUS
> -I/home/ihsan/gar/csw/mgar/pkg/freeradius/trunk/work/build-isa-sparcv8/freeradius-server-2.1.6/src
> -c dict.c
> libtool: compile: unable to infer tagged configuration
> libtool: compile: specify a tag with `--tag'
> gmake[6]: *** [dict.lo] Error 1

A typical invocation is:

libtool --tag=CC   --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H
-I. -I.. -I..  -I/opt/csw/include  -I/opt/csw/gcc3/include
-I/opt/csw/gcc3/include/c++/3.4.5  -I/opt/csw/include   -O3 -march=i486
-MT snv.lo -MD -MP -MF .deps/snv.Tpo -c -o snv.lo snv.c

Please note in my example the --tag option which is missing in your
invocation. Can you try with --tag=CC

>From the info manual of libtool we can read:

    6.2 Tags
    ========
    
    Libtool supports multiple languages through the use of tags.
    Technically a tag corresponds to a set of configuration variables
    associated with a language.  These variables tell `libtool' how it
    should create objects and libraries for each language.
    
       Tags are defined at `configure'-time for each language activated in
    the package (see `LT_LANG' in *note LT_INIT::).  Here is the
    correspondence between language names and tags names.
    
    Language name      Tag name
    C                  CC
    C++                CXX
    Java               GCJ
    Fortran 77         F77
    Fortran            FC
    Windows Resource   RC
    
       `libtool' tries to automatically infer which tag to use from the
    compiler command being used to compile or link.  If it can't infer a
    tag, then it defaults to the configuration for the `C' language.
    
       The tag can also be specified using `libtool''s `--tag=TAG' option
    (*note Invoking libtool::).  It is a good idea to do so in `Makefile'
    rules, because that will allow users to substitute the compiler without
    relying on `libtool' inference heuristics.  When no tag is specified,
    `libtool' will default to `CC'; this tag always exists.
    
       Finally, the set of tags available in a particular project can be
    retrieved by tracing for the `LT_SUPPORTED_TAG' macro (*note Trace
    interface::).

What is intriguing is that the default tag is CC and libtool complains
that you are not using it explicitly. For this reason I would try to
use the /opt/csw/gcc4/bin in the PATH environment variable placed as to
be the first component refering toward a C compiler in the
configuration step.
-- 
Peter



More information about the maintainers mailing list