Opened 4 years ago
Last modified 4 years ago
#61662 closed defect
Building Slrn 1.0.3 fails on macOS Big Sur — at Initial Version
Reported by: | m-schmidt (Michael Schmidt) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.6.4 |
Keywords: | bigsur catalina | Cc: | |
Port: | slrn |
Description
Building Slrn 1.0.3 fails with this log message:
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_news_slrn/slrn/work/slrn-1.0.3/src/misc.c:376:4: error: implicit declaration of function 'VA_COPY' is invalid in C99 [-Werror,-Wimplicit-function-declaration] :info:build VA_COPY(ap1, ap); :info:build
The reason seems to be that Slrn fails to build when it is configured as if the system has no support for va_copy()
. However macOS Big Sur actually supports va_copy()
. We seem to have two bugs here: one in Slrn itself for failing to build in this specific configuration and a further one in the configure script that fails to properly detect support for va_copy()
.
The reason for the latter problem is a bug in the configure script. The check uses exit()
without properly including the necessary header file stdlib.h
as indicated by configure in its config.log:
configure:8294: checking for an implementation of va_copy() configure:8323: /usr/bin/clang -o conftest -pipe -Os -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk -arch x86_64 -I/opt/local/include -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk -arch x86_64 conftest.c >&5 conftest.c:91:4: error: implicitly declaring library function 'exit' with type 'void (int) attribute((noreturn))' [-Werror,-Wimplicit-function-declaration]
exit (1);
conftest.c:91:4: note: include the header <stdlib.h> or explicitly provide a declaration for 'exit'