[petsc-dev] Dev Manual Blurb on PETSC_INTERN and PETSC_EXTERN ?

Barry Smith bsmith at mcs.anl.gov
Mon May 23 15:10:34 CDT 2016


   Thanks, merge to master

   Barry

> On May 23, 2016, at 4:46 AM, Patrick Sanan <patrick.sanan at gmail.com> wrote:
> 
> A patch is attached (0001-..) which adds an entry to Section 2.2.
> 
> Also attached (0002-...) are some changes I had to make (escaping some
> underscores) to test building the manual with pdflatex on my laptop. I
> didn't run the full doc building process so I'm not sure if these are
> necessary changes on the system where the docs are actually generated.
> 
> On Fri, May 20, 2016 at 9:35 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>> 
>>> On May 20, 2016, at 3:50 AM, Patrick Sanan <patrick.sanan at gmail.com> wrote:
>>> 
>>> A short blurb in the dev manual re PETSC_EXTERN and PETSC_INTERN might
>>> be helpful for contributors. There have been some changes recently and
>>> some of the older advice on petsc-dev is stale (there is discussion of
>>> deprecated things like PETSC_INTERN_C, notes from when PETSc compiled
>>> into several separate shared libraries, etc.).
>>> 
>>> My current understanding is something like the folllowing.
>>> 
>>>   PETSC_EXTERN : for symbols which should be visible to other shared
>>> libraries, *including plugins* .
>>> 
>>>   PETSC_INTERN : for symbols which need to be visible across
>>> compilation units, but only within the PETSc shared library.
>> 
>>  actually only within a SINGLE PETSc shared library. Sometimes people forget that the PETSc libraries can be built as sys, vec, mat, dm, ksp, snes, ts so anything that is private but still needed in more than one of the libraries needs a PETSC_EXTERN. If someone makes a mistake it is only detected with the multiple library builds.
>> 
>>> 
>>>   In both cases, the names are demangled if C++ is involved.
>>> 
>>> If that's right, I can make a patch to add it to the manual (at the
>>> end of Section 2.2, say).
>> 
>>   Thanks. Go ahead. We "improved" this stuff in PETSc a good deal but did not properly update the developers guide.
>> 
>>  Barry
>> 
>> 
> <0001-Dev-Manual-add-blurb-on-PETSC_INTERN-and-PETSC_EXTER.patch><0002-dev-manual-add-some-escaped-underscores-to-be-able-t.patch>




More information about the petsc-dev mailing list