Free Software Foundation, the authors of the GPL license, are of the opinion that
Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work. Thus, the terms and conditions of the GNU General Public License cover the whole combination.While one can argue whether this is the correct understanding of derivative work in any particular legal jurisdiction, I personally would take heed, especially because of the associated
Software Freedom Conservancy's Copyleft Compliance programs.
In particular, you might wish to read about the
The Strategic GPL Enforcement Initiative, and the
Firmware Liberation Project (which albeit focusing on Linux-based systems, is exactly about combining GPL-licensed works with proprietary code).
So no, please do not assume that you can dynamically link GPL-licensed libraries to proprietary binaries.
The LGPL license is the one that explicitly allows linking with proprietary code, without pulling that proprietary code under the LGPL license. From the
GPL FAQ:
Does the LGPL have different requirements for statically vs dynamically linked modules with a covered work?For the purpose of complying with the LGPL (any extant version: v2, v2.1 or v3):
(1) If you statically link against an LGPLed library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application.
(2) If you dynamically link against an LGPLed library already present on the user's computer, you need not convey the library's source. On the other hand, if you yourself convey the executable LGPLed library along with your application, whether linked with statically or dynamically, you must also convey the library's sources, in one of the ways for which the LGPL provides.
This is how for example one can use
LGPL-licensed Qt modules to create a commercial application with proprietary components, without purchasing a commercial Qt license. For example, one can use Python for the UI, dynamically linking to the standard Qt dynamic libraries, but also to your own proprietary dynamic libraries. (Python itself provides the relinking mechanism, as the user only needs to replace the dynamic library file with a different one.)
As to
avr-libc, it is licensed under a
modified BSD license, which explicitly allows its use in proprietary applications. Similarly,
newlib (or newlibc) is licensed under
BSD- and MIT-style licenses, allowing its use in proprietary applications. The
GNU C library itself is licensed under LGPL 2.1, allowing its use with proprietary applications, noting the points from the LGPL FAQ above.
As to
Qfplib (and its variants), it is licensed under GPL v2, and I do not know of any way to use it in a proprietary firmware whose source will not be available to the customers. Regardless of whether one links statically or dynamically, the combined work falls under the GPL license, as far as I am concerned.
You will get better results by contacting the authors, explaining your use case and business model and asking for a separate license (perhaps LGPL), than concocting a novel legal theory that allows you to use GPL-licensed libraries as if they were LGPL-licensed originally.