lvgl / lv_platformio

PlatformIO project example for LVGL
MIT License
239 stars 87 forks source link

Unable to run the example because SDL2 cannot be linked on macOS with the M1 Max chip #62

Open e7h4n opened 3 months ago

e7h4n commented 3 months ago

What I encountered

I got an error message when I chose "Project Tasks / emulator_64bits / General / Execute":

Linking .pio/build/emulator_64bits/program
ld: warning: ignoring file '/opt/homebrew/Cellar/sdl2/2.30.1/lib/libSDL2-2.0.0.dylib': found architecture 'arm64', required architecture 'x86_64'
ld: Undefined symbols:
  _SDL_CreateRenderer, referenced from:
      _window_create in sdl.o
...
clang: error: linker command failed with exit code 1 (use -v to see invocation)

What I did

What I Expected

Compile & Linking should be successful, and the emulator GUI should appear on my screen.

What I tried

My Environment

Project Dependency


Resolving emulator_64bits dependencies...
Platform native @ 1.2.1 (required: native @ ^1.1.3)
├── contrib-piohome @ 3.4.4 (required: platformio/contrib-piohome)
├── framework-arduino-sam @ 1.6.12 (required: platformio/framework-arduino-sam)
├── framework-arduinoespressif32 @ 3.20014.231204 (required: platformio/framework-arduinoespressif32)
├── framework-cmsis @ 1.40500.0 (required: platformio/framework-cmsis)
├── framework-cmsis-atmel @ 1.2.2 (required: platformio/framework-cmsis-atmel)
├── framework-espidf @ 3.50102.240122 (required: platformio/framework-espidf)
├── tool-cmake @ 3.16.4 (required: platformio/tool-cmake)
├── tool-esptoolpy @ 1.40501.0 (required: platformio/tool-esptoolpy)
├── tool-mkfatfs @ 2.0.1 (required: platformio/tool-mkfatfs)
├── tool-mklittlefs @ 1.203.210628 (required: platformio/tool-mklittlefs)
├── tool-mkspiffs @ 2.230.0 (required: platformio/tool-mkspiffs)
├── tool-ninja @ 1.9.0 (required: platformio/tool-ninja)
├── tool-riscv32-esp-elf-gdb @ 12.1.0+20221002 (required: espressif/tool-riscv32-esp-elf-gdb)
├── tool-scons @ 4.40600.0 (required: platformio/tool-scons)
├── tool-xtensa-esp-elf-gdb @ 12.1.0+20221002 (required: espressif/tool-xtensa-esp-elf-gdb)
├── toolchain-esp32ulp @ 1.23500.220830 (required: platformio/toolchain-esp32ulp)
├── toolchain-gccarmnoneeabi @ 1.70201.0 (required: platformio/toolchain-gccarmnoneeabi)
├── toolchain-riscv32-esp @ 12.2.0+20230208 (required: espressif/toolchain-riscv32-esp)
├── toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 (required: espressif/toolchain-riscv32-esp)
├── toolchain-xtensa-esp32s3 @ 12.2.0+20230208 (required: espressif/toolchain-xtensa-esp32s3)
└── toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5 (required: espressif/toolchain-xtensa-esp32s3)

