jpcima / ysfx

Hosting library for JSFX
Apache License 2.0
159 stars 25 forks source link

Plugin is with executable stack. #57

Closed KottV closed 2 years ago

KottV commented 2 years ago

Hi,

I'm not sure is it a real problem or not, but openSUSE build server complains on building that .so has a executable stack. I think it was started after https://github.com/jpcima/ysfx/commit/b1921b6d34e720982ad3ba98c4ce5c7d494e75fd

The build log: https://build.opensuse.org/package/live_build_log/home:kill_it:JUCE/ysfx/openSUSE_Tumbleweed/x86_64 The error message:

[  165s] lv2-ysfx.x86_64: E: executable-stack (Badness: 10000) /usr/lib64/lv2/ysfx.lv2/ysfx.so
[  165s] vst-ysfx.x86_64: E: executable-stack (Badness: 10000) /usr/lib64/vst/libysfx.so
[  165s] vst3-ysfx.x86_64: E: executable-stack (Badness: 10000) /usr/lib64/vst3/ysfx.vst3/Contents/x86_64-linux/ysfx.so
[  165s] The binary declares the stack as executable. Executable stack is usually an
[  165s] error as it is only needed if the code contains GCC trampolines or similar
[  165s] constructs which uses code on the stack. One common source for needlessly
[  165s] executable stack cases are object files built from assembler files which don't
[  165s] define a proper .note.GNU-stack section.
jpcima commented 2 years ago

Hi @KottV

The library has a part of the source code written in assembly. As the message indicates, this source does not contain a .note.GNU-stack section.

This would be the source file involved: https://github.com/jpcima/ysfx/blob/master/sources/eel2-gas/sources/asm-nseel-x64-sse.S

Note: if you configure with -DYSFX_PORTABLE=ON, you would get a slower build which does not use any assembly sources. If this does not emit the warning message, this would verify the hypothesis as correct.

jpcima commented 2 years ago

Fixed in c1d1d58

KottV commented 2 years ago

Thanks!