This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Mention libperl.t, and explain nm output some more.
authorJarkko Hietaniemi <jhi@iki.fi>
Tue, 22 Jul 2014 12:13:24 +0000 (08:13 -0400)
committerJarkko Hietaniemi <jhi@iki.fi>
Tue, 22 Jul 2014 12:13:24 +0000 (08:13 -0400)
pod/perlguts.pod

index 4fe0798..bcd2672 100644 (file)
@@ -2237,11 +2237,18 @@ please see F<miniperlmain.c> for usage details.  You may also need
 to use C<dVAR> in your coding to "declare the global variables"
 when you are using them.  dTHX does this for you automatically.
 
-To see whether you have non-const data you can use a BSD-compatible C<nm>:
+To see whether you have non-const data you can use a BSD (or GNU)
+compatible C<nm>:
 
   nm libperl.a | grep -v ' [TURtr] '
 
-If this displays any C<D> or C<d> symbols, you have non-const data.
+If this displays any C<D> or C<d> symbols (or possibly C<C> or C<c>),
+you have non-const data.  The symbols the C<grep> removed are as follows:
+C<Tt> are I<text>, or code, the C<Rr> are I<read-only> (const) data,
+and the C<U> is <undefined>, external symbols referred to.
+
+The test F<t/porting/libperl.t> does this kind of symbol sanity
+checking on C<libperl.a>.
 
 For backward compatibility reasons defining just PERL_GLOBAL_STRUCT
 doesn't actually hide all symbols inside a big global struct: some