[Rd] Latest R-devel build failing on OS X

peter dalgaard pdalgd at gmail.com
Wed May 18 22:01:33 CEST 2016


> On 18 May 2016, at 18:54 , Martin Maechler <maechler at stat.math.ethz.ch> wrote:
> 
> 
>> Yes, the nightly build is broken in a similar, but different way. See below.
>> Both seem to be readline related, so Frederick Eaton's patches, which Martin committed yesterday are the likely culprit. I had  actually tested them and things seemed to work, but it was on a different machine and not a completely clean build.
> 
> Indeed a problem.  I'm pretty sure that RL_UNSETSTATE() exists
> in newer versions of readline  but not in older ones (and hence is
> declared in newer versions of readline.h, but not in older
> ones).
> 
> It seems people still do have older versions of readline.h 
> ... and it may be interesting why some versions of OSX (Peter's)
> has a new readline and some (Keith') don't.
> 

Er, Peter has two machines, one an ancient iMac still running Mavericks, the other a nearly as old MB Air running Yosemite. The MBAir apparently worked, the iMac not. *Both* of them has readline 5.2 in /usr/local and 6.2/3 in /opt/local, but the MBAir binary has

Notice incidentally that 5.2 is what Simon currently supports on R.research.att.com.

Peter-Dalgaards-MacBook-Air:BUILD pd$ otool -L bin/exec/x86_64/R 
bin/exec/x86_64/R:
....
	/usr/local/lib/libreadline.5.2.dylib (compatibility version 5.0.0, current version 5.2.0)

With the recent update, the iMac still fails with

gcc   -L/usr/X11R6/lib -o R.bin Rmain.o CommandLineArgs.o Rdynload.o Renviron.o RNG.o agrep.o apply.o arithmetic.o array.o attrib.o bind.o builtin.o character.o coerce.o colors.o complex.o connections.o context.o cum.o dcf.o datetime.o debug.o deparse.o devices.o dotcode.o dounzip.o dstruct.o duplicate.o edit.o engine.o envir.o errors.o eval.o format.o gevents.o gram.o gram-ex.o graphics.o grep.o identical.o inlined.o inspect.o internet.o iosupport.o lapack.o list.o localecharset.o logic.o main.o mapply.o match.o memory.o names.o objects.o options.o paste.o platform.o plot.o plot3d.o plotmath.o print.o printarray.o printvector.o printutils.o qsort.o radixsort.o random.o raw.o registration.o relop.o rlocale.o saveload.o scan.o seq.o serialize.o sort.o source.o split.o sprintf.o startup.o subassign.o subscript.o subset.o summary.o sysutils.o times.o unique.o util.o version.o g_alab_her.o g_cntrlify.o g_fontdb.o g_her_glyph.o xxxpr.o   `ls ../unix/*.o ../appl/*.o ../nmath/*.o` ../extra/tre/libtre.a  ../extra/intl/libintl.a ../extra/tzone/libtz.a -L../../lib/x86_64 -lRblas -L/usr/lib/gcc/i686-apple-darwin11/4.2.1/x86_64 -L/usr/lib/gcc/i686-apple-darwin11/4.2.1 -L/usr/lib -lgfortran    -Wl,-framework -Wl,CoreFoundation -lreadline  -lpcre -llzma -lbz2 -lz -licucore -lm -llzma -liconv
Undefined symbols for architecture x86_64:
  "_rl_resize_terminal", referenced from:
      _Rstd_ReadConsole in sys-std.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [R.bin] Error 1
make[2]: *** [R] Error 2
make[1]: *** [R] Error 1
make: *** [R] Error 1

and the MBAir still builds... 

Confused!,

-pd



> I'm committing an experimental fix using  #if ... s and the
> readline version number.
> It does keep fixing the bug on my platform (Fedora 22 Linux,
> readline 6.3)
> 
> and it may help in Keith' setup.  Please do check it, Keith.
> (svn rev >= 70631)
> 
> Martin 
> 
> 
> 
>> -pd
> 
>> .....
>> ranlib: file: libR.a(printf.o) has no symbols
>> gcc   -L/usr/X11R6/lib -o R.bin Rmain.o CommandLineArgs.o Rdynload.o Renviron.o RNG.o agrep.o apply.o arithmetic.o array.o attrib.o bind.o builtin.o character.o coerce.o colors.o complex.o connections.o context.o cum.o dcf.o datetime.o debug.o deparse.o devices.o dotcode.o dounzip.o dstruct.o duplicate.o edit.o engine.o envir.o errors.o eval.o format.o gevents.o gram.o gram-ex.o graphics.o grep.o identical.o inlined.o inspect.o internet.o iosupport.o lapack.o list.o localecharset.o logic.o main.o mapply.o match.o memory.o names.o objects.o options.o paste.o platform.o plot.o plot3d.o plotmath.o print.o printarray.o printvector.o printutils.o qsort.o radixsort.o random.o raw.o registration.o relop.o rlocale.o saveload.o scan.o seq.o serialize.o sort.o source.o split.o sprintf.o startup.o subassign.o subscript.o subset.o summary.o sysutils.o times.o unique.o util.o version.o g_alab_her.o g_cntrlify.o g_fontdb.o g_her_glyph.o xxxpr.o   `ls ../unix/*.o ../appl/*.o ../nmath/*.o` ../extra/
>> tre/libtre.a  ../extra/intl/libintl.a ../extra/tzone/libtz.a -L../../lib/x86_64 -lRblas -L/usr/lib/gcc/i686-apple-darwin11/4.2.1/x86_64 -L/usr/lib/gcc/i686-apple-darwin11/4.2.1 -L/usr/lib -lgfortran    -Wl,-framework -Wl,CoreFoundation -lreadline  -lpcre -llzma -lbz2 -lz -licucore -lm -llzma -liconv
>> Undefined symbols for architecture x86_64:
>> "_rl_mark", referenced from:
>>     _popReadline in sys-std.o
>> "_rl_readline_state", referenced from:
>>     _popReadline in sys-std.o
>> "_rl_resize_terminal", referenced from:
>>     _Rstd_ReadConsole in sys-std.o
>> ld: symbol(s) not found for architecture x86_64
>> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>> make[3]: *** [R.bin] Error 1
> 
>> On 18 May 2016, at 14:18 , Keith O'Hara <keith.ohara at nyu.edu> wrote:
> 
>>> Dear R-devel,
>>> 
>>> The latest version of R-devel (05-17) is throwing an error for me when building on OS X (v 10.11.4):
>>> 
>>> making Rembedded.d from Rembedded.c
>>> making dynload.d from dynload.c
>>> making system.d from system.c
>>> making sys-unix.d from sys-unix.c
>>> making sys-std.d from sys-std.c
>>> making X11.d from X11.c
>>> clang -I. -I../../src/include -I../../src/include  -I/usr/local/include -DHAVE_CONFIG_H    -fPIC  -Wall -mtune=core2 -g -O2  -c Rembedded.c -o Rembedded.o
>>> clang -I. -I../../src/include -I../../src/include  -I/usr/local/include -DHAVE_CONFIG_H    -fPIC  -Wall -mtune=core2 -g -O2  -c dynload.c -o dynload.o
>>> clang -I. -I../../src/include -I../../src/include  -I/usr/local/include -DHAVE_CONFIG_H    -fPIC  -Wall -mtune=core2 -g -O2  -c system.c -o system.o
>>> clang -I. -I../../src/include -I../../src/include  -I/usr/local/include -DHAVE_CONFIG_H    -fPIC  -Wall -mtune=core2 -g -O2  -c sys-unix.c -o sys-unix.o
>>> clang -I. -I../../src/include -I../../src/include  -I/usr/local/include -DHAVE_CONFIG_H    -fPIC  -Wall -mtune=core2 -g -O2  -c sys-std.c -o sys-std.o
>>> sys-std.c:592:5: warning: implicit declaration of function 'RL_UNSETSTATE' is invalid in C99
>>>    [-Wimplicit-function-declaration]
>>>  RL_UNSETSTATE(RL_STATE_ISEARCH | RL_STATE_NSEARCH | RL_STATE_VIMOTION |
>>>  ^
>>> sys-std.c:592:19: error: use of undeclared identifier 'RL_STATE_ISEARCH'
>>>  RL_UNSETSTATE(RL_STATE_ISEARCH | RL_STATE_NSEARCH | RL_STATE_VIMOTION |
>>>                ^
>>> sys-std.c:592:38: error: use of undeclared identifier 'RL_STATE_NSEARCH'
>>>  RL_UNSETSTATE(RL_STATE_ISEARCH | RL_STATE_NSEARCH | RL_STATE_VIMOTION |
>>>                                   ^
>>> sys-std.c:592:57: error: use of undeclared identifier 'RL_STATE_VIMOTION'
>>>  RL_UNSETSTATE(RL_STATE_ISEARCH | RL_STATE_NSEARCH | RL_STATE_VIMOTION |
>>>                                                      ^
>>> sys-std.c:593:5: error: use of undeclared identifier 'RL_STATE_NUMERICARG'
>>>                RL_STATE_NUMERICARG | RL_STATE_MULTIKEY);
>>>                ^
>>> sys-std.c:593:27: error: use of undeclared identifier 'RL_STATE_MULTIKEY'
>>>                RL_STATE_NUMERICARG | RL_STATE_MULTIKEY);
>>>                                      ^
>>> sys-std.c:596:40: error: use of undeclared identifier 'rl_mark'
>>>  rl_line_buffer[rl_point = rl_end = rl_mark = 0] = 0;
>>>                                     ^
>>> sys-std.c:597:5: error: use of undeclared identifier 'rl_done'
>>>  rl_done = 1;
>>>  ^
>>> sys-std.c:998:7: warning: implicit declaration of function 'rl_resize_terminal' is invalid in C99
>>>    [-Wimplicit-function-declaration]
>>>                  rl_resize_terminal();
>>>                  ^
>>> 2 warnings and 7 errors generated.
>>> make[3]: *** [sys-std.o] Error 1
>>> make[2]: *** [R] Error 2
>>> make[1]: *** [R] Error 1
>>> make: *** [R] Error 1
>>> 
>>> 
>>> 
>>> 
>>> My configuration information:
>>> 
>>> R is now configured for x86_64-apple-darwin15.4.0
>>> 
>>> Source directory:          .
>>> Installation directory:    /Builds/R-devel
>>> 
>>> C compiler:                clang  -Wall -mtune=core2 -g -O2
>>> Fortran 77 compiler:       gfortran-4.8  -g -O2
>>> 
>>> C++ compiler:              clang++  -Wall -mtune=core2 -g -O2
>>> C++11 compiler:            clang++  -std=c++11 -Wall -mtune=core2 -g -O2
>>> Fortran 90/95 compiler:    gfortran-4.8 -Wall -g -O2
>>> Obj-C compiler:	     clang -Wall -mtune=core2 -g -O2 -fobjc-exceptions
>>> 
>>> Interfaces supported:      aqua, tcltk
>>> External libraries:        readline, BLAS(OpenBLAS), LAPACK(in blas), curl
>>> Additional capabilities:   PNG, JPEG, TIFF, NLS, cairo, ICU
>>> Options enabled:           shared R library, R profiling, memory profiling
>>> 
>>> Capabilities skipped:      
>>> Options not enabled:       shared BLAS
>>> 
>>> Recommended packages:      yes
>>> 
>>> 
>>> Apologies in advance if I have incorrectly formatted the issue or omitted something important.
>>> 
>>> Kind regards,
>>> Keith
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
>> -- 
>> Peter Dalgaard, Professor,
>> Center for Statistics, Copenhagen Business School
>> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>> Phone: (+45)38153501
>> Office: A 4.23
>> Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-devel mailing list