Libraries
├── lv_drivers @ 8.2.0 (required: https://github.com/lvgl/lv_drivers/archive/refs/tags/v8.2.0.zip)
└── lvgl @ 8.2.0 (required: https://github.com/lvgl/lvgl/archive/refs/tags/v8.2.0.zip)

Resolving emulator_32bits dependencies...
Platform native @ 1.2.1 (required: native @ ^1.1.3)
├── contrib-piohome @ 3.4.4 (required: platformio/contrib-piohome)
├── framework-arduino-sam @ 1.6.12 (required: platformio/framework-arduino-sam)
├── framework-arduinoespressif32 @ 3.20014.231204 (required: platformio/framework-arduinoespressif32)
├── framework-cmsis @ 1.40500.0 (required: platformio/framework-cmsis)
├── framework-cmsis-atmel @ 1.2.2 (required: platformio/framework-cmsis-atmel)
├── framework-espidf @ 3.50102.240122 (required: platformio/framework-espidf)
├── tool-cmake @ 3.16.4 (required: platformio/tool-cmake)
├── tool-esptoolpy @ 1.40501.0 (required: platformio/tool-esptoolpy)
├── tool-mkfatfs @ 2.0.1 (required: platformio/tool-mkfatfs)
├── tool-mklittlefs @ 1.203.210628 (required: platformio/tool-mklittlefs)
├── tool-mkspiffs @ 2.230.0 (required: platformio/tool-mkspiffs)
├── tool-ninja @ 1.9.0 (required: platformio/tool-ninja)
├── tool-riscv32-esp-elf-gdb @ 12.1.0+20221002 (required: espressif/tool-riscv32-esp-elf-gdb)
├── tool-scons @ 4.40600.0 (required: platformio/tool-scons)
├── tool-xtensa-esp-elf-gdb @ 12.1.0+20221002 (required: espressif/tool-xtensa-esp-elf-gdb)
├── toolchain-esp32ulp @ 1.23500.220830 (required: platformio/toolchain-esp32ulp)
├── toolchain-gccarmnoneeabi @ 1.70201.0 (required: platformio/toolchain-gccarmnoneeabi)
├── toolchain-riscv32-esp @ 12.2.0+20230208 (required: espressif/toolchain-riscv32-esp)
├── toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 (required: espressif/toolchain-riscv32-esp)
├── toolchain-xtensa-esp32s3 @ 12.2.0+20230208 (required: espressif/toolchain-xtensa-esp32s3)
└── toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5 (required: espressif/toolchain-xtensa-esp32s3)

Resolving stm32f429_disco dependencies...
No packages

Full platformio.ino

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; http://docs.platformio.org/page/projectconf.html

[platformio]
default_envs = emulator_64bits

; Shared options
[env]
build_flags =
  ; Don't use lv_conf.h. Tweak params via platfom.ini.
  -D LV_CONF_SKIP
  -D LV_CONF_INCLUDE_SIMPLE
  ; Enable LVGL demo, remove when working on your own project
  -D LV_USE_DEMO_WIDGETS=1
  ; Add more defines below to overide lvgl:/src/lv_conf_simple.h
lib_deps =
  ; Use direct URL, because package registry is unstable
  ;lvgl@~7.11.0
  lvgl=https://github.com/lvgl/lvgl/archive/refs/tags/v8.2.0.zip
lib_archive = false

[env:emulator_64bits]
platform = native@^1.1.3
extra_scripts = support/sdl2_build_extra.py
build_flags =
  ${env.build_flags}
  ; -D LV_LOG_LEVEL=LV_LOG_LEVEL_INFO
  -D LV_LOG_PRINTF=1
  ; Add recursive dirs for hal headers search
  !python -c "import os; print(' '.join(['-I {}'.format(i[0].replace('\x5C','/')) for i in os.walk('hal/sdl2')]))"
  -lSDL2
  ; SDL drivers options
  -D LV_LVGL_H_INCLUDE_SIMPLE
  -D LV_DRV_NO_CONF
  -D USE_SDL
  -D SDL_HOR_RES=480
  -D SDL_VER_RES=320  
  -D SDL_ZOOM=1
  -D SDL_INCLUDE_PATH="\"SDL2/SDL.h\""

  ; LVGL memory options, setup for the demo to run properly
  -D LV_MEM_CUSTOM=1
  -D LV_MEM_SIZE="(128U * 1024U)"

  ; SDL2 includes, uncomment the next two lines on MAC OS if you intalled sdl via homebrew
  !find /opt/homebrew/Cellar/sdl2 -name "include" | sed "s/^/-I /"
  !find /opt/homebrew/Cellar/sdl2 -name "libSDL2.a" | xargs dirname | sed "s/^/-L /"

lib_deps =
  ${env.lib_deps}
  ; Use direct URL, because package registry is unstable
  ;lv_drivers@~7.9.0
  lv_drivers=https://github.com/lvgl/lv_drivers/archive/refs/tags/v8.2.0.zip
build_src_filter =
  +<*>
  +<../hal/sdl2>
  ; Force compile LVGL demo, remove when working on your own project
  +<../.pio/libdeps/emulator_64bits/lvgl/demos>

[env:emulator_32bits]
extends = env:emulator_64bits
build_flags =
  ${env:emulator_64bits.build_flags}
  -m32
build_src_filter =
  +<*>
  +<../hal/sdl2>
  +<../.pio/libdeps/emulator_32bits/lvgl/demos>

[env:stm32f429_disco]
platform = ststm32@^8.0.0
board = disco_f429zi
framework = stm32cube
build_flags =
  ${env.build_flags}
  -D LV_LOG_LEVEL=LV_LOG_LEVEL_NONE
  ; header's default is 25MHz, but board uses 8MHz crystal
  -D HSE_VALUE=8000000
  ; Add recursive dirs for hal headers search
  !python -c "import os; print(' '.join(['-I {}'.format(i[0].replace('\x5C','/')) for i in os.walk('hal/stm32f429_disco')]))"
lib_deps =
  ${env.lib_deps}
  BSP-ili9341
  BSP-stmpe811
build_src_filter =
  +<*>
  +<../hal/stm32f429_disco>
  ; Force compile LVGL demo, remove when working on your own project
  +<../.pio/libdeps/stm32f429_disco/lvgl/demos>

Full Log

 *  Executing task: platformio run --target execute --environment emulator_64bits 

Processing emulator_64bits (platform: native@^1.1.3)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 2 compatible libraries
Scanning dependencies...
Dependency Graph
|-- lvgl @ 8.2.0
|-- lv_drivers @ 8.2.0
Building in release mode
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_disp.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_event.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_group.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_indev.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_indev_scroll.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_obj.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_obj_class.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_obj_draw.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_obj_pos.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_obj_scroll.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_obj_style.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_obj_style_gen.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_obj_tree.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_refr.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/core/lv_theme.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_draw.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_draw_arc.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_draw_img.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_draw_label.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_draw_line.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_draw_mask.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_draw_rect.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_draw_triangle.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_img_buf.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_img_cache.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/lv_img_decoder.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/nxp_pxp/lv_gpu_nxp_pxp.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/nxp_pxp/lv_gpu_nxp_pxp_osa.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/nxp_vglite/lv_gpu_nxp_vglite.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_arc.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_bg.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_composite.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_img.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_label.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_line.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_mask.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_polygon.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_rect.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_stack_blur.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_texture_cache.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sdl/lv_draw_sdl_utils.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/stm32_dma2d/lv_gpu_stm32_dma2d.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sw/lv_draw_sw.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sw/lv_draw_sw_arc.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sw/lv_draw_sw_blend.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sw/lv_draw_sw_dither.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sw/lv_draw_sw_gradient.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sw/lv_draw_sw_img.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sw/lv_draw_sw_letter.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sw/lv_draw_sw_line.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sw/lv_draw_sw_polygon.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/draw/sw/lv_draw_sw_rect.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/layouts/flex/lv_flex.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/layouts/grid/lv_grid.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/bmp/lv_bmp.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/ffmpeg/lv_ffmpeg.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/freetype/lv_freetype.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/fsdrv/lv_fs_fatfs.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/fsdrv/lv_fs_posix.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/fsdrv/lv_fs_stdio.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/fsdrv/lv_fs_win32.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/gif/gifdec.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/gif/lv_gif.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/png/lodepng.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/png/lv_png.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/qrcode/lv_qrcode.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/qrcode/qrcodegen.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/rlottie/lv_rlottie.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/sjpg/lv_sjpg.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/libs/sjpg/tjpgd.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/lv_extra.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/others/gridnav/lv_gridnav.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/others/monkey/lv_monkey.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/others/snapshot/lv_snapshot.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/themes/basic/lv_theme_basic.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/themes/default/lv_theme_default.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/themes/mono/lv_theme_mono.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/animimg/lv_animimg.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/calendar/lv_calendar.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/calendar/lv_calendar_header_arrow.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/calendar/lv_calendar_header_dropdown.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/chart/lv_chart.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/colorwheel/lv_colorwheel.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/imgbtn/lv_imgbtn.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/keyboard/lv_keyboard.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/led/lv_led.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/list/lv_list.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/menu/lv_menu.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/meter/lv_meter.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/msgbox/lv_msgbox.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/span/lv_span.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/spinbox/lv_spinbox.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/spinner/lv_spinner.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/tabview/lv_tabview.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/tileview/lv_tileview.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/extra/widgets/win/lv_win.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_dejavu_16_persian_hebrew.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_fmt_txt.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_loader.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_10.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_12.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_12_subpx.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_14.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_16.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_18.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_20.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_22.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_24.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_26.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_28.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_28_compressed.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_30.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_32.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_34.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_36.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_38.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_40.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_42.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_44.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_46.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_48.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_montserrat_8.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_simsun_16_cjk.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_unscii_16.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/font/lv_font_unscii_8.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/hal/lv_hal_disp.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/hal/lv_hal_indev.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/hal/lv_hal_tick.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_anim.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_anim_timeline.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_area.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_async.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_bidi.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_color.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_fs.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_gc.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_ll.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_log.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_lru.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_math.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_mem.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_printf.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_style.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_style_gen.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_templ.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_timer.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_tlsf.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_txt.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_txt_ap.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/misc/lv_utils.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_arc.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_bar.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_btn.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_btnmatrix.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_canvas.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_checkbox.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_dropdown.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_img.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_label.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_line.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_objx_templ.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_roller.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_slider.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_switch.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_table.o
Compiling .pio/build/emulator_64bits/lib90f/lvgl/widgets/lv_textarea.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/display/GC9A01.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/display/ILI9341.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/display/R61581.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/display/SHARP_MIP.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/display/SSD1963.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/display/ST7565.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/display/UC1610.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/display/drm.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/display/fbdev.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/gtkdrv/gtkdrv.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/indev/AD_touch.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/indev/FT5406EE8.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/indev/XPT2046.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/indev/evdev.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/indev/libinput.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/indev/xkb.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/sdl/sdl.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/sdl/sdl_gpu.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/wayland/wayland.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/win32drv/win32drv.o
Compiling .pio/build/emulator_64bits/lib311/lv_drivers/win_drv.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/benchmark/assets/img_benchmark_cogwheel_alpha16.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/benchmark/assets/img_benchmark_cogwheel_argb.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/benchmark/assets/img_benchmark_cogwheel_chroma_keyed.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/benchmark/assets/img_benchmark_cogwheel_indexed16.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/benchmark/assets/img_benchmark_cogwheel_rgb.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/benchmark/assets/lv_font_bechmark_montserrat_12_compr_az.c.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/benchmark/assets/lv_font_bechmark_montserrat_16_compr_az.c.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/benchmark/assets/lv_font_bechmark_montserrat_28_compr_az.c.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/benchmark/lv_demo_benchmark.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/keypad_encoder/lv_demo_keypad_encoder.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_corner_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_list_pause.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_list_pause_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_list_play.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_list_play_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_loop.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_loop_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_next.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_next_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_pause.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_pause_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_play.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_play_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_prev.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_prev_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_rnd.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_btn_rnd_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_corner_left.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_corner_left_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_corner_right.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_corner_right_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_cover_1.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_cover_1_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_cover_2.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_cover_2_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_cover_3.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_cover_3_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_icon_1.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_icon_1_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_icon_2.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_icon_2_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_icon_3.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_icon_3_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_icon_4.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_icon_4_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_list_border.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_list_border_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_logo.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_slider_knob.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_slider_knob_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_wave_bottom.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_wave_bottom_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_wave_top.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/assets/img_lv_demo_music_wave_top_large.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/lv_demo_music.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/lv_demo_music_list.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/music/lv_demo_music_main.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/stress/assets/lv_font_montserrat_12_compr_az.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/stress/assets/lv_font_montserrat_16_compr_az.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/stress/assets/lv_font_montserrat_28_compr_az.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/stress/lv_demo_stress.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/widgets/assets/img_clothes.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/widgets/assets/img_demo_widgets_avatar.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/widgets/assets/img_lvgl_logo.o
Compiling .pio/build/emulator_64bits/.pio/libdeps/emulator_64bits/lvgl/demos/widgets/lv_demo_widgets.o
Compiling .pio/build/emulator_64bits/hal/sdl2/app_hal.o
Compiling .pio/build/emulator_64bits/src/main.o
Linking .pio/build/emulator_64bits/program
ld: warning: ignoring file '/opt/homebrew/Cellar/sdl2/2.30.1/lib/libSDL2-2.0.0.dylib': found architecture 'arm64', required architecture 'x86_64'
ld: Undefined symbols:
  _SDL_CreateRenderer, referenced from:
      _window_create in sdl.o
  _SDL_CreateTexture, referenced from:
      _window_create in sdl.o
  _SDL_CreateThread, referenced from:
      _sdl_init in sdl.o
      _hal_setup in app_hal.o
  _SDL_CreateWindow, referenced from:
      _window_create in sdl.o
  _SDL_Delay, referenced from:
      _tick_thread in sdl.o
      _tick_thread in app_hal.o
      _hal_loop in app_hal.o
  _SDL_DestroyRenderer, referenced from:
      _monitor_sdl_clean_up in sdl.o
  _SDL_DestroyTexture, referenced from:
      _monitor_sdl_clean_up in sdl.o
  _SDL_DestroyWindow, referenced from:
      _monitor_sdl_clean_up in sdl.o
  _SDL_Init, referenced from:
      _sdl_init in sdl.o
  _SDL_PollEvent, referenced from:
      _sdl_event_handler in sdl.o
  _SDL_Quit, referenced from:
      _monitor_sdl_clean_up in sdl.o
  _SDL_RenderClear, referenced from:
      _window_update in sdl.o
  _SDL_RenderCopy, referenced from:
      _window_update in sdl.o
  _SDL_RenderPresent, referenced from:
      _window_update in sdl.o
  _SDL_SetEventFilter, referenced from:
      _sdl_init in sdl.o
  _SDL_SetTextureBlendMode, referenced from:
      _window_create in sdl.o
  _SDL_StartTextInput, referenced from:
      _sdl_init in sdl.o
  _SDL_UpdateTexture, referenced from:
      _window_update in sdl.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
*** [.pio/build/emulator_64bits/program] Error 1
============================================================================================================ [FAILED] Took 23.58 seconds ============================================================================================================

Environment      Status    Duration
---------------  --------  ------------
emulator_64bits  FAILED    00:00:23.584
======================================================================================================= 1 failed, 0 succeeded in 00:00:23.584 =======================================================================================================

 *  The terminal process "platformio 'run', '--target', 'execute', '--environment', 'emulator_64bits'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 
e7h4n commented 3 months ago

I tried to install 2.26.4 SDL2, which someone said works in m-chip mbp, but I still got this error. Maybe I should build an x86_64 arch manually.

e7h4n commented 3 months ago

Another try:

But still got other error messages:

...
  _CFStringGetMaximumSizeForEncoding, referenced from:
      _COREAUDIO_GetDefaultAudioInfo in libSDL2.a[142](SDL_coreaudio.m.o)
      _build_device_list in libSDL2.a[142](SDL_coreaudio.m.o)
  _CFStringGetSystemEncoding, referenced from:
      _HIDGetDeviceProduct in libSDL2.a[162](SDL_syshaptic.c.o)
  _CFStringGetTypeID, referenced from:
      _get_string_property_utf8 in libSDL2.a[36](SDL_hidapi.c.o)
      _get_string_property_utf8 in libSDL2.a[36](SDL_hidapi.c.o)
      _get_string_property in libSDL2.a[36](SDL_hidapi.c.o)
      _get_string_property in libSDL2.a[36](SDL_hidapi.c.o)
  _CFURLCreateWithBytes, referenced from:
      _SDL_SYS_OpenURL in libSDL2.a[141](SDL_sysurl.m.o)
  _CFUUIDGetConstantUUIDWithBytes, referenced from:
      _DARWIN_JoystickInitRumble in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticEffectType in libSDL2.a[162](SDL_syshaptic.c.o)
      ...
  _CGAcquireDisplayFadeReservation, referenced from:
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGAssociateMouseAndMouseCursorPosition, referenced from:
      _Cocoa_WarpMouseGlobal in libSDL2.a[173](SDL_cocoamouse.m.o)
      _Cocoa_SetRelativeMouseMode in libSDL2.a[173](SDL_cocoamouse.m.o)
      _Cocoa_SetRelativeMouseMode in libSDL2.a[173](SDL_cocoamouse.m.o)
      -[Cocoa_WindowListener mouseMoved:] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _CGCaptureAllDisplays, referenced from:
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGColorGetConstantColor, referenced from:
      -[SDLView drawRect:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[SDLView updateLayer] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _CGDisplayBounds, referenced from:
      _Cocoa_GetDisplayBounds in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayCapture, referenced from:
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayCopyAllDisplayModes, referenced from:
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayModes in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayCopyDisplayMode, referenced from:
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayModes in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayFade, referenced from:
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayIDToOpenGLDisplayMask, referenced from:
      _Cocoa_GL_CreateContext in libSDL2.a[174](SDL_cocoaopengl.m.o)
  _CGDisplayIOServicePort, referenced from:
      _Cocoa_GetDisplayName in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayIsMain, referenced from:
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayMirrorsDisplay, referenced from:
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayModeCopyPixelEncoding, referenced from:
      _GetDisplayModePixelFormat in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayModeGetHeight, referenced from:
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayModeGetIOFlags, referenced from:
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
      _HasValidDisplayModeFlags in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayModeGetPixelHeight, referenced from:
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayModeGetPixelWidth, referenced from:
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayModeGetRefreshRate, referenced from:
      _GetDisplayModeRefreshRate in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayModeGetWidth, referenced from:
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayModeIsUsableForDesktopGUI, referenced from:
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayModeRelease, referenced from:
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayModes in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayMoveCursorToPoint, referenced from:
      -[Cocoa_WindowListener onMovingOrFocusClickPendingStateCleared] in libSDL2.a[179](SDL_cocoawindow.m.o)
      _Cocoa_UpdateClipCursor in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener mouseMoved:] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _CGDisplayPixelsHigh, referenced from:
      _Cocoa_GetDisplayUsableBounds in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetGlobalMouseState in libSDL2.a[173](SDL_cocoamouse.m.o)
      _Cocoa_HandleMouseEvent in libSDL2.a[173](SDL_cocoamouse.m.o)
      _ConvertNSRect in libSDL2.a[179](SDL_cocoawindow.m.o)
  _CGDisplayPixelsWide, referenced from:
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayRelease, referenced from:
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplayScreenSize, referenced from:
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGDisplaySetDisplayMode, referenced from:
      _SetDisplayModeForDisplay in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGGetDisplayTransferByTable, referenced from:
      _Cocoa_GetWindowGammaRamp in libSDL2.a[179](SDL_cocoawindow.m.o)
  _CGGetOnlineDisplayList, referenced from:
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGMainDisplayID, referenced from:
      _Cocoa_GetDisplayUsableBounds in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetGlobalMouseState in libSDL2.a[173](SDL_cocoamouse.m.o)
      _Cocoa_HandleMouseEvent in libSDL2.a[173](SDL_cocoamouse.m.o)
      -[Cocoa_WindowListener onMovingOrFocusClickPendingStateCleared] in libSDL2.a[179](SDL_cocoawindow.m.o)
      _Cocoa_UpdateClipCursor in libSDL2.a[179](SDL_cocoawindow.m.o)
      _ConvertNSRect in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener mouseMoved:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      ...
  _CGReleaseAllDisplays, referenced from:
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGReleaseDisplayFadeReservation, referenced from:
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_SetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CGSetDisplayTransferByTable, referenced from:
      _Cocoa_SetWindowGammaRamp in libSDL2.a[179](SDL_cocoawindow.m.o)
  _CGShieldingWindowLevel, referenced from:
      _Cocoa_SetWindowFullscreen in libSDL2.a[179](SDL_cocoawindow.m.o)
      _Cocoa_SetWindowMouseGrab in libSDL2.a[179](SDL_cocoawindow.m.o)
  _CGWarpMouseCursorPosition, referenced from:
      _Cocoa_WarpMouseGlobal in libSDL2.a[173](SDL_cocoamouse.m.o)
      _Cocoa_SetRelativeMouseMode in libSDL2.a[173](SDL_cocoamouse.m.o)
  _CHHapticDynamicParameterIDHapticIntensityControl, referenced from:
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
  _CHHapticEventParameterIDHapticIntensity, referenced from:
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
  _CHHapticEventTypeHapticContinuous, referenced from:
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
  _CVDisplayLinkCreateWithActiveCGDisplays, referenced from:
      -[SDLOpenGLContext initWithFormat:shareContext:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
  _CVDisplayLinkCreateWithCGDisplay, referenced from:
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayModes in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CVDisplayLinkGetNominalOutputVideoRefreshPeriod, referenced from:
      _GetDisplayModeRefreshRate in libSDL2.a[172](SDL_cocoamodes.m.o)
  _CVDisplayLinkRelease, referenced from:
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_InitModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      -[SDLOpenGLContext cleanup] in libSDL2.a[174](SDL_cocoaopengl.m.o)
  _CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext, referenced from:
      -[SDLOpenGLContext initWithFormat:shareContext:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
      -[SDLOpenGLContext movedToNewScreen] in libSDL2.a[174](SDL_cocoaopengl.m.o)
  _CVDisplayLinkSetOutputCallback, referenced from:
      -[SDLOpenGLContext initWithFormat:shareContext:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
  _CVDisplayLinkStart, referenced from:
      -[SDLOpenGLContext initWithFormat:shareContext:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
  _FFCreateDevice, referenced from:
      _DARWIN_JoystickInitRumble in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _SDL_SYS_HapticOpenFromService in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFDeviceCreateEffect, referenced from:
      _DARWIN_JoystickInitRumble in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _SDL_SYS_HapticNewEffect in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFDeviceGetForceFeedbackCapabilities, referenced from:
      _GetSupportedFeatures in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFDeviceGetForceFeedbackProperty, referenced from:
      _GetSupportedFeatures in libSDL2.a[162](SDL_syshaptic.c.o)
      _GetSupportedFeatures in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFDeviceReleaseEffect, referenced from:
      _JoystickDeviceWasRemovedCallback in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _SDL_SYS_HapticDestroyEffect in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFDeviceSendForceFeedbackCommand, referenced from:
      _DARWIN_JoystickInitRumble in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _DARWIN_JoystickInitRumble in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _SDL_SYS_HapticOpenFromService in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticOpenFromService in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticPause in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticUnpause in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticStopAll in libSDL2.a[162](SDL_syshaptic.c.o)
      ...
  _FFDeviceSetForceFeedbackProperty, referenced from:
      _SDL_SYS_HapticSetGain in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticSetAutocenter in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFEffectGetEffectStatus, referenced from:
      _SDL_SYS_HapticGetEffectStatus in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFEffectSetParameters, referenced from:
      _DARWIN_JoystickRumble in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _SDL_SYS_HapticUpdateEffect in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFEffectStart, referenced from:
      _DARWIN_JoystickRumble in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _SDL_SYS_HapticRunEffect in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFEffectStop, referenced from:
      _SDL_SYS_HapticStopEffect in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFIsForceFeedback, referenced from:
      _JoystickDeviceWasAddedCallback in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _MacHaptic_MaybeAddDevice in libSDL2.a[162](SDL_syshaptic.c.o)
  _FFReleaseDevice, referenced from:
      _JoystickDeviceWasRemovedCallback in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _SDL_SYS_HapticOpenFromService in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticClose in libSDL2.a[162](SDL_syshaptic.c.o)
  _GCControllerDidConnectNotification, referenced from:
      _IOS_JoystickInit in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickQuit in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCControllerDidDisconnectNotification, referenced from:
      _IOS_JoystickInit in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickQuit in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCHapticDurationInfinite, referenced from:
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCHapticsLocalityHandles, referenced from:
      _IOS_JoystickGetCapabilities in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCHapticsLocalityLeftHandle, referenced from:
      _IOS_JoystickInitRumble in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCHapticsLocalityLeftTrigger, referenced from:
      _IOS_JoystickInitRumble in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCHapticsLocalityRightHandle, referenced from:
      _IOS_JoystickInitRumble in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCHapticsLocalityRightTrigger, referenced from:
      _IOS_JoystickInitRumble in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCHapticsLocalityTriggers, referenced from:
      _IOS_JoystickGetCapabilities in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputButtonA, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputButtonB, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputButtonHome, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputButtonMenu, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputButtonOptions, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputButtonX, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputButtonY, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputDirectionPad, referenced from:
      _GetDirectionalPadForController in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputDualShockTouchpadButton, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_AddMFIJoystickDevice in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputDualShockTouchpadOne, referenced from:
      _IOS_MFIJoystickUpdate in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputDualShockTouchpadTwo, referenced from:
      _IOS_MFIJoystickUpdate in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputLeftShoulder, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputLeftThumbstick, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForAxis in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_GameControllerGetAppleSFSymbolsNameForAxis in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputLeftThumbstickButton, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputLeftTrigger, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForAxis in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputRightShoulder, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputRightThumbstick, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForAxis in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_GameControllerGetAppleSFSymbolsNameForAxis in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputRightThumbstickButton, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputRightTrigger, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForAxis in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputXboxPaddleFour, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputXboxPaddleOne, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_AddMFIJoystickDevice in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputXboxPaddleThree, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _GCInputXboxPaddleTwo, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
  _IODispatchCalloutFromMessage, referenced from:
      _HIDAPI_UpdateDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
  _IODisplayCreateInfoDictionary, referenced from:
      _Cocoa_GetDisplayName in libSDL2.a[172](SDL_cocoamodes.m.o)
  _IOHIDDeviceClose, referenced from:
      _PLATFORM_hid_close in libSDL2.a[36](SDL_hidapi.c.o)
  _IOHIDDeviceCopyMatchingElements, referenced from:
      _GetDeviceInfo in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDDeviceGetProperty, referenced from:
      _get_int_property in libSDL2.a[36](SDL_hidapi.c.o)
      _get_string_property_utf8 in libSDL2.a[36](SDL_hidapi.c.o)
      _get_string_property in libSDL2.a[36](SDL_hidapi.c.o)
      _GetDeviceInfo in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _GetDeviceInfo in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _GetDeviceInfo in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _GetDeviceInfo in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _GetDeviceInfo in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _GetDeviceInfo in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _GetDeviceInfo in libSDL2.a[160](SDL_iokitjoystick.c.o)
      ...
  _IOHIDDeviceGetReport, referenced from:
      _PLATFORM_hid_get_feature_report in libSDL2.a[36](SDL_hidapi.c.o)
  _IOHIDDeviceGetService, referenced from:
      _JoystickDeviceWasAddedCallback in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDDeviceGetValue, referenced from:
      _GetHIDElementState in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDDeviceOpen, referenced from:
      _PLATFORM_hid_open_path in libSDL2.a[36](SDL_hidapi.c.o)
  _IOHIDDeviceRegisterInputReportCallback, referenced from:
      _PLATFORM_hid_open_path in libSDL2.a[36](SDL_hidapi.c.o)
      _PLATFORM_hid_close in libSDL2.a[36](SDL_hidapi.c.o)
  _IOHIDDeviceRegisterRemovalCallback, referenced from:
      _JoystickDeviceWasAddedCallback in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDDeviceScheduleWithRunLoop, referenced from:
      _PLATFORM_read_thread in libSDL2.a[36](SDL_hidapi.c.o)
      _PLATFORM_hid_close in libSDL2.a[36](SDL_hidapi.c.o)
      _JoystickDeviceWasAddedCallback in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDDeviceSetReport, referenced from:
      _set_report in libSDL2.a[36](SDL_hidapi.c.o)
  _IOHIDDeviceUnscheduleFromRunLoop, referenced from:
      _PLATFORM_hid_close in libSDL2.a[36](SDL_hidapi.c.o)
      _FreeDevice in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDElementGetChildren, referenced from:
      _AddHIDElement in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDElementGetCookie, referenced from:
      _AddHIDElement in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _AddHIDElement in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDElementGetLogicalMax, referenced from:
      _AddHIDElement in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDElementGetLogicalMin, referenced from:
      _AddHIDElement in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDElementGetType, referenced from:
      _AddHIDElement in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDElementGetTypeID, referenced from:
      _AddHIDElement in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDElementGetUsage, referenced from:
      _AddHIDElement in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDElementGetUsagePage, referenced from:
      _AddHIDElement in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDManagerClose, referenced from:
      _PLATFORM_hid_exit in libSDL2.a[36](SDL_hidapi.c.o)
      _DARWIN_JoystickQuit in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDManagerCopyDevices, referenced from:
      _PLATFORM_hid_enumerate in libSDL2.a[36](SDL_hidapi.c.o)
      _PLATFORM_hid_open_path in libSDL2.a[36](SDL_hidapi.c.o)
  _IOHIDManagerCreate, referenced from:
      _init_hid_manager in libSDL2.a[36](SDL_hidapi.c.o)
      _CreateHIDManager in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDManagerOpen, referenced from:
      _ConfigHIDManager in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDManagerRegisterDeviceMatchingCallback, referenced from:
      _ConfigHIDManager in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDManagerRegisterDeviceRemovalCallback, referenced from:
      _init_hid_manager in libSDL2.a[36](SDL_hidapi.c.o)
  _IOHIDManagerScheduleWithRunLoop, referenced from:
      _init_hid_manager in libSDL2.a[36](SDL_hidapi.c.o)
      _ConfigHIDManager in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDManagerSetDeviceMatchingMultiple, referenced from:
      _init_hid_manager in libSDL2.a[36](SDL_hidapi.c.o)
      _ConfigHIDManager in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDManagerUnscheduleFromRunLoop, referenced from:
      _DARWIN_JoystickQuit in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOHIDValueGetIntegerValue, referenced from:
      _GetHIDElementState in libSDL2.a[160](SDL_iokitjoystick.c.o)
  _IOIteratorIsValid, referenced from:
      _SDL_SYS_HapticInit in libSDL2.a[162](SDL_syshaptic.c.o)
  _IOIteratorNext, referenced from:
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
      _CallbackIOServiceFunc in libSDL2.a[36](SDL_hidapi.c.o)
      _SDL_SYS_HapticInit in libSDL2.a[162](SDL_syshaptic.c.o)
  _IONotificationPortCreate, referenced from:
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
  _IONotificationPortDestroy, referenced from:
      _HIDAPI_ShutdownDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
  _IONotificationPortGetMachPort, referenced from:
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
  _IOObjectIsEqualTo, referenced from:
      _MacHaptic_MaybeAddDevice in libSDL2.a[162](SDL_syshaptic.c.o)
      _MacHaptic_MaybeRemoveDevice in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_JoystickSameHaptic in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticOpenFromJoystick in libSDL2.a[162](SDL_syshaptic.c.o)
  _IOObjectRelease, referenced from:
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
      _CallbackIOServiceFunc in libSDL2.a[36](SDL_hidapi.c.o)
      _SDL_SYS_HapticInit in libSDL2.a[162](SDL_syshaptic.c.o)
      _SDL_SYS_HapticInit in libSDL2.a[162](SDL_syshaptic.c.o)
      _HIDGetDeviceProduct in libSDL2.a[162](SDL_syshaptic.c.o)
      _HIDGetDeviceProduct in libSDL2.a[162](SDL_syshaptic.c.o)
      ...
  _IOObjectRetain, referenced from:
      _MacHaptic_MaybeAddDevice in libSDL2.a[162](SDL_syshaptic.c.o)
  _IOPMAssertionCreateWithDescription, referenced from:
      _Cocoa_SuspendScreenSaver in libSDL2.a[168](SDL_cocoaevents.m.o)
  _IOPMAssertionRelease, referenced from:
      _Cocoa_SuspendScreenSaver in libSDL2.a[168](SDL_cocoaevents.m.o)
  _IOPSCopyPowerSourcesInfo, referenced from:
      _SDL_GetPowerInfo_MacOSX in libSDL2.a[163](SDL_syspower.c.o)
  _IOPSCopyPowerSourcesList, referenced from:
      _SDL_GetPowerInfo_MacOSX in libSDL2.a[163](SDL_syspower.c.o)
  _IOPSGetPowerSourceDescription, referenced from:
      _SDL_GetPowerInfo_MacOSX in libSDL2.a[163](SDL_syspower.c.o)
  _IORegistryEntryCreateCFProperties, referenced from:
      _MacHaptic_MaybeAddDevice in libSDL2.a[162](SDL_syshaptic.c.o)
      _HIDGetDeviceProduct in libSDL2.a[162](SDL_syshaptic.c.o)
      _HIDGetDeviceProduct in libSDL2.a[162](SDL_syshaptic.c.o)
  _IORegistryEntryGetParentEntry, referenced from:
      _HIDGetDeviceProduct in libSDL2.a[162](SDL_syshaptic.c.o)
      _HIDGetDeviceProduct in libSDL2.a[162](SDL_syshaptic.c.o)
  _IOServiceAddMatchingNotification, referenced from:
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
  _IOServiceGetMatchingServices, referenced from:
      _SDL_SYS_HapticInit in libSDL2.a[162](SDL_syshaptic.c.o)
  _IOServiceMatching, referenced from:
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
      _SDL_SYS_HapticInit in libSDL2.a[162](SDL_syshaptic.c.o)
  _KBGetLayoutType, referenced from:
      _UpdateKeymap in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      _Cocoa_HandleKeyEvent in libSDL2.a[169](SDL_cocoakeyboard.m.o)
  _LMGetKbdType, referenced from:
      _UpdateKeymap in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      _UpdateKeymap in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      _Cocoa_HandleKeyEvent in libSDL2.a[169](SDL_cocoakeyboard.m.o)
  _LSOpenCFURLRef, referenced from:
      _SDL_SYS_OpenURL in libSDL2.a[141](SDL_sysurl.m.o)
  _MTLCopyAllDevices, referenced from:
      _METAL_CreateRenderer in libSDL2.a[180](SDL_render_metal.m.o)
  _MTLCreateSystemDefaultDevice, referenced from:
      _METAL_CreateRenderer in libSDL2.a[180](SDL_render_metal.m.o)
  _NSApp, referenced from:
      -[SDLAppDelegate dealloc] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLAppDelegate windowWillClose:] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLAppDelegate windowWillClose:] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLAppDelegate focusSomeWindow:] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLAppDelegate focusSomeWindow:] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLAppDelegate applicationDidFinishLaunching:] in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      ...
  _NSAppKitVersionNumber, referenced from:
      _LoadMainMenuNibIfAvailable in libSDL2.a[168](SDL_cocoaevents.m.o)
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayModes in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_UpdateClipCursor in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener mouseMoved:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      _Cocoa_SetWindowFullscreen in libSDL2.a[179](SDL_cocoawindow.m.o)
      ...
  _NSApplicationDidBecomeActiveNotification, referenced from:
      -[SDLAppDelegate init] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLAppDelegate dealloc] in libSDL2.a[168](SDL_cocoaevents.m.o)
  _NSBackingPropertyOldScaleFactorKey, referenced from:
      -[Cocoa_WindowListener windowDidChangeBackingProperties:] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSClassFromString, referenced from:
      +[SDL_cocoametalview layerClass] in libSDL2.a[171](SDL_cocoametalview.m.o)
  _NSCurrentLocaleDidChangeNotification, referenced from:
      -[SDLAppDelegate init] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLAppDelegate dealloc] in libSDL2.a[168](SDL_cocoaevents.m.o)
  _NSDefaultRunLoopMode, referenced from:
      _Cocoa_PumpEventsUntilDate in libSDL2.a[168](SDL_cocoaevents.m.o)
  _NSDeviceRGBColorSpace, referenced from:
      _Cocoa_CreateImage in libSDL2.a[177](SDL_cocoavideo.m.o)
  _NSFilenamesPboardType, referenced from:
      -[SDLWindow performDragOperation:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[SDLWindow performDragOperation:] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSLog, referenced from:
      _SDL_NSLog in libSDL2.a[177](SDL_cocoavideo.m.o)
      _SDL_NSLog in libSDL2.a[177](SDL_cocoavideo.m.o)
  _NSMouseInRect, referenced from:
      _Cocoa_HandleMouseEvent in libSDL2.a[173](SDL_cocoamouse.m.o)
      _Cocoa_HandleMouseEvent in libSDL2.a[173](SDL_cocoamouse.m.o)
      -[Cocoa_WindowListener mouseDown:] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSPasteboardTypeString, referenced from:
      _Cocoa_SetClipboardText in libSDL2.a[167](SDL_cocoaclipboard.m.o)
      _Cocoa_GetClipboardText in libSDL2.a[167](SDL_cocoaclipboard.m.o)
  _NSRectFill, referenced from:
      _Cocoa_SetWindowShape in libSDL2.a[176](SDL_cocoashape.m.o)
      -[SDLView drawRect:] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSSearchPathForDirectoriesInDomains, referenced from:
      _SDL_GetPrefPath_REAL in libSDL2.a[166](SDL_sysfilesystem.m.o)
  _NSURLIsAliasFileKey, referenced from:
      -[SDLWindow performDragOperation:] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidBecomeKeyNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidChangeBackingPropertiesNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidChangeScreenNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidChangeScreenProfileNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidDeminiaturizeNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidEnterFullScreenNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidExitFullScreenNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidExposeNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidMiniaturizeNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidMoveNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidResignKeyNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowDidResizeNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowWillCloseNotification, referenced from:
      -[SDLAppDelegate init] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLAppDelegate dealloc] in libSDL2.a[168](SDL_cocoaevents.m.o)
  _NSWindowWillEnterFullScreenNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSWindowWillExitFullScreenNotification, referenced from:
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener close] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _NSZeroPoint, referenced from:
      +[NSCursor(InvisibleCursor) invisibleCursor] in libSDL2.a[173](SDL_cocoamouse.m.o)
      +[NSCursor(InvisibleCursor) invisibleCursor] in libSDL2.a[173](SDL_cocoamouse.m.o)
  _NSZeroRect, referenced from:
      _Cocoa_UpdateClipCursor in libSDL2.a[179](SDL_cocoawindow.m.o)
  _OBJC_CLASS_$_CHHapticDynamicParameter, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_CHHapticEvent, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_CHHapticEventParameter, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_CHHapticPattern, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_GCColor, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_GCController, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_GCControllerAxisInput, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_GCControllerButtonInput, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_MTLRenderPassDescriptor, referenced from:
       in libSDL2.a[180](SDL_render_metal.m.o)
  _OBJC_CLASS_$_MTLRenderPipelineDescriptor, referenced from:
       in libSDL2.a[180](SDL_render_metal.m.o)
  _OBJC_CLASS_$_MTLSamplerDescriptor, referenced from:
       in libSDL2.a[180](SDL_render_metal.m.o)
  _OBJC_CLASS_$_MTLTextureDescriptor, referenced from:
       in libSDL2.a[180](SDL_render_metal.m.o)
  _OBJC_CLASS_$_MTLVertexDescriptor, referenced from:
       in libSDL2.a[180](SDL_render_metal.m.o)
  _OBJC_CLASS_$_NSAlert, referenced from:
       in libSDL2.a[170](SDL_cocoamessagebox.m.o)
  _OBJC_CLASS_$_NSAppleEventManager, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSApplication, referenced from:
      _OBJC_CLASS_$_SDLApplication in libSDL2.a[168](SDL_cocoaevents.m.o)
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSArray, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_NSAttributedString, referenced from:
       in libSDL2.a[169](SDL_cocoakeyboard.m.o)
  _OBJC_CLASS_$_NSBezierPath, referenced from:
       in libSDL2.a[176](SDL_cocoashape.m.o)
  _OBJC_CLASS_$_NSBitmapImageRep, referenced from:
       in libSDL2.a[177](SDL_cocoavideo.m.o)
  _OBJC_CLASS_$_NSBundle, referenced from:
       in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
  _OBJC_CLASS_$_NSColor, referenced from:
       in libSDL2.a[176](SDL_cocoashape.m.o)
  _OBJC_CLASS_$_NSColorSpace, referenced from:
       in libSDL2.a[179](SDL_cocoawindow.m.o)
  _OBJC_CLASS_$_NSCursor, referenced from:
       in libSDL2.a[173](SDL_cocoamouse.m.o)
      __OBJC_$_CATEGORY_NSCursor_$_InvisibleCursor in libSDL2.a[173](SDL_cocoamouse.m.o)
  _OBJC_CLASS_$_NSData, referenced from:
       in libSDL2.a[173](SDL_cocoamouse.m.o)
  _OBJC_CLASS_$_NSDate, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSDictionary, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSEvent, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSFileManager, referenced from:
       in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
  _OBJC_CLASS_$_NSGraphicsContext, referenced from:
       in libSDL2.a[176](SDL_cocoashape.m.o)
  _OBJC_CLASS_$_NSImage, referenced from:
       in libSDL2.a[173](SDL_cocoamouse.m.o)
  _OBJC_CLASS_$_NSLocale, referenced from:
       in libSDL2.a[164](SDL_syslocale.m.o)
  _OBJC_CLASS_$_NSMenu, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSMenuItem, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSMutableArray, referenced from:
       in libSDL2.a[179](SDL_cocoawindow.m.o)
  _OBJC_CLASS_$_NSNotificationCenter, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_NSNumber, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSObject, referenced from:
      _OBJC_CLASS_$_SDL_RumbleMotor in libSDL2.a[161](SDL_mfijoystick.m.o)
      _OBJC_CLASS_$_SDL_RumbleContext in libSDL2.a[161](SDL_mfijoystick.m.o)
      _OBJC_CLASS_$_SDLAppDelegate in libSDL2.a[168](SDL_cocoaevents.m.o)
      _OBJC_CLASS_$_SDLMessageBoxPresenter in libSDL2.a[170](SDL_cocoamessagebox.m.o)
      _OBJC_CLASS_$_SDL_ShapeData in libSDL2.a[176](SDL_cocoashape.m.o)
      _OBJC_CLASS_$_SDL_CocoaClosure in libSDL2.a[176](SDL_cocoashape.m.o)
      _OBJC_CLASS_$_SDL_VideoData in libSDL2.a[177](SDL_cocoavideo.m.o)
      ...
  _OBJC_CLASS_$_NSOpenGLContext, referenced from:
      _OBJC_CLASS_$_SDLOpenGLContext in libSDL2.a[174](SDL_cocoaopengl.m.o)
       in libSDL2.a[174](SDL_cocoaopengl.m.o)
  _OBJC_CLASS_$_NSOpenGLPixelFormat, referenced from:
       in libSDL2.a[174](SDL_cocoaopengl.m.o)
  _OBJC_CLASS_$_NSPasteboard, referenced from:
       in libSDL2.a[167](SDL_cocoaclipboard.m.o)
  _OBJC_CLASS_$_NSPredicate, referenced from:
       in libSDL2.a[161](SDL_mfijoystick.m.o)
  _OBJC_CLASS_$_NSProcessInfo, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSResponder, referenced from:
      _OBJC_CLASS_$_Cocoa_WindowListener in libSDL2.a[179](SDL_cocoawindow.m.o)
  _OBJC_CLASS_$_NSRunningApplication, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSScreen, referenced from:
       in libSDL2.a[172](SDL_cocoamodes.m.o)
  _OBJC_CLASS_$_NSString, referenced from:
       in libSDL2.a[167](SDL_cocoaclipboard.m.o)
  _OBJC_CLASS_$_NSThread, referenced from:
       in libSDL2.a[170](SDL_cocoamessagebox.m.o)
  _OBJC_CLASS_$_NSURL, referenced from:
       in libSDL2.a[179](SDL_cocoawindow.m.o)
  _OBJC_CLASS_$_NSUserDefaults, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_CLASS_$_NSView, referenced from:
      _OBJC_CLASS_$_SDLTranslatorResponder in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      _OBJC_CLASS_$_SDL_cocoametalview in libSDL2.a[171](SDL_cocoametalview.m.o)
      _OBJC_CLASS_$_SDLView in libSDL2.a[179](SDL_cocoawindow.m.o)
       in libSDL2.a[179](SDL_cocoawindow.m.o)
  _OBJC_CLASS_$_NSWindow, referenced from:
       in libSDL2.a[168](SDL_cocoaevents.m.o)
      _OBJC_CLASS_$_SDLWindow in libSDL2.a[179](SDL_cocoawindow.m.o)
  _OBJC_EHTYPE_$_NSException, referenced from:
      GCC_except_table93 in libSDL2.a[179](SDL_cocoawindow.m.o)
      GCC_except_table108 in libSDL2.a[179](SDL_cocoawindow.m.o)
  _OBJC_METACLASS_$_NSApplication, referenced from:
      _OBJC_METACLASS_$_SDLApplication in libSDL2.a[168](SDL_cocoaevents.m.o)
  _OBJC_METACLASS_$_NSObject, referenced from:
      _OBJC_METACLASS_$_SDL_RumbleMotor in libSDL2.a[161](SDL_mfijoystick.m.o)
      _OBJC_METACLASS_$_SDL_RumbleMotor in libSDL2.a[161](SDL_mfijoystick.m.o)
      _OBJC_METACLASS_$_SDL_RumbleContext in libSDL2.a[161](SDL_mfijoystick.m.o)
      _OBJC_METACLASS_$_SDL_RumbleContext in libSDL2.a[161](SDL_mfijoystick.m.o)
      _OBJC_METACLASS_$_SDLApplication in libSDL2.a[168](SDL_cocoaevents.m.o)
      _OBJC_METACLASS_$_SDLAppDelegate in libSDL2.a[168](SDL_cocoaevents.m.o)
      _OBJC_METACLASS_$_SDLAppDelegate in libSDL2.a[168](SDL_cocoaevents.m.o)
      ...
  _OBJC_METACLASS_$_NSOpenGLContext, referenced from:
      _OBJC_METACLASS_$_SDLOpenGLContext in libSDL2.a[174](SDL_cocoaopengl.m.o)
  _OBJC_METACLASS_$_NSResponder, referenced from:
      _OBJC_METACLASS_$_Cocoa_WindowListener in libSDL2.a[179](SDL_cocoawindow.m.o)
  _OBJC_METACLASS_$_NSView, referenced from:
      _OBJC_METACLASS_$_SDLTranslatorResponder in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      _OBJC_METACLASS_$_SDL_cocoametalview in libSDL2.a[171](SDL_cocoametalview.m.o)
      _OBJC_METACLASS_$_SDLView in libSDL2.a[179](SDL_cocoawindow.m.o)
  _OBJC_METACLASS_$_NSWindow, referenced from:
      _OBJC_METACLASS_$_SDLWindow in libSDL2.a[179](SDL_cocoawindow.m.o)
  _TISCopyCurrentKeyboardLayoutInputSource, referenced from:
      _UpdateKeymap in libSDL2.a[169](SDL_cocoakeyboard.m.o)
  _TISGetInputSourceProperty, referenced from:
      _UpdateKeymap in libSDL2.a[169](SDL_cocoakeyboard.m.o)
  _UCKeyTranslate, referenced from:
      _UpdateKeymap in libSDL2.a[169](SDL_cocoakeyboard.m.o)
  ___CFConstantStringClassReference, referenced from:
       in libSDL2.a[36](SDL_hidapi.c.o)
       in libSDL2.a[36](SDL_hidapi.c.o)
       in libSDL2.a[36](SDL_hidapi.c.o)
       in libSDL2.a[36](SDL_hidapi.c.o)
       in libSDL2.a[36](SDL_hidapi.c.o)
       in libSDL2.a[36](SDL_hidapi.c.o)
       in libSDL2.a[36](SDL_hidapi.c.o)
      ...
  ___objc_personality_v0, referenced from:
      /Users/pw/workspace/SDL/build/libSDL2.a[179](SDL_cocoawindow.m.o)
  __objc_empty_cache, referenced from:
      _OBJC_CLASS_$_SDL_RumbleMotor in libSDL2.a[161](SDL_mfijoystick.m.o)
      _OBJC_METACLASS_$_SDL_RumbleMotor in libSDL2.a[161](SDL_mfijoystick.m.o)
      _OBJC_CLASS_$_SDL_RumbleContext in libSDL2.a[161](SDL_mfijoystick.m.o)
      _OBJC_METACLASS_$_SDL_RumbleContext in libSDL2.a[161](SDL_mfijoystick.m.o)
      _OBJC_CLASS_$_SDLApplication in libSDL2.a[168](SDL_cocoaevents.m.o)
      _OBJC_METACLASS_$_SDLApplication in libSDL2.a[168](SDL_cocoaevents.m.o)
      _OBJC_CLASS_$_SDLAppDelegate in libSDL2.a[168](SDL_cocoaevents.m.o)
      ...
  _iconv, referenced from:
      _SDL_iconv_REAL in libSDL2.a[95](SDL_iconv.c.o)
  _iconv_close, referenced from:
      _SDL_iconv_close_REAL in libSDL2.a[95](SDL_iconv.c.o)
  _iconv_open, referenced from:
      _SDL_iconv_open_REAL in libSDL2.a[95](SDL_iconv.c.o)
  _kCFAllocatorDefault, referenced from:
      _init_hid_manager in libSDL2.a[36](SDL_hidapi.c.o)
      _init_hid_manager in libSDL2.a[36](SDL_hidapi.c.o)
      _PLATFORM_read_thread in libSDL2.a[36](SDL_hidapi.c.o)
      _create_usage_match in libSDL2.a[36](SDL_hidapi.c.o)
      _create_usage_match in libSDL2.a[36](SDL_hidapi.c.o)
      _create_usage_match in libSDL2.a[36](SDL_hidapi.c.o)
      _create_vendor_match in libSDL2.a[36](SDL_hidapi.c.o)
      _create_vendor_match in libSDL2.a[36](SDL_hidapi.c.o)
      ...
  _kCFBooleanFalse, referenced from:
      _checkps in libSDL2.a[163](SDL_syspower.c.o)
  _kCFBooleanTrue, referenced from:
      _checkps in libSDL2.a[163](SDL_syspower.c.o)
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayModes in libSDL2.a[172](SDL_cocoamodes.m.o)
  _kCFCopyStringDictionaryKeyCallBacks, referenced from:
      _Cocoa_GetDisplayModes in libSDL2.a[172](SDL_cocoamodes.m.o)
  _kCFRunLoopDefaultMode, referenced from:
      _init_hid_manager in libSDL2.a[36](SDL_hidapi.c.o)
      _PLATFORM_hid_close in libSDL2.a[36](SDL_hidapi.c.o)
      _process_pending_events in libSDL2.a[36](SDL_hidapi.c.o)
      _audioqueue_thread in libSDL2.a[142](SDL_coreaudio.m.o)
      _audioqueue_thread in libSDL2.a[142](SDL_coreaudio.m.o)
      _prepare_audioqueue in libSDL2.a[142](SDL_coreaudio.m.o)
      _prepare_audioqueue in libSDL2.a[142](SDL_coreaudio.m.o)
      ...
  _kCFTypeArrayCallBacks, referenced from:
      _init_hid_manager in libSDL2.a[36](SDL_hidapi.c.o)
      _CreateHIDManager in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _GetDisplayMode in libSDL2.a[172](SDL_cocoamodes.m.o)
  _kCFTypeDictionaryKeyCallBacks, referenced from:
      _create_usage_match in libSDL2.a[36](SDL_hidapi.c.o)
      _create_vendor_match in libSDL2.a[36](SDL_hidapi.c.o)
      _CreateHIDDeviceMatchDictionary in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
  _kCFTypeDictionaryValueCallBacks, referenced from:
      _create_usage_match in libSDL2.a[36](SDL_hidapi.c.o)
      _create_vendor_match in libSDL2.a[36](SDL_hidapi.c.o)
      _CreateHIDDeviceMatchDictionary in libSDL2.a[160](SDL_iokitjoystick.c.o)
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayModes in libSDL2.a[172](SDL_cocoamodes.m.o)
  _kCGColorBlack, referenced from:
      -[SDLView drawRect:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[SDLView updateLayer] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _kCGDisplayShowDuplicateLowResolutionModes, referenced from:
      _Cocoa_GetDisplayDPI in libSDL2.a[172](SDL_cocoamodes.m.o)
      _Cocoa_GetDisplayModes in libSDL2.a[172](SDL_cocoamodes.m.o)
  _kIOMainPortDefault, referenced from:
      _HIDAPI_InitializeDiscovery in libSDL2.a[36](SDL_hidapi.c.o)
      _SDL_SYS_HapticInit in libSDL2.a[162](SDL_syshaptic.c.o)
  _kTISPropertyUnicodeKeyLayoutData, referenced from:
      _UpdateKeymap in libSDL2.a[169](SDL_cocoakeyboard.m.o)
  _kUTTypeFileURL, referenced from:
      _Cocoa_AcceptDragAndDrop in libSDL2.a[179](SDL_cocoawindow.m.o)
  _objc_alloc, referenced from:
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickSetLED in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickInitRumble in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickInitRumble in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickInitRumble in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickInitRumble in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickInitRumble in libSDL2.a[161](SDL_mfijoystick.m.o)
      ...
  _objc_alloc_init, referenced from:
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      _CreateApplicationMenus in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_ShowMessageBoxImpl in libSDL2.a[170](SDL_cocoamessagebox.m.o)
      _Cocoa_CreateShaper in libSDL2.a[176](SDL_cocoashape.m.o)
      _Cocoa_SetWindowShape in libSDL2.a[176](SDL_cocoashape.m.o)
      _Cocoa_CreateDevice in libSDL2.a[177](SDL_cocoavideo.m.o)
      ...
  _objc_autoreleasePoolPop, referenced from:
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_SYS_OpenURL in libSDL2.a[141](SDL_sysurl.m.o)
      -[SDL_RumbleMotor cleanup] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickInit in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickOpen in libSDL2.a[161](SDL_mfijoystick.m.o)
      ...
  _objc_autoreleasePoolPush, referenced from:
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_SYS_OpenURL in libSDL2.a[141](SDL_sysurl.m.o)
      -[SDL_RumbleMotor cleanup] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickInit in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickOpen in libSDL2.a[161](SDL_mfijoystick.m.o)
      ...
  _objc_autoreleaseReturnValue, referenced from:
      _GetDirectionalPadForController in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_RemoveJoystickDevice in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickInitRumble in libSDL2.a[161](SDL_mfijoystick.m.o)
      _GetApplicationName in libSDL2.a[168](SDL_cocoaevents.m.o)
      _Cocoa_Metal_DestroyView in libSDL2.a[171](SDL_cocoametalview.m.o)
      _Cocoa_FreeCursor in libSDL2.a[173](SDL_cocoamouse.m.o)
      _LoadHiddenSystemCursor in libSDL2.a[173](SDL_cocoamouse.m.o)
      ...
  _objc_begin_catch, referenced from:
      -[Cocoa_WindowListener isTouchFromTrackpad:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      _Cocoa_CreateWindow in libSDL2.a[179](SDL_cocoawindow.m.o)
  _objc_copyWeak, referenced from:
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      ___copy_helper_block_e8_32w in libSDL2.a[161](SDL_mfijoystick.m.o)
  _objc_destroyWeak, referenced from:
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      ...
  _objc_end_catch, referenced from:
      -[Cocoa_WindowListener isTouchFromTrackpad:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      _Cocoa_CreateWindow in libSDL2.a[179](SDL_cocoawindow.m.o)
      _Cocoa_CreateWindow in libSDL2.a[179](SDL_cocoawindow.m.o)
  _objc_enumerationMutation, referenced from:
      _IOS_JoystickInit in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickOpen in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetCapabilities in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickClose in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickGetGamepadMapping in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_AddMFIJoystickDevice in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_AddMFIJoystickDevice in libSDL2.a[161](SDL_mfijoystick.m.o)
      ...
  _objc_loadWeakRetained, referenced from:
      ___47-[SDL_RumbleMotor initWithController:locality:]_block_invoke in libSDL2.a[161](SDL_mfijoystick.m.o)
      ___47-[SDL_RumbleMotor initWithController:locality:]_block_invoke.60 in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[Cocoa_WindowListener observeValueForKeyPath:ofObject:change:context:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener observeValueForKeyPath:ofObject:change:context:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener observeValueForKeyPath:ofObject:change:context:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener pauseVisibleObservation] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener resumeVisibleObservation] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener resumeVisibleObservation] in libSDL2.a[179](SDL_cocoawindow.m.o)
      -[Cocoa_WindowListener resumeVisibleObservation] in libSDL2.a[179](SDL_cocoawindow.m.o)
      ...
  _objc_msgSend, referenced from:
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      ...
  _objc_msgSendSuper2, referenced from:
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleContext initWithLowFrequencyMotor:HighFrequencyMotor:LeftTriggerMotor:RightTriggerMotor:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDLApplication sendEvent:] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLAppDelegate init] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLAppDelegate dealloc] in libSDL2.a[168](SDL_cocoaevents.m.o)
      -[SDLMessageBoxPresenter initWithParentWindow:] in libSDL2.a[170](SDL_cocoamessagebox.m.o)
      -[SDL_cocoametalview initWithFrame:highDPI:windowID:] in libSDL2.a[171](SDL_cocoametalview.m.o)
      ...
  _objc_msgSend_stret, referenced from:
      _IOS_MFIJoystickUpdate in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_MFIJoystickUpdate in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDLTranslatorResponder firstRectForCharacterRange:actualRange:] in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      -[SDLTranslatorResponder firstRectForCharacterRange:actualRange:] in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      -[SDLTranslatorResponder firstRectForCharacterRange:actualRange:] in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      -[SDL_cocoametalview updateDrawableSize] in libSDL2.a[171](SDL_cocoametalview.m.o)
      _Cocoa_Metal_CreateView in libSDL2.a[171](SDL_cocoametalview.m.o)
      ...
  _objc_opt_class, referenced from:
      _IOS_JoystickInit in libSDL2.a[161](SDL_mfijoystick.m.o)
      ___IOS_AddMFIJoystickDevice_block_invoke in libSDL2.a[161](SDL_mfijoystick.m.o)
      ___IOS_AddMFIJoystickDevice_block_invoke in libSDL2.a[161](SDL_mfijoystick.m.o)
      ___IOS_AddMFIJoystickDevice_block_invoke.203 in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_MFIJoystickUpdate in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDLTranslatorResponder insertText:replacementRange:] in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      -[SDLTranslatorResponder setMarkedText:selectedRange:replacementRange:] in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      ...
  _objc_opt_isKindOfClass, referenced from:
      ___IOS_AddMFIJoystickDevice_block_invoke in libSDL2.a[161](SDL_mfijoystick.m.o)
      ___IOS_AddMFIJoystickDevice_block_invoke in libSDL2.a[161](SDL_mfijoystick.m.o)
      ___IOS_AddMFIJoystickDevice_block_invoke.203 in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_MFIJoystickUpdate in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDLTranslatorResponder insertText:replacementRange:] in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      -[SDLTranslatorResponder setMarkedText:selectedRange:replacementRange:] in libSDL2.a[169](SDL_cocoakeyboard.m.o)
      -[SDLWindow sendEvent:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      ...
  _objc_opt_respondsToSelector, referenced from:
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_GameControllerGetAppleSFSymbolsNameForAxis in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[Cocoa_WindowListener handleTouches:withEvent:] in libSDL2.a[179](SDL_cocoawindow.m.o)
      _Cocoa_CreateWindow in libSDL2.a[179](SDL_cocoawindow.m.o)
      _METAL_CreateTexture in libSDL2.a[180](SDL_render_metal.m.o)
      _METAL_GetStorageMode in libSDL2.a[180](SDL_render_metal.m.o)
  _objc_release, referenced from:
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      -[SDL_RumbleMotor cleanup] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor cleanup] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor cleanup] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor cleanup] in libSDL2.a[161](SDL_mfijoystick.m.o)
      ...
  _objc_retain, referenced from:
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleContext initWithLowFrequencyMotor:HighFrequencyMotor:LeftTriggerMotor:RightTriggerMotor:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_GameControllerGetAppleSFSymbolsNameForButton in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_GameControllerGetAppleSFSymbolsNameForAxis in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickOpen in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickOpen in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_JoystickOpen in libSDL2.a[161](SDL_mfijoystick.m.o)
      ...
  _objc_retainAutorelease, referenced from:
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_AddMFIJoystickDevice in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_AddMFIJoystickDevice in libSDL2.a[161](SDL_mfijoystick.m.o)
      _IOS_AddMFIJoystickDevice in libSDL2.a[161](SDL_mfijoystick.m.o)
      ...
  _objc_retainAutoreleaseReturnValue, referenced from:
      _Cocoa_ShowMessageBox in libSDL2.a[170](SDL_cocoamessagebox.m.o)
      +[NSCursor(InvisibleCursor) invisibleCursor] in libSDL2.a[173](SDL_cocoamouse.m.o)
      -[SDLOpenGLContext setWindow:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
      -[SDLOpenGLContext setWindow:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
      -[SDLOpenGLContext explicitUpdate] in libSDL2.a[174](SDL_cocoaopengl.m.o)
      -[SDLOpenGLContext explicitUpdate] in libSDL2.a[174](SDL_cocoaopengl.m.o)
  _objc_retainAutoreleasedReturnValue, referenced from:
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      -[SDL_RumbleMotor cleanup] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor cleanup] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor cleanup] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor cleanup] in libSDL2.a[161](SDL_mfijoystick.m.o)
      ...
  _objc_storeStrong, referenced from:
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      _SDL_OpenFPFromBundleOrFallback in libSDL2.a[140](SDL_rwopsbundlesupport.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[SDL_RumbleMotor setIntensity:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      ...
  _objc_storeWeak, referenced from:
      -[SDL_RumbleMotor initWithController:locality:] in libSDL2.a[161](SDL_mfijoystick.m.o)
      -[Cocoa_WindowListener listen:] in libSDL2.a[179](SDL_cocoawindow.m.o)
  _objc_sync_enter, referenced from:
      -[SDLOpenGLContext setWindow:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
      -[SDLOpenGLContext setWindow:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
      _ScheduleContextUpdates in libSDL2.a[179](SDL_cocoawindow.m.o)
  _objc_sync_exit, referenced from:
      -[SDLOpenGLContext setWindow:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
      -[SDLOpenGLContext setWindow:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
      -[SDLOpenGLContext setWindow:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
      -[SDLOpenGLContext setWindow:] in libSDL2.a[174](SDL_cocoaopengl.m.o)
      _ScheduleContextUpdates in libSDL2.a[179](SDL_cocoawindow.m.o)
      _ScheduleContextUpdates in libSDL2.a[179](SDL_cocoawindow.m.o)
  _objc_unsafeClaimAutoreleasedReturnValue, referenced from:
      _Cocoa_RegisterApp in libSDL2.a[168](SDL_cocoaevents.m.o)
      _CreateApplicationMenus in libSDL2.a[168](SDL_cocoaevents.m.o)
      _CreateApplicationMenus in libSDL2.a[168](SDL_cocoaevents.m.o)
      _CreateApplicationMenus in libSDL2.a[168](SDL_cocoaevents.m.o)
      _CreateApplicationMenus in libSDL2.a[168](SDL_cocoaevents.m.o)
      _CreateApplicationMenus in libSDL2.a[168](SDL_cocoaevents.m.o)
      _CreateApplicationMenus in libSDL2.a[168](SDL_cocoaevents.m.o)
      _CreateApplicationMenus in libSDL2.a[168](SDL_cocoaevents.m.o)
      _CreateApplicationMenus in libSDL2.a[168](SDL_cocoaevents.m.o)
      ...
clang: error: linker command failed with exit code 1 (use -v to see invocation)
e7h4n commented 3 months ago

I did it! My solution is add -arch arm64 to build_flags, like

[env:emulator_64bits]
platform = native@^1.1.3
extra_scripts = support/sdl2_build_extra.py
build_flags =
  ${env.build_flags}
  -arch arm64

Then everythings works like a charm 😄

e7h4n commented 3 months ago

This exception is related to Visual Studio Code because everything is OK when I execute the PlatformIO task in the shell instead of running "execute task" in VSCode.

I guess the platform extension in VSCode installs an x86_64-based Python environment, which leads Scons to think the building environment is x86_64. So, if I execute the pio run command in the shell by a natively installed Python environment, Scons could get the correct architecture.