[fpc-pascal] MacOSX Mojave

C Western l at c-m-w.me.uk
Mon Oct 8 23:56:37 CEST 2018


I meant to mention in my original message that I needed to add

OPT=-Fl/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib

to the end of the make distclean install I use to compile the trunk 
compiler.

My fpc.cfg also has #ifdef darwin, rather then #ifdef i386.

Colin


On 08/10/2018 22:19, Michael Ring wrote:
> I just realized on a freshly set up computer that there is one more 
> issue, I tried to build the trunk x86_64 compiler and compile fails:
>
> /bin/mkdir -p x86_64/units/x86_64-darwin
> /Applications/Xcode.app/Contents/Developer/usr/bin/make ./msg2inc
> /usr/local/bin/ppcx64 -Ur -Xs -O2 -n -Fux86_64 -Fusystems 
> -Fu/Users/ring/devel/fpc/rtl/units/x86_64-darwin -Fix86_64 -FE. 
> -FUx86_64/units/x86_64-darwin -dRELEASE    -dx86_64 -dGDB -dBROWSERLOG 
> -Fux86 -Sew -FE. utils/msg2inc.pp
> ld: file not found: /usr/lib/crt1.10.5.o
> An error occurred while linking
> msg2inc.pp(822,51) Error: Error while linking
> msg2inc.pp(822,51) Fatal: There were 1 errors compiling module, stopping
> Fatal: Compilation aborted
>
>
> problem is that ppcx64 is called with option -n so fpc.cfg gets ignored.
>
>
> I guess the only way to fix this is to change the makefile itself.
>
>
> Also, one thing I do not understand in /etc/fpc.cfg installed by the 
> 3.0.4a installer, why if -Fl ifdef'ed for i386 only?
>
> #ifdef cpui386
> -Fl/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib
> #endif
>
>
>
> Here's the patch for the makefile that worked for me:
>
> Index: compiler/Makefile
> ===================================================================
> --- compiler/Makefile    (revision 39905)
> +++ compiler/Makefile    (working copy)
> @@ -4248,7 +4248,7 @@
>  clean: tempclean execlean cleanall $(addsuffix _clean,$(CPC_TARGET)) 
> $(addsuffix _clean,$(TARGET_DIRS))
>  distclean: tempclean execlean cleanall $(addsuffix 
> _clean,$(ALLTARGETS)) $(addsuffix _distclean,$(TARGET_DIRS))
>  $(MSG2INC): $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) 
> $(COMPILERUTILSDIR)/msg2inc.pp
> -    $(COMPILER) -FE. $(COMPILERUTILSDIR)/msg2inc.pp
> +    $(COMPILER) -FE. $(COMPILERUTILSDIR)/msg2inc.pp 
> -Fl/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib
>  msgtxt.inc: $(MSGFILE)
>      $(MAKE) $(MSG2INC)
>      $(MSG2INC) $(MSGFILE) msg msg
> @@ -4328,7 +4328,7 @@
>  endif
>      $(COMPILER) version.pas
>  endif
> -    $(COMPILER) pp.pas
> +    $(COMPILER) pp.pas 
> -Fl/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib
>      $(EXECPPAS)
>      $(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
>  .PHONY: cycle fullcycle wpocycle
> Index: compiler/Makefile.fpc
> ===================================================================
> --- compiler/Makefile.fpc    (revision 39905)
> +++ compiler/Makefile.fpc    (working copy)
> @@ -538,7 +538,7 @@
>  #####################################################################
>
>  $(MSG2INC): $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) 
> $(COMPILERUTILSDIR)/msg2inc.pp
> -        $(COMPILER) -FE. $(COMPILERUTILSDIR)/msg2inc.pp
> +        $(COMPILER) -FE. $(COMPILERUTILSDIR)/msg2inc.pp 
> -Fl/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib
>
>  # The msgtxt.inc only depends on the error?.msg file, not on msg2inc,
>  # because that one will be new almost everytime
> @@ -641,7 +641,7 @@
>  endif
>          $(COMPILER) version.pas
>  endif
> -        $(COMPILER) pp.pas
> +        $(COMPILER) pp.pas 
> -Fl/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib
>          $(EXECPPAS)
>          $(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
>
> Michael
>
> Am 07.10.18 um 19:38 schrieb Jonas Maebe:
>> On 06/10/18 16:01, C Western wrote:
>>> Possibly unwisely, I updated by Mac to Mojave. I found that things 
>>> (including 32 bit apps) worked, but:
>>>
>>> I had to add
>>>
>>> -Fl/Applications/Xcode.app/Con
>>> tents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib 
>>>
>>>
>>> to my fpc.cfg to avoid "/usr/lib/crt1.o not found" errors. It seems 
>>> as though the startup files are no longer in /usr/lib
>>
>> I've created an FPC 3.0.4a release for macOS yesterday that adds the 
>> appropriate directives to /etc/fpc.cfg (no changes to the compiler).
>>
>>
>> Jonas
>> _______________________________________________
>> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal




More information about the fpc-pascal mailing list