Commit Graph

48921 Commits

Author SHA1 Message Date
svenbarth
cbbbe8927e * handle the export and import of resourcestring symbols for packages
git-svn-id: trunk@34187 -
2016-07-22 16:03:59 +00:00
svenbarth
ccb4b23949 * register the start and end symbols of resource strings in the extern assembler list of the program/library
* export the start and end symbols of resource strings from the package

git-svn-id: trunk@34186 -
2016-07-22 16:03:16 +00:00
svenbarth
947c876ba3 * use the indirect start and end symbols for the resource string table (affects both the compiler and the RTL)
git-svn-id: trunk@34185 -
2016-07-22 16:01:39 +00:00
svenbarth
90a1099c5e * generate indirect symbols for resource strings as well as the start and end symbols
* register the start and end symbol in the unit's public assembler symbol list

git-svn-id: trunk@34184 -
2016-07-22 15:59:35 +00:00
svenbarth
3147374178 Ensure uniqueness of internal errors
git-svn-id: trunk@34183 -
2016-07-22 15:56:54 +00:00
svenbarth
4df4449933 Extend the ttypedconstbuilder's dead_stripe_section handling (get_vectorized_dead_strip_section_symbol() and finalize_vectorized_dead_strip_asmlist()) with the ability to
- register a symbol in the unit's public or extern asm symbol list
 - add an indirect symbol when defining the symbol
 - use an indirect symbol instead of the direct one
This will be needed to correctly handle resourcestrings for packages

git-svn-id: trunk@34182 -
2016-07-22 15:55:14 +00:00
svenbarth
d9d2789375 * fix DynArrayDim() and DynArrayIndex() after the RTTI changes in r33944
git-svn-id: trunk@34180 -
2016-07-22 13:48:12 +00:00
svenbarth
022df814c2 * use the extern and public assembler symbol lists stored in the units to resolve those symbols to a used package that don't have a corresponding Pascal symbol
git-svn-id: trunk@34179 -
2016-07-22 13:42:13 +00:00
svenbarth
6cc7539208 * also export the mangled RTTI name from a package
git-svn-id: trunk@34178 -
2016-07-22 13:39:51 +00:00
svenbarth
971d05c898 * also import procdefs that are called through the VMT
git-svn-id: trunk@34177 -
2016-07-22 13:38:59 +00:00
svenbarth
f69b365b77 * declare various symbols as external assembler symbols: RTTI references, parent VMT, FPC_EMPTYMETHOD (all three only if it's used from a different unit), threadvar lists and symbols declared as "external"
git-svn-id: trunk@34176 -
2016-07-22 13:34:38 +00:00
svenbarth
bb72c1c4df * declare various assembler symbols (VMT, RTTI, threadvars) as public assembler symbols
* declare public function alias as public assembler symbols

git-svn-id: trunk@34175 -
2016-07-22 13:11:24 +00:00
svenbarth
5bb121e91c Add a mechanism to keep track of assembler symbols that either publicly provided by a unit or used by a unit and that are not really baked by a Pascal symbol (e.g. public function aliases, RTTI & VMT symbol).
This basically revives the globalasmsym entry of the PPU though it feeds to different lists, one for the public (exported) symbols and one for the external (imported) symbols. Also the list of symbols is much smaller as it would be if all symbols would be dumped in there.

git-svn-id: trunk@34174 -
2016-07-22 13:08:32 +00:00
svenbarth
f18e6cec0b * correctly enumerate the fields of the TVMT record after the previous extension of it (GetvParent and vParent are two new symbols and TVMT does not only contain fieldvarsyms now) so that the VMT def can be correctly generated
git-svn-id: trunk@34173 -
2016-07-22 13:07:37 +00:00
svenbarth
685f820622 * switch class'/object's parent reference in the VMT to an indirect reference
(this also requires the adjustment of a test)

git-svn-id: trunk@34172 -
2016-07-22 12:53:51 +00:00
svenbarth
dc21bc842a * also generate an indirect symbol for the VMT
git-svn-id: trunk@34171 -
2016-07-22 12:50:38 +00:00
Jeppe Johansen
6a1c1e4f29 Added support for NRF52832 controllers.
git-svn-id: trunk@34170 -
2016-07-22 10:01:10 +00:00
michael
298a3ba63d * Patch from Mattias Gaertner to make implicitly used units configurable
git-svn-id: trunk@34169 -
2016-07-22 09:23:35 +00:00
pierre
e9a1ed9446 Add fpwidestring and unicodeducet units for go32v2 tests related to unicode support
git-svn-id: trunk@34168 -
2016-07-22 06:26:17 +00:00
pierre
7ff12e144f Fix IgnoreCase error in CompareUnicodeString function
git-svn-id: trunk@34167 -
2016-07-22 05:29:35 +00:00
pierre
e05d417183 Change rules to be able to cross-compile on win32, using old GNU make 3.82
git-svn-id: trunk@34166 -
2016-07-21 14:20:56 +00:00
Jonas Maebe
a0efde8167 * automatically generate necessary indirect symbols when a new assembler
symbol is defined
   o removed all places where AB_INDIRECT symbols were explicitly generated
   o only generate AB_INDIRECT symbols for AT_DATA on systems_indirect_var_imports
   o for some symbols an indirect symbol is always required (because they are
     dereferenced by code in RTL units) -> use new AT_DATA_FORCEINDIRECT type

git-svn-id: trunk@34165 -
2016-07-20 20:53:03 +00:00
Jonas Maebe
1cb8c0d00c * specify the def of assembler level symbols defined via
tasmdata.DefineAsmSymbol() and all routines that call it
   o will be used to automatically generate AB_INDIRECT sybols when
     necessary

git-svn-id: trunk@34164 -
2016-07-20 20:52:59 +00:00
Jonas Maebe
53ace5b489 - removed disabled exportlib override code
git-svn-id: trunk@34163 -
2016-07-20 20:52:55 +00:00
Jonas Maebe
8d77de6b22 - removed InsertPData leftover from ARM copy of this file
git-svn-id: trunk@34162 -
2016-07-20 20:52:53 +00:00
Jonas Maebe
60fe7c2888 - removed unused section_symbol_start/end() routines
git-svn-id: trunk@34161 -
2016-07-20 20:52:50 +00:00
Károly Balogh
9252bf4d64 fixed typo in r34157, which broke PowerPC builds
git-svn-id: trunk@34160 -
2016-07-20 11:08:08 +00:00
pierre
b3f1596a1d Also output parameters of called program when calling Terminate, useful when using emulator, to know which test does not finish
git-svn-id: trunk@34159 -
2016-07-19 17:22:39 +00:00
Jonas Maebe
84129857c2 * converted tobjcrttiwriter_fragile.gen_objc_info_sections to the high level
typed constant builder

git-svn-id: trunk@34158 -
2016-07-19 14:30:51 +00:00
Jonas Maebe
6d54dd7154 + added missing symcpu unit (although it is used by other units, and hence
still included)

git-svn-id: trunk@34157 -
2016-07-19 14:30:48 +00:00
Jonas Maebe
6c5de5127c * fixed compilation with range checking enabled after r34139
git-svn-id: trunk@34156 -
2016-07-19 14:30:45 +00:00
Jonas Maebe
974c2363c0 - removed tdataconstnode, as it is no longer used and is not type safe.
Use a typed constant builder instead.

git-svn-id: trunk@34155 -
2016-07-19 14:30:42 +00:00
Jonas Maebe
adef9340e6 * converted metadata generation for variant dispatch to high level typed
constant builder

git-svn-id: trunk@34154 -
2016-07-19 14:30:39 +00:00
Jonas Maebe
8fea7344c9 * added an extra parameter to ttai_typedconstbuilder.emit_pchar_const() to
indicate whether it should create a copy of the pchar or not

git-svn-id: trunk@34153 -
2016-07-19 14:30:36 +00:00
Jonas Maebe
68cbbe677a * fixed type information for C-block typed constants (fixes
tests/test/tblock1.pp for llvm)

git-svn-id: trunk@34152 -
2016-07-19 14:30:33 +00:00
Jonas Maebe
017d4edbbb * fixed memory typecast of complex procdef to simple procvar: left.resultdef
is a procdef, but after the load was finished it's actually already a
    (complex) procvar. And since it's a memory location, the result of the
    typecast is a pointer to the typeconvnode's resultdef (fixes
    tests/tbs/tb0594.pp and others for llvm)

