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 make issue #7904

Open
liquidzym opened this issue Feb 29, 2024 · 10 comments
Open

Emscripten make issue #7904

liquidzym opened this issue Feb 29, 2024 · 10 comments

Comments

@liquidzym
Copy link

setting up the latest the emsdk and env according to the page https://openframeworks.cc/setup/emscripten/
the xcode version which is 15.2(15c500b)

the nightly build version and 0.12.0 both with this error

clang++: error: unknown argument: '--gc-sections'
em++: error: '/Users/liquid/Desktop/emsdk/upstream/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --sysroot=/Users/liquid/Desktop/emsdk/upstream/emscripten/cache/sysroot -DEMSCRIPTEN -isystem /Users/liquid/Desktop/emsdk/upstream/emscripten/cache/sysroot/include/freetype2 -Xclang -iwithsysroot/include/fakesdl -Xclang -iwithsysroot/include/compat -O3 -Wl --gc-sections /Users/liquid/Desktop/of_v20240228_osx_release/libs/openFrameworksCompiled/lib/emscripten/libopenFrameworks.bc -c -o /var/folders/63/p36n6bnn21lc5x59z00d7nqw0000gn/T/emscripten_temp_5ucj2s0_/libopenFrameworks_0.o' failed (returned 1)
make[1]: *** [bin/em/graphicsExample/index.html] Error 1
make: *** [Release] Error 2
emmake: error: 'make' failed (returned 2)

@danoli3
Copy link
Member

danoli3 commented Feb 29, 2024

I just tested as well, seems okay, hmmm lets verify your setup:

Env setup:

echo "Emscripten Download SRC"
	cd ../../
	git clone https://github.com/emscripten-core/emsdk.git
	cd emsdk
	git pull

	echo "if any issues with python - make sure to add python paths to bash environment Variables:"
  python -m pip install --upgrade pip setuptools virtualenv
  ./emsdk install latest
  ./emsdk activate latest --permanent
   ./emsdk_env.sh

And are you running a command like this in the project directory:

emmake make

@danoli3
Copy link
Member

danoli3 commented Feb 29, 2024

output should be like this:

     
#de  f157i | n        e# dGeLf_iDnEeP TGHL__CDOEMPTH_CPOOMNPEONNTE2N4T    2        4                                                                            G        L        _GDLE_PDTEPTH_HC_OCMOPMOPNOENNETN2T42_4O_EOSES
      
|       |                 ^
                ^
/Users/~/SOURCE/EMSDK/emsdk/upstream/emscripten/cache/sysroot/include/GL/glext.h:325:9/Users/~/SOURCE/EMSDK/emsdk/upstream/emscripten/cache/sysroot/include/GL/glext.h:: 325:note: 9:previous definition is here 
note:   previous definition is here325 | 
#d  325 | efi#ndefe GiLn_eD EGPLT_HD_ECPOTMHP_OCNOEMNPTO2N4E N T 2 4                    0 x 8 1 A06x8
1A6      |         ^

      |         ^
4 warnings generated.
4 warnings generated.
Linking bin/em/emscripten/index.html for emscripten
/Users/~/SOURCE/EMSDK/emsdk/upstream/emscripten/em++ -o bin/em/emscripten/index.html -O3 -s TOTAL_MEMORY=134217728 --memory-init-file 1 obj/emscripten/Release/src/ofApp.o obj/emscripten/Release/src/main.o  /Users/~/SOURCE/openFrameworksEm/addons/obj/emscripten/Release/ofxEmscripten/src/ofxEmscriptenSoundStream.o /Users/~/SOURCE/openFrameworksEm/addons/obj/emscripten/Release/ofxEmscripten/src/ofxEmscriptenVideoPlayer.o /Users/~/SOURCE/openFrameworksEm/addons/obj/emscripten/Release/ofxEmscripten/src/ofxEmscriptenSoundPlayer.o /Users/~/SOURCE/openFrameworksEm/addons/obj/emscripten/Release/ofxEmscripten/src/ofxEmscriptenVideoGrabber.o /Users/~/SOURCE/openFrameworksEm/addons/obj/emscripten/Release/ofxEmscripten/src/ofxEmscriptenURLFileLoader.o /Users/~/SOURCE/openFrameworksEm/addons/obj/emscripten/Release/ofxEmscripten/src/ofxAppEmscriptenWindow.o  /Users/~/SOURCE/openFrameworksEm/libs/openFrameworksCompiled/lib/emscripten/libopenFrameworks.bc   -Wl --gc-sections --preload-file bin/data@data --emrun --bind --profiling-funcs -s USE_FREETYPE=1 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION=1 -s FULL_ES2 -sFULL_ES3=1 -s USE_PTHREADS=0 --js-library /Users/~/SOURCE/openFrameworksEm/addons/ofxEmscripten/libs/html5video/lib/emscripten/library_html5video.js --js-library /Users/~/SOURCE/openFrameworksEm/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js --shell-file /Users/~/SOURCE/openFrameworksEm/libs/openFrameworksCompiled/project/emscripten/template.html /Users/~/SOURCE/openFrameworksEm/libs/FreeImage/lib/emscripten/libfreeimage.a /Users/~/SOURCE/openFrameworksEm/libs/boost/lib/emscripten/libboost_system.a /Users/~/SOURCE/openFrameworksEm/libs/boost/lib/emscripten/libboost_filesystem.a /Users/~/SOURCE/openFrameworksEm/libs/pugixml/lib/emscripten/libpugixml.bc /Users/~/SOURCE/openFrameworksEm/libs/tess2/lib/emscripten/libtess2.a /Users/~/SOURCE/openFrameworksEm/libs/uriparser/lib/emscripten/liburiparser.a    
em++: warning: --memory-init-file is only supported with -sWASM=0 [-Wunsupported]
wasm-ld: warning: function signature mismatch: StrIODecTerm
>>> defined as (i32) -> void in /Users/~/SOURCE/openFrameworksEm/libs/FreeImage/lib/emscripten/libfreeimage.a(JXRTranscode.o)
>>> defined as (i32) -> i32 in /Users/~/SOURCE/openFrameworksEm/libs/FreeImage/lib/emscripten/libfreeimage.a(strdec.o)

