about summary refs log tree commit diff
path: root/sysdeps/mach/hurd/Makefile
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-06-22 18:28:45 -0400
committerZack Weinberg <zackw@panix.com>2017-06-22 18:28:45 -0400
commit09e65f085e8491db0ada73c558ffe8dc296ade47 (patch)
treec31ff4f8f871bab4762248bffc9c3c508037ef61 /sysdeps/mach/hurd/Makefile
parentbf7aa82eab0f1f9c78d39cf57a3f6b25eefc47c1 (diff)
downloadglibc-09e65f085e8491db0ada73c558ffe8dc296ade47.tar.gz
glibc-09e65f085e8491db0ada73c558ffe8dc296ade47.tar.xz
glibc-09e65f085e8491db0ada73c558ffe8dc296ade47.zip
Add pretty-printer for errno. zack/errno-prettyprint
This patch adds the actual pretty-printer for errno.  I could have
used Python's built-in errno module to get the symbolic names for the
constants, but it seemed better to do something entirely under our
control, so there's a .pysym file generated from errnos.texi, with a
hook that allows the Hurd to add additional constants.  Then a .py
module is generated from that plus errno.h in the usual manner; many
thanks to the authors of the .pysym mechanism.

There is also a test which verifies that the .py file (not the .pysym
file) covers all of the constants defined in errno.h.

hurd-add-errno-constants.awk has been manually tested, but the
makefile logic that runs it has not been tested.

	* stdlib/errno-printer.py: New pretty-printer.
	* stdlib/test-errno-constants.py: New special test.
	* stdlib/test-errno-printer.c, stdlib/test-errno-printer.py:
	New pretty-printer test.
	* stdlib/make-errno-constants.awk: New script to generate the
	.pysym file needed by errno-printer.py.
	* stdlib/Makefile: Install, run, and test all of the above, as
	appropriate.

	* sysdeps/mach/hurd/hurd-add-errno-constants.awk: New script to
	add Mach/Hurd-specific errno constants to the .pysym file used by
	stdlib/errno-printer.py.
	* sysdeps/mach/hurd/Makefile: Hook hurd-add-errno-constants.awk
	into the generation of that .pysym file.
Diffstat (limited to 'sysdeps/mach/hurd/Makefile')
-rw-r--r--sysdeps/mach/hurd/Makefile10
1 files changed, 10 insertions, 0 deletions
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index 13bdf5c7c9..5171425650 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -98,6 +98,16 @@ $(common-objpfx)stamp-errnos: $(hurd)/errnos.awk $(errno.texinfo) \
 	touch $@
 
 common-generated += errnos.d stamp-errnos
+
+# Augmentations to the errno pretty-printer.
+ifeq ($(subdir),stdlib)
+define sysd-add-errno-constants
+$(AWK) -f $(hurd)/hurd-add-errno-constants.awk $(mach-errnos-deps)
+endef
+$(objpfx)errno_constants.pysym: \
+    $(hurd)/hurd-add-errno-constants.awk $(mach-errnos-deps)
+endif
+
 
 # We install the real libc.a as libcrt.a and as libc.a we install a linker
 # script which does -( -lcrt -lmachuser -lhurduser -).