shinyblink / sled

Satanic/Sexy/Stupid/Silly/Shiny LED matrix controller
https://shinyblink.github.io/sled/
ISC License
122 stars 25 forks source link

gfx_candyflow crash on macOS. #36

Closed vifino closed 6 years ago

vifino commented 6 years ago

When run on macOS, it complains about the lack of the symbol _perf_start.

Error:

>> Now drawing candyflowdyld: lazy symbol binding failed: Symbol not found: _perf_start
  Referenced from: /Users/vifino/src/sled/./modules/gfx_candyflow.so
  Expected in: flat namespace

dyld: Symbol not found: _perf_start
  Referenced from: /Users/vifino/src/sled/./modules/gfx_candyflow.so
  Expected in: flat namespace

zsh: abort      ./sled
vifino commented 6 years ago

@orithena If you could have a look at why that happens, I'd appreciate it.

vifino commented 6 years ago

gfx_affinematrix also has this problem.

vifino commented 6 years ago

I fixed that with lost symbol by marking it static: As it's simply included then, this is fine.

However, now it complains about another missing symbol..

>> Now drawing affinematrixdyld: lazy symbol binding failed: Symbol not found: _multm3v2_partx
  Referenced from: /Users/vifino/src/sled/./modules/gfx_affinematrix.so
  Expected in: flat namespace

dyld: Symbol not found: _multm3v2_partx
  Referenced from: /Users/vifino/src/sled/./modules/gfx_affinematrix.so
  Expected in: flat namespace

zsh: abort      ./sled
vifino commented 6 years ago

Unsurprisingly, it was the same issue of function being defined in a header, with another static it's fixed. I'll push it.

vifino commented 6 years ago

Oh, you already fixed it, thanks @orithena!

orithena commented 6 years ago

@vifino: Yeah, it came up on linux when compiling with -O0 to get a full backtrace for #35 without variables being optimized out ^^

vifino commented 6 years ago

Ah, excellent, so it wasn't just macOS being weird, great!