mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
05b68e14b1
Many headers are expected to expose a subset of the type definitions in time.h. time.h has a whole bunch of messy logic for conditionally defining some its types and structs, but, as best I can tell, this has never worked 100%. In particular, __need_timespec is ineffective if _TIME_H has already been defined, which means that if you compile #include <time.h> #include <sched.h> with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get In file included from test.c:2:0: /usr/include/sched.h:74:57: warning: "struct timespec" declared inside parameter list will not be visible outside of this definition or declaration extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW; ^~~~~~~~ And if you want to _use_ sched_rr_get_interval in a TU compiled that way, you're hosed. This patch replaces all of that with small bits/types/TYPE.h headers as introduced earlier. time.h and bits/time.h are now *much* simpler, and a lot of other headers are slightly simpler. * time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h: Remove all logic conditional on __need macros. Move all the conditionally defined types to their own headers... * time/bits/types/clock_t.h: Define clock_t here. * time/bits/types/clockid_t.h: Define clockid_t here. * time/bits/types/struct_itimerspec.h: Define struct itimerspec here. * time/bits/types/struct_timespec.h: Define struct timespec here. * time/bits/types/struct_timeval.h: Define struct timeval here. * time/bits/types/struct_tm.h: Define struct tm here. * time/bits/types/time_t.h: Define time_t here. * time/bits/types/timer_t.h: Define timer_t here. * time/Makefile: Install the new headers. * bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h * io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h * posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h * signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h * sysdeps/unix/sysv/linux/alpha/bits/resource.h * sysdeps/unix/sysv/linux/alpha/sys/acct.h * sysdeps/unix/sysv/linux/bits/resource.h * sysdeps/unix/sysv/linux/bits/timex.h * sysdeps/unix/sysv/linux/mips/bits/resource.h * sysdeps/unix/sysv/linux/net/ppp_defs.h * sysdeps/unix/sysv/linux/sparc/bits/resource.h * sysdeps/unix/sysv/linux/sys/acct.h * sysdeps/unix/sysv/linux/sys/timerfd.h * sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h * time/sys/time.h, time/sys/timeb.h Use the new bits/types headers. * include/time.h: Remove __need logic. * include/bits/time.h * include/bits/types/clock_t.h, include/bits/types/clockid_t.h * include/bits/types/time_t.h, include/bits/types/timer_t.h * include/bits/types/struct_itimerspec.h * include/bits/types/struct_timespec.h * include/bits/types/struct_timeval.h * include/bits/types/struct_tm.h: New wrapper headers. |
||
---|---|---|
.. | ||
bits | ||
sys | ||
acct.c | ||
ar.h | ||
brk.c | ||
bug18240.c | ||
bug-hsearch1.c | ||
chflags.c | ||
chroot.c | ||
daemon.c | ||
dirname.c | ||
efgcvt_r.c | ||
efgcvt.c | ||
err.c | ||
err.h | ||
error.c | ||
error.h | ||
fchflags.c | ||
fdatasync.c | ||
fgetxattr.c | ||
flistxattr.c | ||
fremovexattr.c | ||
fsetxattr.c | ||
fstab.c | ||
fstab.h | ||
fsync.c | ||
ftruncate64.c | ||
ftruncate.c | ||
futimes.c | ||
futimesat.c | ||
getauxval.c | ||
getclktck.c | ||
getdomain.c | ||
getdtsz.c | ||
gethostid.c | ||
gethostname.c | ||
getloadavg.c | ||
getpagesize.c | ||
getpass.c | ||
getsysstats.c | ||
getttyent.c | ||
getusershell.c | ||
getxattr.c | ||
gtty.c | ||
hsearch_r.c | ||
hsearch.c | ||
ifunc-impl-list.c | ||
init-misc.c | ||
insremque.c | ||
ioctl.c | ||
lgetxattr.c | ||
libgen.h | ||
listxattr.c | ||
llistxattr.c | ||
lremovexattr.c | ||
lsearch.c | ||
lsetxattr.c | ||
lutimes.c | ||
madvise.c | ||
makedev.c | ||
Makefile | ||
mincore.c | ||
mkdtemp.c | ||
mkostemp64.c | ||
mkostemp.c | ||
mkostemps64.c | ||
mkostemps.c | ||
mkstemp64.c | ||
mkstemp.c | ||
mkstemps64.c | ||
mkstemps.c | ||
mktemp.c | ||
mlock.c | ||
mlockall.c | ||
mmap64.c | ||
mmap.c | ||
mntent_r.c | ||
mntent.c | ||
mntent.h | ||
mprotect.c | ||
msync.c | ||
munlock.c | ||
munlockall.c | ||
munmap.c | ||
preadv64.c | ||
preadv.c | ||
pselect.c | ||
ptrace.c | ||
pwritev64.c | ||
pwritev.c | ||
qefgcvt_r.c | ||
qefgcvt.c | ||
readv.c | ||
reboot.c | ||
regexp.c | ||
regexp.h | ||
remap_file_pages.c | ||
removexattr.c | ||
revoke.c | ||
sbrk.c | ||
search.h | ||
select.c | ||
setdomain.c | ||
setegid.c | ||
seteuid.c | ||
sethostid.c | ||
sethostname.c | ||
setregid.c | ||
setreuid.c | ||
setxattr.c | ||
sgtty.h | ||
sstk.c | ||
stab.h | ||
stty.c | ||
swapoff.c | ||
swapon.c | ||
sync.c | ||
syncfs.c | ||
syscall.c | ||
syscall.h | ||
sysexits.h | ||
syslog.c | ||
syslog.h | ||
truncate64.c | ||
truncate.c | ||
tsearch.c | ||
tst-dirname.c | ||
tst-efgcvt.c | ||
tst-error1.c | ||
tst-fdset.c | ||
tst-hsearch.c | ||
tst-insremque.c | ||
tst-makedev.c | ||
tst-mntent2.c | ||
tst-mntent-blank-corrupt.c | ||
tst-mntent-blank-passno.c | ||
tst-mntent.c | ||
tst-preadvwritev64.c | ||
tst-preadvwritev-common.c | ||
tst-preadvwritev.c | ||
tst-pselect.c | ||
tst-tsearch.c | ||
ttyent.h | ||
ttyslot.c | ||
ualarm.c | ||
usleep.c | ||
ustat.c | ||
ustat.h | ||
utimes.c | ||
Versions | ||
vhangup.c | ||
writev.c |