[Rd] [External] undefined symbol errors when compiling package using ALTREP API

Tierney, Luke |uke-t|erney @end|ng |rom u|ow@@edu
Tue Jun 4 18:52:57 CEST 2019

On Tue, 4 Jun 2019, Mark Klik wrote:

> Hello,
> I'm developing a package (lazyvec) that makes full use of the ALTREP
> framework (R >= 3.6.0).
> One application of the package is to wrap existing ALTREP vectors in a new
> ALTREP vector and pass all calls from R to the contained object. The
> purpose of this is to provide a diagnostic framework for working with
> ALTREP vectors and show information about internal calls.
> The package builds on Windows and OSX but fails to build on Linux as can be
> seen from the link to the Travis build:
> https://travis-ci.org/fstpackage/lazyvec/jobs/539442806
> The reason of build failure is that many ALTREP methods generate 'undefined
> symbol' errors upon building the package (on Linux). I've checked the R
> source code and the undefined symbols seems to be related to the
> 'attribute_hidden' before the function definition. For example, the method
> 'ALTVEC_EXTRACT_SUBSET' is defined as:
> SEXP attribute_hidden ALTVEC_EXTRACT_SUBSET(SEXP x, SEXP indx, SEXP call)
> My question is why these differences between Windows / OSX and Linux exist
> and if they are intentional?

It is intentional that this not be part of the public API. This is
true of almost all functions with an ALTREP prefix. You need a
different approach that avoids using these directly.



> Do I need special build parameters to make sure my package builds correctly
> on Linux?
> thanks for all the hard work!
> best,
> Mark
> PS: some additional info:
> package github repository: https://github.com/fstpackage/lazyvec
> AppVeyor package build logs:
> https://ci.appveyor.com/project/fstpackage/lazyvec
> Travis package build logs: https://travis-ci.org/fstpackage/lazyvec/builds
> 	[[alternative HTML version deleted]]
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

Luke Tierney
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-tierney using uiowa.edu
Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu

More information about the R-devel mailing list