git-svn-id: trunk@34151 -
2016-07-19 14:30:30 +00:00
Jonas Maebe
3177199d94 * changed all debug info labels from AT_DATA to AT_METADATA
git-svn-id: trunk@34150 -
2016-07-19 11:57:52 +00:00
Jonas Maebe
5ac99f62e9 + AT_METADATA symbol type for data that is unrelated to the program
exectuion (such as debug information). It's handled the same as
    AT_DATA by assemblers/assembler writers.

git-svn-id: trunk@34149 -
2016-07-19 11:57:31 +00:00
pierre
d4945f4fd0 Avoid range check error for Win64 by correcting type of parameters for GetModuleFileNameA WinAPI function
git-svn-id: trunk@34148 -
2016-07-19 11:35:21 +00:00
pierre
d1a610a2fc Avoid range check error on win64 target in comparison of THandle to -1
git-svn-id: trunk@34147 -
2016-07-19 09:48:34 +00:00
michael
83538a3ceb * Patch from Nur Cholif Murtadho to enable grayscale JPEG writing (bug ID 30386)
git-svn-id: trunk@34146 -
2016-07-18 18:32:52 +00:00
joost
0dcfb90f13 * Fixed problem with uninitialized return value
git-svn-id: trunk@34145 -
2016-07-16 17:25:31 +00:00
joost
8e45ef394e * Avoid that non-existing parts of version-numbers are replaced by zeros
git-svn-id: trunk@34144 -
2016-07-16 17:22:03 +00:00
joost
62d74cfeb2 * Ability to switch mirror/repository
git-svn-id: trunk@34143 -
2016-07-16 17:14:27 +00:00
joost
971c124bc7 * Forgotten to commit in r34141
git-svn-id: trunk@34142 -
2016-07-16 16:49:12 +00:00
joost
ef853991de * Improved error-message
git-svn-id: trunk@34141 -
2016-07-16 16:48:31 +00:00
Jonas Maebe
3c446c8605 * fixed crash when compiling libraries on non-Darwin after r34134
git-svn-id: trunk@34140 -
2016-07-16 14:13:33 +00:00
nickysn
a8ad82b99f + added new unit flag uf_i8086_ss_equals_ds, which indicates memory models with
SS=DS. This is currently redundant (whether SS=DS can be derived by the other
  i8086 memory model unit flags), but in the future will allow adding extra
  memory models, where the SS=DS assumption differs from the current ones.

git-svn-id: trunk@34139 -
2016-07-16 11:16:25 +00:00
nickysn
44e4b638ec + added the uf_package_deny and uf_package_weak unit flags to ppudump
git-svn-id: trunk@34138 -
2016-07-16 10:58:50 +00:00
Jonas Maebe
81b9928e31 * simply disable warnings rather than initialise the function result in
abstract method wrappers using default(resulttype), because "resulttype"
    may not be visible in the current unit. Fixes win32 build after r34127

git-svn-id: trunk@34137 -
2016-07-15 14:35:52 +00:00