nm -o arch-dynamic-cxx-split-visibility/lib/libpetsc*.dylib  | grep " T " | 
grep "[A-Za-z]_[A-Za-z]" | grep -v Create

   finds a few other oddball public functions that maybe don't need to be 
public. Do we need to just go through and replace the PETSC_EXTERN for those 
that don't need it?

   I had made things like _MatConvert_MPIMAIJ_MPIAIJ PETSC_EXTERN_C because we 
use dlsym on a built string to find them.  But can we actually make them 
PETSC_INTERN now?

   Barry



On Mar 5, 2013, at 11:57 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:

> 
>  This is very nice, much better than before, no confusing macros and 
> complicated #if conditions, simpler for the users to understand also.
> 
>  Does this mean we shouldn't/don't need to/should continue to mark functions 
> used in a single file as static?
> 
>  I found a few problems so far 
> 
>   0) Do these really need PETSC_EXTERN? Note that they are not declared 
> PETSC_EXTERN when defined, only in snesimpl.h
> 
> PETSC_EXTERN PetscErrorCode SNESReset_VI(SNES);
> PETSC_EXTERN PetscErrorCode SNESDestroy_VI(SNES);
> PETSC_EXTERN PetscErrorCode SNESView_VI(SNES,PetscViewer);
> PETSC_EXTERN PetscErrorCode SNESSetFromOptions_VI(SNES);
> PETSC_EXTERN PetscErrorCode SNESSetUp_VI(SNES);
> PETSC_EXTERN_TYPEDEF typedef PetscErrorCode 
> (*SNESVIComputeVariableBoundsFunction)(SNES,Vec,Vec);
> PETSC_EXTERN PetscErrorCode 
> SNESVISetComputeVariableBounds_VI(SNES,SNESVIComputeVariableBoundsFunction);
> PETSC_EXTERN PetscErrorCode SNESVISetVariableBounds_VI(SNES,Vec,Vec);
> PETSC_EXTERN PetscErrorCode 
> SNESDefaultConverged_VI(SNES,PetscInt,PetscReal,PetscReal,PetscReal,SNESConvergedReason*,void*);
> 
> 
>   1) arch-dynamic-cxx-split  (you can guess what these mean, split means 
> split libraries) fails with gfortran on Mac. This may have been this way for 
> a while, I'm guess it is related to how common blocks in shared libraries are 
> not shared by default and nothing to do with recent changes.
> 
>   --with-visibility
> 
>   2) Fortran auto generated functions are not visible to user code 
> 
>        Key in Matt's grumbling about sowing and how it should be rewritten in 
> Python.  We need to modify bfort to insert visibility macro for the 
> functions. Satish, can you look at that?
> 
>   3) The -fvisibility=hidden is blindly passed down to all 
> --download-packages and will break them all. I fixed MPI.py to crudely remove 
> it but we should have it auto-removed for all package builds. Matt, can you 
> look at that?
> 
>   Barry
> 
> 
> 
> On Mar 5, 2013, at 10:14 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> 
>> 
>> On Tue, Mar 5, 2013 at 8:28 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
>> On Tue, Mar 5, 2013 at 7:19 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
>> I'm testing it now.
>> 
>> I pushed two minor patches and I'm going through configure now.
>> 
>> https://bitbucket.org/BarryFSmith/petsc-dev-simp/commits/41ad8d3b80c7a9edf4d80bf2e09f7fb8c0405f2b
>> 
>> Okay, ready for testing.
>> 
>> https://bitbucket.org/BarryFSmith/petsc-dev-simp/commits/8d2ebbb193fb583bccc64015e35640c4e08c3426
> 

Reply via email to