wow, thanks, I'm reporting back to the user to see if it's exactly this.Now, this seems to be a problem just for windows, right? Loading zexy before sfont~ here on mac is okcheersEm dom., 1 de jan. de 2023 às 07:18, Christof Ressi <info@christofressi.com> escreveu:_______________________________________________Hi Alex,
happy new year!
I have recently experienced the same issue! I am also using zexy and for some reason [sfont~] would only load if [sfont~] loaded before zexy. Here's a hacky solution:
[declare -lib else/sfont~ -lib zexy]
---
I think the reason for such problems is this:
Plugin A and plugin B both link dynamically to third-party library C.
A and B ship their own versions of C (C-a and C-b)
If A is loaded first, C-a is loaded into memory and B will try to use C-a.
If B is loaded first, C-b is loaded into memory and A will try to use C-b.
This is ok if C-a and C-b are compatible, but it leads to problems if they are not.
That's why plugins should be linked statically whenever possible, because they cannot know which modules have already been loaded. (The only big exception is when plugins are distributed via package managers, since the latter are responsible for managing dependencies.)
---
In this particular case, the problem is the following:
Both zexy and libfluidsynth link against libintl-8; zexy wants to import "libintl_gettext", libfluidsynth wants to import "DllMain". However, the libintl-8 version shipped with zexy does not export "DllMain", so libfluidsynth won't load.
If I replace zexy's libintl-8 with else's libintl-8, both objects load correctly, regardless of which is loaded first.
Actually, I don't really understand why libfluidsynth's libintl-8 exports "DllMain" in the first place and why libfluidsynth wants to import it... According to the output of Dependencies, it does not seem to call any other function (see attachment).
Christof
On 31.12.2022 21:14, Alexandre Torres Porres wrote:
H:\JOE-W10\Documents\Pd\externals\else\sfont~.m_amd64: La procédure spécifiée est introuvable (The specified procedure is not found).Hi everybody! There's this issue we're having a hard time troubleshooting and I hope Windows and Pd experts can help figuring this out!
So, a user is having issues loading the [sfont~] object from ELSE in Pd on Windows, even though me and others cannot reproduce the error. When trying to create the object, he gets:
(127)sfont~
...couldn't create
An error window also pops up and says:
"Entry point not foundThe DllMain procedure entry point is not found in the dynamic link libraryH:\JOE-W10\Documents\Pd\externals\libfluidsynth-3.w64."
I don't know what this error means and why me and others don't get this error!
Of course we did troubleshoot installation and everything but we still can't figure it out and I have ZERO experience with windows.
It is important to note that the user reports he can use PlugData which carries ELSE and the object works just fine. The similar [fluid~] object (equally based on FluidSynth like sfont~) also works when used in the PurrData installation, but the user is also having problems loading fuild~ in Vanilla.
A screenshot and further discussion is found here https://github.com/porres/pd-else/issues/1405#issuecomment-1368250330
ThanksAlex
AND HAPPY 2023!!!!
_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list