I would like to get a clarification about possibility to incorporate our proprietary code with QEMU in the following ways:
Way 1. ===== Let's assume that I changed QEMU allowing a possibly to build it as static/dynamic library (I needed to add a configuration option replacing main by qemu_main and changing the main build target). Our customer wants to build an executable from following components:
1. Modified QEMU library. 2. Our proprietary library (e.g. mylib.a, mylib.h) 3. An open source "glue" file(s) containing calls to QEMU library as well as to mylib.a I understand that the executable will become GPL and the customer is intended to use it only internally. Is it possible to keep my mylib.a proprietary and closed source ? Is it legal from QEMU point of view ?
Way 2. =====
We will implement a kind of '-M" like option that will load a shareable
library of a board (for example -M dynamic:my_board.so), find and call a function
in order to initialize the board and then run normal QEMU main loop.
The board code will define its own peripherals and connect them to the
CPU. It is obvious, that our proprietary code shall not use any GPL
peripherals and only call to GLPL functions like "map_physical_memory"
and "write_physical_memory" etc.