Skip to content

Commit 519099f

Browse files
committed
Subcomponize musl (based on Alex work)
Signed-off-by: gaulthier gain <[email protected]>
1 parent 049075a commit 519099f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+2920
-1771
lines changed

Config.uk

+204-7
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,206 @@
11
# hidden
22
menuconfig LIBMUSL
3-
bool "musl - A C standard library"
4-
default n
5-
select HAVE_LIBC
6-
select LIBKUALLOC
7-
select LIBSYSCALL_SHIM
8-
select LIBVFSCORE
9-
select LIBPOSIX_PROCESS
3+
bool "musl: A C standard library"
4+
default n
5+
select HAVE_LIBC
6+
select LIBKUALLOC
7+
select LIBSYSCALL_SHIM
8+
select LIBVFSCORE
9+
select LIBPOSIX_PROCESS
10+
11+
select LIBMUSL_STAT
12+
select LIBMUSL_DIRENT
13+
select LIBMUSL_TERMIOS
14+
select LIBMUSL_LOCALE
15+
select LIBMUSL_ERRNO
16+
select LIBMUSL_INTERNAL
17+
select LIBMUSL_STRING
18+
select LIBMUSL_CTYPE
19+
select LIBMUSL_STDLIB
20+
select LIBMUSL_ENV
21+
22+
if LIBMUSL
23+
24+
config LIBMUSL_AIO
25+
bool "libaio"
26+
default y
27+
28+
config LIBMUSL_COMPLEX
29+
bool "libcomplex"
30+
default y
31+
32+
config LIBMUSL_CONF
33+
bool "libconf"
34+
default y
35+
36+
config LIBMUSL_CRYPT
37+
bool "libcrypt"
38+
default y
39+
40+
config LIBMUSL_CTYPE
41+
bool "libctype"
42+
default y
43+
44+
config LIBMUSL_DIRENT
45+
bool "libdirent"
46+
default y
47+
48+
config LIBMUSL_ENV
49+
bool "libenv"
50+
default y
51+
52+
config LIBMUSL_ERRNO
53+
bool "liberrno"
54+
default y
55+
56+
config LIBMUSL_EXIT
57+
bool "libexit"
58+
default y
59+
60+
config LIBMUSL_FCNTL
61+
bool "libfcntl"
62+
default y
63+
64+
config LIBMUSL_FENV
65+
bool "libfenv"
66+
default y
67+
68+
config LIBMUSL_INTERNAL
69+
bool "libinternal"
70+
default y
71+
72+
config LIBMUSL_IPC
73+
bool "libipc"
74+
default y
75+
76+
config LIBMUSL_LDSO
77+
bool "libldso"
78+
default y
79+
80+
config LIBMUSL_LEGACY
81+
bool "liblegacy"
82+
default y
83+
84+
config LIBMUSL_LINUX
85+
bool "liblinux"
86+
default y
87+
88+
config LIBMUSL_LOCALE
89+
bool "liblocale"
90+
default y
91+
92+
config LIBMUSL_MALLOC
93+
bool "libmalloc"
94+
default y
95+
96+
config LIBMUSL_MATH
97+
bool "libmath"
98+
default y
99+
select LIBMUSL_FENV
100+
101+
config LIBMUSL_MISC
102+
bool "libmisc"
103+
default y
104+
105+
config LIBMUSL_MMAN
106+
bool "libmman"
107+
default y
108+
109+
config LIBMUSL_MQ
110+
bool "libmq"
111+
default y
112+
113+
config LIBMUSL_MULTIBYTE
114+
bool "libmultibyte"
115+
default y
116+
117+
config LIBMUSL_NETWORK
118+
bool "libnetwork"
119+
default y
120+
121+
config LIBMUSL_PASSWD
122+
bool "libpasswd"
123+
default y
124+
125+
config LIBMUSL_PRNG
126+
bool "libprng"
127+
default y
128+
129+
config LIBMUSL_PROCESS
130+
bool "libprocess"
131+
default y
132+
select LIBMUSL_THREAD
133+
134+
config LIBMUSL_REGEX
135+
bool "libregex"
136+
default y
137+
138+
config LIBMUSL_SCHED
139+
bool "libsched"
140+
default y
141+
142+
config LIBMUSL_SEARCH
143+
bool "libsearch"
144+
default y
145+
146+
config LIBMUSL_SELECT
147+
bool "libselect"
148+
default y
149+
150+
config LIBMUSL_SETJMP
151+
bool "libsetjmp"
152+
default y
153+
154+
config LIBMUSL_SIGNAL
155+
bool "libsignal"
156+
default y
157+
158+
config LIBMUSL_STAT
159+
bool "libstat"
160+
default y
161+
162+
config LIBMUSL_STDIO
163+
bool "libstdio"
164+
default y
165+
select LIBMUSL_FENV
166+
select LIBMUSL_UNISTD
167+
168+
config LIBMUSL_STDLIB
169+
bool "libstdlib"
170+
default y
171+
select LIBMUSL_SIGNAL
172+
select LIBMUSL_MULTIBYTE
173+
174+
config LIBMUSL_STRING
175+
bool "libstring"
176+
default y
177+
178+
config LIBMUSL_TEMP
179+
bool "libtemp"
180+
default y
181+
182+
config LIBMUSL_TERMIOS
183+
bool "libtermios"
184+
default y
185+
186+
config LIBMUSL_THREAD
187+
bool "libthread"
188+
default y
189+
select LIBMUSL_SCHED
190+
select LIBMUSL_MMAN
191+
192+
config LIBMUSL_FORCE_THREAD
193+
bool
194+
default y if LIBUKSCHED
195+
default n
196+
select LIBMUSL_THREAD
197+
198+
config LIBMUSL_TIME
199+
bool "libtime"
200+
default y
201+
202+
config LIBMUSL_UNISTD
203+
bool "libunistd"
204+
default y
205+
206+
endif

