diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-08-06 20:32:46 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-08-06 22:35:01 +0200 |
commit | 53850f044f65dd11efdf67a2ab214d312295d85c (patch) | |
tree | 1ceaf2a2c4e7153079a8d07046865fc07cb60d49 | |
parent | 41d8c3bc33bcae1ebb8077b0442caef4917f763a (diff) | |
download | glibc-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/Makefile | 30 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/errno.h | 24 | ||||
-rw-r--r-- | sysdeps/mach/hurd/errnos.awk | 6 |
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. */"; |