I've found the response.
There is a positionIndependentCode property in the cpp module.
So on can remove -fPIC by adding cpp.positionIndependentCode: false.
This property is supposed to be undefined by default, but it seems to resolve to true for my toolchain.
Exact, QSerialPort doesn't call the USB stack directly. Typically for FTDI devices, you would install the FTDI Virtual Com Port driver and then you have a "classic" com port. AFAIK the ARDUINO uses RS232 so it should act also like a serial device.