@@ -11,27 +11,7 @@ TERMUX_PKG_RECOMMENDS="glibc-runner"
11
11
TERMUX_PKG_NO_STATICSPLIT=true
12
12
TERMUX_PKG_CONFFILES=" glibc/etc/gai.conf, glibc/etc/locale.gen"
13
13
TERMUX_PKG_SEPARATE_SUB_DEPENDS=true
14
-
15
- # Variables for glibc32 compilation
16
- TERMUX_PKG_BUILD32=$( test " $TERMUX_ARCH " = " aarch64" || test " $TERMUX_ARCH " = " arm" && \
17
- test " $TERMUX_ON_DEVICE_BUILD " = " false" && echo " true" || echo " false" )
18
- TERMUX_PKG_BUILDDIR32=" ${TERMUX_TOPDIR} /${TERMUX_PKG_NAME} /build32"
19
- # if [ "$TERMUX_PKG_BUILD32" = "true" ]; then
20
- # TERMUX_PKG_BUILD_DEPENDS="glibc32"
21
- # fi
22
-
23
- termux_setup_build32 () {
24
- case $TERMUX_ARCH in
25
- " aarch64" )
26
- TERMUX_ARCH=" arm"
27
- TERMUX_HOST_PLATFORM=" arm-linux-gnueabihf" ;;
28
- " x86_64" )
29
- TERMUX_ARCH=" i686"
30
- TERMUX_HOST_PLATFORM=" i686-linux-gnu" ;;
31
- esac
32
- termux_step_setup_toolchain
33
- cd ${TERMUX_PKG_BUILDDIR32}
34
- }
14
+ TERMUX_PKG_BUILD32=true
35
15
36
16
termux_step_pre_configure () {
37
17
if [ " $TERMUX_PACKAGE_LIBRARY " != " glibc" ]; then
@@ -112,8 +92,8 @@ termux_step_pre_configure() {
112
92
113
93
# replacing some hard paths that may not exist in some device
114
94
for i in /dev/stderr:/proc/self/fd/2 \
115
- /dev/stdin:/proc/self/fd/0 \
116
- /dev/stdout:/proc/self/fd/1; do
95
+ /dev/stdin:/proc/self/fd/0 \
96
+ /dev/stdout:/proc/self/fd/1; do
117
97
for j in $( grep -s -r -l ${i%%:* } ${TERMUX_PKG_SRCDIR} ) ; do
118
98
sed -i " s|${i%%:* } |${i//*: } |g" ${j}
119
99
done
@@ -124,20 +104,16 @@ termux_step_pre_configure() {
124
104
125
105
# specifying the current release (use only when developing glibc)
126
106
sed -i " s/stable/dev.$( git -C ${TERMUX_PKG_BUILDER_DIR} rev-parse --short HEAD) .$( date +%Y%m%d%H%M%S) /" ${TERMUX_PKG_SRCDIR} /version.h
127
-
128
- if [ " $TERMUX_PKG_BUILD32 " = " true" ]; then
129
- rm -fr ${TERMUX_PKG_BUILDDIR32}
130
- mkdir -p ${TERMUX_PKG_BUILDDIR32}
131
- fi
132
107
}
133
108
134
- termux_glibc_configure () {
135
- local libdir=" ${1} "
136
-
137
- echo " slibdir=${TERMUX_PREFIX} /${libdir} " > configparms
138
- echo " rtlddir=${TERMUX_PREFIX} /${libdir} " >> configparms
109
+ termux_step_configure () {
110
+ echo " slibdir=${TERMUX_LIB_PATH} " > configparms
111
+ echo " rtlddir=${TERMUX_LIB_PATH} " >> configparms
139
112
echo " sbindir=${TERMUX_PREFIX} /bin" >> configparms
140
113
echo " rootsbindir=${TERMUX_PREFIX} /bin" >> configparms
114
+ if [ " $TERMUX_ARCH " != " $TERMUX_REAL_ARCH " ]; then
115
+ echo ' build-programs=no' >> configparms
116
+ fi
141
117
142
118
local _configure_flags=()
143
119
case $TERMUX_ARCH in
@@ -153,8 +129,8 @@ termux_glibc_configure() {
153
129
154
130
${TERMUX_PKG_SRCDIR} /configure \
155
131
--prefix=$TERMUX_PREFIX \
156
- --libdir=${TERMUX_PREFIX} / ${libdir} \
157
- --libexecdir=${TERMUX_PREFIX} / ${libdir} \
132
+ --libdir=$TERMUX_LIB_PATH \
133
+ --libexecdir=$TERMUX_LIB_PATH \
158
134
--host=$TERMUX_HOST_PLATFORM \
159
135
--build=$TERMUX_HOST_PLATFORM \
160
136
--target=$TERMUX_HOST_PLATFORM \
@@ -171,35 +147,17 @@ termux_glibc_configure() {
171
147
" ${_configure_flags[@]} "
172
148
}
173
149
174
- termux_step_configure () {
175
- termux_glibc_configure " lib"
176
-
177
- if [ " $TERMUX_PKG_BUILD32 " = " true" ]; then
178
- (
179
- termux_setup_build32
180
- termux_glibc_configure " lib32"
181
- echo ' build-programs=no' >> configparms
182
- )
183
- fi
184
- }
185
-
186
150
termux_step_make () {
187
151
make -O
188
- make info
189
-
190
- if [ " $TERMUX_PKG_BUILD32 " = " true" ]; then
191
- (
192
- termux_setup_build32
193
- make -O
194
- )
152
+ if [ " $TERMUX_ARCH " = " $TERMUX_REAL_ARCH " ]; then
153
+ make info
195
154
fi
196
155
}
197
156
198
157
termux_glibc_make_syscall_without_fsc () {
199
158
local libname=" libsyscall_without_fsc.so"
200
- local libdir=" $1 "
201
159
echo " Compiling '${libname} '..."
202
- $CC ${TERMUX_PKG_BUILDER_DIR} /syscall.c -o ${TERMUX_PREFIX} / ${libdir } /${libname} \
160
+ $CC ${TERMUX_PKG_BUILDER_DIR} /syscall.c -o ${TERMUX_LIB_PATH } /${libname} \
203
161
-shared -DWITHOUT_FAKESYSCALL
204
162
echo " DONE"
205
163
}
@@ -210,11 +168,11 @@ termux_step_make_install() {
210
168
make install_root=" /" install
211
169
212
170
rm -f ${TERMUX_PREFIX} /etc/ld.so.cache
213
- rm -f ${TERMUX_PREFIX} /bin/{tzselect,zdump,zic}
171
+ # rm -f ${TERMUX_PREFIX}/bin/{tzselect,zdump,zic}
214
172
215
- install -dm755 ${TERMUX_PREFIX} /lib /tmpfiles.d
173
+ install -dm755 ${TERMUX_LIB_PATH} /tmpfiles.d
216
174
install -m644 ${TERMUX_PKG_SRCDIR} /nscd/nscd.conf ${TERMUX_PREFIX} /etc/nscd.conf
217
- install -m644 ${TERMUX_PKG_SRCDIR} /nscd/nscd.tmpfiles ${TERMUX_PREFIX} /lib /tmpfiles.d/nscd.conf
175
+ install -m644 ${TERMUX_PKG_SRCDIR} /nscd/nscd.tmpfiles ${TERMUX_LIB_PATH} /tmpfiles.d/nscd.conf
218
176
install -m644 ${TERMUX_PKG_SRCDIR} /posix/gai.conf ${TERMUX_PREFIX} /etc/gai.conf
219
177
install -m755 ${TERMUX_PKG_BUILDER_DIR} /locale-gen ${TERMUX_PREFIX} /bin
220
178
sed -i " s|@TERMUX_PREFIX@|$TERMUX_PREFIX |g; s|@TERMUX_PREFIX_CLASSICAL@|$TERMUX_PREFIX_CLASSICAL |g" \
@@ -227,7 +185,7 @@ termux_step_make_install() {
227
185
sed -e ' 1,3d' -e ' s|/| |g' -e ' s| \\||g' \
228
186
${TERMUX_PKG_SRCDIR} /localedata/SUPPORTED > ${TERMUX_PREFIX} /share/i18n/SUPPORTED
229
187
230
- install -dm755 ${TERMUX_PREFIX} /lib /locale
188
+ install -dm755 ${TERMUX_LIB_PATH} /locale
231
189
make -C ${TERMUX_PKG_SRCDIR} /localedata objdir=${TERMUX_PKG_BUILDDIR} \
232
190
SUPPORTED-LOCALES=" C.UTF-8/UTF-8 en_US.UTF-8/UTF-8" install-locale-files
233
191
sed -i ' /#C\.UTF-8 /d' ${TERMUX_PREFIX} /etc/locale.gen
@@ -236,24 +194,35 @@ termux_step_make_install() {
236
194
install -Dm644 ${TERMUX_PKG_BUILDER_DIR} /sdt-config.h ${TERMUX_PREFIX} /include/sys/sdt-config.h
237
195
238
196
ln -sfr $PATH_DYNAMIC_LINKER ${TERMUX_PREFIX} /bin/ld.so
239
- ln -sfr $PATH_DYNAMIC_LINKER ${TERMUX_PREFIX} /lib /ld.so
197
+ ln -sfr $PATH_DYNAMIC_LINKER ${TERMUX_LIB_PATH} /ld.so
240
198
241
- termux_glibc_make_syscall_without_fsc " lib"
242
-
243
- if [ " $TERMUX_PKG_BUILD32 " = " true" ]; then
244
- (
245
- termux_setup_build32
199
+ termux_glibc_make_syscall_without_fsc
200
+ }
246
201
247
- make DESTDIR=${TERMUX_PKG_BUILDDIR32} install
202
+ termux_step_make_install32 () {
203
+ make DESTDIR=${TERMUX_PKG_BUILDDIR} install
204
+
205
+ echo " Sorting headers for include32..."
206
+ local hpath
207
+ for hpath in $( find ${TERMUX_PKG_BUILDDIR} /${TERMUX_PREFIX} /include -type f) ; do
208
+ local h=$( sed " s|${TERMUX_PKG_BUILDDIR} /${TERMUX_PREFIX} /include/||g" <<< " $hpath" )
209
+ if [ -f " ${TERMUX_PREFIX} /include/${h} " ] && \
210
+ [ $( md5sum " ${hpath} " | awk ' {printf $1}' ) = $( md5sum " ${TERMUX_PREFIX} /include/${h} " | awk ' {printf $1}' ) ]; then
211
+ rm " ${hpath} "
212
+ fi
213
+ done
214
+ find ${TERMUX_PKG_BUILDDIR} /${TERMUX_PREFIX} /include -type d -empty -delete
215
+ echo " DONE"
248
216
249
- cp -r ${TERMUX_PKG_BUILDDIR32} /${TERMUX_PREFIX} /lib32 $TERMUX_PREFIX
217
+ cp -r ${TERMUX_PKG_BUILDDIR} /${TERMUX_LIB_PATH} $TERMUX_PREFIX
218
+ install -dm755 ${TERMUX_PREFIX} /include32
219
+ cp -r ${TERMUX_PKG_BUILDDIR} /${TERMUX_PREFIX} /include/* ${TERMUX_PREFIX} /include32
250
220
251
- ln -sfr ${TERMUX_PREFIX} /lib/ locale ${TERMUX_PREFIX} /lib32 /locale
221
+ ln -sfr ${TERMUX_LIB64_PATH} / locale ${TERMUX_LIB_PATH} /locale
252
222
253
- ln -sfr ${TERMUX_PREFIX} /lib32/${DYNAMIC_LINKER} $PATH_DYNAMIC_LINKER
254
- ln -sfr ${TERMUX_PREFIX} /lib32/${DYNAMIC_LINKER} ${TERMUX_PREFIX} /lib32/ld.so
223
+ ln -sfr ${TERMUX_LIB_PATH} /${DYNAMIC_LINKER} $PATH_DYNAMIC_LINKER
224
+ ln -sfr ${TERMUX_LIB_PATH} /${DYNAMIC_LINKER} ${TERMUX_PREFIX} /bin/ld32.so
225
+ ln -sfr ${TERMUX_LIB_PATH} /${DYNAMIC_LINKER} ${TERMUX_LIB_PATH} /ld.so
255
226
256
- termux_glibc_make_syscall_without_fsc " lib32"
257
- )
258
- fi
227
+ termux_glibc_make_syscall_without_fsc
259
228
}
0 commit comments