Opened 5 months ago

Closed 10 days ago

#62124 closed defect (fixed)

gcc9 @9.3.0_4 gfortran fails with "ld: library not found for -lSystem" in Big Sur

Reported by: cquike Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.6.4
Keywords: bigsur Cc:
Port: gcc8 gcc9


In a fresh installed Big Sur machine with a fresh installed macports the gfortran command fails to compile (link) a hello world Fortran program:

$ gfortran-mp-9 -o hello hello.f 

ld: library not found for -lSystem
collect2: error: ld returned 1 exit status

I have also tried with gfortran-mp-8 with the same results. The same command in a macOS 10.15 machine doesn't give any error.

The versions installed are:

# port installed | grep gcc
  gcc8 @8.4.0_2 (active)
  gcc9 @9.3.0_4 (active)
  gcc_select @0.1_9 (active)
  libgcc @3.0_0 (active)
  libgcc8 @8.4.0_1 (active)
  libgcc9 @9.3.0_3 (active)
  libgcc10 @10.2.0_3 (active)

# sw_vers
ProductName:	macOS
ProductVersion:	11.1
BuildVersion:	20C69

#/usr/bin/xcodebuild -version
Xcode 12.3
Build version 12C33

The hello.f example is the simplest Fortran program:

*     The PRINT statement is like WRITE,
*     but prints to the standard output unit
        PRINT '(A)', 'Hello, world'

Attachments (1)

gfortran2.out (5.5 KB) - added by cquike 5 months ago.
Output of "gfortran-mp-9 -v -Wl,-v -Wa,-v -o hello hello.f "

Download all attachments as: .zip

Change History (12)

comment:1 Changed 5 months ago by kencu (Ken)

please do this:

gfortran-mp-9 -v -o hello hello.f 

and perhaps also:

gfortran-mp-9 -v -Wl,-v -Wa,-v -o hello hello.f 

comment:2 Changed 5 months ago by kencu (Ken)

99.999% chance it is the same problem we have with all the gccs -- the SDK moved by a decimal point, and so gcc is broken.

see this thread <>

We cannot as yet get agreement to build gcc against "MacOSX.sdk" on new systems, but -- we will.

comment:3 Changed 5 months ago by mascguy (Christopher Nielsen)

While not quite the same symptoms, could be a similar situation to issue:62070.

comment:4 Changed 5 months ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:5 in reply to:  2 Changed 5 months ago by jmroot (Joshua Root)

Replying to kencu:

We cannot as yet get agreement to build gcc against "MacOSX.sdk" on new systems, but -- we will.

The real bug there is of course that gcc insists on using the same SDK it was built against at runtime.

comment:6 Changed 5 months ago by kencu (Ken)

Iain and Jeremy had a different idea of what that option was supposed to mean. I don't believe Iain feels there is any bug there to be fixed.

Changed 5 months ago by cquike

Attachment: gfortran2.out added

Output of "gfortran-mp-9 -v -Wl,-v -Wa,-v -o hello hello.f "

comment:7 Changed 5 months ago by cquike

I have attached the output of "gfortran-mp-9 -v -Wl,-v -Wa,-v -o hello hello.f". It indeed mentions /Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk which is not present in my system:

# ls -l /Library/Developer/CommandLineTools/SDKs/
total 0
lrwxr-xr-x  1 root  wheel   14 Jan 21 12:29 MacOSX.sdk -> MacOSX11.1.sdk
drwxr-xr-x  8 root  wheel  256 Jul  9  2020 MacOSX10.15.sdk
drwxr-xr-x  7 root  wheel  224 Nov 30 13:33 MacOSX11.1.sdk
Last edited 5 months ago by cquike (previous) (diff)

comment:8 Changed 5 months ago by kencu (Ken)

so the simplest thing to do is make a symlink from MacOSX11.0.sdk to MacOSX11.1.sdk and that gets you fixed for right now.

To fix this correctly, remove that symlink if you make it, and rebuild gcc from source on your local machine, like this:

sudo port -v -s install gcc9

and btw, gcc10 is available if that might be better. It probably also needs an SDK rebuild, sorry.

we are trying to get to a compromise on how we'll fix this properly, hopefully without too much more time going by.

comment:9 Changed 5 months ago by cquike

The symlink workaround is working.

Looking forward for proper fix.

Thanks you for the help!

comment:10 Changed 6 weeks ago by mascguy (Christopher Nielsen)

Cc: mascguy removed

comment:11 Changed 10 days ago by kencu (Ken)

Resolution: fixed
Status: newclosed

I believe this has been fixed now by changes in base and the noted ports to spec an existing SDK.

please reopen with new information if you find this is still and issue.

Note: See TracTickets for help on using tickets.