| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Task: QTBUG-11396
RevBy: Miikka Heikkinen
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fixes were too complicated for a profile and so a perl script was
introduced. These are the issues that were addressed:
- Made sure that we link correctly in all cases where there is a
mismatch between the DEF file and the ELF file. Specifically, these
two cases:
- If elf2e32 detects a symbols in the ELF file that is marked as
absent in the DEF file, an ordinal mapping will not be
generated in the dso file. This means that binaries linking to
the library will not find the symbol, even though it exists in
the code. Since this is completely useless behavior, this was
fixed to include the symbol regardless.
- If the DEF file contains a symbol that is not present in the
ELF file, an ordinal mapping will be created in the dso file
regardless, which means applications can link to a symbol that
does not exist. This is even worse than point one, since it is
not detected until runtime, when the dynamic link will fail.
Fixed by leaving the symbol out of the dso file if it does not
exist in the ELF file.
Both fixes require rerunning elf2e32 to fix the symbol mappings
that were broken in the first run, but it only happens if at least
one symbol is broken in the way described above. Also, freezing the
DEF files will "save" the symbols, so that it does not occur after
that.
Note that this does not remove the ability to get the postlinker to
tell you about mismatches. By doing
"QMAKE_ELF2E32_FLAGS -= --unfrozen", the symbol mismatches will be
considered errors instead of warnings, and they can be caught that
way.
- Code that was previously in the profile was moved to the perl
script:
- Detecting that there are errors in the postlink and return
nonzero. elf2e32 does not do this on its own (at least not when
using Wine).
- Only overwriting the old dso file if the new one is different.
This saves build time, since binaries that depend on the
library do not trigger relink if the dso has not changed.
These two points simplify the code, and they will also help the
porting to Windows, since the old shell script tricks would not
have worked there.
RevBy: Trust me
|
|
|
|
|
|
|
| |
If MMP_RULES contains EXPORTUNFROZEN, no DEFFILE statements should
be generated to mmp files.
Reviewed-by: Janne Koskinen
|
|
|
|
|
|
| |
Previously it would not use the autogenerated def files.
RevBy: Thomas Zander
|
|
|
|
| |
this makes windows-style path specs *ugly*. that's intentional. :-P
|
|
|
|
|
| |
Users can type 'make freeze' to get the def files updated right in
the git source tree
|
|
|
|
|
|
|
|
|
|
|
| |
This also switches the official def file variable in qmake profiles
to DEF_FILE.
Support for freezing def files was also added, but needs more work
and is therefore disabled for now.
Task: QTBUG-7510
Task: QTBUG-8052
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix bug where all target types, including apps, plugins and static
libraries were getting DEFFILE statements - now it's just libraries that
get it.
Fix bug where duplicate DEFFILE blocks were being added to projects that
manually specified their own DEFFILE - this now tests for the qmake
variable "defBlock" being set, and doesn't add additional DEFFILE
statements if it is.
NOTE: This means that adding DEFFILE statements to MMP_RULES
manually should be done by creating a variable called defBlock, and
adding that to the MMP_RULES (ie. MMP_RULES += defBlock)
Fix bug in configure.exe, where using -nokia-developer for Windows builds
would warn about Symbian DEF file usage (or lack thereof)
Reviewed-by: Janne Koskinen
Reviewed-by: Jason Barron
|
|
Provide configure flag to enable/disable the use of DEF files on Symbian.
A useful side-effect was that it cleaned up how we control DEF files from
qbase.pri and in WebKit.
-nokia-developer still disables DEF files, as it triggers the autotest
exports, which are not frozen into the DEF files.
Disabling DEF files means that there is no BC with previously released
versions of Qt, so this should only be used for development purposes.
.pro files can specify custom locations for DEF files by setting
defFilePath.
Task-number: QTBUG-6556
Reviewed-by: Jason Barron
|