Skip to content

Commit a89bc62

Browse files
committed
test build with new builder
1 parent cd3421f commit a89bc62

14 files changed

+638
-189
lines changed

gpkg/gcc-libs-dev-glibc32/build.sh

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
TERMUX_PKG_HOMEPAGE=https://gcc.gnu.org/
2+
TERMUX_PKG_DESCRIPTION="Runtime libraries shipped by GCC on a 32-bit basis (temporary package)"
3+
TERMUX_PKG_LICENSE="GPL-3.0"
4+
TERMUX_PKG_MAINTAINER="@termux-pacman"
5+
TERMUX_PKG_VERSION=14.2.1
6+
TERMUX_PKG_SKIP_SRC_EXTRACT=true
7+
TERMUX_PKG_BUILD32=true
8+
TERMUX_PKG_BLACKLISTED_ARCHES="arm, i686"
9+
10+
termux_step_make_install32() {
11+
mkdir -p ${TERMUX_LIB32_PATH}
12+
cp -r ${CGCT_DIR}/${TERMUX_ARCH}/lib/lib* ${TERMUX_LIB32_PATH}
13+
}

gpkg/glibc/build.sh

+43-74
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,7 @@ TERMUX_PKG_RECOMMENDS="glibc-runner"
1111
TERMUX_PKG_NO_STATICSPLIT=true
1212
TERMUX_PKG_CONFFILES="glibc/etc/gai.conf, glibc/etc/locale.gen"
1313
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
3515

3616
termux_step_pre_configure() {
3717
if [ "$TERMUX_PACKAGE_LIBRARY" != "glibc" ]; then
@@ -112,8 +92,8 @@ termux_step_pre_configure() {
11292

11393
# replacing some hard paths that may not exist in some device
11494
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
11797
for j in $(grep -s -r -l ${i%%:*} ${TERMUX_PKG_SRCDIR}); do
11898
sed -i "s|${i%%:*}|${i//*:}|g" ${j}
11999
done
@@ -124,20 +104,16 @@ termux_step_pre_configure() {
124104

125105
# specifying the current release (use only when developing glibc)
126106
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
132107
}
133108

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
139112
echo "sbindir=${TERMUX_PREFIX}/bin" >> configparms
140113
echo "rootsbindir=${TERMUX_PREFIX}/bin" >> configparms
114+
if [ "$TERMUX_ARCH" != "$TERMUX_REAL_ARCH" ]; then
115+
echo 'build-programs=no' >> configparms
116+
fi
141117

142118
local _configure_flags=()
143119
case $TERMUX_ARCH in
@@ -153,8 +129,8 @@ termux_glibc_configure() {
153129

154130
${TERMUX_PKG_SRCDIR}/configure \
155131
--prefix=$TERMUX_PREFIX \
156-
--libdir=${TERMUX_PREFIX}/${libdir} \
157-
--libexecdir=${TERMUX_PREFIX}/${libdir} \
132+
--libdir=$TERMUX_LIB_PATH \
133+
--libexecdir=$TERMUX_LIB_PATH \
158134
--host=$TERMUX_HOST_PLATFORM \
159135
--build=$TERMUX_HOST_PLATFORM \
160136
--target=$TERMUX_HOST_PLATFORM \
@@ -171,35 +147,17 @@ termux_glibc_configure() {
171147
"${_configure_flags[@]}"
172148
}
173149

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-
186150
termux_step_make() {
187151
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
195154
fi
196155
}
197156

198157
termux_glibc_make_syscall_without_fsc() {
199158
local libname="libsyscall_without_fsc.so"
200-
local libdir="$1"
201159
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} \
203161
-shared -DWITHOUT_FAKESYSCALL
204162
echo "DONE"
205163
}
@@ -210,11 +168,11 @@ termux_step_make_install() {
210168
make install_root="/" install
211169

212170
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}
214172

215-
install -dm755 ${TERMUX_PREFIX}/lib/tmpfiles.d
173+
install -dm755 ${TERMUX_LIB_PATH}/tmpfiles.d
216174
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
218176
install -m644 ${TERMUX_PKG_SRCDIR}/posix/gai.conf ${TERMUX_PREFIX}/etc/gai.conf
219177
install -m755 ${TERMUX_PKG_BUILDER_DIR}/locale-gen ${TERMUX_PREFIX}/bin
220178
sed -i "s|@TERMUX_PREFIX@|$TERMUX_PREFIX|g; s|@TERMUX_PREFIX_CLASSICAL@|$TERMUX_PREFIX_CLASSICAL|g" \
@@ -227,7 +185,7 @@ termux_step_make_install() {
227185
sed -e '1,3d' -e 's|/| |g' -e 's| \\||g' \
228186
${TERMUX_PKG_SRCDIR}/localedata/SUPPORTED > ${TERMUX_PREFIX}/share/i18n/SUPPORTED
229187

230-
install -dm755 ${TERMUX_PREFIX}/lib/locale
188+
install -dm755 ${TERMUX_LIB_PATH}/locale
231189
make -C ${TERMUX_PKG_SRCDIR}/localedata objdir=${TERMUX_PKG_BUILDDIR} \
232190
SUPPORTED-LOCALES="C.UTF-8/UTF-8 en_US.UTF-8/UTF-8" install-locale-files
233191
sed -i '/#C\.UTF-8 /d' ${TERMUX_PREFIX}/etc/locale.gen
@@ -236,24 +194,35 @@ termux_step_make_install() {
236194
install -Dm644 ${TERMUX_PKG_BUILDER_DIR}/sdt-config.h ${TERMUX_PREFIX}/include/sys/sdt-config.h
237195

238196
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
240198

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+
}
246201

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"
248216

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
250220

251-
ln -sfr ${TERMUX_PREFIX}/lib/locale ${TERMUX_PREFIX}/lib32/locale
221+
ln -sfr ${TERMUX_LIB64_PATH}/locale ${TERMUX_LIB_PATH}/locale
252222

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
255226

256-
termux_glibc_make_syscall_without_fsc "lib32"
257-
)
258-
fi
227+
termux_glibc_make_syscall_without_fsc
259228
}

gpkg/glibc/fakesyscall.json

+10-1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,15 @@
5656
"get_mempolicy",
5757
"set_mempolicy",
5858
"mq_open",
59-
"rt_sigreturn"
59+
"rt_sigreturn",
60+
"semget",
61+
"semctl",
62+
"semop",
63+
"semtimedop",
64+
"semtimedop_time64",
65+
"msgctl",
66+
"msgget",
67+
"msgrcv",
68+
"msgsnd"
6069
]
6170
}

gpkg/glibc/glibc32.subpackage.sh

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
TERMUX_SUBPKG_DESCRIPTION="GNU C Library (32-bit)"
2-
TERMUX_SUBPKG_DEPENDS="linux-api-headers-glibc"
2+
TERMUX_SUBPKG_DEPENDS="glibc"
33
TERMUX_SUBPKG_EXCLUDED_ARCHES="arm, i686"
44
TERMUX_SUBPKG_INCLUDE="
5+
glibc/bin/ld32.so
56
glibc/lib32/
67
glibc/lib/ld-linux-armhf.so.3
7-
glibc/lib/ld-linux.so.2"
8+
glibc/lib/ld-linux.so.2
9+
glibc/include32/
10+
"

0 commit comments

Comments
 (0)