Fix getifaddrs (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 sysdep_headers += netpacket/packet.h
31 endif
32 sysdep_headers += netdb.h resolv.h
33 sysdep_headers += arpa/nameser.h arpa/nameser_compat.h sys/bitypes.h
34
35 # plan 9 conversion routines.  all C files need to be in exactly one directory.
36 # stdlib seems like a reasonable place. */
37 ifeq ($(subdir),stdlib)
38 sysdep_routines += convD2M
39 sysdep_routines += convM2D
40 sysdep_routines += convM2S
41 sysdep_routines += convS2M
42 endif
43 sysdep_headers += fcall.h
44
45 # Scheduling related routines.
46 ifeq ($(subdir),stdlib)
47 sysdep_routines += sched_getcpu
48 endif
49
50 # Imports from OpenBSD.
51 ifeq ($(subdir),stdlib)
52 sysdep_routines += reallocarray
53 endif
54 ifeq ($(subdir),string)
55 sysdep_routines += strlcat
56 sysdep_routines += strlcpy
57 endif
58 sysdep_headers += stdlib.h string.h bits/stdlib-akaros.h bits/string-akaros.h
59
60 # Syscall pack arg routines
61 ifeq ($(subdir),stdlib)
62 sysdep_routines += serialize
63 endif
64
65 # TLS related functions
66 ifeq ($(subdir),stdlib)
67 sysdep_routines += tls
68 endif
69
70 # Plan 9 Shims
71 sysdep_headers += sys/plan9_helpers.h
72
73 # User FDs
74 ifeq ($(subdir),stdlib)
75 sysdep_routines += user_fd
76 sysdep_routines += close_cb
77 sysdep_routines += fork_cb
78 endif
79 sysdep_headers += sys/user_fd.h
80 sysdep_headers += sys/close_cb.h
81 sysdep_headers += sys/fork_cb.h
82 # Epoll: uses User FDs, implemented in iplib
83 sysdep_headers += sys/epoll.h bits/epoll.h
84
85 # Eventfd, implemented in glibc
86 ifeq ($(subdir),stdlib)
87 sysdep_routines += eventfd
88 endif
89 sysdep_headers += sys/eventfd.h bits/eventfd.h
90
91 # Timerfd, implemented in glibc
92 ifeq ($(subdir),stdlib)
93 sysdep_routines += timerfd
94 endif
95 sysdep_headers += sys/timerfd.h bits/timerfd.h
96
97 # time.h, override for struct timespec.  This overrides time/time.h from glibc,
98 # installed as usr/inc/time.h.
99 #
100 # It's pretty nasty though.  We need to have the sysdep twice in the Akaros
101 # directory, both copies of the same file.  First, we need regular time.h
102 # listed here to eventually get installed as usr/include/time.h.  This file is
103 # sysdeps/akaros/time.h.  We also need the same file at
104 # sysdeps/akaros/time/time.h, which will be used during compilation.
105 sysdep_headers += time.h