Commit Graph

49148 Commits

Author SHA1 Message Date
yury
e81cc4574f * pas2jni: Removed option to create event handler by passing Java method method name as a string. It is not safe, since the target method is treated as unused by Java and the method may be removed from the resulting application.
git-svn-id: trunk@34367 -
2016-08-22 10:13:45 +00:00
florian
385f13cae9 * excplicitly link against libc in the unit dl, so the correct startup files are used, resolves issue #29594
git-svn-id: trunk@34366 -
2016-08-22 10:03:58 +00:00
florian
f274e316fe + search /usr/lib/powerpc-linux-gnu for powerpc startup files
git-svn-id: trunk@34365 -
2016-08-22 10:01:47 +00:00
pierre
22a7ce8972 Fix memory leak due to double srsym allocation
git-svn-id: trunk@34364 -
2016-08-21 22:26:59 +00:00
pierre
dfeb6e3ae1 Avoid memory leak on trecorddef.variantrecorddesc field
git-svn-id: trunk@34363 -
2016-08-21 22:25:13 +00:00
pierre
eefdf135a5 Always write filename, truncate directory part if needed
git-svn-id: trunk@34362 -
2016-08-21 22:24:07 +00:00
pierre
8d1467157c Fix compiler compilation with -dHEAPTRC.
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 -
2016-08-21 22:21:09 +00:00
pierre
ea4350d86a Avoid memory leak on tppumodule.unitimportsymsderefs
git-svn-id: trunk@34360 -
2016-08-21 21:53:02 +00:00
Jonas Maebe
4eea5d9651 * override ttempinfoaccessor.settempinfoflags() for llvm and filter out
ti_may_be_in_reg flag (see comments)

git-svn-id: trunk@34359 -
2016-08-21 14:23:13 +00:00
Jonas Maebe
179c1ab328 * changed ttemp*node.tempinfo^.flags to a private field, and added setters
and getters for the ttemp*node classes instead
   o this will allow descendants to prevent certain flags from being added
     or removed. E.g. for LLVM, certain temps must never be put in registers
     because it cannot typecast a value in a register from a non-record/array
     type to an array type without forcing it to memory (so if that is done
     on an lvalue, the result will be written to the memory temp instead of
     to the register)

git-svn-id: trunk@34358 -
2016-08-21 14:23:09 +00:00
michael
0ab6477081 * Patch from Mattias Gaertner:
pasresolver.pp: new unit, implements TPasResolver, already supports simple
  types, vars, const, arguments, some expressions, calls and used units.

  tcresolver: testing TPasResolver, 

  pastree: fixed some Free with Release calls, added comments, added ForEachCall methods.

  pscanner: added option po_resolvestandardtypes. Making built-in types configurable.

  pparser: added FinishScope, fixed some Free calls with Release, check proc default values, fixed some typos

  Updated tests.

  fppas2js: property UseLowerCase to choose between lowercase and declaration case (default true), 
  using TResolver data, added msg strings, improved error handling, added converter contexts, 
  function results, local vars, unit vars

git-svn-id: trunk@34357 -
2016-08-21 12:04:36 +00:00
yury
7756dab2bf * android: Create app files dir if needed.
git-svn-id: trunk@34356 -
2016-08-20 12:41:36 +00:00
yury
0adfe669aa * android: Fixed netdb. Load DNS servers from system properties.
git-svn-id: trunk@34355 -
2016-08-20 11:47:02 +00:00
joost
dc680ff49d * Added the ability to load multiple 'Repositories' from the configuration
file. A 'Repository' being a list of packages. (These repositories should
   replace the available, local and global list of packages)
 * The OptionParser can now be used for all options, not only the global
   options.

git-svn-id: trunk@34354 -
2016-08-20 11:22:07 +00:00
svenbarth
37c32f4b61 * generate indirect symbols for interface IID and IIDSTR (fixes cycling; I wonder why that worked on Windows without problems :/ )
git-svn-id: trunk@34353 -
2016-08-19 21:49:42 +00:00
yury
419c6ce61e * android:
+ API to write to the Android system log. 
  + API to redirect standard output and error to the Android system log. The redirection is performed automatically for shared libraries loaded by Java applications.

