Issues 3.0.0

From Free Pascal wiki
Revision as of 23:02, 19 October 2015 by Xhajt03 (talk | contribs) (Comment on status of fpmake compilation with make sourcezip added)

Darwin releases of 3.0.0

The releases for iOS and the iphonesim targets will be done from the branches/fixes_3_0_ios branch. The reason is that the AArch64 port was deemed too invasive for merging in the fixes branch at the time it was finished. These compilers with have the 3.0.1 version number.

The installation package with the iOS and iphonesim cross-compilers will contain new fpc, fpcres and fpcmake binaries from the branches/fixes_3_0_ios branch that will overwrite the copies from the Intel 3.0.0 release, in order to add Aarch64 and iphonesim/x86_64 support. Normally, cross-compiler packages do not overwrite these utilities. They will also create ppc386-3.0.1 and ppcx64-3.0.1 symlinks in /usr/local/bin, which can be used via "fpc -V3.0.1" to target the iphonesim targets (the 3.0.1 units are not compatible with the 3.0.0 compilers).

Issues with 3.0.0 release candidates

This page is supposed to contain all issues discovered while testing release candidates and their status. Make sure to include information about the platform where the problem appears (if applicable). Once the issue gets resolved, you should strike it over and add number of SVN revision fixing it. If the revision number refers to a SVN repository different from "fpc" (i.e. "fpcbuild" or "fpcdocs"), include information about the SVN repository too.

  1. Last change at 32-bit SEH enabling.

Issues with 3.0.0-rc1

  1. Several FreeBSD versions won't have GDB support in the IDE. This item will be updated later with exact targets. Solved. Problem was not changing gdbint.pp but turned out to be a globally installed libbfd installed by some update
  2. Several installers install .fpm files with references to absolute paths in it. To be checked
  3. make sourcezip (used for GO32v2 and OS/2) is broken for fpmake managed sources:
    • everything is cleaned at the beginning of processing of this target, although fpmake.exe is necessary for creation of the source archives
    • fpmake building fails with "Can't find unit system used by fpmkunit"; the particular command line contains indeed no path containing the system unit (fpc.exe src/fpmkunit.pp -n -Fu../../rtl -FUunits_bs/os2 -Fu../paszlib/src -Fu../hash/src -Fi../paszlib/src -dNO_UNIT_PROCESS -Fu../libtar/src) Is this fixed? Please check (no, not fixed, but the known workaround is only calling make sourcezip after building the binaries)
    • fpmake fails complaining about a missing manifest file
    • fpmake generated source archives contain only source files directly used on the host platform used for their generation; source files used for building the same package for other targets and also files not explicitly listed in the dependencies in fpmake.pp (e.g. all units of the text mode IDE) are missing
  4. text mode installer running under OS/2 doesn't like more than 32 files on one tab (workaround = moving packages from tab "OS/2" to "OS/2-2"); GO32v2 shall be checked as well! The respective workaround committed to trunk in r31669 and r31671 (to be merged!). Permanent solution would require reimplementing one of rather basic classes in FVision...
  5. text mode IDE breaks the path to the help file index when reading this path from FP.INI if the path contains backslashes (discovered on OS/2, but probably happening on other DOS-like platforms including Win32 as well) - regression compared to FPC 2.6.4 Might be fixed by merge of 30447 and 30573, done in rev 31754, to be checked
  6. fpcmkcfg sets a binutils prefix for the JVM target, while it shouldn't. This is fixed in trunk (see below for the revision). With 3.0rc1, you may have to use "-XP" to clear the binutils prefix when targeting the JVM platform (although the OS X release already includes the fpcmkcfg fix, so there it won't be necessary)
  7. the file extracts binaries with wrong permissions on Windows 7, all binaries in install sub-directories cannot be run on my Windows 7 pro machine (PM).
  8. i386-win32 installation shows readme.txt by default at the end of installation, but this file has the wrong line-endings (LF only), might be due to the fact that I needed to use the tar.gz source file instead of the zip file to generate the RC1 because of the problem just mentionned before.
  9. Formal parameter/type compare has an issue in JVM, this is a regression. Jonas has a patch (MVC, mail 2015-08-30).
  10. make install for cross-compiler jvm on linux (I assume all unixy platforms) tries to install ppcjvm.exe instead of ppcjvm, which obviously fails.
  11. On darwin, the package gdbint is not built, maybe due to issues with finding libgdb. As a result, the text mode IDE cannot be built (make ide fails).
    • gdbint is not supported on Darwin, and neither is the textmode IDE (even though it may work). You can avoid the gdbint error while building the textmode IDE by building with NOGDB=1, but then it will still fail because the univint units are included while building the compiler (probably since the Makefile -> fpmake switch), and the univint Script unit hides the compiler Script unit (Jonas)
    • Thanks for the explanations. For now, I will skip building the textmode IDE and mark this as resolved. If i manage to build it with individual, more detailed make commands, I can still add it some time after the release (MiSchi).

Issues with 3.0.0-rc2

Merge requests

  1. Florian and Sergei still have to check their RTL commits for possible merges. Several exception handling and lowlevel RTL (startup code etc) fixes I don't know what to do with. ( see Marco's unmerged "rest" page)
  1. Request to merge r31349. This is a fix were a one line overloaded version of scandatetime didn't pass on one of the parameters.
  2. (Marco) Ladislav asked to merge r31306 (fix to reporting of mysql error messages. )
  1. Man pages have been added for several additional tools: revisions 1188 till 1191 in trunk.
  2. Request to merge r30239 (generics internal error) to get generics.collections working. (Marco: important!)
  3. r31669 and r31671 - see the OS/2 and GO32v2 text mode installer issue mentioned above
  4. 31451: fix problems with read-only data on ARMHF ( )
  5. 31774: change default debug format for Darwin/i386 from Stabs to DWARF2, because Xcode 7 no longer supports Stabs (and DWARF2 has worked fine since a very long time already)
  6. 31826: forgotten commit of new mysql57conn.pas unit, required by fcl-db/tests already in 3.0
  7. 31831, 31880: ensure the -FcXXX/{$codepage XXX} doesn't get reset by changing the syntax mode to a mode without {$modeswtich systemcodepage}
  8. 31847: make sure that "string" in {$h+} mode and "ansistring" refer to the same type
  9. 31848: fix test on systems without defaultsystemcodepage=CP_UTF8
  10. 31878, 31881: fix encoding for resourcestrings in .rsj files
  11. 31910: fixes generic regression (compared to 2.6.4), issue 28674
  12. 31911: fixes generic regression (compared to 2.6.4), issue 28766. No need to merge. Problem was on trunk only

Post RC1 merges


  • 1182: simplification of OS X information
  • 1184: extra readme with information on how to use the JVM port
  • 1186: mention JVM and AIX support in the standard readme


  • 31308: accept FPC 3.0 as starting compiler
  • 31372: don't use the binutils prefix when targeting the JVM
  • 31453: support sharing the generated fpc.cfg with FPC 2.x
  • 30862: Fix tests/webtbs/tw28089.pp: removed interactiveness from the test
  • 31475: fix break/continue in finally for win64
  • 31808,31830,31879: make it possible to explicitly select the old style assembler via -Aas-clang on Darwin (with pre-Xcode 7), and default to clang as assembler on Darwin so we can specify the target OS version for object files

Post RC2 merges