Mat does not normally depend on DM, but a couple implementations do, $ grep -rl DAGet petsc/src/mat/impls petsc/src/mat/impls/hypre/mhyp.c petsc/src/mat/impls/adic/nladic.c petsc/src/mat/impls/adic/matadic.c
So when these are enabled, all the Mat examples fail to link because PETSC_MAT_LIB does not include PETSC_DM_LIB. This is especially annoying to me because the PETSc builds I use have Hypre enabled, meaning that I need to keep more special testing builds (without Hypre) just to be able to run the Mat tests. Is the HYPREStruct stuff destined to eventually move out of Mat? Jed
