aixtools
2015-Oct-18 19:06 UTC
[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!
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 inrephrase - 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.bz2configure: 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.] >
Michael Felt
2015-Oct-24 17:46 UTC
[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!
I have determined why there are many "WARNING: Duplicate symbol:"
messages.
*** My apologies for the length *** There is a lot of detail - but I
hope the detail will help R - and others - setup correct options for
shared libraries.
*** As I press send, I have not stopped testing (my final trial here
might not even work) - but!
*** the message is that shared libraries do not need to have all
external libraries on the command line to make a shareable library
(that is the whole point of multiple shared libraries I think)
Anyway, I hope you are"in" for a long read.
a) the duplicate symbol messages occur during the creation (read
linking) of a shared object.
b) the shared object does not need to have all symbols resolved -
actually, you do not want "external" symbols from elsewhere pulled
into to the archive.
c) one example - stats.so
currently the command to make stats.so is:
gcc -Wl,-bnoquiet -std=gnu99 -shared -Wl,-brtl -Wl,-G -Wl,-bexpall
-Wl,-bnoentry -o stats.so init.o kmeans.o ansari.o bandwidth
s.o chisqsim.o d2x2xk.o fexact.o kendall.o ks.o line.o smooth.o prho.o
swilk.o ksmooth.o loessc.o monoSpl.o isoreg.o Srunmed.o d
blcen.o distance.o hclust-utils.o nls.o rWishart.o HoltWinters.o
PPsum.o arima.o burg.o filter.o mAR.o pacf.o starma.o port.o fa
mily.o sbart.o approx.o loglin.o lowess.o massdist.o splines.o lm.o
complete_cases.o cov.o deriv.o fft.o fourier.o model.o optim
.o optimize.o integrate.o random.o distn.o zeroin.o rcont.o
influence.o bsplvd.o bvalue.o bvalus.o loessf.o ppr.o qsbart.o sgram
.o sinerp.o sslvrg.o stxwx.o hclust.o kmns.o eureka.o stl.o portsrc.o
lminfl.o -fopenmp -L../../../../lib -lRlapack -lgfortran -
lm /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc.a -lg -lm
/opt/lib/libintl.a /opt/lib/libiconv.a -lpthread
The result has duplicate symbols:
With comments:
gcc -Wl,-bnoquiet -std=gnu99 -shared -Wl,-brtl -Wl,-G -Wl,-bexpall
-Wl,-bnoentry -o stats.so init.o kmeans.o ansari.o bandwidths.o
chisqsim.o d2x2xk.o fexact.o kendall.o ks.o line.o smooth.o prho.o
swilk.o ksmooth.o loessc.o monoSpl.o isoreg.o Srunmed.o dblcen.o
distance.o hclust-utils.o nls.o rWishart.o HoltWinters.o PPsum.o
arima.o burg.o filter.o mAR.o pacf.o starma.o port.o family.o sbart.o
approx.o loglin.o lowess.o massdist.o splines.o lm.o complete_cases.o
cov.o deriv.o fft.o fourier.o model.o optim.o optimize.o integrate.o
random.o distn.o zeroin.o rcont.o influence.o bsplvd.o bvalue.o
bvalus.o loessf.o ppr.o qsbart.o sgram.o sinerp.o sslvrg.o stxwx.o
hclust.o kmns.o eureka.o stl.o portsrc.o lminfl.o -fopenmp
-L../../../../lib -lRlapack -lgfortran -lm
/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc.a -lg -lm
/opt/lib/libintl.a /opt/lib/libiconv.a -lpthread -lc
(ld): halt 4
** Display the options passed to ld
(ld): setopt r/o->w
(ld): setopt nodelcsect
(ld): setopt noautoexp
(ld): setopt expall
(ld): setopt rtl
(ld): setopt nortllib
(ld): setopt symbolic:0
(ld): setfflag 4
(ld): savename stats.so
(ld): filelist 82 2
** not a program, not all symbols need to resolve
(ld): setopt noprogram
** not a program, not a defined entry point
(ld): noentry
NOENTRY: There is no entry point.
** link/load these objects
(ld): i init.o
(ld): i /tmp//ccc85WAT.o
(ld): i kmeans.o
(ld): i ansari.o
(ld): i bandwidths.o
(ld): i chisqsim.o
(ld): i d2x2xk.o
(ld): i fexact.o
(ld): i kendall.o
(ld): i ks.o
(ld): i line.o
(ld): i smooth.o
(ld): i prho.o
(ld): i swilk.o
(ld): i ksmooth.o
(ld): i loessc.o
(ld): i monoSpl.o
(ld): i isoreg.o
(ld): i Srunmed.o
(ld): i dblcen.o
(ld): i distance.o
(ld): i hclust-utils.o
(ld): i nls.o
(ld): i rWishart.o
(ld): i HoltWinters.o
(ld): i PPsum.o
(ld): i arima.o
(ld): i burg.o
(ld): i filter.o
(ld): i mAR.o
(ld): i pacf.o
(ld): i starma.o
(ld): i port.o
(ld): i family.o
(ld): i sbart.o
(ld): i approx.o
(ld): i loglin.o
(ld): i lowess.o
(ld): i massdist.o
(ld): i splines.o
(ld): i lm.o
(ld): i complete_cases.o
(ld): i cov.o
(ld): i deriv.o
(ld): i fft.o
(ld): i fourier.o
(ld): i model.o
(ld): i optim.o
(ld): i optimize.o
(ld): i integrate.o
(ld): i random.o
(ld): i distn.o
(ld): i zeroin.o
(ld): i rcont.o
(ld): i influence.o
(ld): i bsplvd.o
(ld): i bvalue.o
(ld): i bvalus.o
(ld): i loessf.o
(ld): i ppr.o
(ld): i qsbart.o
(ld): i sgram.o
(ld): i sinerp.o
(ld): i sslvrg.o
(ld): i stxwx.o
(ld): i hclust.o
(ld): i kmns.o
(ld): i eureka.o
(ld): i stl.o
(ld): i portsrc.o
(ld): i lminfl.o
** continue loading objects - these are archives!
(ld): lib ../../../../lib/libRlapack.so
(ld): lib
/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread/libgfortran.a
(ld): lib /usr/lib/libm.a
(ld): i /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc.a
(ld): lib /usr/lib/libg.a
(ld): i /opt/lib/libintl.a
(ld): i /opt/lib/libiconv.a
(ld): lib /usr/lib/libpthread.a
(ld): lib /usr/lib/libc.a
(ld): lib /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread/libgomp.a
(ld): lib /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread/libgcc_s.a
** Import Symbols from the shared objects
LIBRARY: Shared object libRlapack.so: 574 symbols imported.
LIBRARY: Shared object libgfortran.a[libgfortran.so.3]: 1014 symbols imported.
LIBRARY: Shared object /opt/lib/libintl.a[libintl.so.8]: 58 symbols imported.
LIBRARY: Shared object /opt/lib/libiconv.a[libiconv.so.2]: 13 symbols imported.
LIBRARY: Shared object /opt/lib/libiconv.a[shr4.o]: 10 symbols imported.
LIBRARY: Shared object /opt/lib/libiconv.a[shr.o]: 11 symbols imported.
LIBRARY: Shared object libpthread.a[shr_comm.o]: 179 symbols imported.
LIBRARY: Shared object libpthread.a[shr_xpg5.o]: 173 symbols imported.
LIBRARY: Shared object libc.a[shr.o]: 3287 symbols imported.
LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported.
LIBRARY: Shared object libc.a[posix_aio.o]: 20 symbols imported.
LIBRARY: Shared object libc.a[aio.o]: 18 symbols imported.
LIBRARY: Shared object libc.a[pse.o]: 8 symbols imported.
LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported.
LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported.
LIBRARY: Shared object libc.a[cthread.o]: 25 symbols imported.
LIBRARY: Shared object libc.a[uchar.o]: 4 symbols imported.
LIBRARY: Shared object libgomp.a[libgomp.so.1]: 228 symbols imported.
LIBRARY: Shared object libgcc_s.a[shr.o]: 127 symbols imported.
FILELIST: Number of previously inserted files processed: 82
** load the symbols we are exporting
(ld): exports /tmp//ccNjuEdL.x
EXPORTS: Symbols exported: 312
(ld): initfini _GLOBAL__FI_stats_so _GLOBAL__FD_stats_so
(ld): resolve
** during symbol resolution we see duplicates!!!
ld: 0711-228 WARNING: Duplicate symbols were found while resolving symbols.
The following duplicates were found:
Symbol Source-File(Object) OR Import-File{Shared-object}
------------------------- -------------------------------------------------
.fsav {../../../../lib/libRlapack.so}
** Duplicate ** noname(/usr/lib/libc.a[fsavres.o])
.fres {../../../../lib/libRlapack.so}
** Duplicate ** noname(/usr/lib/libc.a[fsavres.o])
.memcpy {../../../../lib/libRlapack.so}
** Duplicate ** moveeq.s(/usr/lib/libc.a[moveeq.o])
.isnan {../../../../lib/libRlapack.so}
** Duplicate ** isnan.s(/usr/lib/libm.a[isnan.o])
.finite {../../../../lib/libRlapack.so}
** Duplicate ** finite.s(/usr/lib/libm.a[finite.o])
** Duplicate ** finite.s(/usr/lib/libc.a[finite.o])
.bcopy {../../../../lib/libRlapack.so}
** Duplicate ** moveeq.s(/usr/lib/libc.a[moveeq.o])
RESOLVE: 1395 of 10573 symbols were kept.
RESOLVE: The return code is 4.
** sigh - do not know what glink.o is...
(ld): addgl /usr/lib/glink.o
ADDGL: Glink code added for 507 symbols.
(ld): mismatch
MISMATCH: No type mismatches exist.
(ld): comprld
COMPRLD: Kept 10436 of 10436 relocation entries.
(ld): origin page 0x10000000 0x20000000
(ld): libpath
../../../../lib:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
LIBPATH: Library path set to
../../../../lib:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
(ld): save SRE .
SAVE: Section sizes = 582204+13364+884 (0x8E23C+0x3434+0x374 hex)
SAVE: Size of TOC: 4048 (0xFD0 hex)
SAVE: No .loader section relocation entries exist for the .text section.
(ld): rc
RC: Highest return code was 4.
ld: 0711-224 WARNING: Duplicate symbol: .fsav
ld: 0711-224 WARNING: Duplicate symbol: .fres
ld: 0711-224 WARNING: Duplicate symbol: .memcpy
ld: 0711-224 WARNING: Duplicate symbol: .isnan
ld: 0711-224 WARNING: Duplicate symbol: .finite
ld: 0711-224 WARNING: Duplicate symbol: .bcopy
OKAY - lets first just get rid of the Duplicates - by removing some
references to external (shared) libraries.
Now after removing the arguments -lRlapack and -lc the command looks like:
gcc -Wl,-bnoquiet -std=gnu99 -shared -Wl,-brtl -Wl,-G -Wl,-bexpall
-Wl,-bnoentry -o stats.so init.o kmeans.o ansari.o bandwidth
s.o chisqsim.o d2x2xk.o fexact.o kendall.o ks.o line.o smooth.o prho.o
swilk.o ksmooth.o loessc.o monoSpl.o isoreg.o Srunmed.o d
blcen.o distance.o hclust-utils.o nls.o rWishart.o HoltWinters.o
PPsum.o arima.o burg.o filter.o mAR.o pacf.o starma.o port.o fa
mily.o sbart.o approx.o loglin.o lowess.o massdist.o splines.o lm.o
complete_cases.o cov.o deriv.o fft.o fourier.o model.o optim
.o optimize.o integrate.o random.o distn.o zeroin.o rcont.o
influence.o bsplvd.o bvalue.o bvalus.o loessf.o ppr.o qsbart.o sgram
.o sinerp.o sslvrg.o stxwx.o hclust.o kmns.o eureka.o stl.o portsrc.o
lminfl.o -fopenmp -L../../../../lib -lgfortran -lm /opt/li
b/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc.a -lg -lm /opt/lib/libintl.a
/opt/lib/libiconv.a -lpthread
And the result is (truncated)
FILELIST: Number of previously inserted files processed: 81
(ld): exports /tmp//ccSxDrfr.x
EXPORTS: Symbols exported: 312
(ld): initfini _GLOBAL__FI_stats_so _GLOBAL__FD_stats_so
(ld): resolve
RESOLVE: 1638 of 10364 symbols were kept.
(ld): addgl /usr/lib/glink.o
ADDGL: Glink code added for 538 symbols.
(ld): mismatch
MISMATCH: No type mismatches exist.
(ld): comprld
COMPRLD: Kept 11305 of 11305 relocation entries.
(ld): origin page 0x10000000 0x20000000
(ld): libpath
../../../../lib:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
LIBPATH: Library path set to
../../../../lib:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
(ld): save SRE .
SAVE: Section sizes = 624252+44524+1128 (0x9867C+0xADEC+0x468 hex)
SAVE: Size of TOC: 4452 (0x1164 hex)
SAVE: No .loader section relocation entries exist for the .text section.
(ld): rc
RC: Highest return code was 0.
Note: RC is 0, rather than 4 (warnings)
Now, lets try removing ALL the external libraries (better, all
arguments from -fopenmp to the end of command)
gcc -Wl,-bnoquiet -std=gnu99 -shared -Wl,-brtl -Wl,-G -Wl,-bexpall
-Wl,-bnoentry -o stats.so init.o kmeans.o ansari.o bandwidth
s.o chisqsim.o d2x2xk.o fexact.o kendall.o ks.o line.o smooth.o prho.o
swilk.o ksmooth.o loessc.o monoSpl.o isoreg.o Srunmed.o d
blcen.o distance.o hclust-utils.o nls.o rWishart.o HoltWinters.o
PPsum.o arima.o burg.o filter.o mAR.o pacf.o starma.o port.o fa
mily.o sbart.o approx.o loglin.o lowess.o massdist.o splines.o lm.o
complete_cases.o cov.o deriv.o fft.o fourier.o model.o optim
.o optimize.o integrate.o random.o distn.o zeroin.o rcont.o
influence.o bsplvd.o bvalue.o bvalus.o loessf.o ppr.o qsbart.o sgram
.o sinerp.o sslvrg.o stxwx.o hclust.o kmns.o eureka.o stl.o portsrc.o lminfl.o
(ld): lib /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../libgcc_s.a
(ld): lib /usr/lib/libc.a
LIBRARY: Shared object libgcc_s.a[shr.o]: 127 symbols imported.
LIBRARY: Shared object libc.a[shr.o]: 3287 symbols imported.
LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported.
LIBRARY: Shared object libc.a[posix_aio.o]: 20 symbols imported.
LIBRARY: Shared object libc.a[aio.o]: 18 symbols imported.
LIBRARY: Shared object libc.a[pse.o]: 8 symbols imported.
LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported.
LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported.
LIBRARY: Shared object libc.a[cthread.o]: 25 symbols imported.
LIBRARY: Shared object libc.a[uchar.o]: 4 symbols imported.
FILELIST: Number of previously inserted files processed: 73
(ld): exports /tmp//ccsv1Vg9.x
EXPORTS: Symbols exported: 312
(ld): initfini _GLOBAL__FI_stats_so _GLOBAL__FD_stats_so
(ld): resolve
RESOLVE: 1325 of 6197 symbols were kept.
(ld): addgl /usr/lib/glink.o
ADDGL: Glink code added for 505 symbols.
(ld): mismatch
MISMATCH: No type mismatches exist.
(ld): comprld
COMPRLD: Kept 10401 of 10401 relocation entries.
(ld): origin page 0x10000000 0x20000000
(ld): libpath
/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
LIBPATH: Library path set to
/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
(ld): save SRE .
SAVE: Section sizes = 575900+12696+860 (0x8C99C+0x3198+0x35C hex)
SAVE: Size of TOC: 4016 (0xFB0 hex)
SAVE: No .loader section relocation entries exist for the .text section.
(ld): rc
RC: Highest return code was 0.
This is the same in all cases:
EXPORTS: Symbols exported: 312
but we have different SIZES:
1) SAVE: Section sizes = 582204+13364+884 (0x8E23C+0x3434+0x374 hex)
2) SAVE: Section sizes = 624252+44524+1128 (0x9867C+0xADEC+0x468 hex)
3) SAVE: Section sizes = 575900+12696+860 (0x8C99C+0x3198+0x35C hex)
The size of the TOC varies accordingly.
Now, for a final test - remove all the -Wl,... options except for the
argument -G (-Wl,-G) and see what we get:
gcc -Wl,-bnoquiet -std=gnu99 -Wl,-G -o stats.so init.o kmeans.o
ansari.o bandwidths.o chisqsim.o d2x2xk.o fexact.o kendall.o ks.o
line.o smooth.o prho.o swilk.o ksmooth.o loessc.o monoSpl.o isoreg.o
Srunmed.o dblcen.o distance.o hclust-utils.o nls.o rWishart.o
HoltWinters.o PPsum.o arima.o burg.o filter.o mAR.o pacf.o starma.o
port.o family.o sbart.o approx.o loglin.o lowess.o massdist.o
splines.o lm.o complete_cases.o cov.o deriv.o fft.o fourier.o model.o
optim.o optimize.o integrate.o random.o distn.o zeroin.o rcont.o
influence.o bsplvd.o bvalue.o bvalus.o loessf.o ppr.o qsbart.o sgram.o
sinerp.o sslvrg.o stxwx.o hclust.o kmns.o eureka.o stl.o portsrc.o
lminfl.o
(ld): i stl.o
(ld): i portsrc.o
(ld): i lminfl.o
(ld): i /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc.a
(ld): i /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc_eh.a
(ld): lib /usr/lib/libc.a
LIBRARY: Shared object libc.a[shr.o]: 3287 symbols imported.
LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported.
LIBRARY: Shared object libc.a[posix_aio.o]: 20 symbols imported.
LIBRARY: Shared object libc.a[aio.o]: 18 symbols imported.
LIBRARY: Shared object libc.a[pse.o]: 8 symbols imported.
LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported.
LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported.
LIBRARY: Shared object libc.a[cthread.o]: 25 symbols imported.
LIBRARY: Shared object libc.a[uchar.o]: 4 symbols imported.
FILELIST: Number of previously inserted files processed: 74
(ld): resolve
RESOLVE: 29 of 6161 symbols were kept.
(ld): addgl /usr/lib/glink.o
ADDGL: Glink code added for 2 symbols.
(ld): mismatch
MISMATCH: No type mismatches exist.
(ld): comprld
COMPRLD: Kept 36 of 36 relocation entries.
(ld): origin page 0x10000000 0x20000000
(ld): libpath
/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
LIBPATH: Library path set to
/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
(ld): save SRE .
SAVE: Section sizes = 680+240+4 (0x2A8+0xF0+0x4 hex)
SAVE: Size of TOC: 68 (0x44 hex)
SAVE: No .loader section relocation entries exist for the .text section.
(ld): rc
RC: Highest return code was 0.
Note the SIZES:
SAVE: Section sizes = 680+240+4 (0x2A8+0xF0+0x4 hex)
SAVE: Size of TOC: 68 (0x44 hex)
** If stats.so is shareable - we will see a header
root at x072:[/data/prj/cran/32/R-3.1.3.1/src/library/stats/src]dump -H stats.so
stats.so:
***Loader Section***
Loader Header Information
VERSION# #SYMtableENT #RELOCent LENidSTR
0x00000001 0x00000007 0x0000000e 0x00000080
#IMPfilID OFFidSTR LENstrTBL OFFstrTBL
0x00000003 0x00000170 0x0000002a 0x000001f0
***Import File Strings***
INDEX PATH BASE MEMBER
0
/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
Looking at the symbols in stats.so - this is now too far "the other
way"
-G means
(ld): halt 4
(ld): setopt r/o->w
(ld): setopt nodelcsect
(ld): setopt noautoexp
(ld): setopt rtl
(ld): setopt nortllib
(ld): setopt symbolic:0
(ld): setfflag 4
(ld): savename stats.so
(ld): filelist 74 1
(ld): setopt noprogram
** OOPS - we do not want to load crt0.o and/or init.o I think!
(ld): i /lib/crt0.o
(ld): i init.o
Just adding -Wl,-bnoentry does not suffice, so... adding -Wl-bexpall
gives us some body:
(ld): lib /usr/lib/libc.a
LIBRARY: Shared object libc.a[shr.o]: 3287 symbols imported.
LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported.
LIBRARY: Shared object libc.a[posix_aio.o]: 20 symbols imported.
LIBRARY: Shared object libc.a[aio.o]: 18 symbols imported.
LIBRARY: Shared object libc.a[pse.o]: 8 symbols imported.
LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported.
LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported.
LIBRARY: Shared object libc.a[cthread.o]: 25 symbols imported.
LIBRARY: Shared object libc.a[uchar.o]: 4 symbols imported.
FILELIST: Number of previously inserted files processed: 74
(ld): resolve
RESOLVE: 1324 of 6388 symbols were kept.
(ld): addgl /usr/lib/glink.o
ADDGL: Glink code added for 505 symbols.
(ld): mismatch
MISMATCH: No type mismatches exist.
(ld): comprld
COMPRLD: Kept 10394 of 10394 relocation entries.
(ld): origin page 0x10000000 0x20000000
(ld): libpath
/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
LIBPATH: Library path set to
/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib
(ld): save SRE .
SAVE: Section sizes = 575596+12560+872 (0x8C86C+0x3110+0x368 hex)
SAVE: Size of TOC: 4012 (0xFAC hex)
SAVE: No .loader section relocation entries exist for the .text section.
(ld): rc
RC: Highest return code was 0.
root at x072:[/data/prj/cran/32/R-3.1.3.1/src/library/stats/src]ls -l stats.so
-rwxr-xr-x 1 root system 1456186 Oct 24 17:36 stats.so
On Sun, Oct 18, 2015 at 9:06 PM, aixtools <aixtools at gmail.com>
wrote:> 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.]
>>
>
Michael Felt
2015-Oct-24 22:05 UTC
[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!
And now a shorter post. Besides everything else, I suspect there are some dependencies on GNU conventions and/or specifics of the run-time environment. The good news is that I can - again - generate a 32-bit build for AIX - when I package on AIX 5.3. All for now. On Sat, Oct 24, 2015 at 7:46 PM, Michael Felt <aixtools at gmail.com> wrote:> I have determined why there are many "WARNING: Duplicate symbol:" messages. > > *** My apologies for the length *** There is a lot of detail - but I > hope the detail will help R - and others - setup correct options for > shared libraries. > *** As I press send, I have not stopped testing (my final trial here > might not even work) - but! > *** the message is that shared libraries do not need to have all > external libraries on the command line to make a shareable library > (that is the whole point of multiple shared libraries I think) > > Anyway, I hope you are"in" for a long read. > > a) the duplicate symbol messages occur during the creation (read > linking) of a shared object. > b) the shared object does not need to have all symbols resolved - > actually, you do not want "external" symbols from elsewhere pulled > into to the archive. > c) one example - stats.so > > currently the command to make stats.so is: > > gcc -Wl,-bnoquiet -std=gnu99 -shared -Wl,-brtl -Wl,-G -Wl,-bexpall > -Wl,-bnoentry -o stats.so init.o kmeans.o ansari.o bandwidth > s.o chisqsim.o d2x2xk.o fexact.o kendall.o ks.o line.o smooth.o prho.o > swilk.o ksmooth.o loessc.o monoSpl.o isoreg.o Srunmed.o d > blcen.o distance.o hclust-utils.o nls.o rWishart.o HoltWinters.o > PPsum.o arima.o burg.o filter.o mAR.o pacf.o starma.o port.o fa > mily.o sbart.o approx.o loglin.o lowess.o massdist.o splines.o lm.o > complete_cases.o cov.o deriv.o fft.o fourier.o model.o optim > .o optimize.o integrate.o random.o distn.o zeroin.o rcont.o > influence.o bsplvd.o bvalue.o bvalus.o loessf.o ppr.o qsbart.o sgram > .o sinerp.o sslvrg.o stxwx.o hclust.o kmns.o eureka.o stl.o portsrc.o > lminfl.o -fopenmp -L../../../../lib -lRlapack -lgfortran - > lm /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc.a -lg -lm > /opt/lib/libintl.a /opt/lib/libiconv.a -lpthread > > The result has duplicate symbols: > > With comments: > > gcc -Wl,-bnoquiet -std=gnu99 -shared -Wl,-brtl -Wl,-G -Wl,-bexpall > -Wl,-bnoentry -o stats.so init.o kmeans.o ansari.o bandwidths.o > chisqsim.o d2x2xk.o fexact.o kendall.o ks.o line.o smooth.o prho.o > swilk.o ksmooth.o loessc.o monoSpl.o isoreg.o Srunmed.o dblcen.o > distance.o hclust-utils.o nls.o rWishart.o HoltWinters.o PPsum.o > arima.o burg.o filter.o mAR.o pacf.o starma.o port.o family.o sbart.o > approx.o loglin.o lowess.o massdist.o splines.o lm.o complete_cases.o > cov.o deriv.o fft.o fourier.o model.o optim.o optimize.o integrate.o > random.o distn.o zeroin.o rcont.o influence.o bsplvd.o bvalue.o > bvalus.o loessf.o ppr.o qsbart.o sgram.o sinerp.o sslvrg.o stxwx.o > hclust.o kmns.o eureka.o stl.o portsrc.o lminfl.o -fopenmp > -L../../../../lib -lRlapack -lgfortran -lm > /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc.a -lg -lm > /opt/lib/libintl.a /opt/lib/libiconv.a -lpthread -lc > (ld): halt 4 > ** Display the options passed to ld > (ld): setopt r/o->w > (ld): setopt nodelcsect > (ld): setopt noautoexp > (ld): setopt expall > (ld): setopt rtl > (ld): setopt nortllib > (ld): setopt symbolic:0 > (ld): setfflag 4 > (ld): savename stats.so > (ld): filelist 82 2 > ** not a program, not all symbols need to resolve > (ld): setopt noprogram > ** not a program, not a defined entry point > (ld): noentry > NOENTRY: There is no entry point. > ** link/load these objects > (ld): i init.o > (ld): i /tmp//ccc85WAT.o > (ld): i kmeans.o > (ld): i ansari.o > (ld): i bandwidths.o > (ld): i chisqsim.o > (ld): i d2x2xk.o > (ld): i fexact.o > (ld): i kendall.o > (ld): i ks.o > (ld): i line.o > (ld): i smooth.o > (ld): i prho.o > (ld): i swilk.o > (ld): i ksmooth.o > (ld): i loessc.o > (ld): i monoSpl.o > (ld): i isoreg.o > (ld): i Srunmed.o > (ld): i dblcen.o > (ld): i distance.o > (ld): i hclust-utils.o > (ld): i nls.o > (ld): i rWishart.o > (ld): i HoltWinters.o > (ld): i PPsum.o > (ld): i arima.o > (ld): i burg.o > (ld): i filter.o > (ld): i mAR.o > (ld): i pacf.o > (ld): i starma.o > (ld): i port.o > (ld): i family.o > (ld): i sbart.o > (ld): i approx.o > (ld): i loglin.o > (ld): i lowess.o > (ld): i massdist.o > (ld): i splines.o > (ld): i lm.o > (ld): i complete_cases.o > (ld): i cov.o > (ld): i deriv.o > (ld): i fft.o > (ld): i fourier.o > (ld): i model.o > (ld): i optim.o > (ld): i optimize.o > (ld): i integrate.o > (ld): i random.o > (ld): i distn.o > (ld): i zeroin.o > (ld): i rcont.o > (ld): i influence.o > (ld): i bsplvd.o > (ld): i bvalue.o > (ld): i bvalus.o > (ld): i loessf.o > (ld): i ppr.o > (ld): i qsbart.o > (ld): i sgram.o > (ld): i sinerp.o > (ld): i sslvrg.o > (ld): i stxwx.o > (ld): i hclust.o > (ld): i kmns.o > (ld): i eureka.o > (ld): i stl.o > (ld): i portsrc.o > (ld): i lminfl.o > ** continue loading objects - these are archives! > (ld): lib ../../../../lib/libRlapack.so > (ld): lib /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread/libgfortran.a > (ld): lib /usr/lib/libm.a > (ld): i /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc.a > (ld): lib /usr/lib/libg.a > (ld): i /opt/lib/libintl.a > (ld): i /opt/lib/libiconv.a > (ld): lib /usr/lib/libpthread.a > (ld): lib /usr/lib/libc.a > (ld): lib /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread/libgomp.a > (ld): lib /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread/libgcc_s.a > ** Import Symbols from the shared objects > LIBRARY: Shared object libRlapack.so: 574 symbols imported. > LIBRARY: Shared object libgfortran.a[libgfortran.so.3]: 1014 symbols imported. > LIBRARY: Shared object /opt/lib/libintl.a[libintl.so.8]: 58 symbols imported. > LIBRARY: Shared object /opt/lib/libiconv.a[libiconv.so.2]: 13 symbols imported. > LIBRARY: Shared object /opt/lib/libiconv.a[shr4.o]: 10 symbols imported. > LIBRARY: Shared object /opt/lib/libiconv.a[shr.o]: 11 symbols imported. > LIBRARY: Shared object libpthread.a[shr_comm.o]: 179 symbols imported. > LIBRARY: Shared object libpthread.a[shr_xpg5.o]: 173 symbols imported. > LIBRARY: Shared object libc.a[shr.o]: 3287 symbols imported. > LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported. > LIBRARY: Shared object libc.a[posix_aio.o]: 20 symbols imported. > LIBRARY: Shared object libc.a[aio.o]: 18 symbols imported. > LIBRARY: Shared object libc.a[pse.o]: 8 symbols imported. > LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported. > LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported. > LIBRARY: Shared object libc.a[cthread.o]: 25 symbols imported. > LIBRARY: Shared object libc.a[uchar.o]: 4 symbols imported. > LIBRARY: Shared object libgomp.a[libgomp.so.1]: 228 symbols imported. > LIBRARY: Shared object libgcc_s.a[shr.o]: 127 symbols imported. > FILELIST: Number of previously inserted files processed: 82 > ** load the symbols we are exporting > (ld): exports /tmp//ccNjuEdL.x > EXPORTS: Symbols exported: 312 > (ld): initfini _GLOBAL__FI_stats_so _GLOBAL__FD_stats_so > (ld): resolve > ** during symbol resolution we see duplicates!!! > ld: 0711-228 WARNING: Duplicate symbols were found while resolving symbols. > The following duplicates were found: > Symbol Source-File(Object) OR Import-File{Shared-object} > ------------------------- ------------------------------------------------- > .fsav {../../../../lib/libRlapack.so} > ** Duplicate ** noname(/usr/lib/libc.a[fsavres.o]) > .fres {../../../../lib/libRlapack.so} > ** Duplicate ** noname(/usr/lib/libc.a[fsavres.o]) > .memcpy {../../../../lib/libRlapack.so} > ** Duplicate ** moveeq.s(/usr/lib/libc.a[moveeq.o]) > .isnan {../../../../lib/libRlapack.so} > ** Duplicate ** isnan.s(/usr/lib/libm.a[isnan.o]) > .finite {../../../../lib/libRlapack.so} > ** Duplicate ** finite.s(/usr/lib/libm.a[finite.o]) > ** Duplicate ** finite.s(/usr/lib/libc.a[finite.o]) > .bcopy {../../../../lib/libRlapack.so} > ** Duplicate ** moveeq.s(/usr/lib/libc.a[moveeq.o]) > RESOLVE: 1395 of 10573 symbols were kept. > RESOLVE: The return code is 4. > ** sigh - do not know what glink.o is... > (ld): addgl /usr/lib/glink.o > ADDGL: Glink code added for 507 symbols. > (ld): mismatch > MISMATCH: No type mismatches exist. > (ld): comprld > COMPRLD: Kept 10436 of 10436 relocation entries. > (ld): origin page 0x10000000 0x20000000 > (ld): libpath ../../../../lib:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > LIBPATH: Library path set to > ../../../../lib:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > (ld): save SRE . > SAVE: Section sizes = 582204+13364+884 (0x8E23C+0x3434+0x374 hex) > SAVE: Size of TOC: 4048 (0xFD0 hex) > SAVE: No .loader section relocation entries exist for the .text section. > (ld): rc > RC: Highest return code was 4. > ld: 0711-224 WARNING: Duplicate symbol: .fsav > ld: 0711-224 WARNING: Duplicate symbol: .fres > ld: 0711-224 WARNING: Duplicate symbol: .memcpy > ld: 0711-224 WARNING: Duplicate symbol: .isnan > ld: 0711-224 WARNING: Duplicate symbol: .finite > ld: 0711-224 WARNING: Duplicate symbol: .bcopy > > OKAY - lets first just get rid of the Duplicates - by removing some > references to external (shared) libraries. > > Now after removing the arguments -lRlapack and -lc the command looks like: > > gcc -Wl,-bnoquiet -std=gnu99 -shared -Wl,-brtl -Wl,-G -Wl,-bexpall > -Wl,-bnoentry -o stats.so init.o kmeans.o ansari.o bandwidth > s.o chisqsim.o d2x2xk.o fexact.o kendall.o ks.o line.o smooth.o prho.o > swilk.o ksmooth.o loessc.o monoSpl.o isoreg.o Srunmed.o d > blcen.o distance.o hclust-utils.o nls.o rWishart.o HoltWinters.o > PPsum.o arima.o burg.o filter.o mAR.o pacf.o starma.o port.o fa > mily.o sbart.o approx.o loglin.o lowess.o massdist.o splines.o lm.o > complete_cases.o cov.o deriv.o fft.o fourier.o model.o optim > .o optimize.o integrate.o random.o distn.o zeroin.o rcont.o > influence.o bsplvd.o bvalue.o bvalus.o loessf.o ppr.o qsbart.o sgram > .o sinerp.o sslvrg.o stxwx.o hclust.o kmns.o eureka.o stl.o portsrc.o > lminfl.o -fopenmp -L../../../../lib -lgfortran -lm /opt/li > b/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc.a -lg -lm /opt/lib/libintl.a > /opt/lib/libiconv.a -lpthread > > And the result is (truncated) > > FILELIST: Number of previously inserted files processed: 81 > (ld): exports /tmp//ccSxDrfr.x > EXPORTS: Symbols exported: 312 > (ld): initfini _GLOBAL__FI_stats_so _GLOBAL__FD_stats_so > (ld): resolve > RESOLVE: 1638 of 10364 symbols were kept. > (ld): addgl /usr/lib/glink.o > ADDGL: Glink code added for 538 symbols. > (ld): mismatch > MISMATCH: No type mismatches exist. > (ld): comprld > COMPRLD: Kept 11305 of 11305 relocation entries. > (ld): origin page 0x10000000 0x20000000 > (ld): libpath ../../../../lib:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > LIBPATH: Library path set to > ../../../../lib:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../pthread:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > (ld): save SRE . > SAVE: Section sizes = 624252+44524+1128 (0x9867C+0xADEC+0x468 hex) > SAVE: Size of TOC: 4452 (0x1164 hex) > SAVE: No .loader section relocation entries exist for the .text section. > (ld): rc > RC: Highest return code was 0. > > Note: RC is 0, rather than 4 (warnings) > > Now, lets try removing ALL the external libraries (better, all > arguments from -fopenmp to the end of command) > > gcc -Wl,-bnoquiet -std=gnu99 -shared -Wl,-brtl -Wl,-G -Wl,-bexpall > -Wl,-bnoentry -o stats.so init.o kmeans.o ansari.o bandwidth > s.o chisqsim.o d2x2xk.o fexact.o kendall.o ks.o line.o smooth.o prho.o > swilk.o ksmooth.o loessc.o monoSpl.o isoreg.o Srunmed.o d > blcen.o distance.o hclust-utils.o nls.o rWishart.o HoltWinters.o > PPsum.o arima.o burg.o filter.o mAR.o pacf.o starma.o port.o fa > mily.o sbart.o approx.o loglin.o lowess.o massdist.o splines.o lm.o > complete_cases.o cov.o deriv.o fft.o fourier.o model.o optim > .o optimize.o integrate.o random.o distn.o zeroin.o rcont.o > influence.o bsplvd.o bvalue.o bvalus.o loessf.o ppr.o qsbart.o sgram > .o sinerp.o sslvrg.o stxwx.o hclust.o kmns.o eureka.o stl.o portsrc.o lminfl.o > > (ld): lib /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../../libgcc_s.a > (ld): lib /usr/lib/libc.a > LIBRARY: Shared object libgcc_s.a[shr.o]: 127 symbols imported. > LIBRARY: Shared object libc.a[shr.o]: 3287 symbols imported. > LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported. > LIBRARY: Shared object libc.a[posix_aio.o]: 20 symbols imported. > LIBRARY: Shared object libc.a[aio.o]: 18 symbols imported. > LIBRARY: Shared object libc.a[pse.o]: 8 symbols imported. > LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported. > LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported. > LIBRARY: Shared object libc.a[cthread.o]: 25 symbols imported. > LIBRARY: Shared object libc.a[uchar.o]: 4 symbols imported. > FILELIST: Number of previously inserted files processed: 73 > (ld): exports /tmp//ccsv1Vg9.x > EXPORTS: Symbols exported: 312 > (ld): initfini _GLOBAL__FI_stats_so _GLOBAL__FD_stats_so > (ld): resolve > RESOLVE: 1325 of 6197 symbols were kept. > (ld): addgl /usr/lib/glink.o > ADDGL: Glink code added for 505 symbols. > (ld): mismatch > MISMATCH: No type mismatches exist. > (ld): comprld > COMPRLD: Kept 10401 of 10401 relocation entries. > (ld): origin page 0x10000000 0x20000000 > (ld): libpath /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > LIBPATH: Library path set to > /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > (ld): save SRE . > SAVE: Section sizes = 575900+12696+860 (0x8C99C+0x3198+0x35C hex) > SAVE: Size of TOC: 4016 (0xFB0 hex) > SAVE: No .loader section relocation entries exist for the .text section. > (ld): rc > RC: Highest return code was 0. > > This is the same in all cases: > EXPORTS: Symbols exported: 312 > > but we have different SIZES: > 1) SAVE: Section sizes = 582204+13364+884 (0x8E23C+0x3434+0x374 hex) > 2) SAVE: Section sizes = 624252+44524+1128 (0x9867C+0xADEC+0x468 hex) > 3) SAVE: Section sizes = 575900+12696+860 (0x8C99C+0x3198+0x35C hex) > > The size of the TOC varies accordingly. > > Now, for a final test - remove all the -Wl,... options except for the > argument -G (-Wl,-G) and see what we get: > > gcc -Wl,-bnoquiet -std=gnu99 -Wl,-G -o stats.so init.o kmeans.o > ansari.o bandwidths.o chisqsim.o d2x2xk.o fexact.o kendall.o ks.o > line.o smooth.o prho.o swilk.o ksmooth.o loessc.o monoSpl.o isoreg.o > Srunmed.o dblcen.o distance.o hclust-utils.o nls.o rWishart.o > HoltWinters.o PPsum.o arima.o burg.o filter.o mAR.o pacf.o starma.o > port.o family.o sbart.o approx.o loglin.o lowess.o massdist.o > splines.o lm.o complete_cases.o cov.o deriv.o fft.o fourier.o model.o > optim.o optimize.o integrate.o random.o distn.o zeroin.o rcont.o > influence.o bsplvd.o bvalue.o bvalus.o loessf.o ppr.o qsbart.o sgram.o > sinerp.o sslvrg.o stxwx.o hclust.o kmns.o eureka.o stl.o portsrc.o > lminfl.o > > (ld): i stl.o > (ld): i portsrc.o > (ld): i lminfl.o > (ld): i /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc.a > (ld): i /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/libgcc_eh.a > (ld): lib /usr/lib/libc.a > LIBRARY: Shared object libc.a[shr.o]: 3287 symbols imported. > LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported. > LIBRARY: Shared object libc.a[posix_aio.o]: 20 symbols imported. > LIBRARY: Shared object libc.a[aio.o]: 18 symbols imported. > LIBRARY: Shared object libc.a[pse.o]: 8 symbols imported. > LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported. > LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported. > LIBRARY: Shared object libc.a[cthread.o]: 25 symbols imported. > LIBRARY: Shared object libc.a[uchar.o]: 4 symbols imported. > FILELIST: Number of previously inserted files processed: 74 > (ld): resolve > RESOLVE: 29 of 6161 symbols were kept. > (ld): addgl /usr/lib/glink.o > ADDGL: Glink code added for 2 symbols. > (ld): mismatch > MISMATCH: No type mismatches exist. > (ld): comprld > COMPRLD: Kept 36 of 36 relocation entries. > (ld): origin page 0x10000000 0x20000000 > (ld): libpath /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > LIBPATH: Library path set to > /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > (ld): save SRE . > SAVE: Section sizes = 680+240+4 (0x2A8+0xF0+0x4 hex) > SAVE: Size of TOC: 68 (0x44 hex) > SAVE: No .loader section relocation entries exist for the .text section. > (ld): rc > RC: Highest return code was 0. > > Note the SIZES: > SAVE: Section sizes = 680+240+4 (0x2A8+0xF0+0x4 hex) > SAVE: Size of TOC: 68 (0x44 hex) > > ** If stats.so is shareable - we will see a header > root at x072:[/data/prj/cran/32/R-3.1.3.1/src/library/stats/src]dump -H stats.so > > stats.so: > > ***Loader Section*** > Loader Header Information > VERSION# #SYMtableENT #RELOCent LENidSTR > 0x00000001 0x00000007 0x0000000e 0x00000080 > > #IMPfilID OFFidSTR LENstrTBL OFFstrTBL > 0x00000003 0x00000170 0x0000002a 0x000001f0 > > > ***Import File Strings*** > INDEX PATH BASE MEMBER > 0 /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > > Looking at the symbols in stats.so - this is now too far "the other way" > > -G means > > (ld): halt 4 > (ld): setopt r/o->w > (ld): setopt nodelcsect > (ld): setopt noautoexp > (ld): setopt rtl > (ld): setopt nortllib > (ld): setopt symbolic:0 > (ld): setfflag 4 > (ld): savename stats.so > (ld): filelist 74 1 > (ld): setopt noprogram > ** OOPS - we do not want to load crt0.o and/or init.o I think! > (ld): i /lib/crt0.o > (ld): i init.o > > Just adding -Wl,-bnoentry does not suffice, so... adding -Wl-bexpall > gives us some body: > > (ld): lib /usr/lib/libc.a > LIBRARY: Shared object libc.a[shr.o]: 3287 symbols imported. > LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported. > LIBRARY: Shared object libc.a[posix_aio.o]: 20 symbols imported. > LIBRARY: Shared object libc.a[aio.o]: 18 symbols imported. > LIBRARY: Shared object libc.a[pse.o]: 8 symbols imported. > LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported. > LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported. > LIBRARY: Shared object libc.a[cthread.o]: 25 symbols imported. > LIBRARY: Shared object libc.a[uchar.o]: 4 symbols imported. > FILELIST: Number of previously inserted files processed: 74 > (ld): resolve > RESOLVE: 1324 of 6388 symbols were kept. > (ld): addgl /usr/lib/glink.o > ADDGL: Glink code added for 505 symbols. > (ld): mismatch > MISMATCH: No type mismatches exist. > (ld): comprld > COMPRLD: Kept 10394 of 10394 relocation entries. > (ld): origin page 0x10000000 0x20000000 > (ld): libpath /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > LIBPATH: Library path set to > /opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4:/opt/lib/gcc/powerpc-ibm-aix5.3.0.0/4.7.4/../../..:/usr/lib:/lib > (ld): save SRE . > SAVE: Section sizes = 575596+12560+872 (0x8C86C+0x3110+0x368 hex) > SAVE: Size of TOC: 4012 (0xFAC hex) > SAVE: No .loader section relocation entries exist for the .text section. > (ld): rc > RC: Highest return code was 0. > root at x072:[/data/prj/cran/32/R-3.1.3.1/src/library/stats/src]ls -l stats.so > -rwxr-xr-x 1 root system 1456186 Oct 24 17:36 stats.so > > > On Sun, Oct 18, 2015 at 9:06 PM, aixtools <aixtools at gmail.com> wrote: >> 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.] >>> >>
Reasonably Related Threads
- 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!
- Building R for AIX in 64-bit mode
- Building R for AIX in 64-bit mode
- error when compiling "stats" library in R-2.3.1 on Solaris x86
- Assistance much appreciated