Comments (3)
we have such multiple locations check for Windows with Arm64EC and x64... where a Arm64EC host could load Arm64EC and x64 plugin binaries..
#if SMTG_CPU_ARM_64EC
if (instance == nullptr)
instance = loadAsPackage (inPath, architectureArm64XString);
if (instance == nullptr)
instance = loadAsPackage (inPath, architectureX64String);
#endif
maybe you could propose a way to do it for Linux?
from vst3sdk.
Unfortunately my knowledge about the internals of Linux are enough to tell that there's a problem here, but insufficient to confidently propose a solution that is both future-proof and backward compatible.
At the end of the day, the information returned by uname()
comes from the init_uts_ns
structure from the Linux kernel in init/version-timestamp.c. The UTS_MACHINE
string macro here comes from a makefile variable with the same name which gets written into include/generated/compile.h
when you run make
(see scripts/mkcompile_h
).
The problem is that this makefile variable can have a lot of different values (someone on StackOverflow dug up a few), and I have no idea which is compatible with which, if any. And to make things worse, future versions of the kernel may drop some of these values or introduce new ones.
My best bet would be an algorithm like this, but this would only solve the 64 bit vs. 32 bit case:
- Let
A
be the architecture thatuname()
returned. - Try to load the plugin from the
A + "-linux"
directory. - If step 1 failed and
A != "i686"
then tryi686-linux
. - If we still haven't successfully loaded anything, and
A != "i386"
then tryi386-linux
.
I'm not sure if similar problems can occur between 64 bit architectures, and if yes, how to resolve them. :-(
from vst3sdk.
I made a PR from the proposed solution: steinbergmedia/vst3_public_sdk#57
I compiled the validator application for 32 bits, and sucessfully validated my plugin bundle with it on a 64 bit Linux.
from vst3sdk.
Related Issues (20)
- moduleinfotool.exe exits with code 1, no other info
- AUv2 Wrapper crashes in V3.7.7 HOT 1
- AUCocoaView is broken in cases where the same auwrapper lib is used in different plugs (SDK v3.7.7) HOT 2
- Controller CID output from validator cut on non Windows platform HOT 1
- Crash in AUv2 Wrapper using VST3 SDK v3.7.7 HOT 3
- Mac Fails to compile generated project HOT 1
- Unable to build using gcc 13 HOT 2
- where is the helloworld template? HOT 1
- Does the BaseWrapper::processMidiEvent function have a bug? HOT 3
- CMake Error on Win 10 / VS 2019 building vst3 examples
- How to install though? HOT 1
- [Feature Request]: Adding APT or Flatpak Support
- Inconsistency between docs & code for module initializer / deinitializer names HOT 1
- Max Plugin Parameter ID Clarity HOT 1
- VST3
- For symbolic links on Windows 11 Home 22H2, enable Developer Mode in Settings > System HOT 1
- Cannot git clone project HOT 3
- Build Failure on Fedora 40 HOT 3
- Change docs to let users use GPLv3, GPLV3, AGPLv3, or AGPLv3+ HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vst3sdk.