Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

emscripten build is broken on MacOS and Linux #1887

Open
iSuslov opened this issue Apr 2, 2024 · 0 comments
Open

emscripten build is broken on MacOS and Linux #1887

iSuslov opened this issue Apr 2, 2024 · 0 comments

Comments

@iSuslov
Copy link

iSuslov commented Apr 2, 2024

On MacOS I can't compile using emscripten no matter how hard I try.

Following the steps from #1543 using all the proposed suggestions it fails.
This collab (Linux) which worked before also fails: https://colab.research.google.com/drive/1Ah_WimDCdFKZSkwKBU3Q5SyHTVVdB6Tl?usp=sharing

Easiest way to reproduce in empty folder:

#!/bin/sh

# Setup

if [ ! -d emsdk ]; then
  git clone https://github.com/emscripten-core/emsdk.git
  cd emsdk
  ./emsdk install latest
  ./emsdk activate latest
  cd ..
fi

# Load emsdk env variables into this session
source ./emsdk/emsdk_env.sh

# use python bundled into emsdk
PYTHON_LOCATION="$(pwd)/emsdk/python"
PYTHON_VERSION=$(ls "$PYTHON_LOCATION")
PYTHON_PATH=$PYTHON_LOCATION/$PYTHON_VERSION/bin
export PATH="$PYTHON_PATH:$PATH"

# Link Python3 to Python:
alias python=python3 

if [ ! -d espeak-ng ]; then
  git clone https://github.com/espeak-ng/espeak-ng.git
fi
cd espeak-ng

# Building

./autogen.sh
./configure --prefix=/usr  --without-async --without-mbrola --without-sonic --without-pcaudiolib --without-klatt --without-speechplayer --with-extdict-cmn
make clean
make

cd src/ucd-tools
# PATCH 1: rename CHANGELOG.md to ChangeLog.md
mv CHANGELOG.md ChangeLog.md
./autogen.sh
emconfigure ./configure
emmake make clean
emmake make
cd ../..


make clean
emconfigure ./configure --prefix=/usr  --without-async --without-mbrola --without-sonic --without-pcaudiolib --without-klatt --without-speechplayer --with-extdict-cmn
# PATCH 2: 
sed -i '' 's/^using namespace std/\/\/&/' src/speechPlayer/src/speechWaveGenerator.cpp
emmake make clean
emmake make src/libespeak-ng.la

#failed

#cd emscripten
#emmake make clean
#emmake make

Error:

make: make src/libespeak-ng.la
  CC       src/ucd-tools/src/libespeak_ng_la-case.lo
  CC       src/ucd-tools/src/libespeak_ng_la-categories.lo
  CC       src/ucd-tools/src/libespeak_ng_la-ctype.lo
  CC       src/ucd-tools/src/libespeak_ng_la-proplist.lo
  CC       src/ucd-tools/src/libespeak_ng_la-scripts.lo
  CC       src/ucd-tools/src/libespeak_ng_la-tostring.lo
  CC       src/libespeak-ng/la-common.lo
  CC       src/libespeak-ng/la-compiledata.lo
  CC       src/libespeak-ng/la-compiledict.lo
  CC       src/libespeak-ng/la-dictionary.lo
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:180:11: error: conflicting types for 'ucd_isalnum'
  180 | int       iswalnum(wint_t);
      |           ^
src/include/compat/wctype.h:35:19: note: expanded from macro 'iswalnum'
   35 | #define iswalnum  ucd_isalnum
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:410:5: note: previous declaration is here
  410 | int ucd_isalnum(codepoint_t c);
      |     ^
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:181:11: error: conflicting types for 'ucd_isalpha'
  181 | int       iswalpha(wint_t);
      |           ^
