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)
|