* android: Changed additions to the linker script to prevent misalignment of the .data section. It fixes crash when linking using recent versions of LD where the "relro" option is default. Issue #35641.
* android: Always pass "-z relro" to the linker.
........
git-svn-id: branches/fixes_3_2@44044 -
U compiler/ninl.pas
--- Recording mergeinfo for merge of r40180 into '.':
U .
--- Merging r40216 into '.':
U compiler/htypechk.pas
G compiler/ninl.pas
U tests/tbf/tb0258.pp
A tests/tbf/tb0259.pp
A tests/tbf/tb0260.pp
A tests/tbs/tb0653.pp
--- Recording mergeinfo for merge of r40216 into '.':
G .
--- Merging r40217 into '.':
U compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r40217 into '.':
G .
--- Merging r40218 into '.':
G compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r40218 into '.':
G .
git-svn-id: branches/fixes_3_2@44000 -
U compiler/systems/t_bsd.pas
U utils/fppkg/fpmake.pp
-- Aufzeichnung der Informationen für Zusammenführung von r43696 in ».«:
U .
git-svn-id: branches/fixes_3_2@43708 -
U compiler/i386/cpupi.pas
U compiler/ncgcal.pas
U compiler/ncgutil.pas
U compiler/systems/i_bsd.pas
U compiler/systems/i_linux.pas
U compiler/systems.inc
git-svn-id: branches/fixes_3_2@43683 -
G .
-- Aufzeichnung der Informationen für Zusammenführung von r43006 in ».«:
G .
-- Aufzeichnung der Informationen für Zusammenführung von r43007 in ».«:
G .
-- Aufzeichnung der Informationen für Zusammenführung von r43008 in ».«:
G .
-- Zusammenführen von r43000 in ».«:
U compiler/pp.pas
-- Aufzeichnung der Informationen für Zusammenführung von r43000 in ».«:
G .
-- Zusammenführen von r43011 in ».«:
U rtl/inc/system.inc
-- Aufzeichnung der Informationen für Zusammenführung von r43011 in ».«:
G .
-- Zusammenführen von r43012 in ».«:
U rtl/i386/i386.inc
-- Aufzeichnung der Informationen für Zusammenführung von r43012 in ».«:
G .
-- Zusammenführen von r43013 in ».«:
U rtl/linux/i386/si_c21.inc
-- Aufzeichnung der Informationen für Zusammenführung von r43013 in ».«:
G .
-- Zusammenführen von r43014 in ».«:
U compiler/systems/i_linux.pas
-- Aufzeichnung der Informationen für Zusammenführung von r43014 in ».«:
G .
-- Zusammenführen von r43176 in ».«:
U compiler/i386/cpupi.pas
U compiler/i386/n386cal.pas
U compiler/ncgcal.pas
U compiler/ncgutil.pas
G compiler/systems/i_linux.pas
U compiler/systems.inc
C compiler/systems.pas
G tests/webtbs/tw7808.pp
-- Aufzeichnung der Informationen für Zusammenführung von r43176 in ».«:
G .
Konfliktübersicht:
Textkonflikte: 1
Konfliktübersicht:
Textkonflikte: 1
git-svn-id: branches/fixes_3_2@43434 -
U compiler/cfileutl.pas
U compiler/options.pas
U compiler/systems/t_bsd.pas
C compiler/systems/t_linux.pas
--- Merging r43302 into '.':
G compiler/cfileutl.pas
--- Merging r43306 into '.':
G compiler/cfileutl.pas
--- Merging r43312 into '.':
G compiler/cfileutl.pas
G compiler/options.pas
U compiler/scandir.pas
U compiler/systems/t_aix.pas
U compiler/systems/t_beos.pas
G compiler/systems/t_bsd.pas
U compiler/systems/t_haiku.pas
C compiler/systems/t_linux.pas
U compiler/systems/t_macos.pas
U compiler/systems/t_sunos.pas
git-svn-id: branches/fixes_3_2@43421 -
and more precisely to cross reading/writing fixes.
------------------------------------------------------------------------
r41896 | pierre | 2019-04-18 14:08:03 +0000 (Thu, 18 Apr 2019) | 15 lines
Integrate patch from bug report 35409.
Add possibiliy to throw InternalError
for unhandled case values inside tentryfile,
But avoid adding dependency on verbose unit
as this would break ppudump handling of ppu files.
Add RaiseAssertion virtual method to tentryfile class.
Call RaiseAssertion in tentryfile methods
where an internal error is wanted.
Override RaiseAssertion method in symtype.pas unit
to call InternalError.
Add new class tppudumpfile to override RaiseAssertion
in utils/ppuutils/ppudump.pp unit.
------------------------------------------------------------------------
--- Merging r41896 into '.':
U compiler/entfile.pas
U compiler/pcp.pas
U compiler/symtype.pas
U compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r41896 into '.':
U .
------------------------------------------------------------------------
r42111 | pierre | 2019-05-20 22:06:57 +0000 (Mon, 20 May 2019) | 1 line
List TSettings partially and improve generic output
------------------------------------------------------------------------
--- Merging r42111 into '.':
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42111 into '.':
G .
------------------------------------------------------------------------
r42322 | pierre | 2019-07-03 13:35:05 +0000 (Wed, 03 Jul 2019) | 1 line
Systematically include fpcdefs.inc at sart of all units used by compiler
------------------------------------------------------------------------
--- Merging r42322 into '.':
U compiler/aarch64/cpuinfo.pas
U compiler/arm/cpuinfo.pas
U compiler/avr/cpuinfo.pas
U compiler/ccharset.pas
U compiler/generic/cpuinfo.pas
U compiler/jvm/cpuinfo.pas
U compiler/m68k/cpuinfo.pas
U compiler/macho.pas
U compiler/machoutils.pas
U compiler/mips/cpuinfo.pas
G compiler/pcp.pas
U compiler/powerpc/cpuinfo.pas
U compiler/powerpc64/cpuinfo.pas
U compiler/systems/i_wii.pas
--- Recording mergeinfo for merge of r42322 into '.':
G .
------------------------------------------------------------------------
r42323 | pierre | 2019-07-04 15:24:49 +0000 (Thu, 04 Jul 2019) | 7 lines
* Set ControllerSupport to false for sparc/sparc64 and x86_64 CPUs.
This boolean must only be set to true if TControllerType is not simply (ct_none)
* ppu.pas: Increment CurrentPPULongVersion constant as the above modification
changes the number of fields of the TSettings record that is saved to
PPU in ST_LOADSETTINGS field. { not mereged }
------------------------------------------------------------------------
--- Merging r42323 into '.':
C compiler/ppu.pas { not mereged }
U compiler/sparc/cpuinfo.pas
U compiler/sparc64/cpuinfo.pas
U compiler/x86_64/cpuinfo.pas
--- Recording mergeinfo for merge of r42323 into '.':
G .
------------------------------------------------------------------------
r42324 | pierre | 2019-07-04 15:25:40 +0000 (Thu, 04 Jul 2019) | 1 line
Correctly read saved tsettings
------------------------------------------------------------------------
--- Merging r42324 into '.':
C compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42324 into '.':
G .
Summary of conflicts:
Text conflicts: 1
------------------------------------------------------------------------
r42325 | marcus | 2019-07-04 16:49:26 +0000 (Thu, 04 Jul 2019) | 1 line
Fixed ppudump compilation on big endian platforms after r42324
------------------------------------------------------------------------
--- Merging r42325 into '.':
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42325 into '.':
G .
------------------------------------------------------------------------
r42353 | svenbarth | 2019-07-12 16:25:33 +0000 (Fri, 12 Jul 2019) | 1 line
* write an entry name for the property options
------------------------------------------------------------------------
--- Merging r42353 into '.':
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42353 into '.':
G .
------------------------------------------------------------------------
r42354 | svenbarth | 2019-07-12 16:25:36 +0000 (Fri, 12 Jul 2019) | 1 line
* write a name for the none property access entry (looks nicer than a "(Nil)" at the start of the line)
------------------------------------------------------------------------
--- Merging r42354 into '.':
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42354 into '.':
G .
------------------------------------------------------------------------
r42527 | pierre | 2019-07-29 05:33:00 +0000 (Mon, 29 Jul 2019) | 22 lines
Fix recordtoken writing into ppu files to allow correct
handling in cross-configuration with different endianess.
The code has been modified to use the same scheme as the writing of
the other parts of the ppu, i.e. change_endian filed has been
added also to tscannerfile class of scanner unit.
This field is then used to swap values that required endianess
conversion.
* scanner.pas: change_endian filed added to tscannerfile class.
The value of this field is set as the same field in tentryfile class of entfile unit.
Token read and write methods converted to use change_endian field.
* ppu.pas: Increase CurrentPPILongVersion
* utils/ppuutils/ppudump.pp: Remove unneeded FPC_BIG_ENDIAN code
which was needed because tokens were previously written using a
different rule.
------------------------------------------------------------------------
--- Merging r42527 into '.':
C compiler/ppu.pas
U compiler/scanner.pas
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42527 into '.':
G .
Summary of conflicts:
Text conflicts: 1
------------------------------------------------------------------------
r42528 | pierre | 2019-07-29 11:54:27 +0000 (Mon, 29 Jul 2019) | 1 line
Changed paths:
M /trunk/compiler/scanner.pas
Try to fix bug introduced in previous commit #42527, hopefully fixing bug report 35902
------------------------------------------------------------------------
--- Merging r42528 into '.':
G compiler/scanner.pas
--- Recording mergeinfo for merge of r42528 into '.':
G .------------------------------------------------------------------------
r42530 | pierre | 2019-07-29 16:40:58 +0000 (Mon, 29 Jul 2019) | 8 lines
Try to fix ppudump for generic/inline.
* entfile.pas: Differenciate ibsymtableoptions and ibrecsymtableoptions.
* ppu.pas: Increase ppu unit CurrentPPULongVersion value.
* utils/ppuutils/ppudump.pp: Add current_symtable_options variable.
Change readsymtableoptions from procedure to function returning
the new tsymtableoptions.
------------------------------------------------------------------------
--- Merging r42530 into '.':
G compiler/entfile.pas
G compiler/ppu.pas
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42530 into '.':
G .
------------------------------------------------------------------------
r42583 | pierre | 2019-08-05 09:15:12 +0000 (Mon, 05 Aug 2019) | 1 line
Reorganize token buffer output to be able to use it for generics and inlined functions
------------------------------------------------------------------------
--- Merging r42583 into '.':
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42583 into '.':
G .
------------------------------------------------------------------------
r42591 | pierre | 2019-08-06 06:32:52 +0000 (Tue, 06 Aug 2019) | 1 line
Add mode and optimizer switches names, and check that no unknown switch is set
------------------------------------------------------------------------
--- Merging r42591 into '.':
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42591 into '.':
G .
------------------------------------------------------------------------
r42596 | pierre | 2019-08-06 21:32:51 +0000 (Tue, 06 Aug 2019) | 1 line
Fix gettokenbufshortint, as shortint is one byte long, not two
------------------------------------------------------------------------
--- Merging r42596 into '.':
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42596 into '.':
G .
------------------------------------------------------------------------
r42609 | pierre | 2019-08-09 09:29:50 +0000 (Fri, 09 Aug 2019) | 1 line
Correct size of asizeint, which is still 4-byte long even when CpuAddrBitSize is 16 as for avr and i8086
------------------------------------------------------------------------
--- Merging r42609 into '.':
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42609 into '.':
G .
------------------------------------------------------------------------
r42670 | pierre | 2019-08-13 06:20:23 +0000 (Tue, 13 Aug 2019) | 1 line
Reduce cpu-os dependency on real constant printout by using system.str
------------------------------------------------------------------------
--- Merging r42670 into '.':
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42670 into '.':
G .
------------------------------------------------------------------------
r42906 | pierre | 2019-09-02 16:00:15 +0000 (Mon, 02 Sep 2019) | 1 line
Fix problems with big endian systems without 80-bit floating point support
------------------------------------------------------------------------
--- Merging r42906 into '.':
G compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r42906 into '.':
G .
git-svn-id: branches/fixes_3_2@43387 -
r40756 | karoly | 2019-01-04 03:00:03 +0000 (Fri, 04 Jan 2019) | 1 line
haiku: linker support code for internal sysinit and make the x86_64 port use it
------------------------------------------------------------------------
--- Merging r40756 into '.':
G compiler/systems/t_haiku.pas
U compiler/systems.pas
--- Recording mergeinfo for merge of r40756 into '.':
G .
------------------------------------------------------------------------
------------------------------------------------------------------------
r40791 | karoly | 2019-01-07 12:58:02 +0000 (Mon, 07 Jan 2019) | 1 line
haiku: move i386 also to internal sysinit
------------------------------------------------------------------------
U compiler/systems.pas
U rtl/haiku/system.pp
--- Recording mergeinfo for merge of r40791 into '.':
U .
git-svn-id: branches/fixes_3_2@42136 -
------------------------------------------------------------------------
r40753 | karoly | 2019-01-04 02:16:24 +0000 (Fri, 04 Jan 2019) | 1 line
haiku-x86_64: add target to the compiler and ppudump, enable it in fpmake and fpcmake
------------------------------------------------------------------------
--- Merging r40753 into '.':
U compiler/options.pas
U compiler/systems/i_haiku.pas
U compiler/systems/t_haiku.pas
U compiler/systems.inc
U compiler/utils/ppuutils/ppudump.pp
U compiler/x86/agx86att.pas
U compiler/x86_64/cpuelf.pas
U compiler/x86_64/cputarg.pas
U utils/fpcm/fpcmmain.pp
--- Recording mergeinfo for merge of r40753 into '.':
U .
------------------------------------------------------------------------
r40756 | karoly | 2019-01-04 03:00:03 +0000 (Fri, 04 Jan 2019) | 1 line
haiku: linker support code for internal sysinit and make the x86_64 port use it
------------------------------------------------------------------------
--- Merging r40756 into '.':
G compiler/systems/t_haiku.pas
U compiler/systems.pas
--- Recording mergeinfo for merge of r40756 into '.':
G .
git-svn-id: branches/fixes_3_2@42133 -
U packages/opengl/src/gl.pp
U packages/opengl/src/glu.pp
U packages/opengl/src/glut.pp
--- Recording mergeinfo for merge of r41646 into '.':
U .
--- Merging r41647 into '.':
G packages/opengl/src/gl.pp
G packages/opengl/src/glu.pp
G packages/opengl/src/glut.pp
--- Recording mergeinfo for merge of r41647 into '.':
G .
--- Merging r41675 into '.':
U compiler/systems/i_bsd.pas
--- Recording mergeinfo for merge of r41675 into '.':
G .
--- Merging r41695 into '.':
A rtl/openbsd/si_impl.inc
U rtl/openbsd/si_intf.inc
U rtl/openbsd/si_prc.pp
U rtl/openbsd/x86_64/si_prc.inc
--- Recording mergeinfo for merge of r41695 into '.':
G .
--- Merging r41696 into '.':
U compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r41696 into '.':
G .
--- Merging r41697 into '.':
G compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r41697 into '.':
G .
--- Merging r41698 into '.':
G compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r41698 into '.':
G .
--- Merging r41699 into '.':
G compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r41699 into '.':
G .
--- Merging r41700 into '.':
G compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r41700 into '.':
G .
--- Merging r41701 into '.':
U rtl/openbsd/si_impl.inc
G rtl/openbsd/si_intf.inc
G rtl/openbsd/x86_64/si_prc.inc
--- Recording mergeinfo for merge of r41701 into '.':
G .
# revisions: 41646,41647,41675,41695,41696,41697,41698,41699,41700,41701
git-svn-id: branches/fixes_3_2@41985 -
U compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r41637 into '.':
U .
--- Merging r41638 into '.':
G compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r41638 into '.':
G .
--- Merging r41639 into '.':
G compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r41639 into '.':
G .
--- Merging r41652 into '.':
G compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r41652 into '.':
G .
--- Merging r41668 into '.':
G compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r41668 into '.':
G .
# revisions: 41637,41638,41639,41652,41668
r41637 | nickysn | 2019-03-08 16:59:00 +0100 (Fri, 08 Mar 2019) | 2 lines
Changed paths:
M /trunk/compiler/systems/t_bsd.pas
* Correct library search path for OpenBSD. Based on 1/3 of OpenBSD ports patch
patch-fpcsrc_compiler_systems_t_bsd_pas
r41638 | nickysn | 2019-03-08 17:01:30 +0100 (Fri, 08 Mar 2019) | 2 lines
Changed paths:
M /trunk/compiler/systems/t_bsd.pas
* always add -nopie to linker flags on OpenBSD. Based on 2/3 of OpenBSD ports
patch patch-fpcsrc_compiler_systems_t_bsd_pas
r41639 | nickysn | 2019-03-08 17:04:48 +0100 (Fri, 08 Mar 2019) | 2 lines
Changed paths:
M /trunk/compiler/systems/t_bsd.pas
* Do not link to /usr/libexec/ld.so as a shared library on OpenBSD. Based on 3/3
of OpenBSD ports patch patch-fpcsrc_compiler_systems_t_bsd_pas
r41652 | nickysn | 2019-03-09 17:11:52 +0100 (Sat, 09 Mar 2019) | 3 lines
Changed paths:
M /trunk/compiler/systems/t_bsd.pas
* link with -nopie on OpenBSD only if PIC code generation is disabled
r41668 | nickysn | 2019-03-10 16:56:09 +0100 (Sun, 10 Mar 2019) | 5 lines
Changed paths:
M /trunk/compiler/systems/t_bsd.pas
+ pass the -dynamic-linker option to the linker even when making a static binary
on OpenBSD, because that seems to be needed in order to produce a static
position independent executable in the correct format for that platform
git-svn-id: branches/fixes_3_2@41901 -
r40905 | pierre | 2019-01-19 16:06:04 +0000 (Sat, 19 Jan 2019) | 1 line
Also add /usr/lib/CPU-linux-gnu to link directory list for mips and mipsel
------------------------------------------------------------------------
--- Merging r40905 into '.':
U compiler/systems/t_linux.pas
--- Recording mergeinfo for merge of r40905 into '.':
U .
git-svn-id: branches/fixes_3_2@41077 -
Revision(s) 39739, 39749, 39860, 39862, 39865, 39869, 39871, 39903, 39905, 39917, 39956, 39959-39960, 39969, 39971, 39980, 39987, 40198-40201, 40472, 40532, 40535-40536 from trunk:
* Android: The list of supported syscalls has been auto-generated directly from android sources for each CPU.
* Minor adjustments to make all compilable with the proper list of Android syscalls.
........
* Re-generated lists of android syscalls by a new script. The lists are more correct now. The script's location: https://svn.freepascal.org/svn/fpcbuild/scripts/android
........
* Fixed UnhookSignal when RTL_SIGDEFAULT is passed. The bug have caused crash on aarch64-android due to out of bounds read of the rtlsig2ossig[] array.
........
+ Added support for the aarch64-android target.
........
* Set ICU data dir if it is not set by the system. It fixes issues on newer Android versions.
* Added more predefined ICU versions.
........
* android: Use the current dir as temp.
........
* Corrected TUContext record for aarch64-linux and aarch64-android. It fixes obtaining of an address of the instruction where a signal has thrown.
........
* Enabled safecall support for aarch64 to be on par with other cpus.
........
* Android: Reworked the startup code to use no assembly instructions. Generic assembler startup files contains only section data and are compiled for each CPU.
* Android: argc and argv are correct for shared libraries.
........
* Use syscall_nr_renameat for android.
........
+ added support for x86_64-android target.
........
+ Added the auto-generated list syscalls for mips64-android. It will be needed when mips64 is supported.
........
* x86_64-android requires sigreturn for proper signal handling.
........
* Register external gas assembler for aarch64-android and x86_64-android.
........
* Enabled compilation of the cpu unit for arm-android and x86_64-android.
........
* ucnv_open() must be called with some SSE exception masked on x86_64-android.
* Call u_init() during initialization.
........
* Create the ".note.gnu.build-id" section for android. It fixes debugging of shared libs in Android Studio.
........
* android: Removed cwstring from the uses clause of the unix unit. Use cwstring indirectly. It allows to avoid using cwstring if needed.
........
* ICU v3.8 on Android 1.5-2.1 is buggy and can't be unloaded properly.
........
* Fixed locale detection on new Android versions.
........
* Fixed obtaining a time zone information for 64-bit android.
........
* Since Android 8 the net.dnsX properties can't be read. Use Google Public DNS servers.
........
* android: Use libc for sockets since the "accept" syscall is blocked by SECCOMP, but the "accept4" alternative is not available on old Android versions (2.3 and older).
........
* android: Regenerated syscalls.
........
* android: Disabled usage of the "pselect6" and "ppoll" syscalls for arm-android. These syscalls are not available on old Android versions (2.3 or older).
........
git-svn-id: branches/fixes_3_2@40540 -
dwarf debug sections. This is because they are converted to upper case when
reading (so that we treat omf section names as case-insensitive)
git-svn-id: trunk@39220 -
information. Only enabled on i8086 (for now). Does not do much yet, but
hopefully, soon it'll start emitting line number information for i8086-msdos
that is usable by DOS debuggers.
git-svn-id: trunk@39006 -
so that they can still be freed after the reference has been changed
(e.g. in case of array indexing or record field accesses) (mantis #33628)
git-svn-id: trunk@38814 -
when compiling an msdos executable in the huge memory model with the internal
linker (previously it would always print "0 bytes data" in the huge memory
model)
git-svn-id: trunk@37771 -