summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/data/unix/findclasslist.pl
Commit message (Collapse)AuthorAgeFilesLines
* Change the ELF linker version script creator to take no parametersThiago Macieira2016-01-111-28/+14
| | | | | | | | It only needs stdin now, instead of stdin plus a separate file containing a list of file names. Change-Id: I9f3db030001e47e4a4e5ffff1425b76884cc7ca0 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Fix version script generation when cross-compiling from Windows to QNXMatt Hoosier2015-12-211-2/+15
| | | | | | | | | | | | | | | | | | | Recent versions of Qt have apparently added sufficient numbers of headers that the command lines used to spawn a custom header- parsing tool, started overflowing Windows' maximum command-line length. This change restructures the mechanism to use a GCC-style command- line arguments file rather than passing filenames all directly in the argv[] vector. Although QNX is the usual ELF target whose cross-build is supported on Windows, the mechanics introduced in this patch happen to affect all other ELF Unix systems' builds too. Change-Id: I5a7383cf9f2ebf9dffde8dbfdcdeca888265e085 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Place classes from private headers in the Qt_5_PRIVATE_API ELF versionThiago Macieira2015-10-201-0/+59
This way, it's possible to tell which applications and libraries depend on the Qt private API and of which Qt library. Linux distributions can use this information to decide which applications need to be recompiled every time Qt itself is rebuilt. This is done by scanning all class and struct definitions in the private headers (we've already got the list from syncqt). I opted to add a new script instead of modifying syncqt because then this can run in parallel with the rest of the compilation, as opposed to during qmake time. Another advantage is that it catches modifications to the headers in between qmake executions. Since this is already Unix specific, it should be no problem to use Perl. This solution is limited to use of non-inline symbols of classes declared in private headers. It will not catch free variables (such as qsimd_p.h's qt_cpu_features), use of inlined functions or just plain use of a class/struct for accessing its data members. However, this is already better than nothing and should help Linux distributions quite a lot. And there's no way to catch the latter issue anyway. Change-Id: I049a653beeb5454c9539ffff13e3fff36400ebbd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>