Dr. David Kirkby
2011-Mar-04 23:18 UTC
[Rd] Does R use "computed gotos" - a gcc extension of C?
The R manual says R will not build with gcc on 64-bit Solaris x86 with gcc http://cran.r-project.org/doc/manuals/R-admin.html#Solaris "Tests with gcc32 on ?x86? and ?amd64? have been less successful: ?x86? builds have failed on tests using complex arithmetic33, whereas on ?amd64? the builds have failed to complete in several different ways, most recently with relocation errors for libRblas.so. " I know what the "relocation errors" problem is. That library (and in fact two other R libraries) all have non-PIC code in them, despite the fact the source is compiled with the -fPIC option. http://blogs.sun.com/rie/entry/my_relocations_don_t_fit shows how to prove this. If one runs this command on Solaris: $ elfdump -d libRblas.so | fgrep TEXTREL there is some output showing that theres non-PIC code present in the R library. R is compiled with -fPIC on Solaris, but certain things can cause non-PIC code to be generated even with that option. One is by the use of "computed gotos" which is a gcc extension. I'm wondering if R uses any of these. I'd love to track down this problem, so R can build with gcc. R is used in the Sage maths project http://www.sagemath.org/ and R is the only component of Sage which will not build with gcc on 64-bit Solaris x86. Many components will not build with Sun Studio, but this R issue means we need to have two compilers, not just one. -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail? Dave
luke-tierney at uiowa.edu
2011-Mar-04 23:40 UTC
[Rd] Does R use "computed gotos" - a gcc extension of C?
On Fri, 4 Mar 2011, Dr. David Kirkby wrote:> The R manual says R will not build with gcc on 64-bit Solaris x86 with gcc > > http://cran.r-project.org/doc/manuals/R-admin.html#Solaris > > "Tests with gcc32 on ?x86? and ?amd64? have been less successful: ?x86? > builds have failed on tests using complex arithmetic33, whereas on ?amd64? > the builds have failed to complete in several different ways, most recently > with relocation errors for libRblas.so. " > > I know what the "relocation errors" problem is. That library (and in fact two > other R libraries) all have non-PIC code in them, despite the fact the source > is compiled with the -fPIC option. > > http://blogs.sun.com/rie/entry/my_relocations_don_t_fit > > shows how to prove this. If one runs this command on Solaris: > > $ elfdump -d libRblas.so | fgrep TEXTREL > > there is some output showing that theres non-PIC code present in the R > library. > > R is compiled with -fPIC on Solaris, but certain things can cause non-PIC > code to be generated even with that option. One is by the use of "computed > gotos" which is a gcc extension. I'm wondering if R uses any of these.Yes -- in the byte code interpreter in eval.c luke> > I'd love to track down this problem, so R can build with gcc. R is used in > the Sage maths project > > http://www.sagemath.org/ > > and R is the only component of Sage which will not build with gcc on 64-bit > Solaris x86. Many components will not build with Sun Studio, but this R issue > means we need to have two compilers, not just one. > >-- Luke Tierney Statistics and Actuarial Science Ralph E. Wareham Professor of Mathematical Sciences University of Iowa Phone: 319-335-3386 Department of Statistics and Fax: 319-335-3017 Actuarial Science 241 Schaeffer Hall email: luke at stat.uiowa.edu Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu