summaryrefslogtreecommitdiff
path: root/.metaconf-exclusions.txt
diff options
context:
space:
mode:
authorAaron Crane <arc@cpan.org>2017-10-23 11:25:06 +0100
committerAaron Crane <arc@cpan.org>2017-10-23 11:29:08 +0100
commit92c878fe3be5db4aca79e291be6527e853ca857c (patch)
tree5809c5c81814cae4725f1f0ff1a49e6d4a09a727 /.metaconf-exclusions.txt
parent33727e0fa843e3c715b9a6cc7542fcdda31d6e3a (diff)
downloadperl-92c878fe3be5db4aca79e291be6527e853ca857c.tar.gz
New .metaconf-exclusions.txt file
This file lists symbols that metaconfig should ignore when calculating what units Perl needs.
Diffstat (limited to '.metaconf-exclusions.txt')
-rw-r--r--.metaconf-exclusions.txt23
1 files changed, 23 insertions, 0 deletions
diff --git a/.metaconf-exclusions.txt b/.metaconf-exclusions.txt
new file mode 100644
index 0000000000..d305e5ddb5
--- /dev/null
+++ b/.metaconf-exclusions.txt
@@ -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