38cbb7487d8060e4dac50bc351ac5d0e0250a9cb
[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 # Imports from OpenBSD.
50 ifeq ($(subdir),stdlib)
51 sysdep_routines += reallocarray
52 endif
53 ifeq ($(subdir),string)
54 sysdep_routines += strlcat
55 sysdep_routines += strlcpy
56 endif
57 sysdep_headers += stdlib.h string.h bits/stdlib-akaros.h bits/string-akaros.h
58
59 # Syscall pack arg routines
60 ifeq ($(subdir),stdlib)
61 sysdep_routines += serialize
62 endif
63
64 # TLS related functions
65 ifeq ($(subdir),stdlib)
66 sysdep_routines += tls
67 endif
68
69 # Plan 9 Shims
70 sysdep_headers += sys/plan9_helpers.h
71
72 # User FDs
73 ifeq ($(subdir),stdlib)
74 sysdep_routines += user_fd
75 sysdep_routines += close_cb
76 sysdep_routines += fork_cb
77 endif
78 sysdep_headers += sys/user_fd.h
79 sysdep_headers += sys/close_cb.h
80 sysdep_headers += sys/fork_cb.h
81 # Epoll: uses User FDs, implemented in iplib
82 sysdep_headers += sys/epoll.h bits/epoll.h
83
84 # Eventfd, implemented in glibc
85 ifeq ($(subdir),stdlib)
86 sysdep_routines += eventfd
87 endif
88 sysdep_headers += sys/eventfd.h bits/eventfd.h
89
90 # Timerfd, implemented in glibc
91 ifeq ($(subdir),stdlib)
92 sysdep_routines += timerfd
93 endif
94 sysdep_headers += sys/timerfd.h bits/timerfd.h
95
96 # time.h, override for struct timespec.  This overrides time/time.h from glibc,
97 # installed as usr/inc/time.h.
98 #
99 # It's pretty nasty though.  We need to have the sysdep twice in the Akaros
100 # directory, both copies of the same file.  First, we need regular time.h
101 # listed here to eventually get installed as usr/include/time.h.  This file is
102 # sysdeps/akaros/time.h.  We also need the same file at
103 # sysdeps/akaros/time/time.h, which will be used during compilation.
104 sysdep_headers += time.h