From lukas.stadler at oracle.com  Tue Mar 15 16:25:20 2016
From: lukas.stadler at oracle.com (Lukas Stadler)
Date: Tue, 15 Mar 2016 16:25:20 +0100
Subject: [Rd] Help with libiconv problem
In-Reply-To: <56E74369.6080800@oracle.com>
References: <56E723F3.8040305@oracle.com> <56E74369.6080800@oracle.com>
Message-ID: <3225B82E-CD0E-4861-9EB8-2945BB9AD2A4@oracle.com>


> On 15 Mar 2016, at 0:04, Mick Jordan <mick.jordan at oracle.com> wrote:
> 
> On 3/14/16 1:49 PM, Mick Jordan wrote:
>> A couple of my colleagues are having problems building R-3.2.4 on Mac OS X El Capitan somehow related to libiconv. I personally don't have any problems on either of my Macs. I'm hoping thie make log might trigger something in the readers of this list:
>> 
>> gcc -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L../../../../lib -L/usr/local/lib -o tools.so text.o init.o Rmd5.o md5.o signals.o install.o getfmts.o http.o gramLatex.o gramRd.o -L../../../../lib -lR -Wl,-framework -Wl,CoreFoundation
>> mkdir ../../../../library/tools/libs
>> installing 'sysdata.rda'
>> Warning messages:
>> 1: In strptime(paste(.leap.seconds, "23:59:60"), "%Y-%m-%d %H:%M:%S") :
>>  unknown timezone 'America/Los_Angeles'
>> 2: In strptime(paste(.leap.seconds, "23:59:60"), "%Y-%m-%d %H:%M:%S") :
>>  unknown timezone 'GMT'
>> 3: In strptime(paste(.leap.seconds, "23:59:60"), "%Y-%m-%d %H:%M:%S") :
>>  unknown timezone 'America/New_York'
>> dyld: lazy symbol binding failed: Symbol not found: _libiconv_open
>>  Referenced from: /Users/someone/work/abc/fastr/com.oracle.truffle.r.native/gnur/R-3.2.4/lib/libR.dylib
>>  Expected in: flat namespace
>> 
>> dyld: Symbol not found: _libiconv_open
>>  Referenced from: /Users/someone/work/abc/fastr/com.oracle.truffle.r.native/gnur/R-3.2.4/lib/libR.dylib
>>  Expected in: flat namespace
>> 
>> /bin/sh: line 1: 16127 Done                    echo "tools:::sysdata2LazyLoadDB(\"./R/sysdata.rda\",\"../../../library/tools/R\")"
>>     16128 Trace/BPT trap: 5       | R_DEFAULT_PACKAGES=NULL LC_ALL=C ../../../bin/R --vanilla --slave
>> make[7]: *** [sysdata] Error 133
>> make[6]: *** [all] Error 2
>> make[5]: *** [R] Error 1
>> make[4]: *** [R] Error 1
>> make[3]: *** [R] Error 1
>> 
> This seems to be related to having a macports install of libiconv. The compile step for sysutils.c puts the macport include header before /usr/local/include but the link step for libR doesn't - in fact it doesn't include a -L for the macport directory at all. So there is an an inconsistency in the expected symbols. (Why the macport version defines libiconv_open instead of iconv_open I have no idea).

FWIW, the workaround we now use is to specify -DLIBICONV_PLUG, because then all libiconv variations behave the same.

- Lukas


[Rd] Help with libiconv problem
Lukas Stadler