From ripley at stats.ox.ac.uk  Thu May 12 20:44:48 2005
From: ripley at stats.ox.ac.uk (Brian D Ripley)
Date: Thu May 12 20:44:57 2005
Subject: [Rd] Implementing R on  IBM p690 cluster Jump
In-Reply-To: <EC0D7A2E-9673-4D7B-A7EC-AEFD45F35D17@unsw.edu.au>
Message-ID: <Pine.GSO.4.31.0505121921210.23806-100000@markov.stats>

As far as I know R 2.0.1 was built on AIX.  A quick diff

gannet% diff ~/R/R-2.0.1/src/modules/X11/Makefile
~/R/R-2.1.0/src/modules/X11/Makefile
54c54
<       $(SHLIB_LINK) -o $@ $(R_X11_la_LDFLAGS) $(R_X11_la_OBJECTS)
$(R_X11_la_LIBADD) $(LIBS)
---
>       $(SHLIB_LINK) -o $@ $(R_X11_la_LDFLAGS) $(R_X11_la_OBJECTS)
$(R_X11_la_LIBADD)
128c128,129
<   ../../../src/include/Rmodules/RX11.h
---
>   ../../../src/include/Rmodules/RX11.h \
>   ../../../src/include/Rconnections.h

suggests that AIX (alone) required $(LIBS) there.  As it is harmful on
some other platforms (the intention is to pick up entry points in
R.bin/libR rather than duplicate copies of static libraries) I suspect we
need an AIX-specific workaround (in particular the libintl library is not
going to be in LIBS).

This probably applies to other modules and even shared objects in
packages.

Is there anyone with an AIX machine who is able to work through this and
provide appropriate diffs?


On Thu, 12 May 2005, Bill Northcott wrote:

> On 11/05/2005, at 11:26 PM, Kurt Hornik wrote:
> >> There seem to be problems in the autoconf stuff.  cos and sin are
> >> being located in libm but the link line you show has no '-lm' which
> >> accounts for 6 of the 7 missing symbols.  Also gettext seems to have
> >> been located by the configure script, but there is no option on the
> >> link line to include it in the link. Also search configure.in for
> >> strings like powerpc-ibm-aix to see what stuff is being done
> >> specifically for AIX.  It may be out of date in relation to your
> >> system.
> >>
> >
> >
> >> If it was my problem, I would have look at those bits of the
> >> configure
> >> script and the sections of configure.in that generated them.  Then I
> >> would compare the AC_SUBST variables with the makefile.in that
> >> generated the link.  It seems there is some non- communication there.
>
> > Yes most of the undefined symbols seem to come from libm.  But they
> > would also be in libm on all other platforms which have such, and
> > we do
> > not include it there.  On Linux I get
> >
> > gcc-3.4 -shared -L/usr/local/lib -o R_X11.so  dataentry.lo
> > devX11.lo rotated.lo rbitmap.lo  -lSM -lICE -L/usr/X11R6/lib -lX11
> > -ljpeg -lpng -lz -L../../../lib -lR
>
> What happens on Linux is just not really relevant to what happens on
> AIX, although it might explain why the errors have not been picked
> up.  A number of platforms do not have a separate libm.  Instead they
> have a symlink to some general C library.  So typically libm is
> linked by default on these platforms.  It looks as if that is not the
> case on AIX, and that a specific -lm flag is needed.
> >
> > and this works.  As Brian already wrote, we are building a *module*
> > here, so I assume that we are not getting the flags for building
> > modules
> > right.  Assuming that libtool can, it might be helpful to look at the
> > output of BUILDDIR/libtool --config.
> >
> The error messages are about missing symbols.
>
> Bill
>
> ______________________________________________
> R-devel@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


[Rd] Implementing R on IBM p690 cluster Jump
Brian D Ripley