wasm-ld: warning: function signature mismatch: StrIOEncTerm
>>> defined as (i32) -> void in /Users/~/SOURCE/openFrameworksEm/libs/FreeImage/lib/emscripten/libfreeimage.a(JXRTranscode.o)
>>> defined as (i32) -> i32 in /Users/~/SOURCE/openFrameworksEm/libs/FreeImage/lib/emscripten/libfreeimage.a(strenc.o)

wasm-ld: warning: function signature mismatch: encodeMB
>>> defined as (i32, i32, i32) -> void in /Users/~/SOURCE/openFrameworksEm/libs/FreeImage/lib/emscripten/libfreeimage.a(JXRTranscode.o)
>>> defined as (i32, i32, i32) -> i32 in /Users/~/SOURCE/openFrameworksEm/libs/FreeImage/lib/emscripten/libfreeimage.a(strenc.o)

     compiling done
     to launch the application on the default browser, run:

     emrun bin/em/emscripten
     
     some browsers, like safari, don't support webgl
     
emrun has automatically found the following browsers in the default install locations on the system:

  - chrome: Google Chrome 
  - safari: Apple Safari 

You can pass the --browser <id> option to launch with the given browser above.
Even if your browser was not detected, you can use --browser /path/to/browser/executable to launch with that browser.

