Opened 5 years ago

Closed 5 years ago

Last modified 4 years ago

#58919 closed defect (fixed)

fontforge build failure on 10.7.5

Reported by: lemzwerg (Werner Lemberg) Owned by: jmroot (Joshua Root)
Priority: Normal Milestone:
Component: ports Version:
Keywords: lion Cc:
Port: fontforge

Description

Building recently upgraded fontforge fails with

:info:build scripting.c:10698:1: error: unknown type name '_Noreturn'
:info:build _Noreturn void ProcessNativeScript(int argc, char *argv[], FILE *script) {
:info:build ^

Attachments (1)

main.log.xz (14.2 KB) - added by lemzwerg (Werner Lemberg) 5 years ago.
main.log file of fontforge build on lion

Download all attachments as: .zip

Change History (14)

Changed 5 years ago by lemzwerg (Werner Lemberg)

Attachment: main.log.xz added

main.log file of fontforge build on lion

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

Interesting. It's OK on 10.6.8:

fontforge @20190801_0+gui+python37 (active) platform='darwin 10' archs='x86_64' date='2019-09-02T21:34:12-0700'

built with clang-5.0/libc++.

comment:2 Changed 5 years ago by lemzwerg (Werner Lemberg)

Maybe it's because I neither have gui nor python37?

comment:3 in reply to:  2 Changed 5 years ago by kencu (Ken)

Replying to lemzwerg:

Maybe it's because I neither have gui nor python37?

More likely the default /usr/bin/clang is just too old and rickety to build it. The new MacPorts 2.6 will default to a newer compiler, but for now, you can try this:

sudo port -v install fontforge configure.compiler=macports-clang-5.0

I know clang-5.0 works. Probably clang-8.0 will work too. Feel free to build the gui and the python bindings if you care to -- that fontforge gui is pretty cool!

comment:4 Changed 5 years ago by lemzwerg (Werner Lemberg)

Hmm. I am using the current git version of macports-base, which is essentially a beta of 2.6 – so why is /usr/bin/clang++ selected by default?

Regarding GUI: I'm not a Mac user at all – I control my Mac using a mosh terminal from my GNU/Linux box :-) I exclusively use it to test software builds, in particular LilyPond.

And compilation with clang-5.0 succeeded, thanks.

comment:5 Changed 5 years ago by jmroot (Joshua Root)

2.6 will still try the system clang if it can use the selected stdlib. So on 10.7 and later, more or less.

Here, _Noreturn is a C11 feature, so it should at least be using the appropriate -std= option. Compilers that don't support C11 also need to be excluded. With 2.6 we could just set compiler.c_standard, but for now we just have to do some blacklisting.

comment:6 Changed 5 years ago by lemzwerg (Werner Lemberg)

OK, thanks for the info – Ken, is this something to be fixed in the Portfile?

Note that the forthcoming version of FontForge switches to cmake; I've just checked that a test for C++11 is included.

comment:7 Changed 5 years ago by jmroot (Joshua Root)

Owner: set to jmroot
Resolution: fixed
Status: newclosed

In fcf2a3773d75c01e215798574a849c4989fb3201/macports-ports (master):

fontforge: various fixes

  • Require C11 compiler
  • Fix default variant
  • Remove old workaround

Closes: #58919

comment:8 Changed 5 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: closedreopened

Hmm, well that didn't actually fix 10.7. It built on 10.6 though. :)

Guess I'll try restricting to the next Xcode version up.

comment:9 in reply to:  6 Changed 5 years ago by jmroot (Joshua Root)

Replying to lemzwerg:

Note that the forthcoming version of FontForge switches to cmake; I've just checked that a test for C++11 is included.

This failure was specifically on C code, so I don't know if it does need C++11.

Version 0, edited 5 years ago by jmroot (Joshua Root) (next)

comment:10 Changed 5 years ago by jmroot (Joshua Root)

In b2aa03d07f09b9f281a9487d2e37dab2ae3ba50f/macports-ports (master):

fontforge: adjust compiler blacklist

Clang from Xcode 4.6.3 doesn't seem to work, so restrict to 5.0 and up.

See: #58919

comment:11 Changed 5 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: reopenedclosed

comment:12 Changed 5 years ago by kencu (Ken)

a large amount of compiler fussing on Macports would be eliminated if 10.7 and 10.8 (and 10.9...) defaulted their compilers to match 10.6 ...

Is there any reason to not do that, and make everyone's life easier?

The more these older systems work exactly like current ones, the less headaches we all will have.

Last edited 5 years ago by kencu (Ken) (previous) (diff)

comment:13 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

In 6634ca1cbc2682d4a32e9bfe7f88720ae392695f/macports-ports (master):

fontforge: Blacklist clang < 500

Re-fixes #58919

Note: See TracTickets for help on using tickets.