Makefile.rules

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#
2+
# Import a sub-library of musl
3+
#
4+
# @param $(1)
5+
# The name of the sub-library within musl.
6+
# @param $(2)
7+
# The headers for this sub-library.
8+
# @param $(3)
9+
# The source files for this sub-library.
10+
#
11+
define _libmusl_import_lib
12+
$(LIBMUSL_BUILD)/include/$(1):
13+
$(call verbose_cmd,MKDIR,libmusl: $(subst $(LIBMUSL_BUILD),,$(1)): $(notdir $$@), mkdir -p $$@)
14+
15+
# Make a symbolic link of the original header file to a sub-library directory
16+
$(LIBMUSL_BUILD)/include/$(1)/%.h:
17+
$$(Q)mkdir -p $$(shell dirname $$@)
18+
$(call verbose_cmd,HOSTLN,libmusl: $(1): $$(subst $(LIBMUSL_BUILD)/include/$(1)/,,$$@), \
19+
ln -sf $$(subst $(LIBMUSL_BUILD)/include/$(1)/,$(LIBMUSL),$$@) $$@)
20+
21+
LIBMUSL_$(call uc,$(1))_INCLUDES-y += -I$(LIBMUSL_BUILD)/include/$(1)/include
22+
LIBMUSL_$(call uc,$(1))_INCLUDES-y += -I$(LIBMUSL_BUILD)/include/$(1)/src/internal
23+
LIBMUSL_$(call uc,$(1))_INCLUDES-y += -I$(LIBMUSL_BUILD)/include/$(1)/src/$(1)
24+
LIBMUSL_SRCS-y += $(3)
25+
26+
CINCLUDES-y += $$(LIBMUSL_$(call uc,$(1))_INCLUDES-y)
27+
CXXINCLUDES-y += $$(LIBMUSL_$(call uc,$(1))_INCLUDES-y)
28+
29+
# Append the sub library directory to the include path
30+
$(LIBMUSL_BUILD)/.prepared: $(subst $(LIBMUSL),$(LIBMUSL_BUILD)/include/$(1),$(2))
31+
endef

0 commit comments

Comments
 (0)