From Thomas Vogels <tov@ece.cmu.edu>  Mon Jun 14 14:53:51 1999
From: Thomas Vogels <tov@ece.cmu.edu> (Thomas Vogels)
Date: Mon, 14 Jun 1999 09:53:51 -0400
Subject: dynload for R on AIX (>= 4.2)
In-Reply-To: Your message of "Mon, 14 Jun 1999 10:01:00 EDT."
 <199906140801.KAA00561@sophie.ethz.ch>
Message-ID: <199906141353.JAA29330@infiniti.ece.cmu.edu>


"Martin" == Martin Maechler <maechler@stat.math.ethz.ch> writes:

Thomas> The "ugliness" that I encounter is that I need a file of the
Thomas> exported symbols in R and the libraries (libappl.a, libmath.a,

Martin> Couldn't you just 'nm' the  R.binary file?
Martin> That should be available *before* you start building  *.so's ?
Martin> Then it could happen in src/main/Makefile[.in].

nm on R.binary would include stuff from libc.a and libm.c as well
(e.g. printf & friends).  Much like Tcl/Tk, I'd like to misuse the
LDCMD to build an export file when R.binary is linked.  I've put a
script at: http://www.ece.cmu.edu/~tov/public/ldAIX4
(or in color: http://www.ece.cmu.edu/~tov/public/ldAIX4.html)
It's invoked with something like:
ldAIX4 f77 -bdynamic -o ../../bin/R.binary *.o \
../unix/libunix.a ../appl/libappl.a ../nmath/libmath.a -lX11 -lblas -ldl -lm

Martin> I see in the "Makefile" that you're creating the list of exported objects
Martin> simply using  nm & awk :

For no particularly good reason, I've switched to nm & sed at the
moment :-)  The awk script is more readable, so I'll probly go back.
Are there concerns about non-availabilty of awk (plain awk, not gawk)?

Martin> main.exp : main.o
Martin> $(NM) $(NM_FLAGS) main.o | $(AWK) ' \
Martin> BEGIN { print "#! ."; } \
Martin> $$2 == "T" && $$1 != ".main" { print substr ($$1, 2) } \
Martin> ' > $@
Martin> 
Martin> which looks very reasonable.

... but is incomplete since I forgot about global vars (bummer, why
are there global vars? ;-)

Martin> Now we just need configure build the proper Makeconf(s) and Makefile(s)
Martin> and things would hopefully work..

Hope is a good choice of words.  I've patched configure (there is a
section with platform dependent overrides).  But now I have to patch
the Makefiles since things get confused.  More to follow.

Martin> Could we short-cut E-mail ( R-core, Arne, TomV ) to get this going?

Who is R-core?

Regards,
  -tom

-- 
mailto:tov@ece.cmu.edu (Tom Vogels)   Tel: (412) 268-6638   FAX: -3204

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


dynload for R on AIX (>= 4.2)
Thomas Vogels