[fpc-devel] Issue with Compiling FPC and MacOS Big Sur

Michael Ring mail at michael-ring.org
Sat Nov 14 12:53:22 CET 2020


Problem is more simple, path to SDK tools is missing in linker script:

-arch
x86_64
-macosx_version_min
10.8
-L/usr/lib/
-L./x86_64/
-L./systems/
-L/Users/ring/devel/fpc/rtl/units/x86_64-darwin/
-L./x86/
-L/usr/local/bin/
*-L/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib/*
-lc


A permanent solution could be to add a call to xcrun to the link process 
to make sure (hopefully once and for all) that the SDK path is set in 
the linker-script:

ring at MacBook-Pro-1 compiler $ xcrun --show-sdk-path (master)fpc
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk

ring at MacBook-Pro-1 compiler $ ls -l 
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk (master)fpc
lrwxr-xr-x  1 root  wheel  15 10 Dez  2019 
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -> MacOSX10.15.sdk


shall I try to create a patch?

Michael


Am 14.11.20 um 11:03 schrieb Michael Ring via fpc-devel:
>
> I recently upgraded to Big Sur on two devices and tried to compile 
> trunk based on official 3.2.0 compiler freshly downloaded from 
> sourceforge but compilation fails:
>
> make all
>
> ....
>
> /usr/local/bin/ppcx64 -Ur -Xs -O2 -n -Fux86_64 -Fusystems 
> -Fu/Users/ring/devel/fpc/rtl/units/x86_64-darwin -Fix86_64 
> -FEx86_64/bin/x86_64-darwin -FUx86_64/units/x86_64-darwin -dRELEASE    
> -dx86_64 -dGDB -dBROWSERLOG -Fux86 -Fix86 pp.pas
> ld: library not found for -lc
> An error occurred while linking
> pp.pas(280,36) Error: Error while linking
> pp.pas(280,36) Fatal: There were 1 errors compiling module, stopping
>
>
> Same thing happens when trying to compile from within fpcupdeluxe, 
> Developer Tools are installed and up to date.
>
> This may be related to a change in MacOS Big Sur, found a few comments 
> on the possible issue:
>
> https://github.com/dotnet/msbuild/issues/5454
>
>
> there it says:
>
>
> This will stop working in the next version of macOS:
>
>     New in macOS Big Sur 11 beta, the system ships with a built-in
>     dynamic linker cache of all system-provided libraries. As part of
>     this change, copies of dynamic libraries are no longer present on
>     the filesystem. Code that attempts to check for dynamic library
>     presence by looking for a file at a path or enumerating a
>     directory will fail. Instead, check for library presence by
>     attempting to |dlopen()| the path, which will correctly check for
>     the library in the cache. (62986286)
>
>
> In Linker script -lc is last entry:
>
> ring at MacBook-Pro-1 x86_64-darwin $ cat link.res
> -arch
> x86_64
> -macosx_version_min
> 10.8
> -L/usr/lib/
> -L./x86_64/
> -L./systems/
> -L/Users/ring/devel/fpc/rtl/units/x86_64-darwin/
> -L./x86/
> -L/usr/local/bin/
> -lc
>
>
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20201114/14ede494/attachment.htm>


More information about the fpc-devel mailing list