Opened 2 hours ago

Last modified 69 minutes ago

#71251 assigned defect

emscripten: address sanitizer and LTO builds do not work

Reported by: CodingMarkus Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: emscripten

Description

Neither address sanitizer, nor LTO builds work with the emscripten version MacPorts provide.

When using an emsdk build, it's no problem to use either

-fsanitizer=address

or

-flto=thin

when creating an emscripten build.

But when I try the same thing with emscripten installed by MacPorts, I get

raceback (most recent call last):
  File "/opt/local/bin/emcc.py", line 1613, in <module>
    sys.exit(main(sys.argv))
  File "/Applications/Xcode_16.0.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/opt/local/bin/emcc.py", line 1606, in main
    ret = run(args)
  File "/opt/local/bin/emcc.py", line 662, in run
    return link.run(linker_inputs, options, state, newargs)
  File "/opt/local/libexec/emscripten/tools/link.py", line 3065, in run
    phase_calculate_system_libraries(linker_arguments, newargs)
  File "/Applications/Xcode_16.0.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/opt/local/libexec/emscripten/tools/link.py", line 1834, in phase_calculate_system_libraries
    extra_files_to_link += system_libs.calculate(newargs)
  File "/opt/local/libexec/emscripten/tools/system_libs.py", line 2409, in calculate
    libs_to_link = get_libs_to_link(args)
  File "/opt/local/libexec/emscripten/tools/system_libs.py", line 2364, in get_libs_to_link
    add_library('libc')
  File "/opt/local/libexec/emscripten/tools/system_libs.py", line 2279, in add_library
    libs_to_link.append((lib.get_link_flag(), need_whole_archive))
  File "/opt/local/libexec/emscripten/tools/system_libs.py", line 443, in get_link_flag
    fullpath = self.build()
  File "/opt/local/libexec/emscripten/tools/system_libs.py", line 430, in build
    return cache.get(self.get_path(), self.do_build, force=USE_NINJA == 2, quiet=USE_NINJA)
  File "/opt/local/libexec/emscripten/tools/cache.py", line 155, in get
    raise Exception(f'FROZEN_CACHE is set, but cache file is missing: "{shortname}" (in cache root path "{cachedir}")')
Exception: FROZEN_CACHE is set, but cache file is missing: "sysroot/lib/wasm32-emscripten/libc-asan-debug.a" (in cache root path "/opt/local/libexec/emscripten/cache")

Change History (1)

comment:1 Changed 69 minutes ago by reneeotten (Renee Otten)

Owner: set to MarcusCalhoun-Lopez
Status: newassigned
Summary: Neither address sanitizer, nor LTO builds work with emscriptenemscripten: address sanitizer and LTO builds do not work
Note: See TracTickets for help on using tickets.