git-svn-id: trunk@34352 -
2016-08-19 20:21:52 +00:00
yury
3822515bd9 * android: Fixed GetAppConfigDir, GetAppConfigFile, GetUserDir, GetTempDir to return correct writable locations. For NDK libraries, the path to local storage of host Java app is used. For console apps the /data/local/tmp is used.
git-svn-id: trunk@34351 -
2016-08-19 18:07:57 +00:00
yury
aa85f515e2 * android: Added API level check for known old versions without timezone implementation in libc.
git-svn-id: trunk@34350 -
2016-08-19 16:37:13 +00:00
yury
4a661ea8f8 * android: Implemented clocale. Fixed makefile.
git-svn-id: trunk@34349 -
2016-08-19 16:30:23 +00:00
yury
064375ea72 * android: Use ICU to get timezone information if running on an Android version where libc does not implement timezone.
git-svn-id: trunk@34348 -
2016-08-19 14:57:02 +00:00
svenbarth
f50671fe44 * reference the RTTI assembler symbols if they're queried from a different unit than the own they're declared in
git-svn-id: trunk@34347 -
2016-08-19 14:54:28 +00:00
yury
c2ba68df44 * android: Added functions GetSystemProperty() and SystemApiLevel().
git-svn-id: trunk@34346 -
2016-08-19 14:50:18 +00:00
yury
b10e4aa27b * android: cwstring: Fixed crash on unload in some cases. Allow ICU usage from other units.
git-svn-id: trunk@34345 -
2016-08-19 14:48:09 +00:00
svenbarth
4a9eaf5317 * use findunitsymtable() when checking the module id
git-svn-id: trunk@34344 -
2016-08-19 14:42:03 +00:00
svenbarth
8b853571c6 * don't generate a warning if a "generic" token follows while parsing procedure directives (let's hope we'll never have to add a "generic" directive :/ )
+ added test

git-svn-id: trunk@34343 -
2016-08-19 14:07:36 +00:00
svenbarth
54874cccd6 * reference the VMT's assembler symbol if it's from another unit
git-svn-id: trunk@34342 -
2016-08-19 14:00:24 +00:00
svenbarth
1bd5d030f5 * don't export the indirect symbols on platforms that require the import redirection as there the indirect ones will be created in the importing binary
git-svn-id: trunk@34341 -
2016-08-19 13:48:27 +00:00
svenbarth
f1cdb5c4e9 * don't export types that have been merely renamed (and thus are part of another unit and potentially another package altogether)
git-svn-id: trunk@34340 -
2016-08-19 13:29:33 +00:00
svenbarth
1c696b0e77 * use indirect reference for FPC_THREADVAR_RELOCATE if necessary
* reference FPC_THREADVAR_RELOCATE assembler symbol if necessary

git-svn-id: trunk@34339 -
2016-08-19 13:07:56 +00:00
svenbarth
fb6546972b * IID and IIDStr references of the VMT's interface table need to be indirect
git-svn-id: trunk@34338 -
2016-08-19 13:06:26 +00:00
svenbarth
77de5dd968 * reference assembler symbol of FPC_EMPTYMETHOD using AB_EXTERNAL and not AB_GLOBAL
git-svn-id: trunk@34337 -
2016-08-19 12:42:14 +00:00
svenbarth
70fbe50bac * reference the extern assembler symbol of the VMT when catching an exception if it's from another unit
git-svn-id: trunk@34336 -
2016-08-19 12:41:06 +00:00
pierre
2ec79b3606 Set result of functions calling RunError to avoid useless warnings
git-svn-id: trunk@34335 -
2016-08-19 12:21:17 +00:00
pierre
44f00c2bf4 Do not cast @JumpToHandleSignal to a longint, use ptruint type instead
git-svn-id: trunk@34334 -
2016-08-19 12:20:21 +00:00
yury
5e9d826d04 * android: Explicitly specified import library name.
git-svn-id: trunk@34333 -
2016-08-18 14:39:54 +00:00
yury
2630f3c498 * android: Properly initialize time zone information.
git-svn-id: trunk@34332 -
2016-08-18 14:03:34 +00:00
pierre
ef05e4cb49 Ensure '/' is used as directory separator to get same output as before
git-svn-id: trunk@34331 -
2016-08-18 11:43:56 +00:00
pierre
2b250bc0ab Makefile regeneration after:
Fix failure for windows make, related to the use of redirection,
  which on mingw32 make generate the use of a batch file, incompatible with
  forward slashes usd for createlst and gparmake.

  * utils/createlst.pp:
    Modify to add a first parameter with the name of the output file.

    Makefile.fpc: Adapt to new parameter of createlst.
    Change list name for directory TEST from TESTfilelist.lst to filelistTEST.lst
    to avoid generating files that start as the directory.

