Skip to content

[Rcpp-devel] Rcpp 0.9.10 and cygwin 1.7.12-1

4 messages · Dario Buttari, Dirk Eddelbuettel

#
Rcpp 0.9.10 does not install properly in R 2.14.2-1 under cygwin
1.7.12-1 due to the fact that execinfo.h is not supported under
cygwin.
Marco Atzeri provided a patch to the code:
http://cygwin.com/ml/cygwin/2012-04/msg00346.html.
I verified that the patch works fine. The patch is below.
Would it be possible to incorporate the patch to the next version of Rcpp?
R is now part of the standard collection of packages supported by
Cygwin (http://cygwin.com/packages/) and it would be nice to be able
to install R packages under Cygwin without the need for manual
patching.
Thanks, Dario

----------------------------------------------------------------------
--- src/debugging.cpp_bk        2012-04-15 16:04:11.104213600 +0200
+++ src/debugging.cpp   2012-04-15 16:04:59.454979200 +0200
@@ -22,7 +22,7 @@
 #include <Rcpp.h>

#if defined(__GNUC__)
-#if defined(WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) ||
defined(__OpenBSD__)
+#if defined(WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) ||
defined(__OpenBSD__) || defined(__CYGWIN__)
// Simpler version for Windows and *BSD
SEXP stack_trace( const char* file, int line ){
Rcpp::List trace = Rcpp::List::create(
------------------------------------------------------------------------
#
On 22 April 2012 at 08:57, Dario Buttari wrote:
| Rcpp 0.9.10 does not install properly in R 2.14.2-1 under cygwin
| 1.7.12-1 due to the fact that execinfo.h is not supported under
| cygwin.

Well there used to be a whole slew of issues, as well as repeated outbursts
by a well-known R Core developer that Cygwin was not supported...  

| Marco Atzeri provided a patch to the code:
| http://cygwin.com/ml/cygwin/2012-04/msg00346.html.
| I verified that the patch works fine. The patch is below.
| Would it be possible to incorporate the patch to the next version of Rcpp?

Already done as SVN rev3584, included ChangeLog and NEWS entries as well as a
THANKS file entry :)

Thanks for that patch. As you may imagine, the *BSD branches got there the
same way that someone worked it out and told us.

| R is now part of the standard collection of packages supported by
| Cygwin (http://cygwin.com/packages/) and it would be nice to be able

Nice, I didn't know that.

| to install R packages under Cygwin without the need for manual
| patching.

Yup. Thanks for the patch submission.

Dirk
#
Thank you Dirk.
I just realized that I forgot to update a comment on a later line of
the debugging.cpp file. The updated patch is below.
Sorry about that, Dario

----------------------------------------------------------------------
--- debugging.cpp_bk    2012-04-22 13:01:55.224641700 -0700
+++ debugging.cpp       2012-04-22 13:03:19.739130300 -0700
@@ -22,7 +22,7 @@
 #include <Rcpp.h>

 #if defined(__GNUC__)
-#if defined(WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) ||
defined(__OpenBSD__)
+#if defined(WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) ||
defined(__OpenBSD__) || defined(__CYGWIN__)
 // Simpler version for Windows and *BSD
 SEXP stack_trace( const char* file, int line ){
     Rcpp::List trace = Rcpp::List::create(
@@ -32,7 +32,7 @@
     trace.attr("class") = "Rcpp_stack_trace" ;
     return trace ;
 }
-#else // ! (defined(WIN32) || defined(__FreeBSD__) ||
defined(__NetBSD__) || defined(__OpenBSD__)
+#else // ! (defined(WIN32) || defined(__FreeBSD__) ||
defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__)
 #include <execinfo.h>
 #include <cxxabi.h>
------------------------------------------------------------------------
On Sun, Apr 22, 2012 at 9:37 AM, Dirk Eddelbuettel <edd at debian.org> wrote:
#
On 22 April 2012 at 13:08, Dario Buttari wrote:
| Thank you Dirk.
| I just realized that I forgot to update a comment on a later line of
| the debugging.cpp file. The updated patch is below.
| Sorry about that, Dario
| 
| ----------------------------------------------------------------------
| --- debugging.cpp_bk    2012-04-22 13:01:55.224641700 -0700
| +++ debugging.cpp       2012-04-22 13:03:19.739130300 -0700
| @@ -22,7 +22,7 @@
|  #include <Rcpp.h>
| 
|  #if defined(__GNUC__)
| -#if defined(WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) ||
| defined(__OpenBSD__)
| +#if defined(WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) ||
| defined(__OpenBSD__) || defined(__CYGWIN__)
|  // Simpler version for Windows and *BSD
|  SEXP stack_trace( const char* file, int line ){
|      Rcpp::List trace = Rcpp::List::create(
| @@ -32,7 +32,7 @@
|      trace.attr("class") = "Rcpp_stack_trace" ;
|      return trace ;
|  }
| -#else // ! (defined(WIN32) || defined(__FreeBSD__) ||
| defined(__NetBSD__) || defined(__OpenBSD__)
| +#else // ! (defined(WIN32) || defined(__FreeBSD__) ||
| defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__)
|  #include <execinfo.h>
|  #include <cxxabi.h>
| ------------------------------------------------------------------------

Done.  

As it was just a comment, it didn't matter as much but it is better to do
both as you suggest.

Dirk