Re: [R-pkg-devel] Package or namespace load failed: undefined symbol
On Thu, Sep 26, 2019 at 3:41 PM Sameh M. Abdulah wrote: > > I am installing my dependencies including OpenBLAS during the package > installation via the configure file. > What is surprising me that even all dependencies are installed successfully. > R cannot load one of the library > that depends on LAPACKE. My method is to install all my dependencies inside > the installation directory of my R package and > set PKG_CONFIG_PATH to this path. Do I need to set any other paths so that R > can see my new OpenBLAS which include LAPACKE? With PKG_CONFIGURE _PATH you enable finding the right compiler flags for compilation. However, this does not help you with the necessary run time linking, since you seem to be building dynamic libraries. One way forward might be: * Build a static version of LAPACKE * Build a static version of your dependency * Build your package linking with your static libs and BLAS/LAPACK as described in WRE. cheerio ralf __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Re: [R-pkg-devel] Package or namespace load failed: undefined symbol
I am installing my dependencies including OpenBLAS during the package installation via the configure file. What is surprising me that even all dependencies are installed successfully. R cannot load one of the library that depends on LAPACKE. My method is to install all my dependencies inside the installation directory of my R package and set PKG_CONFIG_PATH to this path. Do I need to set any other paths so that R can see my new OpenBLAS which include LAPACKE? --Sameh On 9/26/19, 4:34 PM, "Ralf Stubner" wrote: On Wed, Sep 25, 2019 at 3:34 PM Sameh M. Abdulah wrote: > My package depends on another C-based software that needs LAPACKE to compile. I do not know a lot about it. I think adding LAPACKE to my package will be a good solution. > Could you please give me more information of how to do this? Including LAPACKE in your package won't help you in this case, since it is not your package but one of its dependencies that needs it. So LAPACKE needs to be installed when that dependency is installed, which happens before your package gets installed. How do you expect the dependencies to get installed? Is that done by an admin before the package installation? cheerio ralf __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Re: [R-pkg-devel] Package or namespace load failed: undefined symbol
Dear Ralf My package depends on another C-based software that needs LAPACKE to compile. I do not know a lot about it. I think adding LAPACKE to my package will be a good solution. Could you please give me more information of how to do this? --Sameh On 9/25/19, 2:00 PM, "Ralf Stubner" wrote: On Wed, Sep 25, 2019 at 10:29 AM Sameh M. Abdulah wrote: > I am installing OpenBLAS because I need LAPACKE libraries which I cannot find on the current version of OpenBLAS on CRAN. > > I add the libraries directory in my package to the PKG_CONFIG_PATH. Is this enough for the system to use my OpenBLAS library? I seem to be missing some context here. I might be able to help you if provide a higher level description of what you are trying to achieve. For example, why do you need LAPACKE instead of the C interface to LAPACK provided by R_ext/Lapack.h? And if you really need LAPACKE, why not include only that in your package and link with the BLAS/LAPACK used by R? cheerio ralf __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Re: [R-pkg-devel] Package or namespace load failed: undefined symbol
On 9/25/19 1:00 PM, Ralf Stubner wrote: On Wed, Sep 25, 2019 at 10:29 AM Sameh M. Abdulah wrote: I am installing OpenBLAS because I need LAPACKE libraries which I cannot find on the current version of OpenBLAS on CRAN. I add the libraries directory in my package to the PKG_CONFIG_PATH. Is this enough for the system to use my OpenBLAS library? I seem to be missing some context here. I might be able to help you if provide a higher level description of what you are trying to achieve. For example, why do you need LAPACKE instead of the C interface to LAPACK provided by R_ext/Lapack.h? And if you really need LAPACKE, why not include only that in your package and link with the BLAS/LAPACK used by R? Also with LAPACKE you will have the problem of (in)compatibility in calls from C to Fortran with the hidden length arguments for character arguments. It would be better to use LAPACK directly, passing the hidden length arguments as described in Writing R Extensions (the R-devel version of it, section 6.6.1). Or, if you wanted a standards-based solution, use iso_c_binding (also described in WRE). You would use the LAPACK already provided in the system (either reference from R, or any other as selected by administrator/user), not include it with your package. Best Tomas cheerio ralf __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Re: [R-pkg-devel] Package or namespace load failed: undefined symbol
On Wed, Sep 25, 2019 at 10:29 AM Sameh M. Abdulah wrote: > I am installing OpenBLAS because I need LAPACKE libraries which I cannot find > on the current version of OpenBLAS on CRAN. > > I add the libraries directory in my package to the PKG_CONFIG_PATH. Is this > enough for the system to use my OpenBLAS library? I seem to be missing some context here. I might be able to help you if provide a higher level description of what you are trying to achieve. For example, why do you need LAPACKE instead of the C interface to LAPACK provided by R_ext/Lapack.h? And if you really need LAPACKE, why not include only that in your package and link with the BLAS/LAPACK used by R? cheerio ralf __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Re: [R-pkg-devel] Package or namespace load failed: undefined symbol
Thanks Ralf I am installing OpenBLAS because I need LAPACKE libraries which I cannot find on the current version of OpenBLAS on CRAN. I add the libraries directory in my package to the PKG_CONFIG_PATH. Is this enough for the system to use my OpenBLAS library? Thanks Sameh On 9/25/19, 10:23 AM, "Ralf Stubner" wrote: On Tue, Sep 24, 2019 at 12:10 PM Sameh M. Abdulah wrote: > I am uploading my R package to CRAN. One of the dynamic libraries the package requires depends on LAPACKE library which usually integrated with BLAS and CBLAS in the same .so file (as I understand). CRAN has OpenBLAS already installed on the system. However, this OpenBLAS library does not maintain implementation of LAPACKE library. Thus, I have modified my configure file to install a standalone OpenBLAS library to use it. > > The problem that my installation has successfully passed, however, CRAN fails in loading my package giving me this error: > > /srv/hornik/tmp/CRAN/exageostatr.Rcheck/exageostatr/lib/libcoreblas.so: undefined symbol: LAPACKE_slarfb_work This looks as if you are building OpenBLAS as a /dynamic/ library installed in your package directory. This cannot work since the run-time linker will not search your package directory for dynamic libraries. You could build OpenBLAS as a /static/ library instead. However, I am unsure why you want to build OpenBLAS in the first place, since any R package can reliably link with the BLAS and LAPACK versions used by R. See WRE on Makevars, BLAS_LIBS etc. for details. cheerio ralf __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Re: [R-pkg-devel] Package or namespace load failed: undefined symbol
On Tue, Sep 24, 2019 at 12:10 PM Sameh M. Abdulah wrote: > I am uploading my R package to CRAN. One of the dynamic libraries the package > requires depends on LAPACKE library which usually integrated with BLAS and > CBLAS in the same .so file (as I understand). CRAN has OpenBLAS already > installed on the system. However, this OpenBLAS library does not maintain > implementation of LAPACKE library. Thus, I have modified my configure file to > install a standalone OpenBLAS library to use it. > > The problem that my installation has successfully passed, however, CRAN fails > in loading my package giving me this error: > > /srv/hornik/tmp/CRAN/exageostatr.Rcheck/exageostatr/lib/libcoreblas.so: > undefined symbol: LAPACKE_slarfb_work This looks as if you are building OpenBLAS as a /dynamic/ library installed in your package directory. This cannot work since the run-time linker will not search your package directory for dynamic libraries. You could build OpenBLAS as a /static/ library instead. However, I am unsure why you want to build OpenBLAS in the first place, since any R package can reliably link with the BLAS and LAPACK versions used by R. See WRE on Makevars, BLAS_LIBS etc. for details. cheerio ralf __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
[R-pkg-devel] Package or namespace load failed: undefined symbol
Hi, I am uploading my R package to CRAN. One of the dynamic libraries the package requires depends on LAPACKE library which usually integrated with BLAS and CBLAS in the same .so file (as I understand). CRAN has OpenBLAS already installed on the system. However, this OpenBLAS library does not maintain implementation of LAPACKE library. Thus, I have modified my configure file to install a standalone OpenBLAS library to use it. The problem that my installation has successfully passed, however, CRAN fails in loading my package giving me this error: /srv/hornik/tmp/CRAN/exageostatr.Rcheck/exageostatr/lib/libcoreblas.so: undefined symbol: LAPACKE_slarfb_work LAPACKE_slarfb_work is a function defined in the LAPACKE library. I have tried to set the PKG_LIBS path to my OpenBLAS lib but again it fails. Any suggestions? --Sameh [[alternative HTML version deleted]] __ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel