aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-08-06 20:32:46 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-08-06 22:35:01 +0200
commit53850f044f65dd11efdf67a2ab214d312295d85c (patch)
tree1ceaf2a2c4e7153079a8d07046865fc07cb60d49
parent41d8c3bc33bcae1ebb8077b0442caef4917f763a (diff)
downloadglibc-53850f044f65dd11efdf67a2ab214d312295d85c.zip
glibc-53850f044f65dd11efdf67a2ab214d312295d85c.tar.gz
glibc-53850f044f65dd11efdf67a2ab214d312295d85c.tar.bz2
hurd: Rework generating errno.h
We only need to give to gawk the headers that actually define error numbers, so let's rather filter out the other included headers early.
-rw-r--r--sysdeps/mach/hurd/Makefile30
-rw-r--r--sysdeps/mach/hurd/bits/errno.h24
-rw-r--r--sysdeps/mach/hurd/errnos.awk6
3 files changed, 19 insertions, 41 deletions
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index 5bc682a..029dac4 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -66,26 +66,32 @@ errno.texinfo = $(..)manual/errno.texi
hurd = $(..)sysdeps/mach/hurd
-define mach-errno-h
-($(foreach h,mach/message.h \
+mach-errno-h = \
+ mach/message.h \
mach/kern_return.h \
mach/mig_errors.h \
- device/device_types.h,\
- echo '#include <$h>';\
- ))
-endef
+ device/device_types.h
# We use the compiler to generate a list of absolute file names for
# the headers we want to search for Mach error codes, listed above (and
# incidentally, all other headers those include).
-include $(common-objpfx)errnos.d
$(common-objpfx)errnos.d: $(mach-errnos-deps)
- $(mach-errno-h) | \
- $(CC) $(CFLAGS) \
- $(subst -include $(common-objpfx)libc-modules.h,,$(CPPFLAGS)) \
- -M -x c - | \
- sed $(sed-remove-objpfx) -e 's,- *:,mach-errnos-deps :=,' \
- -e 's, \.\./, $(..),g' > $@t
+ echo -n "mach-errnos-deps := " > $@t
+ for h in $(mach-errno-h) ; do \
+ echo "#include <$$h>" \
+ | $(CC) $(CFLAGS) \
+ $(subst -include $(common-objpfx)libc-modules.h,,$(CPPFLAGS)) \
+ -M -x c - \
+ | sed $(sed-remove-objpfx) \
+ -e 's, \.\./, $(..),g' \
+ -e 's,\\$$,,g' \
+ -e 's, ,\n,g' \
+ | grep "$$h$$" \
+ | tr '\n' ' ' \
+ >> $@t ; \
+ done
+ echo >> $@t
mv -f $@t $@
$(hurd)/bits/errno.h: $(common-objpfx)stamp-errnos ;
diff --git a/sysdeps/mach/hurd/bits/errno.h b/sysdeps/mach/hurd/bits/errno.h
index a0794f9..3b54f58 100644
--- a/sysdeps/mach/hurd/bits/errno.h
+++ b/sysdeps/mach/hurd/bits/errno.h
@@ -1,33 +1,9 @@
/* This file generated by errnos.awk from
errno.texi
- stdc-predef.h
- libc-symbols.h
mach/message.h
mach/kern_return.h
- mach/port.h
- mach/boolean.h
- stdint.h
- ../stdlib/stdint.h
- ../bits/libc-header-start.h
- features.h
- features-time64.h
- ../sysdeps/generic/features-time64.h
- sys/cdefs.h
- ../misc/sys/cdefs.h
- ../sysdeps/x86/bits/wordsize.h
- ../sysdeps/ieee754/ldbl-96/bits/long-double.h
- gnu/stubs.h
- bits/types.h
- ../posix/bits/types.h
- ../sysdeps/mach/hurd/bits/timesize.h
- ../sysdeps/mach/hurd/bits/typesizes.h
- ../bits/time64.h
- ../bits/wchar.h
- ../bits/stdint-intn.h
- ../bits/stdint-uintn.h
mach/mig_errors.h
device/device_types.h
- mach/std_types.h
Do not edit this file; edit errnos.awk and regenerate it. */
#ifndef _BITS_ERRNO_H
diff --git a/sysdeps/mach/hurd/errnos.awk b/sysdeps/mach/hurd/errnos.awk
index b9f717c..507e9d2 100644
--- a/sysdeps/mach/hurd/errnos.awk
+++ b/sysdeps/mach/hurd/errnos.awk
@@ -23,12 +23,8 @@ BEGIN {
for (i = 1; i < ARGC; i++)
{
arg = ARGV[i];
- sub(/.*(manual|include)\//, "", arg);
+ sub(/.*(manual|include|-gnu)\//, "", arg);
if (arg ~ /.*errnos.d/) continue;
- # Those not not actually define anything for errno.h
- if (arg ~ /mach\/.*\/kern_return.h/) continue;
- if (arg ~ /mach\/.*\/boolean.h/) continue;
- if (arg ~ /mach\/.*\/vm_types.h/) continue;
print " " arg;
}
print " Do not edit this file; edit errnos.awk and regenerate it. */";