This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
New .metaconf-exclusions.txt file
authorAaron Crane <arc@cpan.org>
Mon, 23 Oct 2017 10:25:06 +0000 (11:25 +0100)
committerAaron Crane <arc@cpan.org>
Mon, 23 Oct 2017 10:29:08 +0000 (11:29 +0100)
This file lists symbols that metaconfig should ignore when calculating
what units Perl needs.

.metaconf-exclusions.txt [new file with mode: 0644]
MANIFEST

diff --git a/.metaconf-exclusions.txt b/.metaconf-exclusions.txt
new file mode 100644 (file)
index 0000000..d305e5d
--- /dev/null
@@ -0,0 +1,23 @@
+# This file is used when building the Configure script from the metaconfig
+# units. Ordinarily, if any *.c or *.h or *.sh file mentions a symbol that can
+# be provided by a metaconfig unit, the generated Configure will include the
+# relevant probe. But in some cases, that's inappropriate: we have symbols that
+# we no longer need to probe for, but must define in perl.h for backwards
+# compatibilty with XS modules. Also, our C files contain tokens like "index"
+# that are used as the names of Perl builtins, but would be treated by
+# metaconfig as implicit requests for a particular unit that we don't need.
+#
+# Previously, we've used customised "stub" versions of metaconfig units to
+# handle this situation, but that doesn't scale (and, in particular, requires
+# us to maintain those customised units for as long as the relevant symbols are
+# defined by the units in the upstream dist package).
+#
+# A better approach is to list those symbols here (and invoke metaconfig with
+# the "-X .metaconf-exclusions.txt" option when generating Configure); that
+# will prevent the relevant units from being used.
+#
+# See also metaconfig.h, which works in the other direction — it forces units
+# to be included, even before specific code using the relevant symbols has been
+# written.
+
+I_STDARG
index ffbaa3d..912907a 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,4 +1,5 @@
 .dir-locals.el                 Emacs control file
+.metaconf-exclusions.txt       Symbols that should ignored when generating Configure
 .travis.yml            continuous integration on github (where enabled)
 amigaos4/amigaio.c     AmigaOS4 port
 amigaos4/amigaio.h     AmigaOS4 port