1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
ifeq ($(subdir),csu)
CFLAGS-init-first.c = -fkeep-inline-functions
sysdep_routines += errno-loc
endif
ifeq ($(subdir),db2)
CPPFLAGS += -DHAVE_LLSEEK=1
endif
ifeq ($(subdir),misc)
sysdep_routines += sysctl clone llseek getresuid getresgid
sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h sys/mtio.h \
sys/io.h sys/klog.h sys/kdaemon.h \
sys/user.h sys/sysmacros.h sys/procfs.h sys/prctl.h \
sys/debugreg.h sys/kd.h sys/soundcard.h sys/vt.h \
sys/quota.h sys/fsuid.h bits/mman.h \
scsi/sg.h scsi/scsi.h sys/pci.h sys/ultrasound.h
install-others += $(inst_includedir)/bits/syscall.h
# Generate the list of SYS_* macros for the system calls (__NR_* macros).
$(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscall.h
rm -f $(@:.h=.d)
{ \
echo '/* Generated at libc build time from kernel syscall list. */';\
echo ''; \
echo '#ifndef _SYSCALL_H'; \
echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
echo '#endif'; \
echo ''; \
SUNPRO_DEPENDENCIES='$(@:.h=.d) $(patsubst $(objpfx)%,$$(objpfx)%,\
$(@:.d=.h) $(@:.h=.d))' \
$(CC) -E -x c $< -D_LIBC -dM | \
sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p'; \
} > $(@:.d=.h).new
mv -f $(@:.d=.h).new $(@:.d=.h)
$(inst_includedir)/bits/syscall.h: $(objpfx)syscall-list.h $(+force)
$(make-target-directory)
if test -r $@ && cmp -s $< $@; \
then echo 'bits/syscall.h unchanged'; \
else $(INSTALL_DATA) $< $@; fi
ifndef no_deps
# Get the generated list of dependencies (probably /usr/include/asm/unistd.h).
-include $(objpfx)syscall-list.d
endif
generated += syscall-list.h syscall-list.d
endif
ifeq ($(subdir),time)
sysdep_headers += sys/timex.h
endif
ifeq ($(subdir),socket)
sysdep_headers += net/if.h net/if_ppp.h net/ppp-comp.h \
net/ppp_defs.h net/if_arp.h net/route.h net/ethernet.h \
net/if_slip.h net/if_packet.h
sysdep_routines += cmsg_nxthdr sa_len
endif
ifeq ($(subdir),sunrpc)
sysdep_headers += nfs/nfs.h
endif
ifeq ($(subdir),termios)
sysdep_headers += termio.h
endif
ifeq ($(subdir),stdio-common)
# Just disable the auto generation in sysdeps/generic
inhibit-siglist := yes
endif
ifeq ($(subdir),inet)
sysdep_headers += netinet/in_systm.h netinet/udp.h \
netinet/if_fddi.h netinet/if_tr.h netinet/igmp.h \
netinet/ip_fw.h netinet/ip_icmp.h netipx/ipx.h \
sys/socketvar.h netax25/ax25.h netrom/netrom.h \
netrose/rose.h netpacket/packet.h netash/ash.h
endif
ifeq ($(subdir),posix)
sysdep_routines += s_pread64 s_pwrite64
endif
# Don't compile the ctype glue code, since there is no old non-GNU C library.
inhibit-glue = yes
# Tell sysdeps/posix/Makefile that we create stdio_lim.h differently.
inhibit-stdio_lim = yes
$(common-objpfx)bits/stdio_%.h $(common-objpfx)bits/stdio_%.d: \
$(..)sysdeps/unix/sysv/linux/stdio_%.h.in
rm -f $(@:.h=.d) $(@:.d=.h)-t
echo '#include <linux/limits.h>' | \
SUNPRO_DEPENDENCIES='$(@:.h=.d) \
$(patsubst $(common-objpfx)%,$$(common-objpfx)%,\
$(@:.d=.h) $(@:.h=.d))' \
$(CC) -E -dM - > $(@:.d=.h)-t
fopen_max=`sed -n 's/^#define OPEN_MAX //p' $(@:.d=.h)-t`; \
filename_max=`sed -n 's/^#define PATH_MAX //p' $(@:.d=.h)-t`; \
if test -n "$$fopen_max" && test -n "$$filename_max"; then \
sed -e "s/DEFAULT_FOPEN_MAX/$$fopen_max/" \
-e "s/DEFAULT_FILENAME_MAX/$$filename_max/" $< \
> $(@:.d=.h).new && \
mv -f $(@:.d=.h).new $(@:.d=.h); \
else exit 1; fi
# Remove this last so that it can be examined if something went wrong.
rm -f $(@:.d=.h)-t
ifndef no_deps
# Get the list of dependencies (probably /usr/include/linux/limits.h).
-include $(common-objpfx)bits/stdio_lim.d
endif
ifeq ($(subdir),signal)
sysdep_routines += rt_sigsuspend rt_sigprocmask rt_sigtimedwait \
rt_sigqueueinfo rt_sigaction rt_sigpending
endif
ifeq ($(subdir),dirent)
sysdep_routines += getdents64
endif
ifeq ($(subdir),nis)
CFLAGS-ypclnt.c = -DUSE_BINDINGDIR=1
endif
common-generated += bits/stdio_lim.h bits/stdio_lim.d
|