Today I was struggling to get a use case with three DLLs working: xp.dll is specific for Windows XP, vista.dll is specific for Windows Vista and both.dll is needed on both platforms. How can you get this to work with a Bundle-NativeCode manifest header?
Adding the following line to your plug-in's manifest does not work:
Bundle-NativeCode: /lib/both.dll; osname=win32; processor=x86, /lib/xp.dll; osname=winxp; processor=x86, /lib/vista.dll; osname=winvista; processor=x86The reason why this does not work is mentioned in bug 118065 and described in full details in the javadoc of BundleNativeCode.java:
If you have more than one library for the same environment then you should include all of the libraries for that environment in the same Bundle-NativeCode entry.So, after changing the above line (with three entries of each one library) into the following (with only two entries of each two libraries), everything worked just fine:
Bundle-NativeCode: /lib/both.dll; /lib/xp.dll; osname=winxp; processor=x86, /lib/both.dll; /lib/vista.dll; osname=winvista; processor=x86While investigating this, I also found two interesting lists to bookmark: the supported processor aliases and OS aliases.