src/include/compat/wctype.h:36:19: note: expanded from macro 'iswalpha'
   36 | #define iswalpha  ucd_isalpha
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:417:5: note: previous declaration is here
  417 | int ucd_isalpha(codepoint_t c);
      |     ^
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:182:11: error: conflicting types for 'ucd_isblank'
  182 | int       iswblank(wint_t);
      |           ^
src/include/compat/wctype.h:37:19: note: expanded from macro 'iswblank'
   37 | #define iswblank  ucd_isblank
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:424:5: note: previous declaration is here
  424 | int ucd_isblank(codepoint_t c);
      |     ^
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:183:11: error: conflicting types for 'ucd_iscntrl'
  183 | int       iswcntrl(wint_t);
      |           ^
src/include/compat/wctype.h:38:19: note: expanded from macro 'iswcntrl'
   38 | #define iswcntrl  ucd_iscntrl
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:431:5: note: previous declaration is here
  431 | int ucd_iscntrl(codepoint_t c);
      |     ^
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:185:11: error: conflicting types for 'ucd_isgraph'
  185 | int       iswgraph(wint_t);
      |           ^
src/include/compat/wctype.h:40:19: note: expanded from macro 'iswgraph'
   40 | #define iswgraph  ucd_isgraph
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:445:5: note: previous declaration is here
  445 | int ucd_isgraph(codepoint_t c);
      |     ^
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:186:11: error: conflicting types for 'ucd_islower'
  186 | int       iswlower(wint_t);
      |           ^
src/include/compat/wctype.h:41:19: note: expanded from macro 'iswlower'
   41 | #define iswlower  ucd_islower
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:452:5: note: previous declaration is here
  452 | int ucd_islower(codepoint_t c);
      |     ^
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:187:11: error: conflicting types for 'ucd_isprint'
  187 | int       iswprint(wint_t);
      |           ^
src/include/compat/wctype.h:42:19: note: expanded from macro 'iswprint'
   42 | #define iswprint  ucd_isprint
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:459:5: note: previous declaration is here
  459 | int ucd_isprint(codepoint_t c);
      |     ^
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:188:11: error: conflicting types for 'ucd_ispunct'
  188 | int       iswpunct(wint_t);
      |           ^
src/include/compat/wctype.h:43:19: note: expanded from macro 'iswpunct'
   43 | #define iswpunct  ucd_ispunct
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:466:5: note: previous declaration is here
  466 | int ucd_ispunct(codepoint_t c);
      |     ^
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:189:11: error: conflicting types for 'ucd_isspace'
  189 | int       iswspace(wint_t);
      |           ^
src/include/compat/wctype.h:44:19: note: expanded from macro 'iswspace'
   44 | #define iswspace  ucd_isspace
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:473:5: note: previous declaration is here
  473 | int ucd_isspace(codepoint_t c);
      |     ^
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:190:11: error: conflicting types for 'ucd_isupper'
  190 | int       iswupper(wint_t);
      |           ^
src/include/compat/wctype.h:45:19: note: expanded from macro 'iswupper'
   45 | #define iswupper  ucd_isupper
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:480:5: note: previous declaration is here
  480 | int ucd_isupper(codepoint_t c);
      |     ^
In file included from src/libespeak-ng/dictionary.c:28:
In file included from src/include/compat/wchar.h:27:
/Users/user/Projects/espeak/emsdk/upstream/emscripten/cache/sysroot/include/wchar.h:191:11: error: conflicting types for 'ucd_isxdigit'
  191 | int       iswxdigit(wint_t);
      |           ^
src/include/compat/wctype.h:46:19: note: expanded from macro 'iswxdigit'
   46 | #define iswxdigit ucd_isxdigit
      |                   ^
./src/ucd-tools/src/include/ucd/ucd.h:487:5: note: previous declaration is here
  487 | int ucd_isxdigit(codepoint_t c);
      |     ^
11 errors generated.
make: *** [src/libespeak-ng/la-dictionary.lo] Error 1
emmake: error: 'make src/libespeak-ng.la' failed (returned 2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant