[petsc-dev] Symbol names using clang in addition to gcc

Satish Balay balay at mcs.anl.gov
Thu Sep 22 11:31:38 CDT 2022


I see this is change was done at https://gitlab.com/petsc/petsc/-/merge_requests/5268

Likely due to errors with cray compilers.

So  I guess we could add in __clang__ as you suggest. Can you create an MR with this change?

And probably the same fix for src/sys/objects/pinit.c ?

Satish

On Thu, 22 Sep 2022, Aagaard, Brad T via petsc-dev wrote:

> Satish,
> 
> I used to be able to get symbol names using clang (macOS) and this still works, but I need to edit the defines in dlimpl.c because __USE_GNU is not defined. Is there a reason why the current code is limited to __USE_GNU and doesn’t allow broader use when it works?
> 
> Here is the change I made to my local version to allow symbol names.
> 
> diff --git a/src/sys/dll/dlimpl.c b/src/sys/dll/dlimpl.c
> index 5bd68aa5a33..ded4ce5adbb 100644
> --- a/src/sys/dll/dlimpl.c
> +++ b/src/sys/dll/dlimpl.c
> @@ -323,7 +323,7 @@ PetscErrorCode PetscDLAddr(void (*func)(void), char **name) {
>    PetscFunctionBegin;
>    PetscValidPointer(name, 2);
>    *name = NULL;
> -#if defined(PETSC_HAVE_DLADDR) && defined(__USE_GNU)
> +#if defined(PETSC_HAVE_DLADDR) && (defined(__USE_GNU) || defined(__clang__))
>    dlerror(); /* clear any previous error */
>    {
>      Dl_info info;
> 
> 
> Thanks,
> Brad
> 
> 


More information about the petsc-dev mailing list