summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/common/Makefile.in
blob: cf4cf870879e1c80e810fbadb5a06c1f19fbfb7d (plain)
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
132
133
134
135
136
137
138
139
140
141
142
# Makefile for uClibc
#
# Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
#
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#

COMMON_DIR := $(top_srcdir)libc/sysdeps/linux/common
COMMON_OUT := $(top_builddir)libc/sysdeps/linux/common

CSRC := $(notdir $(wildcard $(COMMON_DIR)/*.c))

ifneq ($(UCLIBC_HAS_LFS),y)
CSRC_LFS := $(notdir $(wildcard $(COMMON_DIR)/*64.c))
CSRC := $(filter-out llseek.c $(CSRC_LFS),$(CSRC))
endif

CSRC := $(filter-out ssp-local.c,$(CSRC))
ifneq ($(UCLIBC_HAS_SSP),y)
CSRC := $(filter-out ssp.c,$(CSRC))
endif

ifneq ($(UCLIBC_LINUX_MODULE_24),y)
CSRC := $(filter-out create_module.c query_module.c get_kernel_syms.c,$(CSRC))
endif

ifneq ($(UCLIBC_LINUX_SPECIFIC),y)
# we need these internally: fstatfs.c statfs.c
CSRC := $(filter-out capget.c capset.c inotify.c ioperm.c iopl.c \
	modify_ldt.c personality.c ppoll.c prctl.c readahead.c reboot.c \
	remap_file_pages.c sched_getaffinity.c sched_setaffinity.c \
	sendfile64.c sendfile.c setfsgid.c setfsuid.c setresuid.c \
	splice.c vmsplice.c tee.c signalfd.c swapoff.c swapon.c \
	sync_file_range.c sysctl.c sysinfo.c timerfd.c uselib.c vhangup.c,$(CSRC))
ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
# we need madvise.c in NPTL
CSRC := $(filter-pout madvise.c,$(CSRC))
endif
endif

ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
CSRC := $(filter-out fork.c getpid.c raise.c open.c close.c read.c write.c, $(CSRC))
ifeq ($(TARGET_ARCH),arm)
CSRC := $(filter-out vfork.c, $(CSRC))
else ifeq ($(TARGET_ARCH),x86_64)
CSRC := $(filter-out vfork.c, $(CSRC))
else ifeq ($(TARGET_ARCH),mips)
ifeq ($(CONFIG_MIPS_O32_ABI),y)
CSRC := $(filter-out waitpid.c, $(CSRC))
endif
else
CSRC := $(filter-out waitpid.c, $(CSRC))
endif
endif

ifneq ($(ARCH_USE_MMU),y)
# stubbed out in mman.h
CSRC := $(filter-out msync.c, $(CSRC))
endif

ifneq ($(UCLIBC_BSD_SPECIFIC),y)
# we need these internally: getdomainname.c
CSRC := $(filter-out mincore.c setdomainname.c,$(CSRC))
endif

ifneq ($(UCLIBC_NTP_LEGACY),y)
CSRC := $(filter-out ntp_gettime.c,$(CSRC))
endif


ifneq ($(UCLIBC_HAS_REALTIME),y)
# aio_cancel|aio_error|aio_fsync|aio_read|aio_return|aio_suspend|aio_write|clock_getres|clock_gettime|clock_settime|clock_settime|fdatasync|lio_listio|mlockall|munlockall|mlock|munlock|mq_close|mq_getattr|mq_notify|mq_open|mq_receive|mq_timedreceive|mq_send|mq_timedsend|mq_setattr|mq_unlink|nanosleep|sched_getparam|sched_get_priority_max|sched_get_priority_min|sched_getscheduler|sched_rr_get_interval|sched_setparam|sched_setscheduler|sem_close|sem_destroy|sem_getvalue|sem_init|sem_open|sem_post|sem_trywait|sem_wait|sem_unlink|sem_wait|shm_open|shm_unlink|sigqueue|sigtimedwait|sigwaitinfo|sigwaitinfo|timer_create|timer_delete|timer_getoverrun|timer_gettime|timer_settime
CSRC := $(filter-out clock_getres.c clock_gettime.c clock_settime.c fdatasync.c Makefile.in mlockall.c mlock.c munlockall.c munlock.c nanosleep.c __rt_sigtimedwait.c sched_getparam.c sched_get_priority_max.c sched_get_priority_min.c sched_getscheduler.c sched_rr_get_interval.c sched_setparam.c sched_setscheduler.c sigqueue.c,$(CSRC))
endif


ifneq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
# clock_getcpuclockid|clock_nanosleep|mq_timedreceive|mq_timedsend|posix_fadvise|posix_fallocate|posix_madvise|posix_memalign|posix_mem_offset|posix_spawnattr_destroy|posix_spawnattr_init|posix_spawnattr_getflags|posix_spawnattr_setflags|posix_spawnattr_getpgroup|posix_spawnattr_setpgroup|posix_spawnattr_getschedparam|posix_spawnattr_setschedparam|posix_spawnattr_getschedpolicy|posix_spawnattr_setschedpolicy|posix_spawnattr_getsigdefault|posix_spawnattr_setsigdefault|posix_spawnattr_getsigmask|posix_spawnattr_setsigmask|posix_spawnattr_init|posix_spawnattr_setflags|posix_spawnattr_setpgroup|posix_spawnattr_setschedparam|posix_spawnattr_setschedpolicy|posix_spawnattr_setsigdefault|posix_spawnattr_setsigmask|posix_spawn_file_actions_addclose|posix_spawn_file_actions_addopen|posix_spawn_file_actions_adddup2|posix_spawn_file_actions_addopen|posix_spawn_file_actions_destroy|posix_spawn_file_actions_init|posix_spawn_file_actions_init|posix_spawn|posix_spawnp|posix_spawnp|posix_typed_mem_get_info|pthread_mutex_timedlock|sem_timedwait
CSRC := $(filter-out posix_fadvise64.c posix_fadvise.c,$(CSRC))
endif

ifneq ($(UCLIBC_SUSV4_LEGACY),y)
CSRC := $(filter-out utime.c,$(CSRC))
endif

ifneq ($(UCLIBC_HAS_EPOLL),y)
CSRC := $(filter-out epoll.c,$(CSRC))
endif

ifneq ($(UCLIBC_HAS_XATTR),y)
CSRC := $(filter-out xattr.c,$(CSRC))
endif

ifneq ($(UCLIBC_HAS_PROFILING),y)
CSRC := $(filter-out noophooks.c pcprofile.c,$(CSRC))
endif

ifneq ($(UCLIBC_SV4_DEPRECATED),y)
CSRC := $(filter-out ustat.c,$(CSRC))
endif

ifeq ($(TARGET_ARCH),sh)
CSRC := $(filter-out longjmp.c vfork.c,$(CSRC))
endif

ifeq ($(TARGET_ARCH),sparc)
CSRC := $(filter-out vfork.c,$(CSRC))
endif

ifeq ($(TARGET_ARCH),i386)
CSRC := $(filter-out vfork.c,$(CSRC))
endif

# provided via pthreads builddir
CSRC := $(filter-out $(libc_a_CSRC) $(notdir $(libpthread_libc_OBJS:.o=.c)),$(CSRC))
SSRC := $(filter-out $(libc_a_SSRC) $(notdir $(libpthread_libc_OBJS:.o=.S)),$(SSRC))

# fails for some reason
ifneq ($(strip $(ARCH_OBJS)),)
CSRC := $(filter-out $(notdir $(ARCH_OBJS:.o=.c)) $(ARCH_OBJ_FILTEROUT),$(CSRC))
endif

CFLAGS-ssp.c := $(SSP_DISABLE_FLAGS)
CFLAGS-ssp-local.c := $(SSP_DISABLE_FLAGS)

COMMON_SRC := $(patsubst %.c,$(COMMON_DIR)/%.c,$(CSRC))
COMMON_OBJ := $(patsubst %.c,$(COMMON_OUT)/%.o,$(CSRC))

libc-y += $(COMMON_OBJ)
libc-static-$(UCLIBC_HAS_SSP) += $(COMMON_OUT)/ssp-local.o
libc-nonshared-$(UCLIBC_HAS_SSP) += $(COMMON_OUT)/ssp-local.os

libc-nomulti-y += $(COMMON_OUT)/__syscall_rt_sigaction.o \
	$(COMMON_OUT)/__syscall_sigaction.o \
	$(COMMON_OUT)/mremap.o \
	$(COMMON_OUT)/stat.o
libc-nomulti-$(UCLIBC_HAS_SSP) += $(COMMON_OUT)/ssp.o

objclean-y += CLEAN_libc/sysdeps/linux/common

CLEAN_libc/sysdeps/linux/common:
	$(do_rm) $(addprefix $(COMMON_OUT)/*., o os oS)