What does namespaced mean exactly? On Mar 17, 2012, at 10:58 AM, Jed Brown wrote:
> Every symbol (both functions and data) with extern linkage must be namespaced > to avoid link- or run-time conflicts when the user (or any other library to > be used in the same application) defines their own variable called "rankkey" > or "actions" or "objects" or "ListCreate" or "createLevel", etc. No > exceptions. > > Either use static linkage or namespace the symbols. Some old code was sloppy > about this (and needs to be fixed), but we really need to be careful to never > do this is new code. > > You can build a libpetsc.a (--with-shared-libraries=0) and search for any > defined symbols (T, B, R, C, D) that are not namespaced. Some examples below. > > pthread.c: > 00000000000004c5 T DoCoreAffinity > 0000000000000232 T FuncFinish > 0000000000000010 B MainThreadCoreAffinity > 0000000000000100 R ThreadAffinityPolicyTypes > 0000000000000008 B ThreadCoreAffinity > 0000000000000060 R ThreadSynchronizationTypes > 0000000000000004 C rankkey > 0000000000000018 B threadranks > > plog.c: > 0000000000000000 B actions > 0000000000000010 B logActions > 0000000000000014 B logObjects > 0000000000000038 D maxActions > 000000000000003c D maxObjects > 0000000000000018 B numActions > 000000000000001c B numObjects > 0000000000000020 B numObjectsDestroyed > 0000000000000008 B objects > 0000000000000040 D traceblanks > 00000000000000d8 B tracefile > 00000000000000e0 B tracelevel > 0000000000000060 D tracespace > 00000000000000e8 B tracetime > > ctetgen.c: > 000000000000ade7 T ArrayPoolCreate > 000000000000b979 T ArrayPoolDestroy > 000000000000b0cf T ArrayPoolGetBlock > 000000000000b6f7 T ArrayPoolNewIndex > 000000000000ac41 T ArrayPoolRestart > 0000000000006cfe T ListAppend > 00000000000082ec T ListClear > 00000000000069c7 T ListCreate > 00000000000077ad T ListDelete > 0000000000008491 T ListDestroy > 0000000000007ae2 T ListHasItem > 000000000000718e T ListInsert > 0000000000007ea0 T ListItem > 0000000000007cf5 T ListLength > 00000000000080c6 T ListSetItem > 00000000000096af T MemoryPoolAlloc > 000000000000a415 T MemoryPoolCreate > 0000000000009a9d T MemoryPoolDealloc > 000000000000a827 T MemoryPoolDestroy > 000000000000a1ed T MemoryPoolRestart > 0000000000009c6a T MemoryPoolTraversalInit > 0000000000009e6e T MemoryPoolTraverse > 0000000000008868 T QueueCreate > 0000000000009324 T QueueDestroy > 0000000000008c23 T QueueLength > 00000000000090b0 T QueuePop > 0000000000008dd5 T QueuePush > 0000000000003f06 T lu_decmp > 0000000000004303 T lu_solve > > gamg.c/agg.c/geo.c/tools.c: > 0000000000000926 T createLevel > 0000000000000050 C gamg_setup_events > 00000000000054c6 T formProl0 > 0000000000002989 T smoothAggs > 0000000000000629 T geo_mg_compare > 00000000000012f0 T getGIDsOnSquareGraph > 0000000000001292 T triangulateAndFormProl > 0000000000000629 T createSimpleGraph > 00000000000028fe T getDataWithGhosts > 0000000000001415 T scaleFilterGrap -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120317/b875acac/attachment.html>
