Opened 4 years ago

Closed 4 years ago

#60294 closed defect (fixed)

rspamd @2.4: error: unknown type name '_Noreturn'

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc:
Port: rspamd

Description

https://build.macports.org/builders/ports-10.7_x86_64-builder/builds/20486/steps/install-port/logs/stdio

In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_mail_rspamd/rspamd/work/rspamd-2.4/contrib/libucl/ucl_util.c:26:
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_mail_rspamd/rspamd/work/rspamd-2.4/contrib/libucl/ucl_internal.h:130:
In file included from /opt/local/include/openssl/evp.h:16:
In file included from /opt/local/include/openssl/bio.h:20:
/opt/local/include/openssl/crypto.h:322:1: error: unknown type name '_Noreturn'
ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line);
^
/opt/local/include/openssl/e_os2.h:283:25: note: expanded from macro 'ossl_noreturn'
#  define ossl_noreturn _Noreturn
                        ^

Change History (3)

comment:1 Changed 4 years ago by jmroot (Joshua Root)

_Noreturn is a C11 thing, but ossl_noreturn is defined like this, which should work fine:

# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#  define ossl_noreturn _Noreturn
# elif defined(__GNUC__) && __GNUC__ >= 2
#  define ossl_noreturn __attribute__((noreturn))
# else
#  define ossl_noreturn
# endif

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

Owner: set to ryandesign
Status: newaccepted

It's using -std=gnu11 and it's compiling with /usr/bin/clang from Xcode 4.6.3 which should be fine; src/port1.0/portconfigure.tcl claims Xcode 4.3 already had support for C11.

On 10.8 thru 10.10 it fails with:

fatal error: error in backend: Cannot select: intrinsic %llvm.x86.aesni.aesenclast
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin14.5.0
Thread model: posix
clang: note: diagnostic msg: PLEASE submit a bug report to http://developer.apple.com/bugreporter/ and include the crash backtrace, preprocessed source, and associated run script.
clang: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_mail_rspamd/rspamd/work/.tmp/aes_cryptobox-f51cac.c
clang: note: diagnostic msg: /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_mail_rspamd/rspamd/work/.tmp/aes_cryptobox-f51cac.sh
clang: note: diagnostic msg: 

********************

The error about intrinsic %llvm.x86.aesni.aesenclast also shows up in the 10.7 log. Blacklisting {clang < 800} seems to fix it.

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

Resolution: fixed
Status: acceptedclosed

In 06e5f2f75a10f2f7df73fde693c3f3255ee12ace/macports-ports (master):

rspamd: Blacklist clang < 800

Closes: #60294

Note: See TracTickets for help on using tickets.