It HAS A hid_t argument! Making it public means making HDF5 includes public, means all PETSc applications have the HDF5 includes open in them. Likely it should just get _Private
Barry On Jun 20, 2019, at 9:01 AM, Hapla Vaclav via petsc-dev <[email protected]> wrote: > > On 20 Jun 2019, at 15:56, Vaclav Hapla <[email protected]> wrote: >> >> /home/sandbox/petsc/petsc.next-3/src/mat/impls/dense/seq/densehdf5.c:62: >> undefined reference to `PetscViewerHDF5Load' >>>>>> >>>>>> Does it mean I need to change visibility of PetscViewerHDF5Load in >>>>>> isimpl.h to PETSC_EXTERN? >>>>>> Are you OK with that? >>>>> >>>>> Yes, and when doing that, it needs a Developer level man page. >>>> >>>> OK, thanks. >>> >>> So as a rule of thumb, every PETSC_EXTERN function should be documented, >>> although in private headers? >>> >>> Then src/vec/is/utils/hdf5io.c should have >>> #include <petsc/private/isimpl.h> /*I "petsc/private/isimpl.h" I*/ >>> ? >>> Looks a bit weird, doesn't it? >>> >>> I think there are countless cases petsc-wide which break this. >> >> dev manual page 15 bullet 15: >> "private functions may need to be marked PETSC_EXTERN" >> There is an example of MatHeaderReplace. It hasn't a manpage. >> > > Well, I'm not against making it public (it originally was) and write a > manpage, but then it should be also moved to the public header file. > > Sorry for sending a few previous emails only to Jed. > > Vaclav >
