Skip to content

Commit cb27707

Browse files
committed
try to fix mvp normalization on python built modules
1 parent f6dd7cf commit cb27707

File tree

4 files changed

+19
-74
lines changed

4 files changed

+19
-74
lines changed

python-wasm-sdk.sh

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,13 @@ do
8484
==========================================================
8585
" 1>&2
8686
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports*
87-
# something triggers sdl2 *full* rebuild in pygame.
88-
# but only that one.
89-
# embuilder --pic build sdl2
90-
# embuilder build sdl2
9187
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports/sdl2/SDL-*
9288
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports
9389
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports-builds
9490
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/tests
9591

9692

93+
9794
echo "making tarball" 1>&2
9895

9996
cd /

scripts/cpython-build-emsdk-prebuilt.sh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ $PIP install build/$CYTHON_WHL
3333
# install them
3434
$PIP install installer
3535

36-
# some we want in rootfs
36+
37+
# some we want in all minimal rootfs
38+
mkdir -p prebuilt/emsdk/common/site-packages/
3739
for pkg in installer
3840
do
3941
if [ -d prebuilt/emsdk/${PYBUILD}/site-packages/$pkg ]
@@ -43,8 +45,8 @@ do
4345
"
4446
else
4547
$PIP install $pkg
46-
cp -rf $PREFIX/lib/python${PYBUILD}/site-packages/${pkg} prebuilt/emsdk/${PYBUILD}/site-packages/
47-
cp -rf $PREFIX/lib/python${PYBUILD}/site-packages/${pkg}-* prebuilt/emsdk/${PYBUILD}/site-packages/
48+
cp -rf $PREFIX/lib/python${PYBUILD}/site-packages/${pkg} prebuilt/emsdk/common/site-packages/
49+
cp -rf $PREFIX/lib/python${PYBUILD}/site-packages/${pkg}-* prebuilt/emsdk/common/site-packages/
4850
fi
4951
done
5052

scripts/cpython-build-emsdk.sh

Lines changed: 1 addition & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -264,66 +264,7 @@ sed -i 's|-g0|-g3|g' ${SDKROOT}/prebuilt/emsdk/${PYBUILD}/_sysconfigdata__emscri
264264
# python setup.py install --single-version-externally-managed --root=/
265265
# pip3 install .
266266

267-
cat > $HOST_PREFIX/bin/cc <<END
268-
#!/bin/bash
269-
if [ -z "\$_EMCC_CCACHE" ]
270-
then
271-
unset _PYTHON_SYSCONFIGDATA_NAME
272-
unset PYTHONHOME
273-
unset PYTHONPATH
274-
275-
COMMON="-Wno-unused-command-line-argument -Wno-unreachable-code-fallthrough"
276-
SHARED=""
277-
IS_SHARED=false
278-
279-
for arg do
280-
shift
281-
282-
if [ "\$arg" = "-v" ]
283-
then
284-
\$SYS_PYTHON -E \$0.py -v
285-
exit 0
286-
fi
287-
288-
if [ "\$arg" = "--version" ]
289-
then
290-
\$SYS_PYTHON -E \$0.py --version
291-
exit 0
292-
fi
293-
294-
# that is for some very bad setup.py behaviour regarding cross compiling. should not be needed ..
295-
[ "\$arg" = "-I/usr/include" ] && continue
296-
[ "\$arg" = "-I/usr/include/SDL2" ] && continue
297-
[ "\$arg" = "-L/usr/lib64" ] && continue
298-
[ "\$arg" = "-L/usr/lib" ] && continue
299-
300-
if [ "\$arg" = "-shared" ]
301-
then
302-
IS_SHARED=true
303-
SHARED="$SHARED -sSIDE_MODULE"
304-
fi
305-
306-
if echo "\$arg"|grep -q wasm32-emscripten.so\$
307-
then
308-
IS_SHARED=true
309-
SHARED="$SHARED -shared -sSIDE_MODULE"
310-
fi
311-
set -- "\$@" "\$arg"
312-
done
313-
314-
if \$IS_SHARED
315-
then
316-
$SYS_PYTHON -E $EMSDK/upstream/emscripten/emcc.py \
317-
\$SHARED $COPTS $LDFLAGS -sSIDE_MODULE -gsource-map --source-map-base / "\$@" \$COMMON
318-
else
319-
$SYS_PYTHON -E $EMSDK/upstream/emscripten/emcc.py \
320-
$COPTS $CPPFLAGS -DBUILD_STATIC "\$@" \$COMMON
321-
fi
322-
else
323-
unset _EMCC_CCACHE
324-
exec ccache "\$0" "\$@"
325-
fi
326-
END
267+
ln -sf ${SDKROOT}/emsdk/upstream/emscripten/emcc $HOST_PREFIX/bin/cc
327268

328269
chmod +x $HOST_PREFIX/bin/cc
329270

scripts/emsdk-fetch.sh

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ unset PYTHONPATH
8989
# -Wwarn-absolute-paths
9090
# --valid-abspath ${SDKROOT}
9191
92-
COMMON="-Wno-limited-postlink-optimizations"
92+
COMMON="-Wno-unused-command-line-argument -Wno-unreachable-code-fallthrough -Wno-limited-postlink-optimizations"
9393
SHARED=""
9494
IS_SHARED=false
9595
@@ -120,12 +120,13 @@ for arg do
120120
SHARED="\$SHARED -sSIDE_MODULE"
121121
fi
122122
123-
if \$IS_SHARED
123+
if echo "\$arg"|grep -q wasm32-emscripten.so\$
124124
then
125-
true
126-
else
127-
if echo "\$arg"|grep -q wasm32-emscripten.so\$
125+
SHARED_TARGET=\$arg
126+
if \$IS_SHARED
128127
then
128+
true
129+
else
129130
IS_SHARED=true
130131
SHARED="\$SHARED -shared -sSIDE_MODULE"
131132
fi
@@ -136,9 +137,13 @@ done
136137
137138
if \$IS_SHARED
138139
then
139-
$EMSDK_PYTHON -E \$0.py \$SHARED $LDFLAGS "\$@" \$COMMON
140+
$EMSDK_PYTHON -E \$0.py \$SHARED $COPTS $LDFLAGS -sSIDE_MODULE -gsource-map --source-map-base / "\$@" \$COMMON
141+
SOTMP=\$(mktemp).so
142+
mv \$SHARED_TARGET \$SOTMP
143+
$SDKROOT/emsdk/upstream/bin/wasm-emscripten-finalize -mvp \$SOTMP -o \$SHARED_TARGET
144+
rm \$SOTMP
140145
else
141-
$EMSDK_PYTHON -E \$0.py \$CPPFLAGS "\$@" \$COMMON
146+
$EMSDK_PYTHON -E \$0.py \$COPTS \$CPPFLAGS -DBUILD_STATIC "\$@" \$COMMON
142147
fi
143148
else
144149
unset _EMCC_CCACHE

0 commit comments

Comments
 (0)