```

@liquidzym
Copy link
Author

emm,wired ,still not working,i'm sure i'm setting up everything this is the lastest step

liquid@liquiddeMacBook-Pro graphicsExample % cd /Users/liquid/Desktop/emsdk
liquid@liquiddeMacBook-Pro emsdk % ./emsdk_env.sh
Setting up EMSDK environment (suppress these messages with EMSDK_QUIET=1)
Setting environment variables:
liquid@liquiddeMacBook-Pro emsdk % cd /Users/liquid/Desktop/of_v20240228_osx_release/examples/graphics/graphicsExample
liquid@liquiddeMacBook-Pro graphicsExample % emmake make
make: make
Compiling OF library for Release
Done!

Compiling graphicsExample for Release
Linking bin/em/graphicsExample/index.html for emscripten
/Users/liquid/Desktop/emsdk/upstream/emscripten/em++ -o bin/em/graphicsExample/index.html -O3 -s TOTAL_MEMORY=134217728 --memory-init-file 1 obj/emscripten/Release/src/ofApp.o obj/emscripten/Release/src/main.o /Users/liquid/Desktop/of_v20240228_osx_release/addons/obj/emscripten/Release/ofxEmscripten/src/ofxEmscriptenSoundStream.o /Users/liquid/Desktop/of_v20240228_osx_release/addons/obj/emscripten/Release/ofxEmscripten/src/ofxEmscriptenVideoPlayer.o /Users/liquid/Desktop/of_v20240228_osx_release/addons/obj/emscripten/Release/ofxEmscripten/src/ofxEmscriptenSoundPlayer.o /Users/liquid/Desktop/of_v20240228_osx_release/addons/obj/emscripten/Release/ofxEmscripten/src/ofxEmscriptenVideoGrabber.o /Users/liquid/Desktop/of_v20240228_osx_release/addons/obj/emscripten/Release/ofxEmscripten/src/ofxEmscriptenURLFileLoader.o /Users/liquid/Desktop/of_v20240228_osx_release/addons/obj/emscripten/Release/ofxEmscripten/src/ofxAppEmscriptenWindow.o /Users/liquid/Desktop/of_v20240228_osx_release/libs/openFrameworksCompiled/lib/emscripten/libopenFrameworks.bc -Wl --gc-sections --preload-file bin/data@data --emrun --bind --profiling-funcs -s USE_FREETYPE=1 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s WEBGL2_BACKWARDS_COMPATIBILITY_EMULATION=1 -s FULL_ES2 -sFULL_ES3=1 -s USE_PTHREADS=0 --js-library /Users/liquid/Desktop/of_v20240228_osx_release/addons/ofxEmscripten/libs/html5video/lib/emscripten/library_html5video.js --js-library /Users/liquid/Desktop/of_v20240228_osx_release/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js --shell-file /Users/liquid/Desktop/of_v20240228_osx_release/libs/openFrameworksCompiled/project/emscripten/template.html /Users/liquid/Desktop/of_v20240228_osx_release/libs/FreeImage/lib/emscripten/libfreeimage.a /Users/liquid/Desktop/of_v20240228_osx_release/libs/boost/lib/emscripten/libboost_system.a /Users/liquid/Desktop/of_v20240228_osx_release/libs/boost/lib/emscripten/libboost_filesystem.a /Users/liquid/Desktop/of_v20240228_osx_release/libs/pugixml/lib/emscripten/libpugixml.bc /Users/liquid/Desktop/of_v20240228_osx_release/libs/tess2/lib/emscripten/libtess2.a /Users/liquid/Desktop/of_v20240228_osx_release/libs/uriparser/lib/emscripten/liburiparser.a
clang++: error: unknown argument: '--gc-sections'
em++: error: '/Users/liquid/Desktop/emsdk/upstream/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --sysroot=/Users/liquid/Desktop/emsdk/upstream/emscripten/cache/sysroot -DEMSCRIPTEN -isystem /Users/liquid/Desktop/emsdk/upstream/emscripten/cache/sysroot/include/freetype2 -Xclang -iwithsysroot/include/fakesdl -Xclang -iwithsysroot/include/compat -O3 -Wl --gc-sections /Users/liquid/Desktop/of_v20240228_osx_release/libs/openFrameworksCompiled/lib/emscripten/libopenFrameworks.bc -c -o /var/folders/63/p36n6bnn21lc5x59z00d7nqw0000gn/T/emscripten_temp_cpygkmyl/libopenFrameworks_0.o' failed (returned 1)
make[1]: *** [bin/em/graphicsExample/index.html] Error 1
make: *** [Release] Error 2
emmake: error: 'make' failed (returned 2)

any ideas? btw,thank you so much for looking into it

@Jonathhhan
Copy link
Contributor

It should work with: #7909

@liquidzym
Copy link
Author

great,thank you so much @Jonathhhan

@azuremous
Copy link
Contributor

I still have problems with using pugixml, something like xmlExample, svgExample, pugiXmlExample.

I tried to delete --gc-sections from config.emscripten.default.mk, and then I got this error:

error: expected top-level entity
1 | <U+0000>asm<U+0001><U+0000><U+0000><U+0000><U+0001><81><80><80><U+0000><U+001B><U+0002><U+007F><U+007F><U+0001><U+007F><U+0003><U+007F><U+007F><U+007F><U+0000><U+0004><U+007F><U+007F><U+007F><U+007F><U+0001><U+007F><U+0003><U+007F><U+007F><U+007F><U+0001><U+007F><U+0004><U+007F><U+007F><U+007F><U+007F><U+0000><U+0001><U+007F><U+0001><U+007F><U+0001><U+007F><U+0000><U+0002><U+007F>|<U+0001>|<U+0002><U+007F><U+007F><U+0001>|<U+0002><U+007F>}<U+0001>}<U+0002><U+007F>~<U+0001>~<U+0003><U+007F>~~<U+0001><U+0005><U+007F><U+007F><U+007F><U+007F><U+007F><U+0001><U+007F><U+0002><U+007F>|<U+0001><U+007F><U+0002><U+007F>}<U+0001><U+007F><U+0002><U+007F><U+0001><U+007F><U+0002><U+007F><U+007F><U+0000><U+0006><U+007F><U+007F><U+007F><U+007F><U+007F><U+007F><U+0000>`
| ^
1 error generated.

I tried to change pugixml.bc to pugixml.o, but it didn't work.
However the ones that don't use pugixml have no problem.

emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.56 (cf90417346b78455089e64eb909d71d091ecc055)

@azuremous
Copy link
Contributor

azuremous commented Apr 11, 2024

I downloaded the pugixml library and created a new .bc file with this command:
emcc -c pugixml.cpp -o pugixml.bc -emit-llvm
I also removed -Wl,--gc-sections from config.emscripten.default.mk, and it works now.
(-Wl show this warning.
warning: unknown warning option '-Wl' [-Wunknown-warning-option])

@Jonathhhan
Copy link
Contributor

Jonathhhan commented Apr 11, 2024

@azuremous it should be solved here: openframeworks/apothecary#367

I also removed -Wl,--gc-sections from config.emscripten.default.mk, and it works now.

Was it not working or just showing the warning?

@azuremous
Copy link
Contributor

@Jonathhhan
The '-WL' option only displayed a warning, but the '--gc-sections' option resulted in an error, so I removed it.

@Jonathhhan
Copy link
Contributor

@azuremous alright, added that to the PR #7909

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

4 participants