Unfortunately the macOS x86_64 FPC 3.2.0 pkg file does not install under macOS 10.11 or earlier.
No - it's a known issue with the Lazarus-provided pkg installer files in the Lazarus Download area on Sourceforge as I specified.
The fpc-3.2.0.intel-macosx.dmg in https://sourceforge.net/projects/lazarus/files/Lazarus%20macOS%20x86-64/Lazarus%202.0.10/ is identical to the one in https://sourceforge.net/projects/freepascal/files/Mac%20OS%20X/3.2.0/ (if you click on the "i" icons next to them, you can see the checksums match). It should install on Mac OS X 10.4 and later. If it doesn't, that's a bug.No - it's a known issue with the Lazarus-provided pkg installer files in the Lazarus Download area on Sourceforge as I specified.Unfortunately the macOS x86_64 FPC 3.2.0 pkg file does not install under macOS 10.11 or earlier.
Are you talking about the one provided by FPC? Did you report this on the bug tracker?
Unfortunately the macOS x86_64 FPC 3.2.0 pkg file does not install under macOS 10.11 or earlier.It should definitely install under OS X 10.11 and earlier, and includes both i386 and x86-64 compilers (fat binaries).
I upgraded from 10.4 to 10.5, installed Xcode, Clang 2.6-i386 but FPC 3.2.0 won't compile on less than 10.8 (needed because of the FPC CoreImage framework patch). However, the x86_64 FPC 3.2.0 binaries do install and compile my sample .pas files ok on 10.5, but Lazarus 2.0.10 cannot compile either Carbon or Cocoa interfaces using FPC 3.2.0, but does successfully compile the Carbon interface with FPC 3.0.4.
carbondef.pp(1030,3) Note: Call to subroutine "function GetDebugLogger:TLazLogger;" marked as inline is not inlined
interfaces.pas(33,3) Hint: Unit "InterfaceBase" not used in Interfaces
Compile Project, Target: /Users/trev/tmp/project1: Exit code 1, Errors: 1
ld: framework not found CoreImage
An error occurred while linking
Error: Error while linking
cocoagdiobjects.pas(3423,3) Note: Local variable "WidthMul" not used
interfaces.pas(30,3) Hint: Unit "InterfaceBase" not used in Interfaces
Compile Project, CPU: x86_64, Target: /Users/trev/tmp/project1: Exit code 1, Errors: 1
ld: framework not found CoreImage
An error occurred while linking
Error: Error while linking
make -C /usr/local/share/fpcsrc/fpc-3.2.0/rtl 'OPT=/Users/trev/bin/clang/bin/ ' all
make -C darwin all
/bin/mkdir -p /usr/local/share/fpcsrc/fpc-3.2.0/rtl/units/i386-darwin
/usr/local/lib/fpc/3.0.4/ppc386 -FD=/Users/trev/bin/clang/bin/ -Ur -dFPC_USE_LIBC -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../unix -Fi../bsd -Fi../bsd/i386 -Fi../darwin/i386 -FE. -FU/usr/local/share/fpcsrc/fpc-3.2.0/rtl/units/i386-darwin /Users/trev/bin/clang/bin/ -di386 -dRELEASE -Us -Sg ../bsd/system.pp
system.inc(721,40) Warning: Comparison might be always false due to range of constant and expression
system.inc(722,5) Warning: unreachable code
dynlib.inc(173,10) Warning: Function result does not seem to be set
dynlib.inc(178,10) Warning: Function result does not seem to be set
dynlib.inc(183,10) Warning: Function result does not seem to be set
dynlib.inc(188,10) Warning: Function result does not seem to be set
dynlib.inc(193,10) Warning: Function result does not seem to be set
dynlib.inc(198,10) Warning: Function result does not seem to be set
system.pp(395) Error: Can't call the assembler, error 127 switching to external assembling
system.pp(395) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
make[7]: *** [system.ppu] Error 1
make[6]: *** [darwin_all] Error 2
make[5]: *** [rtl] Error 2
make[4]: *** [next] Error 2
make[3]: *** [ppc1] Error 2
make[2]: *** [cycle] Error 2
make[1]: *** [compiler_cycle] Error 2
make: *** [build-stamp.i386-darwin] Error 2
Compiling Carbon interface with FPC 3.2.0 ppc386 results in:Code: [Select]carbondef.pp(1030,3) Note: Call to subroutine "function GetDebugLogger:TLazLogger;" marked as inline is not inlined
interfaces.pas(33,3) Hint: Unit "InterfaceBase" not used in Interfaces
Compile Project, Target: /Users/trev/tmp/project1: Exit code 1, Errors: 1
ld: framework not found CoreImage
An error occurred while linking
Error: Error while linking
which is curious because Carbon shouldn't be using CocoaAll.pas (where the CoreImage framework is linked in) anyway and the default project application is using the 32 bit Carbon widgetset (set in Project options) and the compiler is set to ppc386 in IDE options and i386 is set in Project options.
Compiling Cocoa interface with FPC 3.2.0 ppcx64 results in:Code: [Select]cocoagdiobjects.pas(3423,3) Note: Local variable "WidthMul" not used
interfaces.pas(30,3) Hint: Unit "InterfaceBase" not used in Interfaces
Compile Project, CPU: x86_64, Target: /Users/trev/tmp/project1: Exit code 1, Errors: 1
ld: framework not found CoreImage
An error occurred while linking
Error: Error while linking
which is currently expected because of the CocoaAll.pas link to the CoreImage framework.Yes, the irony has not escaped me: I reported the missing dollar sign in CocoaAll.pas which now causes CoreImage to be linked in :(
Attempting to recompile FPC 3.2.0 with FPC 3.0.4 on this system also fails:Code: [Select]make -C /usr/local/share/fpcsrc/fpc-3.2.0/rtl 'OPT=/Users/trev/bin/clang/bin/ ' all
make -C darwin all
/bin/mkdir -p /usr/local/share/fpcsrc/fpc-3.2.0/rtl/units/i386-darwin
/usr/local/lib/fpc/3.0.4/ppc386 -FD=/Users/trev/bin/clang/bin/ -Ur -dFPC_USE_LIBC -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../unix -Fi../bsd -Fi../bsd/i386 -Fi../darwin/i386 -FE. -FU/usr/local/share/fpcsrc/fpc-3.2.0/rtl/units/i386-darwin /Users/trev/bin/clang/bin/ -di386 -dRELEASE -Us -Sg ../bsd/system.pp
system.inc(721,40) Warning: Comparison might be always false due to range of constant and expression
system.inc(722,5) Warning: unreachable code
dynlib.inc(173,10) Warning: Function result does not seem to be set
dynlib.inc(178,10) Warning: Function result does not seem to be set
dynlib.inc(183,10) Warning: Function result does not seem to be set
dynlib.inc(188,10) Warning: Function result does not seem to be set
dynlib.inc(193,10) Warning: Function result does not seem to be set
dynlib.inc(198,10) Warning: Function result does not seem to be set
system.pp(395) Error: Can't call the assembler, error 127 switching to external assembling
system.pp(395) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
make[7]: *** [system.ppu] Error 1
make[6]: *** [darwin_all] Error 2
make[5]: *** [rtl] Error 2
make[4]: *** [next] Error 2
make[3]: *** [ppc1] Error 2
make[2]: *** [cycle] Error 2
make[1]: *** [compiler_cycle] Error 2
make: *** [build-stamp.i386-darwin] Error 2
make clean all FPC="/usr/local/lib/fpc/3.0.4/ppc386 -FD=/Users/trev/bin/clang/bin/" OS_TARGET=darwin CPU_TARGET=i386 CPU_SOURCE=i386 OPT="/Users/trev/bin/clang/bin/"
clang and as are also linked from /usr/local/bin/ to /Users/trev/bin/clang/bin/.
It should even not be necessary to use -FD. Did Xcode 3.1.4 already include clang? If not, pass -Aas-darwin to OPT to tell the compiler to use "as" instead. Xcode 3.1.4 by default installs the command line tools (in /usr/bin).
make clean all FPC="/usr/local/lib/fpc/3.0.4/ppc386 -FD=/Users/trev/bin/clang/bin/" OS_TARGET=darwin CPU_TARGET=i386 CPU_SOURCE=i386 OPT="/Users/trev/bin/clang/bin/"
clang and as are also linked from /usr/local/bin/ to /Users/trev/bin/clang/bin/.
That is wrong (don't pass options in FPC, fpc never uses "=" in parameters and OPT is a parameter list for fpc, so no parameters without prefix). You need to call it like this:
make clean all FPC="/usr/local/lib/fpc/3.0.4/ppc386" CROSSBINDIR="/Users/trev/bin/clang/bin/" OS_TARGET=darwin CPU_TARGET=i386 CPU_SOURCE=i386
And if you have additional parameters for the compiler (aside from a potential BINUTILSPREFIX) you need to provide them in OPT as if you'd pass them onto the compiler (e.g. OPT="-O2 -glw").
Edit: clarified the incorrect use.
make clean all FPC="/usr/local/lib/fpc/3.0.4/ppc386" CROSSBINDIR="/Users/trev/bin/clang/bin/" OS_TARGET=darwin CPU_TARGET=i386 CPU_SOURCE=i386
/bin/mkdir -p i386/units/i386-darwin
/usr/local/share/fpcsrc/fpc-3.2.0/compiler/ppc1 -Ur -Xs -O2 -n -Fui386 -Fusystems -Fu/usr/local/share/fpcsrc/fpc-3.2.0/rtl/units/i386-darwin -Fii386 -FD/Users/trev/bin/clang/bin/ -FE. -FUi386/units/i386-darwin -dRELEASE -Aas-darwin -di386 -dGDB -dBROWSERLOG -Fux86 -Sew pp.pas
ld: could not find entry point "start" (perhaps missing crt1.o)
An error occurred while linking
pp.pas(266,1) Error: Error while linking
pp.pas(266,1) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
make[5]: *** [ppc386] Error 1
make[4]: *** [next] Error 2
make[3]: *** [ppc2] Error 2
make[2]: *** [cycle] Error 2
make[1]: *** [compiler_cycle] Error 2
make: *** [build-stamp.i386-darwin] Error 2
/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/crt1.o
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/crt1.o
/usr/lib/crt1.o
[ 95%] Compiled package utils-unicode
Start compiling package utils-pas2js for target i386-darwin.
Compiling pas2js/BuildUnit_utils_pas2js.pp
Compiling pas2js/dirwatch.pp
Compiling pas2js/httpcompiler.pp
Compiling pas2js/pas2js.pp
Linking pas2js/bin/i386-darwin/pas2js
Compiling pas2js/pas2jslib.pp
Linking pas2js/bin/i386-darwin/libpas2jslib.dylib
The installer encountered the following error:
External command "/usr/local/share/fpcsrc/fpc-3.2.0/compiler/ppc386 -Tdarwin -FEpas2js/bin/i386-darwin -FUpas2js/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/rtl/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-json/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-base/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/univint/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-res/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/rtl-objpas/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-js/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-passrc/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/pastojs/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/paszlib/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/hash/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-process/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-web/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-db/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-xml/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/iconvenc/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/rtl-extra/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/ibase/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/mysql/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/odbc/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/oracle/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/postgres/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/sqlite/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-net/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fcl-fpcunit/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/libtar/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/openssl/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/fastcgi/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/httpd22/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/httpd24/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/libmicrohttpd/units/i386-darwin/ -Fu/usr/local/share/fpcsrc/fpc-3.2.0/packages/webidl/units/i386-darwin/ -Ur -Xs -O2 -n -FD/Users/trev/bin/clang/bin/ -WM10.5 -di386 -dRELEASE -viq pas2js/pas2jslib.pp" failed with exit code 256. Console output:
Target OS: Darwin for i386
Compiling pas2js/pas2jslib.pp
Assembling pas2jslib
clang: warning: argument unused during compilation: '-mmacosx-version-min=10.5'
Linking pas2js/bin/i386-darwin/libpas2jslib.dylib
Error: Error while linking
Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
/usr/bin/strip: bad n_sect for symbol table entry 9754 in: /usr/local/share/fpcsrc/fpc-3.2.0/utils/pas2js/bin/i386-darwin/libpas2jslib.dylib
make[2]: *** [all] Error 1
make[1]: *** [utils_all] Error 2
make: *** [build-stamp.i386-darwin] Error 2
make clean all FPC="/usr/local/lib/fpc/3.0.4/ppc386" CROSSBINDIR="/Users/trev/bin/clang/bin/" OS_TARGET=darwin CPU_TARGET=i386 CPU_SOURCE=i386 OPT="-WM10.5 -Aas-darwin"
#include /etc/fpc.cfg
-WM10.5
-Aas-darwin