automake
[Top][All Lists]
Advanced

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

Re: AIX shared libraries, make install misses them


From: Daniel Pocock
Subject: Re: AIX shared libraries, make install misses them
Date: Fri, 29 Jan 2010 10:46:28 +0000
User-agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090707)

Daniel Pocock wrote:
Ralf Wildenhues wrote:
Hello Daniel,

* Daniel Pocock wrote on Thu, Jan 28, 2010 at 03:21:24PM CET:
We have been working on getting the Ganglia tarball to work out of
the box for AIX

When Michael does `make install', the *.so files for our modules
are not installed.  Instead, he sees output like this from `make
install':

----------------------------------------------------------------------
/opt/freeware/bin/bash ../../../libtool   --mode=install
../../../build/install-sh -c  'modcpu.la'
'/var/tmp/gg/lib/ganglia/modcpu.la'
../../../build/install-sh -c .libs/modcpu.a
/var/tmp/gg/lib/ganglia/modcpu.a
../../../build/install-sh -c .libs/modcpu.lai
/var/tmp/gg/lib/ganglia/modcpu.la

I've looked at the file gmond/modules/cpu/.libs/modcpu.la on AIX:

...
dlname='modcpu.so'
library_names='modcpu.a modcpu.a'
old_library=''

Is that without or with runtimelinking enabled (LDFLAGS=-Wl,-brtl passed
to configure)?  If without, then libtool puts the modcpu.so file into
the modcpu.a archive (the way AIX does with its system modules as well)
and that is to be expected.

With runtimelinking, the .so file should be a separate file.
That makes sense - I don't believe Michael has run it with the different LDFLAGS yet.

However, nothing gets installed - if the default behavior is to create modcpu.a, then shouldn't `make install' result in the installation of modcpu.a?

For changing LDFLAGS, I'd rather include this into configure.in, so it will be set automatically for AIX platforms. Can you make any suggestions on that? The project involves building some static libraries, shared libraries, and linking some of the static libraries to create an executable too. Will option be necessary for all such targets, or do I need to use it selectively?

I've looked at the manual for -brtl and it tells me that the flag is needed for building targets that depend on other shared objects.

The gmond executable itself loads various other modules (shared objects) using dlopen(), and gmond also depends on system libraries. The modules themselves depend on some other shared libraries in the system. Therefore, I think -brtl is needed for everything we build and could potentially be added to LDFLAGS for AIX in configure.in

BTW, you didn't specify any bug or misbehavior that you see, so maybe
everything else works as expected?
Yes, an earlier email I have from Michael says that it runs if the modules are copied over manually - I'm not sure if he was copying *.a or *.so however.

Finally, Michael reports that if he bootstraps again with his own
autoconf, make install does work.

Here is Michael's autotools versions:

autoconf-2.64-1
automake-1.11.1-1
libtool-1.5.26-1
libtool-ltdl-1.5.26-1
libtool-ltdl-devel-1.5.26-1
m4-1.4.13-1

And here are the versions on Debian 5 (used for bootstrapping the
release tarball):

autoconf 2.61-8
automake 1:1.10.1-3
libtool 1.5.26-4
m4 1.4.11-1

Is there any way we can get this working using the existing
autotools version?

Well, I really don't know the differences between libtool-1.5.26-1 and
libtool 1.5.26-4 (this really all is a libtool issue, not an Automake
one), but if there were bugs in either, I'd first ask you to retry with
2.2.6b anyway.

Another problem I have just discovered, on Cygwin, I have to patch
libtool, adding the line

echo="echo"

otherwise I get lot's of errors along the lines of "Xgcc command not found"

This is a pretty sure sign that you have mixed up macros from one
Libtool version with a ltmain.sh file from another Libtool version.
Perchance your aclocal.m4 or acinclude.m4 files contain old Libtool
macro definitions?
I'll be checking that out shortly - thanks for this tip
Ok, here is what I found:

- the system where I bootstrap has libtool 1.5.26-4

- the Cygwin system where I run configure and make has libtool 2.2.7a

- various files like aclocal.m4 are included in the tarball from the bootstrap host
http://www.pocock.com.au/ganglia/test/

- some files, like acinclude.m4, are included in SVN
http://ganglia.svn.sourceforge.net/viewvc/ganglia/branches/monitor-core-3.1/

Is there some way we can fix this so that the user running configure won't have to worry about which version of libtool they have?






reply via email to

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