[Rd] Compiling R (1.3.0) on AIX (4.3) fails (PR#1034)
Thomas J Vogels
vogels@cmu.edu
Thu, 2 Aug 2001 23:16:28 -0400
Kurt,
here is the update: With your change in TCLTK_LIBS
TCLTK_LIBS="${TCLTK_LIBS} ${wl}${TK_LIB_SPEC} ${TK_LIBS}"
I can compile with both cc and gcc:
-- using no CC in config.site I'll get gcc and compilation proceeds nicely.
-- using CC=cc in config.site forces compilation with cc and compilation
proceeds with warnings for all modules. E.g. for X11 I get the following:
cc -Wl,-bM:SRE -Wl,-H512 -Wl,-T512 -Wl,-bnoentry -Wl,-bexpall
-Wl,-bI:../../../etc/R.exp -o R_X11.so dataentry.lo devX11.lo rotated.lo
rbitmap.lo -lSM -lICE -lX11 -L/home/tov/opt/z/lib -L/home/tov/opt/z/lib -l
dl -lm -lc
cc: 1501-218 file dataentry.lo contains an incorrect file suffix
cc: 1501-218 file devX11.lo contains an incorrect file suffix
cc: 1501-218 file rotated.lo contains an incorrect file suffix
cc: 1501-218 file rbitmap.lo contains an incorrect file suffix
-- Note that I can't just use LIBS and CPPFLAGS to set up the paths to Tcl
and Tk (as in LIBS=-L/home/tov/opt/lib and CPPFLAGS=-I/home/tov/opt/include)
since configure will try compile with -ltcl, i.e. without version number and
so doesn't find libtcl8.4.so. Use of --with-tcltk=/home/tov/opt/lib works.
(Applies to both, cc and gcc)
-- With CC=cc I get warnings about /usr/include/stdarg.h and
/usr/include/varargs.h stepping on each other's toes with macro
re-definitions.
Excerpt form Kurt Hornik's email from Thursday, August 02, 2001 1:20 AM:
>> Do you really want to go this way? Is AIX the only OS where you can
>> run into this kind of trouble? If so, why not add a compilation of a
>> little test program in configure in case you have os==AIX, that would
>> use the same flags that you'll use in library/src/tcltk.c? If that
>> fails, it's flagged early on and directly points to the tcl/tk
>> installation (and not to R).
>
> I think I want to go this way. Reason: the current situation is a
> mixture of an R bug and a Tk inconsistency. The R bug is that I had not
> realized that the LIB_SPECs are meant as flags to ld. The Tk problem is
> that this is not true.
>
> The whole thing is a bit tricky, and it might be interesting to see how
> e.g. GNOME projects deal with this in their -config scripts. As this is
> hidden inside libtool could you maybe try compiling libxml2 on your AIX
> system and see what xml2-config --libs does?
What and where is xml2?
> Also, what does
> ./libtool --config | grep ^wl
> give for configuration with native cc?
With cc: wl=""
With gcc: wl="-Wl,"
>
> In general, the portable way would be to have package config scripts use
> $wl or alike. But that will not do in general: someone could have gcc
> but a native C++ compiler and $wl might be different between these ...
Interestingly I saw today in Tk's configure:
case $SHLIB_LD in
*ld*)
TK_LD_SEARCH_FLAGS=`echo ${TK_CC_SEARCH_FLAGS} |sed -e "s|-Wl,||g" -e
"s|,| |g"`
;;
*)
TK_LD_SEARCH_FLAGS="${TK_CC_SEARCH_FLAGS}"
;;
esac
So they thought about throwing out the -Wl when calling the linker with
flags meant for the compiler. I think you could turn that around and
add -Wl for linker flags that you pass to the compiler. (My point being
that the echo&sed combination is saver than just prefixing a variable with
${wl}.)
Thanks,
-tom
--
Email: vogels@cmu.edu
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._