It seems that version of ICU_531 in
<http://www.stats.ox.ac.uk/pub/Rtools/goodies/> as of June 25, 2014,
was compiled using sjlj exception handling (current gcc-4.6.3,
perhaps?).  I say that as I am trying a 4.9.2 distribution which uses
seh handling, and I get errors like:


gcc -std=gnu99 -m64 -shared -s -mwindows -o R.dll R.def console.o
dynload.o editor.o embeddedR.o extra.o malloc.o opt.o pager.o
preferences.o psignal.o rhome.o rt_complete.o rui.o run.o shext.o
sys-win32.o system.o dos_wglob.o dllversion.o ../main/libmain.a
../appl/libappl.a ../nmath/libnmath.a getline/gl.a
../extra/xdr/libxdr.a ../extra/intl/libintl.a ../extra/trio/libtrio.a
../extra/tzone/libtz.a ../extra/tre/libtre.a -fopenmp -L. -lgfortran
-lquadmath -lRblas -L../../bin/x64 -lRgraphapp -lRiconv -lcomctl32
-lversion -L"F:/R/RLocalSoft"/lib/x64 -lpcre -lz -lbz2 -llzma
-L"F:/R/ICU_531"/lib/x64 -lsicuin -lsicuuc -lsicudt -lstdc++

F:/R/ICU_531/lib/x64/libsicuin.a(ucol.ao):ucol.cpp:(.text+0xb):
undefined reference to `__gxx_personality_sj0'
F:/R/ICU_531/lib/x64/libsicuin.a(ucol.ao):ucol.cpp:(.text+0x72):
undefined reference to `_Unwind_SjLj_Register'
F:/R/ICU_531/lib/x64/libsicuin.a(ucol.ao):ucol.cpp:(.text+0x142):
undefined reference to `_Unwind_SjLj_Unregister'
F:/R/ICU_531/lib/x64/libsicuin.a(ucol.ao):ucol.cpp:(.text+0x1b6):
undefined reference to `_Unwind_SjLj_Resume'
F:/R/ICU_531/lib/x64/libsicuin.a(ucol.ao):ucol.cpp:(.text+0x9bb):
undefined reference to `__gxx_personality_sj0'
F:/R/ICU_531/lib/x64/libsicuin.a(ucol.ao):ucol.cpp:(.text+0xa16):
undefined reference to `_Unwind_SjLj_Register'
F:/R/ICU_531/lib/x64/libsicuin.a(ucol.ao):ucol.cpp:(.text+0xaa6):
undefined reference to `_Unwind_SjLj_Unregister'
F:/R/ICU_531/lib/x64/libsicuin.a(ucol.ao):ucol.cpp:(.text+0xb6f):
undefined reference to `_Unwind_SjLj_Resume'
F:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe:
F:/R/ICU_531/lib/x64/libsicuin.a(ucol.ao): bad reloc address 0x0 in
section `.pdata'
collect2.exe: error: ld returned 1 exit status
make[3]: *** [R.dll] Error 1
make[2]: *** [../../bin/x64/R.dll] Error 2
make[1]: *** [rbuild] Error 2
make: *** [all] Error 2


which seem to reflect the difference in error handling. Is there any
intention to recompile the ICU pack in the goodies directory of Rtools
with seh? If not, are there relatively straightforward directions as
to how to compile ICU from source for R which a neophyte can follow?
Ostensibly, seh provides better performance[1], [2], and if a 4.9.2
toolchain is being developed, it may be worth considering using seh.

Thank you,

Avi

[1] <http://sourceforge.net/p/mingw-w64/mailman/message/30532139/>
[2] 
<http://wiki.qt.io/MinGW-64-bit#Exception_handling:_SJLJ.2C_DWARF.2C_and_SEH>

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to