For reasons that are a bit beyond me, `--host` and `PLATFORM_TRIPLET`
seem to be independent, in particular we've had an empty
`PLATFORM_TRIPLET`. This is unfortunate because `PLATFORM_TRIPLET`
is used to generate the SOABI config variable which in turn is used
to decide whether a .so file is a good match for loading. We'd like
for linux Pythons not to try to import emscripten .so files (it
raises `ImportError: some_file.so: invalid ELF header`). Similarly,
we'd like to avoid attempting to load linux .so files in wasm. These
platform tags are our friends.

Anyways, this PR sets `PLATFORM_TRIPLET` and ensures that .so files
built by pywasmcross are tagged with our SOABI tag.

I moved the .so file renaming from pywasmcross to buildpkg just
before running the post script. That is a better place to put it in
case the package wants to look at the .so file after linking it. It
might be surprised that we moved it.

I also improved the error message if we try to `loadWebAssemblyModule`
something that is actually say a Linux .so file and updated get_dynlibs
to filter out .so files that have an incompatible abi tag.
Set PLATFORM_TRIPLET, include platform in so names, only load compatible so files. For reasons that are a bit beyond me, `--host` and `PLATFORM_TRIPLET`
seem to be independent, in particular we've had an empty
`PLATFORM_TRIPLET`. This is unfortunate because `PLATFORM_TRIPLET`
is used to generate the SOABI config variable which in turn is used
to decide whether a .so file is a good match for loading. We'd like
for linux Pythons not to try to import emscripten .so files (it
raises `ImportError: some_file.so: invalid ELF header`). Similarly,
we'd like to avoid attempting to load linux .so files in wasm. These
platform tags are our friends.

Anyways, this PR sets `PLATFORM_TRIPLET` and ensures that .so files
built by pywasmcross are tagged with our SOABI tag.

I moved the .so file renaming from pywasmcross to buildpkg just
before running the post script. That is a better place to put it in
case the package wants to look at the .so file after linking it. It
might be surprised that we moved it.

I also improved the error message if we try to `loadWebAssemblyModule`
something that is actually say a Linux .so file and updated get_dynlibs
to filter out .so files that have an incompatible abi tag.
From edfeabd42ac35f095a550e76084e4a549965f4ab Mon Sep 17 00:00:00 2001
From: ryanking13 <def6488@gmail.com>
Date: Wed, 6 Oct 2021 22:16:32 +0900
Subject: [PATCH 05/10] Drop pwd built-in module

This patch drops pwd module support from Cpython.
pwd module provides access to the Unix user account and password database,
which is not available in browser environment.
---
 Modules/Setup | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Modules/Setup b/Modules/Setup
index 87c6a152f8..89bab18530 100644
--- a/Modules/Setup
+++ b/Modules/Setup
@@ -103,7 +103,7 @@ PYTHONPATH=$(COREPYTHONPATH)
 
 posix -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.c # posix (UNIX) system calls
 errno errnomodule.c			# posix (UNIX) errno values
-pwd pwdmodule.c				# this is needed to find out the user's home dir
+# pwd pwdmodule.c				# this is needed to find out the user's home dir
 					# if $HOME is not set
 _sre -DPy_BUILD_CORE_BUILTIN _sre.c	# Fredrik Lundh's new regular expressions
 _codecs _codecsmodule.c			# access to the builtin codecs and codec registry
-- 
2.25.1


From edfeabd42ac35f095a550e76084e4a549965f4ab Mon Sep 17 00:00:00 2001
From: ryanking13 <def6488@gmail.com>
Date: Wed, 6 Oct 2021 22:16:32 +0900
Subject: [PATCH 05/10] Drop pwd built-in module

This patch drops pwd module support from Cpython.
pwd module provides access to the Unix user account and password database,
which is not available in browser environment.
---
 Modules/Setup | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Modules/Setup b/Modules/Setup
index 87c6a152f8..89bab18530 100644
--- a/Modules/Setup
+++ b/Modules/Setup
@@ -103,7 +103,7 @@ PYTHONPATH=$(COREPYTHONPATH)
 
 posix -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.c # posix (UNIX) system calls
 errno errnomodule.c			# posix (UNIX) errno values
-pwd pwdmodule.c				# this is needed to find out the user's home dir
+# pwd pwdmodule.c				# this is needed to find out the user's home dir
 					# if $HOME is not set
 _sre -DPy_BUILD_CORE_BUILTIN _sre.c	# Fredrik Lundh's new regular expressions
 _codecs _codecsmodule.c			# access to the builtin codecs and codec registry
-- 
2.25.1

