[Rd] Building R for AIX in 32-bit mode - as preparation for building in 64-bit mode (changed subject!) - INFO/FEEDBACK - do not read as a bug report!
aixtools
aixtools at gmail.com
Sun Oct 18 21:06:50 CEST 2015
On 2015-10-15 15:02, Prof Brian Ripley wrote:
> On 15/10/2015 13:32, Michael Felt wrote:
>> Hi.
>>
>> Just wanted to let you know I am getting close to packaging R for AIX in
rephrase - would like to be active in keeping R binaries current for
AIX. My interest in not in R per se (rather a colleague who has a
project that uses R, so I hope to assist him, and others like him).
>
> Which version? (You mentioned 3.1.3 and 3.2.2 far below.) There is
> little value in reporting on frozen branches, and most value in
> reporting on R-devel where all the current changes have been
> incorporated.
The reason for reporting old and current releases is to understand what
is new between releases, and what has been around for "awhile".
Note: in the future I shall edit all the "you cannot build, could not
determine ... messages" - and as much as possible, shall focus on
R-devel "packaging".
I (attempt to) 'package' a lot of Opensource tools for AIX. Generally,
the problems are not application code related (sometimes a function
available on one platform, e.g. Linux, but not on AIX) - but most are,
or can be resolved, with modifications via configure.ac, Makefile.in, etc..
Sincerely,
Michael
"Details"...
When configure does complete - config.log starts with:
It was created by R configure 3.1.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ ./configure --prefix=/opt --sysconfdir=/var/R/etc
--sharedstatedir=/var/R/com --localstatedir=/var/R
--mandir=/usr/share/man --infodir=/opt/share/info/R --with-readline=no
--with-x=no
As I see you are using a recent autoconf (and I shall guess a recent
automake) I would like to try a more version of libtool and see if that
corrects anything. However, even in R-devel I do not see, directly, how
you are using these tools (some projects include either a setup.sh or a
buildconf script to standardize how the project does this.) I am quite
capable of just calling the tools in sequence, but would prefer to
follow your procedure.
I
Starting again - fresh 3.1.3, 3.2.2 and R-devel - all in 32-bit mode,
for the start. The goal is a 64-bit build so that memory management will
be easier.
This is my "standard command for building a package"
CPPFLAGS="-I/opt/buildaix/include -I/opt/include" CFLAGS="-I/opt/include
-I/opt/buildaix/include -O2" ./configure \
--prefix=/opt \
--sysconfdir=/var/R/etc \
--sharedstatedir=/var/R/com \
--localstatedir=/var/R \
--mandir=/usr/share/man \
--infodir=/opt/share/info/R --with-readline=no --with-x=no
Results for 3.1.3
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help
pages
configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: I could not determine a browser
configure: WARNING: I could not determine a PDF viewer
configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help
pages
configure: WARNING: I could not determine a browser
configure: WARNING: I could not determine a PDF viewer
+ make > .buildaix/make.out
sys-std.c: In function 'Rstd_ChooseFile':
sys-std.c:1186:5: warning: implicit declaration of function 'isspace'
[-Wimplicit-function-declaration]
connections.c: In function 'fifo_open':
connections.c:885:5: warning: implicit declaration of function 'open'
[-Wimplicit-function-declaration]
main.c: In function 'dummy_ii':
main.c:1594:5: warning: function returns address of local variable
[enabled by default]
ld: 0711-224 WARNING: Duplicate symbol: .memcpy
ld: 0711-224 WARNING: Duplicate symbol: memcpy
ld: 0711-224 WARNING: Duplicate symbol: .bcopy
ld: 0711-224 WARNING: Duplicate symbol: bcopy
ld: 0711-224 WARNING: Duplicate symbol: .strcmp
ld: 0711-224 WARNING: Duplicate symbol: strcmp
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
information.
Warning in solve.default(rgb) :
unable to load shared object
'/data/prj/cran/32/R-3.1.3/modules//lapack.so':
rtld: 0712-001 Symbol logf was referenced
from module /data/prj/cran/32/R-3.1.3/lib/libRlapack.so(), but a
runtime definition
of the symbol was not found.
Error in solve.default(rgb) : LAPACK routines cannot be loaded
Error: unable to load R code in package 'grDevices'
Execution halted
make: 1254-004 The error code from the last command is 1.
...
Stop.
make returned an error
root at x072:[/data/prj/cran/32/R-3.1.3]
++++++
Notes: Last April I was successful with building R - I do not recall
specifically how I changed the release. I shall determine what I did to
get it to build normally.
++++++
Results for 3.2.2
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help
pages
configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: I could not determine a browser
configure: WARNING: I could not determine a PDF viewer
configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help
pages
configure: WARNING: I could not determine a browser
configure: WARNING: I could not determine a PDF viewer
+ make > .buildaix/make.out
sys-std.c: In function 'Rstd_ChooseFile':
sys-std.c:1189:5: warning: implicit declaration of function 'isspace'
[-Wimplicit-function-declaration]
connections.c: In function 'fifo_open':
connections.c:876:5: warning: implicit declaration of function 'open'
[-Wimplicit-function-declaration]
main.c: In function 'dummy_ii':
main.c:1598:5: warning: function returns address of local variable
[enabled by default]
ld: 0711-415 WARNING: Symbol BM_norm_keep is already exported.
ld: 0711-415 WARNING: Symbol LoadInitFile is already exported.
ld: 0711-415 WARNING: Symbol N01_kind is already exported.
ld: 0711-415 WARNING: Symbol R_ReadItemDepth is already exported.
ld: 0711-224 WARNING: Duplicate symbol: LoadInitFile
ld: 0711-224 WARNING: Duplicate symbol: BM_norm_keep
ld: 0711-224 WARNING: Duplicate symbol: N01_kind
ld: 0711-224 WARNING: Duplicate symbol: R_ReadItemDepth
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
information.
ld: 0711-415 WARNING: Symbol BM_norm_keep is already exported.
ld: 0711-415 WARNING: Symbol LoadInitFile is already exported.
ld: 0711-415 WARNING: Symbol N01_kind is already exported.
ld: 0711-415 WARNING: Symbol R_ReadItemDepth is already exported.
ld: 0711-224 WARNING: Duplicate symbol: LoadInitFile
ld: 0711-224 WARNING: Duplicate symbol: BM_norm_keep
ld: 0711-224 WARNING: Duplicate symbol: N01_kind
ld: 0711-224 WARNING: Duplicate symbol: R_ReadItemDepth
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
information.
ld: 0711-224 WARNING: Duplicate symbol: .memcpy
ld: 0711-224 WARNING: Duplicate symbol: memcpy
ld: 0711-224 WARNING: Duplicate symbol: .bcopy
ld: 0711-224 WARNING: Duplicate symbol: bcopy
ld: 0711-224 WARNING: Duplicate symbol: .strcmp
ld: 0711-224 WARNING: Duplicate symbol: strcmp
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
information.
/bin/sh: There is no process to read data written to a pipe.
Warning in solve.default(rgb) :
unable to load shared object
'/data/prj/cran/32/R-3.2.2/modules//lapack.so':
rtld: 0712-001 Symbol logf was referenced
from module /data/prj/cran/32/R-3.2.2/lib/libRlapack.so(), but a
runtime definition
of the symbol was not found.
Error in solve.default(rgb) : LAPACK routines cannot be loaded
Error: unable to load R code in package 'grDevices'
Execution halted
make: 1254-004 The error code from the last command is 1.
...
make returned an error
+++++
Here there are similiar - and new problems. The error re: rtld is
usually a compiler (actually ld) flag error - a routine is expected to
be exported in a shared object, but the object is still "static".
I have seen this same problem with at least one R module.
I still am unsure why some functions are being defined double - that
info will come later
root at x072:[/data/prj/cran/32/R-3.2.2]
+++++
>From R-devel_2015-10-17.tar.bz2
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help
pages
configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: I could not determine a browser
configure: WARNING: I could not determine a PDF viewer
configure: error: bzip2 library and headers are required
buildaix: ./configure ... returned an error
try doing "grep configure: config.log | tail" for possible explanation
try "./configure --help" for additional arguments to buildaix
++++ config.log configure: comments are ++++
configure:35647: checking bzlib.h presence
configure:35647: gcc -E -I/opt/buildaix/include -I/opt/include conftest.c
configure:35647: $? = 1
configure: failed program was:
configure:35647: result: no
configure:35647: checking for bzlib.h
configure:35647: result: no
configure:35712: checking whether bzip2 support suffices
configure:35719: error: bzip2 library and headers are required
configure: exit 1
++++ ++++
Here is a completely new kind of "problem" - a demand for an include
file. bzip2 is available, but configure is looking for it in a different
way and now configure fails.
>
>> One comment - the libtool.m4 I see used is quite old. The one I have
>> on my
>> system is 2.4.6, and what I see in R says:
>
> R-devel has 2.4.6 .
>
>> I am hoping a new libtool will clean up most of the manual work now
>> needed.
>
> But libtool is hardly used in building R.
>
>> # Which release of libtool.m4 was used?
>> macro_version=2.2.6
>> macro_revision=1.3012
>>
>> This may be all that is needed to cleanup what I am doing manually.
>>
>> working with gcc I have done the following for 64-bit building
>>
>> export OBJECT_MODE=64
>> export CFLAGS="-maix64 -O2"
>> export FFLAGS="-maix64 -O2"
>
> See the manual: flags such as -maix64 should be part of CC, not
> CFLAGS. That explains a lot of what was reported.
> Specifically,
> https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Essential-programs-and-libraries
> and https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#AIX .
>
> It is safer to put such things on the configure command line or in a
> config.site file (they will be found when updating if you do).
>
> [Lots of test output removed.]
>
More information about the R-devel
mailing list