Thank you both for your responses and help! Kurt-- your message makes a lot of 
sense. I'll try to debug soon and will reach out if I have more questions.

Thanks,
Michelle
________________________________
From: Kurt Hornik <kurt.hor...@wu.ac.at>
Sent: Wednesday, May 22, 2024 3:57 AM
To: Dirk Eddelbuettel <e...@debian.org>
Cc: Nixon, Michelle Pistner <map5...@psu.edu>; r-package-devel@r-project.org 
<r-package-devel@r-project.org>; Kurt Hornik <kurt.hor...@wu.ac.at>
Subject: Re: [R-pkg-devel] Compile issues on r-devel-linux-x86_64-debian-clang 
with OpenMP

[You don't often get email from kurt.hor...@wu.ac.at. Learn why this is 
important at https://aka.ms/LearnAboutSenderIdentification ]

>>>>> Dirk Eddelbuettel writes:

Friends, the Debian pretest check system uses LLVM 18 and has the
corresponding OpenMP headers and libraries installed, but R is
configured not to use these.  However, the configure test in fido does

cat <<EOF > test-omp.cpp
#include <omp.h>
int main() {
  return omp_get_num_threads();
}
EOF

## Execute R CMD SHLIB.
"${R_HOME}/bin/R" CMD SHLIB test-omp.cpp >/dev/null 2>&1
if test x"$?" = x"0"; then
    AC_MSG_RESULT([yes])
    openmp_already_works="yes"
else
    AC_MSG_RESULT([no])
fi

which does not work as intended: R CMD SHLIB will happily link but the
.so will end up with an unresolved symbol:

$ nm test-omp.so | grep omp_
                 U omp_get_num_threads

Hth
-k

> Hi Michelle,

> On 21 May 2024 at 13:46, Nixon, Michelle Pistner wrote:
> | Hi all,
> |
> | I'm running into build issues for my package (fido: 
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjsilve24%2Ffido&data=05%7C02%7Cmap5672%40psu.edu%7C7993944f52ae4a017d3d08dc7a34d1d6%7C7cf48d453ddb4389a9c1c115526eb52e%7C0%7C0%7C638519614500263726%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=C4BI6%2FUgTjd%2FCRPzBF8NuUkPvlQkIxb2r1%2BzIqKNPpE%3D&reserved=0)<https://github.com/jsilve24/fido>
>  on the r-devel-linux-x86_64-debian-clang system on CRAN (full check log 
> here: 
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwin-builder.r-project.org%2Fincoming_pretest%2Ffido_1.1.0_20240515_211644%2FDebian%2F00install.out&data=05%7C02%7Cmap5672%40psu.edu%7C7993944f52ae4a017d3d08dc7a34d1d6%7C7cf48d453ddb4389a9c1c115526eb52e%7C0%7C0%7C638519614500272862%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=TKpQrkImemwz%2FuK7yYqCLEECU6WCCvgYwcrAId%2Bpmb0%3D&reserved=0)<https://win-builder.r-project.org/incoming_pretest/fido_1.1.0_20240515_211644/Debian/00install.out>.
>  fido relies on several of the Rcpp packages, and I think the error is due to 
> how OpenMP is set up in our package. The error in question states:
> |
> | "Error: package or namespace load failed for �fido� in dyn.load(file, 
> DLLpath = DLLpath, ...):
> |  unable to load shared object 
> '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/00LOCK-fido/00new/fido/libs/fido.so':
> |   
> /home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/00LOCK-fido/00new/fido/libs/fido.so:
>  undefined symbol: omp_get_thread_num"
> |
> | I've had a hard time recreating the error, as I can successfully get the 
> package to build on other systems (GitHub action results here: 
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjsilve24%2Ffido%2Factions&data=05%7C02%7Cmap5672%40psu.edu%7C7993944f52ae4a017d3d08dc7a34d1d6%7C7cf48d453ddb4389a9c1c115526eb52e%7C0%7C0%7C638519614500275695%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=zXCul23gWAevfEhCsfyJg8KewU8fjSuy1qZgZemNy7M%3D&reserved=0)<https://github.com/jsilve24/fido/actions>
>  including a system using the same version of R/clang as the failing CRAN 
> check. Looking at the logs between the two, the major difference is the lack 
> of -fopenmp in the compiling function on the CRAN version (which is there on 
> the r-hub check version with the same specifications):
> |
> | (From the CRAN version) clang++-18 -std=gnu++17 -shared 
> -L/home/hornik/tmp/R-d-clang-18/lib -Wl,-O1 -o fido.so ConjugateLinearModel.o 
> MaltipooCollapsed_LGH.o MaltipooCollapsed_Optim.o MatrixAlgebra.o 
> PibbleCollapsed_LGH.o PibbleCollapsed_Optim.o PibbleCollapsed_Uncollapse.o 
> PibbleCollapsed_Uncollapse_sigmaKnown.o RcppExports.o SpecialFunctions.o 
> test_LaplaceApproximation.o test_MultDirichletBoot.o test_utils.o 
> -L/home/hornik/tmp/R-d-clang-18/lib -lR
> |
> | My initial thought was an issue in the configure scripts (which we borrowed 
> heavily from RcppArmadillo but made slight changes to (which is the most 
> likely cause if there is issue here)) or that there is some mismatch 
> somewhere as to whether or not OpenMP is available, but there isn't an 
> obvious bug to me.
> |
> | Any guidance on how to debug would be greatly appreciated!

> I seem to recall that that machine is 'known-bad' for OpenMP due to the
> reliance on clang-18 which cannot (?) build with it.  Might be best to
> contact Kurt Hornik (CC'ed) and/or CRAN.

> Best, Dirk


> | Thanks,
> | Michelle
> |
> | Michelle Nixon, PhD
> |
> | Assistant Research Professor
> | College of Information Sciences and Technology
> | The Pennsylvania State University
> |
> |     [[alternative HTML version deleted]]
> |
> | ______________________________________________
> | R-package-devel@r-project.org mailing list
> | 
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-package-devel&data=05%7C02%7Cmap5672%40psu.edu%7C7993944f52ae4a017d3d08dc7a34d1d6%7C7cf48d453ddb4389a9c1c115526eb52e%7C0%7C0%7C638519614500278321%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=LdxZWjZQvd1slPS4Tc8GkeKeV5OyoU5YL2NraN6chuY%3D&reserved=0<https://stat.ethz.ch/mailman/listinfo/r-package-devel>

> --
> dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

        [[alternative HTML version deleted]]

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

Reply via email to