Implement timerfd on top of #alarm (XCC)
[akaros.git] / tools / compilers / gcc-glibc / glibc-2.19-akaros / sysdeps / akaros / Makefile
1 CPPFLAGS += -DHAVE_MMAP=1
2 CPPFLAGS += -DHAVE_MUNMAP=1
3 CPPFLAGS += -D_LIBC_REENTRANT=1
4 CPPFLAGS += -fno-omit-frame-pointer
5
6 # from nptl/sysdeps/unix/sysv/linux/Makefile
7 CFLAGS-fork.c = $(libio-mtsafe)
8 # From nptl/Makefile
9 CFLAGS-flockfile.c = $(libio-mtsafe)
10 CFLAGS-ftrylockfile.c = $(libio-mtsafe)
11 CFLAGS-funlockfile.c = $(libio-mtsafe)
12
13 # Weak alias functions for linking without parlib
14 ifeq ($(subdir),stdlib)
15 sysdep_routines += parlib-compat
16 endif
17
18 # Any sysdep .c file you want needs to be added here, if it's not somewhere
19 # else already.  Many posix-ish .c files already are taken care of.  We also
20 # need to be careful to only include some of them for specific subdirs.
21 ifeq ($(subdir),socket)
22 sysdep_routines += sa_len plan9_sockets
23 endif
24 sysdep_headers += sys/syscall.h sys/tls.h
25
26 # We don't have the resolv subdir, but we still want parts of it.  Since we
27 # lack the subdir, we need to include the C files and headers manually.
28 ifeq ($(subdir),inet)
29 sysdep_routines += inet_addr inet_ntop inet_pton
30 endif
31 sysdep_headers += netdb.h resolv.h
32 sysdep_headers += arpa/nameser.h arpa/nameser_compat.h sys/bitypes.h
33
34 # plan 9 conversion routines.  all C files need to be in exactly one directory.
35 # stdlib seems like a reasonable place. */
36 ifeq ($(subdir),stdlib)
37 sysdep_routines += convD2M
38 sysdep_routines += convM2D
39 sysdep_routines += convM2S
40 sysdep_routines += convS2M
41 endif
42 sysdep_headers += fcall.h
43
44 # Scheduling related routines.
45 ifeq ($(subdir),stdlib)
46 sysdep_routines += sched_getcpu
47 endif
48
49 # Syscall pack arg routines
50 ifeq ($(subdir),stdlib)
51 sysdep_routines += serialize
52 endif
53
54 # TLS related functions
55 ifeq ($(subdir),stdlib)
56 sysdep_routines += tls
57 endif
58
59 # Plan 9 Shims
60 sysdep_headers += sys/plan9_helpers.h
61
62 # User FDs
63 ifeq ($(subdir),stdlib)
64 sysdep_routines += user_fd
65 sysdep_routines += close_cb
66 sysdep_routines += fork_cb
67 endif
68 sysdep_headers += sys/user_fd.h
69 sysdep_headers += sys/close_cb.h
70 sysdep_headers += sys/fork_cb.h
71 # Epoll: uses User FDs, implemented in iplib
72 sysdep_headers += sys/epoll.h bits/epoll.h
73
74 # Eventfd, implemented in glibc
75 ifeq ($(subdir),stdlib)
76 sysdep_routines += eventfd
77 endif
78 sysdep_headers += sys/eventfd.h bits/eventfd.h
79
80 # Timerfd, implemented in glibc
81 ifeq ($(subdir),stdlib)
82 sysdep_routines += timerfd
83 endif
84 sysdep_headers += sys/timerfd.h bits/timerfd.h
85
86 # time.h, override for struct timespec.  This overrides time/time.h from glibc,
87 # installed as usr/inc/time.h.
88 #
89 # It's pretty nasty though.  We need to have the sysdep twice in the Akaros
90 # directory, both copies of the same file.  First, we need regular time.h
91 # listed here to eventually get installed as usr/include/time.h.  This file is
92 # sysdeps/akaros/time.h.  We also need the same file at
93 # sysdeps/akaros/time/time.h, which will be used during compilation.
94 sysdep_headers += time.h