alefnull / alefsbits

VCV Rack plugin containing all of the modules i've developed

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build failure on macOS arm platform

cschol opened this issue · comments

commented
arm64-apple-darwin20.2-clang++-libc++ -std=c++17 -Isrc/utils -Isrc/widgets -std=c++11 -stdlib=libc++  -std=c++17 -fPIC -I/home/build/rack-plugin-toolchain/Rack-SDK-mac-arm64/include -I/home/build/rack-plugin-toolchain/Rack-SDK-mac-arm64/dep/include -MMD -MP -g -O3 -funsafe-math-optimizations -fno-omit-frame-p
ointer -Wall -Wextra -Wno-unused-parameter -DARCH_ARM64 -march=armv8-a+fp+simd -DARCH_MAC -mmacosx-version-min=10.9  -c -o build/src/simplexandhold.cpp.o src/simplexandhold.cpp                                                                                                                                      
src/nos.cpp:525:18: warning: lambda capture 'module' is not used [-Wunused-lambda-capture]                                                                                                                                                                                                                            
                [module]() {                                                                                                                                                                                                                                                                                          
                 ^~~~~~                                                                                                                                                                                                                                                                                               
src/nos.cpp:203:8: error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.14 or newer                                                                                                                                                                  
struct Nos : Module {                                                                                                                                      
       ^                                                                                                                                                   
src/nos.cpp:229:2: note: in implicit destructor for 'Nos' first required here                                                                                                                                                                                                                                         
        Nos() {                                                                                                                                                                                                                                                                                                       
        ^                                                                                                                                                  
src/nos.cpp:203:8: note: if you supply your own aligned allocation functions, use -faligned-allocation to silence this diagnostic                                                                                                                                                                                     
struct Nos : Module {                                                                                                                                                                                                                                                                                                 
       ^                                                                                                                                                   
src/octsclr.cpp:114:18: warning: lambda capture 'module' is not used [-Wunused-lambda-capture]                                                             
                [module]() {                                                                                                                                                                                                                                                                                          
                 ^~~~~~                                                                                                                                                                                                                                                                                               
src/polyrand.cpp:126:18: warning: lambda capture 'module' is not used [-Wunused-lambda-capture]                                                                                                                                                                                                                       
                [module]() {                                                                                                                                                                                                                                                                                          
                 ^~~~~~                                                                                                                                                                                                                                                                                               
src/shift.cpp:241:18: warning: lambda capture 'module' is not used [-Wunused-lambda-capture]                                                                                                                                                                                                                          
                [module]() {                                                                                                                                                                                                                                                                                          
                 ^~~~~~                                                                                                                                                                                                                                                                                               
In file included from src/nos.cpp:1:                                                                                                                                                                                                                                                                                  
In file included from src/plugin.hpp:2:                                                                                                                                                                                                                                                                               
In file included from /home/build/rack-plugin-toolchain/Rack-SDK-mac-arm64/include/rack.hpp:35:                                                                                                                                                                                                                       
/home/build/rack-plugin-toolchain/Rack-SDK-mac-arm64/include/helpers.hpp:27:24: error: aligned allocation function of type 'void *(std::size_t, std::align_val_t)' is only available on macOS 10.14 or newer                                                                                                          
                        engine::Module* m = new TModule;                                                                                                                                                                                                                                                              
                                            ^                                            

i understand the warnings about unused lambda captures, and that's simple enough, but i don't understand the errors at all. i'm still pretty much an amateur developer, so i don't know what these are trying to tell me. that second part looks to me like it's saying i need to create a destructor for Nos? but the stuff about "aligned deallocation functions" are currently mostly gibberish to me. i'll have to do some studying to figure out how to fix whatever is wrong.

src/nos.cpp:203:8: error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.14 or newer                                                                                                                                                                  
struct Nos : Module {                                                                                                                                      
       ^                                                                                                                                                   
src/nos.cpp:229:2: note: in implicit destructor for 'Nos' first required here                                                                                                                                                                                                                                         
        Nos() {                                                                                                                                                                                                                                                                                                       
        ^                                                                                                                                                  
src/nos.cpp:203:8: note: if you supply your own aligned allocation functions, use -faligned-allocation to silence this diagnostic                                                                                                                                                                                     
struct Nos : Module {                                                                                                                                                                                                                                                                                                 
       ^

@cschol hey i asked this in my library issue, but haven't heard back from you so i'm guessing either you haven't seen it or have just been too busy. either way i didn't want to keep cluttering that issue with questions, so i'll pose it again here just in case you missed it there:

i was told by the Surge plugin dev baconpaul that he just "filters out" c++11 in the Surge Makefile to get around the ARM build issue. i'm guessing that means ARM users just can't use the plugin. i wanted to check - is this actually an option i can go with as opposed to removing functionality from one of my modules?

i've already done it and committed the changes, but if you say i shouldn't do that, i'll go ahead and revert it then just remove the unsupported functionality. let me know when you can, thanks.

commented

I pinged Andrew again for guidance on how to proceed.

hey, any update on this yet? i'm not in a rush to get any new updates in right now, but at the very least i'd definitely like to get this solved one way or the other, whichever way you and/or Andrew decide on.