[petsc-dev] Unable to access to MatSeqSBAIJGetArray_SeqSBAIJ from "outside" PETSc

Barry Smith bsmith at mcs.anl.gov
Fri Jan 6 15:14:22 CST 2017


   Run ./configure with the additional option --with-visibility=0

  We'll add a MatSeqSBAIJGetArray() 

  Barry

> On Jan 6, 2017, at 2:46 PM, Eric Chamberland <Eric.Chamberland at giref.ulaval.ca> wrote:
> 
> Hi,
> 
> we are trying to add a "petsc" developpement into our code but we need to call MatSeqSBAIJGetArray_SeqSBAIJ for it.
> 
> Unlike MatSeqAIJGetArray_SeqAIJ which is accessible with either
> 
> MatSeqAIJGetArray
> 
> or
> 
> ierr = PetscUseMethod(A,"MatSeqAIJGetArray_C",(Mat,PetscScalar**),(A,array));CHKERRQ(ierr);
> 
> there is no MatSeqSBAIJGetArray and we can't call it with
> 
> ierr = PetscUseMethod(A,"MatSeqSBAIJGetArray_C",(Mat,PetscScalar**),(A,array));CHKERRQ(ierr);
> 
> since it isn't registered in MatCreate_SeqSBAIJ.
> 
> is it normal?
> 
> We can call MatSeqSBAIJGetArray_SeqSBAIJ directly, but the linker complains about unresolved symbol because it is not exported global but only local in our shared library:
> 
> nm /opt/petsc-3.7.2_debug_matmatmult_mpi/lib/libpetsc.so |grep MatSeqSBAIJGetArray
> 00000000007f7b74 t MatSeqSBAIJGetArray_SeqSBAIJ
> 
> Is there any (nasty) way to override the shared library global/local symbols attribute?
> 
> Thanks,
> 
> Eric
> 




More information about the petsc-dev mailing list