3 # Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
5 # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
8 COMMON_DIR
:= $(top_srcdir
)libc
/sysdeps
/linux
/common
9 COMMON_OUT
:= $(top_builddir
)libc
/sysdeps
/linux
/common
11 CSRC
:= $(notdir $(wildcard $(COMMON_DIR
)/*.c
))
13 ifneq ($(UCLIBC_HAS_LFS
),y
)
14 CSRC_LFS
:= $(notdir $(wildcard $(COMMON_DIR
)/*64.c
))
15 CSRC
:= $(filter-out llseek.c
$(CSRC_LFS
),$(CSRC
))
18 CSRC
:= $(filter-out ssp-local.c
,$(CSRC
))
19 ifneq ($(UCLIBC_HAS_SSP
),y
)
20 CSRC
:= $(filter-out ssp.c
,$(CSRC
))
23 ifneq ($(UCLIBC_LINUX_MODULE_24
),y
)
24 CSRC
:= $(filter-out create_module.c query_module.c get_kernel_syms.c
,$(CSRC
))
27 ifneq ($(UCLIBC_LINUX_SPECIFIC
),y
)
28 # we need these internally: fstatfs.c statfs.c
29 CSRC
:= $(filter-out capget.c capset.c inotify.c ioperm.c iopl.c madvise.c \
30 modify_ldt.c personality.c prctl.c readahead.c reboot.c \
31 remap_file_pages.c sched_getaffinity.c sched_setaffinity.c \
32 sendfile64.c sendfile.c setfsgid.c setfsuid.c setresuid.c \
33 splice.c vmsplice.c tee.c signalfd.c swapoff.c swapon.c \
34 sync_file_range.c sysctl.c sysinfo.c timerfd.c uselib.c vhangup.c
,$(CSRC
))
37 ifeq ($(UCLIBC_HAS_THREADS_NATIVE
),y
)
38 CSRC
:= $(filter-out fork.c getpid.c raise.c open.c close.c read.c write.c
, $(CSRC
))
39 ifeq ($(TARGET_ARCH
),arm
)
40 CSRC
:= $(filter-out vfork.c
, $(CSRC
))
41 else ifeq ($(TARGET_ARCH
),x86_64
)
42 CSRC
:= $(filter-out vfork.c
, $(CSRC
))
44 CSRC
:= $(filter-out waitpid.c
, $(CSRC
))
48 ifneq ($(UCLIBC_BSD_SPECIFIC
),y
)
49 # we need these internally: getdomainname.c
50 CSRC
:= $(filter-out mincore.c setdomainname.c
,$(CSRC
))
53 ifneq ($(UCLIBC_NTP_LEGACY
),y
)
54 CSRC
:= $(filter-out ntp_gettime.c
,$(CSRC
))
58 ifneq ($(UCLIBC_HAS_REALTIME
),y
)
59 # 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
60 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
))
64 ifneq ($(UCLIBC_HAS_ADVANCED_REALTIME
),y
)
65 # 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
66 CSRC
:= $(filter-out posix_fadvise64.c posix_fadvise.c
,$(CSRC
))
69 ifneq ($(UCLIBC_SUSV4_LEGACY
),y
)
70 CSRC
:= $(filter-out utime.c
,$(CSRC
))
73 ifneq ($(UCLIBC_HAS_EPOLL
),y
)
74 CSRC
:= $(filter-out epoll.c
,$(CSRC
))
77 ifneq ($(UCLIBC_HAS_XATTR
),y
)
78 CSRC
:= $(filter-out xattr.c
,$(CSRC
))
81 ifneq ($(UCLIBC_HAS_PROFILING
),y
)
82 CSRC
:= $(filter-out noophooks.c pcprofile.c
,$(CSRC
))
85 ifneq ($(UCLIBC_SV4_DEPRECATED
),y
)
86 CSRC
:= $(filter-out ustat.c
,$(CSRC
))
89 ifeq ($(TARGET_ARCH
),sh
)
90 CSRC
:= $(filter-out longjmp.c vfork.c
,$(CSRC
))
93 ifeq ($(TARGET_ARCH
),sparc
)
94 CSRC
:= $(filter-out vfork.c
,$(CSRC
))
97 ifeq ($(TARGET_ARCH
),i386
)
98 CSRC
:= $(filter-out vfork.c
,$(CSRC
))
101 # fails for some reason
102 ifneq ($(strip $(ARCH_OBJS
)),)
103 CSRC
:= $(filter-out $(notdir $(ARCH_OBJS
:.o
=.c
)) $(ARCH_OBJ_FILTEROUT
),$(CSRC
))
106 CFLAGS-ssp.c
:= $(SSP_DISABLE_FLAGS
)
107 CFLAGS-ssp-local.c
:= $(SSP_DISABLE_FLAGS
)
109 COMMON_SRC
:= $(patsubst %.c
,$(COMMON_DIR
)/%.c
,$(CSRC
))
110 COMMON_OBJ
:= $(patsubst %.c
,$(COMMON_OUT
)/%.o
,$(CSRC
))
112 libc-y
+= $(COMMON_OBJ
)
113 libc-static-
$(UCLIBC_HAS_SSP
) += $(COMMON_OUT
)/ssp-local.o
114 libc-nonshared-
$(UCLIBC_HAS_SSP
) += $(COMMON_OUT
)/ssp-local.os
116 libc-nomulti-y
+= $(COMMON_OUT
)/__syscall_rt_sigaction.o \
117 $(COMMON_OUT
)/__syscall_sigaction.o \
118 $(COMMON_OUT
)/mremap.o \
120 libc-nomulti-
$(UCLIBC_HAS_SSP
) += $(COMMON_OUT
)/ssp.o
122 objclean-y
+= CLEAN_libc
/sysdeps
/linux
/common
124 CLEAN_libc
/sysdeps
/linux
/common
:
125 $(do_rm
) $(addprefix $(COMMON_OUT
)/*.
, o os oS
)