ifeq ($(subdir),signal) #sysdep_routines += sigsuspend endif ifeq ($(subdir),misc) sysdep_routines += cachectl cacheflush sysmips _test_and_set sysdep_headers += sys/cachectl.h sys/sysmips.h sys/tas.h no_syscall_list_h = 1 # Generate the list of SYS_* macros for the system calls (__NR_* macros). # We generate not only SYS_, pointing at SYS__ if # it exists, but also define SYS__ for all ABIs. $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/mips/sys/syscall.h $(make-target-directory) { \ echo '/* Generated at libc build time from kernel syscall list. */';\ echo ''; \ echo '#ifndef _SYSCALL_H'; \ echo '# error "Never use directly; include instead."'; \ echo '#endif'; \ echo ''; \ echo '#include '; \ rm -f $(@:.d=.h).newt; \ $(CC) -E -MD -MP -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' \ -x c $(+includes) $(sysincludes) $< -D_LIBC -dM | \ sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' \ > $(@:.d=.h).newt; \ if grep SYS_O32_ $(@:.d=.h).newt > /dev/null; then \ echo '#if _MIPS_SIM == _ABIN32'; \ sed -n 's/^\(#define SYS_\)N32_/\1/p' < $(@:.d=.h).newt | \ LC_ALL=C sort; \ echo '#elif _MIPS_SIM == _ABI64'; \ sed -n 's/^\(#define SYS_\)N64_/\1/p' < $(@:.d=.h).newt | \ LC_ALL=C sort; \ echo '#else'; \ sed -n 's/^\(#define SYS_\)O32_/\1/p' < $(@:.d=.h).newt | \ LC_ALL=C sort; \ echo '#endif'; \ sed -n '/^#define SYS_\([ON]32\|N64\)_/p' < $(@:.d=.h).newt | \ LC_ALL=C sort +1.8; \ else \ cat $(@:.d=.h).newt; \ fi; \ rm $(@:.d=.h).newt; \ } > $(@:.d=.h).new mv -f $(@:.d=.h).new $(@:.d=.h) ifneq (,$(objpfx)) sed $(sed-remove-objpfx) $(@:.h=.d)-t > $(@:.h=.d)-t2 rm -f $(@:.h=.d)-t mv -f $(@:.h=.d)-t2 $(@:.h=.d) else mv -f $(@:.h=.d)-t $(@:.h=.d) endif endif