------------------------------------------------------------------------
r39725 | pierre | 2018-09-10 13:28:33 +0000 (Mon, 10 Sep 2018) | 1 line
Add branches for 3.2.0, 3.2.1 and 3.3.1 versions
------------------------------------------------------------------------
--- Merging r39725 into '.':
U tests/utils/testsuite/utests.pp
--- Recording mergeinfo for merge of r39725 into '.':
U .
------------------------------------------------------------------------
r39733 | pierre | 2018-09-11 08:16:56 +0000 (Tue, 11 Sep 2018) | 1 line
sparc64-linux objects recompiled with GCC 7.3.0
------------------------------------------------------------------------
--- Merging r39733 into '.':
U tests/test/cg/obj/readme.txt
U tests/test/cg/obj/linux/sparc64/ctest.o
U tests/test/cg/obj/linux/sparc64/cpptcl1.o
U tests/test/cg/obj/linux/sparc64/cpptcl2.o
U tests/test/cg/obj/linux/sparc64/tcext3.o
U tests/test/cg/obj/linux/sparc64/tcext4.o
U tests/test/cg/obj/linux/sparc64/tcext5.o
U tests/test/cg/obj/linux/sparc64/tcext6.o
--- Recording mergeinfo for merge of r39733 into '.':
G .
------------------------------------------------------------------------
r39808 | pierre | 2018-09-26 09:29:33 +0000 (Wed, 26 Sep 2018) | 1 line
Disable libraries not compiling for jvm-java or jvm-android targets
------------------------------------------------------------------------
--- Merging r39808 into '.':
U packages/fppkg/fpmake.pp
U packages/fcl-base/fpmake.pp
U packages/rtl-extra/fpmake.pp
U packages/hermes/fpmake.pp
U packages/fcl-extra/fpmake.pp
U packages/fcl-db/fpmake.pp
U packages/unzip/fpmake.pp
U packages/odbc/fpmake.pp
U packages/gdbm/fpmake.pp
U packages/pthreads/fpmake.pp
U packages/fcl-json/fpmake.pp
U packages/pcap/fpmake.pp
U packages/numlib/fpmake.pp
U packages/rtl-generics/fpmake.pp
U packages/zlib/fpmake.pp
U packages/paszlib/fpmake.pp
U packages/webidl/fpmake.pp
U packages/regexpr/fpmake.pp
U packages/libgd/fpmake.pp
U packages/fcl-net/fpmake.pp
U packages/fcl-res/fpmake.pp
U packages/libpng/fpmake.pp
U packages/dblib/fpmake.pp
U packages/tcl/fpmake.pp
U packages/openssl/fpmake.pp
U packages/ibase/fpmake.pp
U packages/bzip2/fpmake.pp
U packages/fcl-sdo/fpmake.pp
U packages/fcl-sound/fpmake.pp
U packages/fcl-passrc/fpmake.pp
U packages/fcl-stl/fpmake.pp
U packages/libmicrohttpd/fpmake.pp
U packages/mysql/fpmake.pp
U packages/postgres/fpmake.pp
U packages/httpd22/fpmake.pp
U packages/httpd24/fpmake.pp
U packages/rtl-console/fpmake.pp
U packages/sqlite/fpmake.pp
U packages/fftw/fpmake.pp
U packages/fcl-pdf/fpmake.pp
U packages/rtl-objpas/fpmake.pp
U packages/fcl-image/fpmake.pp
U packages/pasjpeg/fpmake.pp
U packages/chm/fpmake.pp
U packages/fcl-registry/fpmake.pp
U packages/libtar/fpmake.pp
U packages/symbolic/fpmake.pp
U packages/libenet/fpmake.pp
U packages/imagemagick/fpmake.pp
U packages/fcl-xml/fpmake.pp
U packages/oracle/fpmake.pp
U packages/fcl-fpcunit/fpmake.pp
U packages/fcl-js/fpmake.pp
U packages/fcl-async/fpmake.pp
U packages/fcl-process/fpmake.pp
U packages/pastojs/fpmake.pp
U packages/hash/fpmake.pp
U packages/rtl-unicode/fpmake.pp
U packages/fpmkunit/fpmake.pp
--- Recording mergeinfo for merge of r39808 into '.':
G .
------------------------------------------------------------------------
r40027 | pierre | 2018-10-24 21:37:54 +0000 (Wed, 24 Oct 2018) | 1 line
Fix compilation of RTL for watcom target
------------------------------------------------------------------------
--- Merging r40027 into '.':
U compiler/x86/agx86int.pas
--- Recording mergeinfo for merge of r40027 into '.':
G .
------------------------------------------------------------------------
r40028 | pierre | 2018-10-25 06:39:42 +0000 (Thu, 25 Oct 2018) | 1 line
Try to fix compilation error after commit #40027
------------------------------------------------------------------------
--- Merging r40028 into '.':
G compiler/x86/agx86int.pas
--- Recording mergeinfo for merge of r40028 into '.':
G .
------------------------------------------------------------------------
r40102 | pierre | 2018-10-31 09:07:57 +0000 (Wed, 31 Oct 2018) | 1 line
Replace aint (which is a compiler specific type) by ptruint type, which is defined in system unit
------------------------------------------------------------------------
--- Merging r40102 into '.':
U tests/test/tarray5.pp
--- Recording mergeinfo for merge of r40102 into '.':
G .
------------------------------------------------------------------------
r40103 | pierre | 2018-10-31 09:59:45 +0000 (Wed, 31 Oct 2018) | 1 line
Use pdword to avoid range check erro in tentryfile.getdword method
------------------------------------------------------------------------
--- Merging r40103 into '.':
U compiler/entfile.pas
--- Recording mergeinfo for merge of r40103 into '.':
G .
------------------------------------------------------------------------
r40104 | pierre | 2018-10-31 10:21:51 +0000 (Wed, 31 Oct 2018) | 1 line
Use longint type instead of AWord for Initial parameter in CalcExecutionWeigths (to avoid range error for avr compiler)
------------------------------------------------------------------------
@@
begin
Result:=fen_false;
n.allocoptinfo;
<<<<<<< MINE (select with 'mc') (367)
Weight:=PAWord(arg)^;
||||||| ORIGINAL (367)
Weight:=max(PAWord(arg)^,1);
=======
Weight:=max(plongint(arg)^,1);
>>>>>>> THEIRS (select with 'tc') (367)
case n.nodetype of
casen:
begin
--- Merging r40104 into '.':
C compiler/optutils.pas
--- Recording mergeinfo for merge of r40104 into '.':
G .
Summary of conflicts:
Text conflicts: 1
------------------------------------------------------------------------
r40110 | pierre | 2018-10-31 14:51:23 +0000 (Wed, 31 Oct 2018) | 1 line
Avoid range check error in MaskLength evaluation
------------------------------------------------------------------------
--- Merging r40110 into '.':
U compiler/x86/aoptx86.pas
--- Recording mergeinfo for merge of r40110 into '.':
G .
------------------------------------------------------------------------
r40111 | pierre | 2018-10-31 15:47:53 +0000 (Wed, 31 Oct 2018) | 1 line
Complement commit 40104, by changing type of executionweight in toptinfo record and adapt pass_2 code
------------------------------------------------------------------------
--- Merging r40111 into '.':
U compiler/pass_2.pas
U compiler/optbase.pas
--- Recording mergeinfo for merge of r40111 into '.':
G .
------------------------------------------------------------------------
r40112 | pierre | 2018-10-31 15:48:32 +0000 (Wed, 31 Oct 2018) | 1 line
Disable range check completely in arm/cgcpu unit
------------------------------------------------------------------------
--- Merging r40112 into '.':
U compiler/arm/cgcpu.pas
--- Recording mergeinfo for merge of r40112 into '.':
G .
------------------------------------------------------------------------
r40113 | pierre | 2018-10-31 15:49:14 +0000 (Wed, 31 Oct 2018) | 1 line
Avoid overflow in code
------------------------------------------------------------------------
--- Merging r40113 into '.':
U compiler/symdef.pas
--- Recording mergeinfo for merge of r40113 into '.':
G .
------------------------------------------------------------------------
r40114 | pierre | 2018-10-31 15:50:26 +0000 (Wed, 31 Oct 2018) | 1 line
Add explicit rtlclean/rtl targets in fullcycle rule if DOWPOCYCLE is set
------------------------------------------------------------------------
--- Merging r40114 into '.':
U compiler/Makefile.fpc
U compiler/Makefile
--- Recording mergeinfo for merge of r40114 into '.':
G .
------------------------------------------------------------------------
r40120 | pierre | 2018-10-31 23:15:22 +0000 (Wed, 31 Oct 2018) | 1 line
Change RemoveCurrentP parameter type to tai, because GetNextInstruction does not always return a taicpu, adapt code in avr/aoptcpu unit
------------------------------------------------------------------------
--- Merging r40120 into '.':
U compiler/aoptobj.pas
U compiler/avr/aoptcpu.pas
--- Recording mergeinfo for merge of r40120 into '.':
G .
------------------------------------------------------------------------
r40121 | pierre | 2018-10-31 23:16:51 +0000 (Wed, 31 Oct 2018) | 1 line
Add check about tloadnode.symtableentry type before typecast
------------------------------------------------------------------------
--- Merging r40121 into '.':
U compiler/ncal.pas
--- Recording mergeinfo for merge of r40121 into '.':
G .
------------------------------------------------------------------------
r40122 | pierre | 2018-10-31 23:18:09 +0000 (Wed, 31 Oct 2018) | 1 line
Fix typecast in FindRegDeAlloc call
------------------------------------------------------------------------
--- Merging r40122 into '.':
U compiler/arm/aoptcpu.pas
--- Recording mergeinfo for merge of r40122 into '.':
G .
------------------------------------------------------------------------
r40123 | pierre | 2018-10-31 23:19:39 +0000 (Wed, 31 Oct 2018) | 1 line
Remove unneeded typecasts in TryTOptimizeMove
------------------------------------------------------------------------
--- Merging r40123 into '.':
U compiler/m68k/aoptcpu.pas
--- Recording mergeinfo for merge of r40123 into '.':
G .
------------------------------------------------------------------------
r40124 | pierre | 2018-10-31 23:20:29 +0000 (Wed, 31 Oct 2018) | 1 line
Add global range check disable for i8086 cgcpu and x86 nx86add units
------------------------------------------------------------------------
--- Merging r40124 into '.':
U compiler/i8086/cgcpu.pas
U compiler/x86/nx86add.pas
--- Recording mergeinfo for merge of r40124 into '.':
G .
------------------------------------------------------------------------
r40131 | pierre | 2018-11-01 07:01:02 +0000 (Thu, 01 Nov 2018) | 1 line
Remove another wrong typecast when testing that a tai is an instruction
------------------------------------------------------------------------
--- Merging r40131 into '.':
G compiler/m68k/aoptcpu.pas
--- Recording mergeinfo for merge of r40131 into '.':
G .
------------------------------------------------------------------------
r40236 | pierre | 2018-11-06 07:40:31 +0000 (Tue, 06 Nov 2018) | 1 line
Really change extension of hs1 local variable in get_exepath
------------------------------------------------------------------------
--- Merging r40236 into '.':
U compiler/globals.pas
--- Recording mergeinfo for merge of r40236 into '.':
G .
------------------------------------------------------------------------
r40237 | pierre | 2018-11-06 07:41:15 +0000 (Tue, 06 Nov 2018) | 1 line
Disable range checking in rax86int unit
------------------------------------------------------------------------
--- Merging r40237 into '.':
U compiler/x86/rax86int.pas
--- Recording mergeinfo for merge of r40237 into '.':
G .
------------------------------------------------------------------------
r40278 | pierre | 2018-11-08 20:19:54 +0000 (Thu, 08 Nov 2018) | 1 line
Downgrade EXTDEBUG warning to note about zero size temp, as it is used for empty sets
------------------------------------------------------------------------
--- Merging r40278 into '.':
U compiler/tgobj.pas
--- Recording mergeinfo for merge of r40278 into '.':
G .
git-svn-id: branches/fixes_3_2@40624 -
sysv_abi_cdecl calling conventions on x86-64 to force using the SYSV/
Microsoft ABI on platforms that don't use it by default (mainly to ease
porting pure assembler routines)
git-svn-id: trunk@35425 -
This was brkoken because the -dHEAPTRC option
adds ppheap unit at top of the uses clause in pp.pas source,
which leads to a change in the loading order of the units.
This order change revealed that initialization of fpkg unit
was supposed to happen after globals unit.
Fixed here by testing if initdoneprocs local variable is assigned,
both in register_initdone_proc and in allocinitdoneprocs,
to avoid double initialization.
git-svn-id: trunk@34361 -
Merged revision(s) 28796, 28837-28845, 28847-28850, 28852, 32135 from branches/svenbarth/packages:
Provide possibility to pass packages and search paths for packages as parameters.
fpkg.pas:
+ new unit which contains the base types related to package files (most importantly "tpackage")
globals.pas:
+ new variable "packagesearchpath" which contains all paths in which package files should be looked for
+ new variable "packagelist" which contains a list of all packages that should be used in a program or library
* InitGlobals & DoneGlobals: initialize/finalize "packagesearchpath" accordingly ("packagelist" is handled in unit fpkg using a init/done-callback)
options.pas:
+ TOption: new fields "parapackagepath" and "parapackages" to keep track of package search paths and package files passed as parameters
* TOption.interpret_option: use '-Fp' for package search paths and '-FP' for package files
* read_arguments: apply the passed package search paths and packages to their respective containers
........
+ add a new unit which will contain basic functions related to handling packages
........
Move package related functions from pmodules to pkgutil.
pmodules.pas => pkgutil.pas:
* createimportlibfromexports
* varexport
* procexport
* insert_export
* RewritePPU
........
* adjust indentation
........
Extract the code to export the symbols of a unit to its own function in pkgutil so that less functions need to be exported.
pmodules.pas, proc_package:
* move code to export the symbols of a unit to new function export_unit
pkgutil.pas:
+ new function export_unit
- remove exports of procexport, varexport and insert_export
........
Some small fixes for package parsing.
pmodules.pas, proc_package:
* use orgpattern instead of pattern to build the module name (like is done in uses sections)
* ignore duplicates when generating exports
- no need to generate an import library for the package; that is done by the program/library that uses the package
........
+ new unit fpcp of which the class tpcppackage handles the reading and writing of package metadata from/to pcp files (equivalant to tppumodule).
........
+ add unit which contains representation of a PCP file (tpcpfile) like tppufile is for units.
........
Improve export generation.
pkgutil.pas:
+ new function exportprocsym to correctly export a procedure with all its aliases
+ new function exportabstractrecordsymproc to export the members of structured types
* insert_export: handle also namespacesym and propertsym (by ignoring them)
* insert_export: correctly export classes, record and objects
* insert_export: use new exportprocsym function to export a procsym
* insert_export: only export public variables of a static symtable
........
+ add entry constants for the name of the package and the package file names, both used by a PCP file
........
* use messages to get rid of most writelns related to package loading
........
Add additional entry types for PCP files
entfile.pas:
+ new entries ibstartrequireds and ibendrequireds to store the list of required packages
+ new entries ibstartcontained and ibendcontained to store the list of contained units
+ new entries ibstartppus and ibendppus to store the list of contained PPU files
........
Generate the PCP file once the package file and the used units were compiled correctly.
pmodules.pas:
* proc_package: generate the PCP file upon successful compilation
........
Add the possibility to load all packages supplied as parameters.
pkgutil.pas:
+ new function load_packages to load all packages supplied as parameters
pmodules.pas, proc_program:
* use load_packages to load all packages before any unit is loaded
........
Add code which tries to load a unit from a package first and only then as usual.
fppu.pas, tppumodule:
+ new method loadfrompackage which searches all available packages for the unit and loads it from there if found
* loadppu: first try to load the unit from a package if any are available
........
Don't link objects files of a unit that is provided by a package.
pmodules.pas, proc_program:
* if a unit has uf_in_library set we must not include it in the units we link against
........
git-svn-id: trunk@33452 -
globtype.pas:
+ tlocalswitch: extend by cs_imported_data
globals.pas:
* default_settings: cs_imported_data is set by default (Delphi compatible)
switches.pas:
* turboSwitchTable: G is used for cs_imported_data
scandir.pas:
+ new directive handler dir_importeddata
* InitScannerDirectives: handle IMPORTEDDATA with dir_importeddata
git-svn-id: trunk@33281 -
CPU target for inline assembler blocks. In addition to the different CPUs
(as listed under 'Supported CPU instruction sets:' in the output of 'fpc -i'),
it also supports the special values 'ANY' and 'CURRENT'. 'ANY' means no
restrictions (i.e. all instructions are available). 'CURRENT' means the
current CPU target (as specified with the '-Cp' command line option). For
backward compatibility, the default value is 'ANY' for all CPU targets, except
i8086, where it defaults to 'CURRENT'.
This directive requires support for the new asd_cpu directive in the assembler
writer. This is currently implemented only for NASM, but will be supported in
some of the other assembler writers as well (incl. the x86 internal assembler
writer).
git-svn-id: trunk@33138 -
Provide possibility to register callbacks that are called from InitGlobals and DoneGlobals.
globals.pas:
+ new function register_initdone_proc which allows to register a callback for InitGlobals and DoneGlobals respectively
+ add functions callinitprocs, calldoneprocs, allocinitdoneprocs, freeinitdoneprocs to manage and access the init/done-callbacks
* InitGlobals: call callinitprocs
* DoneGlobals: call calldoneprocs
........
git-svn-id: trunk@32977 -
names, and disabled them for ppc64 ELFv2
* disabling those also disables the function descriptors, so use the
_CALL_ELF compiler variable to check whether there is in fact a
function descriptor
git-svn-id: trunk@30196 -