git-svn-id: trunk@34330 -
2016-08-18 07:08:28 +00:00
pierre
92c1190ace Reintroduce $(Q)
git-svn-id: trunk@34329 -
2016-08-18 07:08:20 +00:00
pierre
05542fbed9 Fix failure for windows make, related to the use of redirection,
which on mingw32 make generate the use of a batch file, incompatible with
  forward slashes usd for createlst and gparmake.

  * utils/createlst.pp:
    Modify to add a first parameter with the name of the output file.

    Makefile.fpc: Adapt to new parameter of createlst.
    Change list name for directory TEST from TESTfilelist.lst to filelistTEST.lst
    to avoid generating files that start as the directory.

git-svn-id: trunk@34328 -
2016-08-18 07:06:19 +00:00
yury
c4347e28b9 * pas2jni: Fixed handling of identical names of classes, proctypes when they are defined in different units.
git-svn-id: trunk@34327 -
2016-08-17 19:09:54 +00:00
pierre
6a3466e81a + Also write 'Terminate requested...' to output, so that the
information gets into log files if output is redirected.
  * Add 1000 to ExitStatus if TerminateSentCount is > 0
    to allow better discrimination between inferior exitcode and
    stop due to Terminate use.

git-svn-id: trunk@34326 -
2016-08-17 09:52:02 +00:00
pierre
876fd4aa5f Renegerate Makefile after:
Fix infinite loop problem that appear on gcc112 linux machine using GNU make 4.0.

  * Never put destination directory in the dependency list, as it gets modified when
    the target file is created and led to infinite recursion.
    We cannot use $(MKDIRTREE) unconditionally as this generates make error
    at least on Windows OS.
    Instead, create an explicit target for $(TEST_OUTPUTDIR), and add a: 
    $(MAKE) $dir
    line on gparmake, createlst and $(MAKEINC) targets explicitly.

git-svn-id: trunk@34325 -
2016-08-17 05:37:17 +00:00
pierre
bf652e79ed Fix infinite loop problem that appear on gcc112 linux machine using GNU make 4.0.
* Never put destination directory in the dependency list, as it gets modified when
    the target file is created and led to infinite recursion.
    We cannot use $(MKDIRTREE) unconditionally as this generates make error
    at least on Windows OS.
    Instead, create an explicit target for $(TEST_OUTPUTDIR), and add a: 
    $(MAKE) $dir
    line on gparmake, createlst and $(MAKEINC) targets explicitly.

git-svn-id: trunk@34324 -
2016-08-17 05:36:23 +00:00
Jonas Maebe
68088cd1da * regenerated after r34322
git-svn-id: trunk@34323 -
2016-08-16 16:33:24 +00:00
Jonas Maebe
b3419ef06e * add $(CREATELST) to the dependencies of $(GPARMAKE), so that both binaries
are not compiled at the same time (because otherwise the compiler may
    trip over itself in case it performs linking via an external script or
    using a response file)

git-svn-id: trunk@34322 -
2016-08-16 16:33:21 +00:00
pierre
6f80a4cc29 Fix tw3124 test for systems on pagecode 437.
* Never modify the first half of LowerCaseTable:
   even if 'A' is the upper form of 'a' with an accent ('…'),
   that doesn't mean that the lowercase form of 'A' should be
   'a' with the accent ('…') instead of plain 'a'.

git-svn-id: trunk@34321 -
2016-08-16 14:47:29 +00:00
pierre
b9e336dcbe Fix for trwsync.pp sporadic failure that appeared in trunk.
The problem was in the source of random related functions,
  which are used in this test by several thread in parallel,
  while this code is known and advertised as non-thread safe.

  The access by multiple threads led to multiple increments of the
  mt_index static variable, which was then never reset to zero and
  led to all successive calls to random function to return zero.

  This fix simply insures that the mt_state array is never
  accessed past its end, and that mt_index is reset correctly even
  if multiple increments do happen.

  It does not make the random function thread-safe.

  * Use local variable l_index to avoid accessing mt_state array past last element.
  * Change mt_index=MTWIST_N+1 into l_index>=MTWIST_N+1
    to insure that mt_init will be called again if index is past end.

git-svn-id: trunk@34320 -
2016-08-16 11:59:33 +00:00
svenbarth
cdda4da2d3 * sort the paths alphabetically
git-svn-id: trunk@34319 -
2016-08-15 15:58:16 +00:00
svenbarth
0a1be7f985 * also export all public RTTI and (required) INIT symbols aside from the non-existing internal ones
git-svn-id: trunk@34318 -
2016-08-15 14:49:44 +00:00