Upgrade Emscripten + build fixes

- Upgraded to 3.1.47.
 - EM_CACHE override leads to some new issues with package search in sysroot, probably because sysroot is hardcoded in PKG_CONFIG* variables. Use Docker's path mapping mechanism instead.
 - Added temporary workaround for new issue from https://github.com/emscripten-core/emscripten/issues/16836.
This commit is contained in:
Ingvar Stepanyan
2023-10-17 03:16:30 +01:00
parent 83cceddc63
commit cfe8ef68b6
3 changed files with 8 additions and 8 deletions

View File

@@ -1,5 +1,4 @@
FROM emscripten/emsdk:3.1.3 FROM emscripten/emsdk:3.1.47
RUN apt-get update && apt-get install -qqy autoconf autopoint pkg-config RUN apt-get update && apt-get install -qqy autoconf autopoint pkg-config libtool libtool-bin
WORKDIR /src WORKDIR /src
ENV EM_CACHE /src/deps/.emcache
CMD ["sh", "-c", "emmake make -j`nproc`"] CMD ["sh", "-c", "emmake make -j`nproc`"]

View File

@@ -1,4 +1,4 @@
SYSROOT = $(EM_CACHE)/sysroot SYSROOT = /emsdk/upstream/emscripten/cache/sysroot
# Add custom sysroot to library & macro search paths. # Add custom sysroot to library & macro search paths.
export LDFLAGS += -L$(SYSROOT)/lib export LDFLAGS += -L$(SYSROOT)/lib
@@ -6,6 +6,8 @@ export ACLOCAL_PATH := $(SYSROOT)/share/aclocal:$(ACLOCAL_PATH)
# Common linking flags for all targets. # Common linking flags for all targets.
export LDFLAGS += -s DYNAMIC_EXECUTION=0 -s AUTO_JS_LIBRARIES=0 -s AUTO_NATIVE_LIBRARIES=0 export LDFLAGS += -s DYNAMIC_EXECUTION=0 -s AUTO_JS_LIBRARIES=0 -s AUTO_NATIVE_LIBRARIES=0
# Temporary workaround for https://github.com/emscripten-core/emscripten/issues/16836.
export LDFLAGS += -Wl,-u,ntohs
# Common compilation & linking flags for all langs and targets. # Common compilation & linking flags for all langs and targets.
COMMON_FLAGS = -Os -flto COMMON_FLAGS = -Os -flto

View File

@@ -16,16 +16,15 @@
# License along with this library; if not, write to the Free Software # License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
if [ -z "$CI" ] if [ -z "$CI" ]; then
then
DOCKER_INTERACTIVE_OPTS="-it" DOCKER_INTERACTIVE_OPTS="-it"
else else
DOCKER_INTERACTIVE_OPTS="" DOCKER_INTERACTIVE_OPTS=""
fi fi
docker build -t web-gphoto2 - < Dockerfile docker build -t web-gphoto2 - <Dockerfile
docker run --rm $DOCKER_INTERACTIVE_OPTS \ docker run --rm $DOCKER_INTERACTIVE_OPTS \
-v $PWD:/src \ -v $PWD:/src \
-u $(id -u):$(id -g) \ -v $PWD/deps/.emcache:/emsdk/upstream/emscripten/cache \
web-gphoto2 \ web-gphoto2 \
$@ $@