I'd like to use LGPL library for one of my projects. The problem is I need to modify several methods and call there platform-dependent functions covered by NDA.

Is there a way to do it legally without showing those NDA functions?

For example:

  1. Create another library under another license, link it dynamically, modify the LGPL library and call NDA functions from the second library.
  2. Do the same using dlopen() and kind of plugin mechanism, show the plugin mechanism.
  3. Move proprietary calls to another application and provide the required data via IPC, show the IPC mechanism.


1 Answer 1


You cannot modify the LGPL library in such a way that it depends on proprietary code and still comply with the LGPL license.

However, you can change the LGPL library in such a way that at the relevant places it uses a callback function that should/can be provided by the user of the library.

With a callback, there is no dependency, in the legal sense, on your NDA code, so there should also be nothing preventing you from publishing the modified library as the LGPL requires.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.