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 >
