f9ba463609
Changelog from AN-2020-11-04: - Makefile system: include/schily/nlsdefs.h no longer by default defines the macro __() because this is in conflict with definitions that are present in the system include files from newer HP-UX versions. Thanks to Rudi Blom for reporting. - smake: The new POSIX ::= assign macro feature has been implemented. Today, this is an alias for :=, but we may make := compatible to the SunPro Make feature := (conditional macro assignment) compatible: target := MACRO = value or target := MACRO += value - smake: The new POSIX ?= conditional macro assignment operator has been added. Note that like with +=, there is a need to have a space character before ?= in order to be recognised. This is because smake and SunPro Make support to have the characters '+' and '?' as part of a macro name. Note that some other make implementations that do not support '+' and '?' as part of a macro name may be happy with something like "MACRO+= value" or "MACRO?= value" but this is definitely not portable. Changelog from AN-2020-11-25: - Makefile System: Added support for MacOS on arm64 Thanks to a hint from Ryan Schmidt from macports Note that due to outstanding replies to recent changes in configure, it could up to now not be verified that all configure tests now work in a way that results in correct overall results. See below for an in depth report on the changes. - Makefile System: autoconf (config.guess & config.sub) now supports the new arm64 Apple systems. Thanks to Ryan Schmidt from macports for provinding the needed uname(1) output. - Makefile System: Added a new shell script "autoconf/uname" that helps to create shell scrips that allow to emulate an alien host system in order to test the correct behavior of configure.guess and configure.sub on the main development platform. This helps to adapt configure.guess and configure.sub to new platforms in the future. - Makefile System: The new clang compiler as published with the upcomming ARM macs has been preconfigured with -Werror -Wimplicit-function-declaration as the default behavior and thus is in conflict with the existing base assumption of the autoconf system that minimalistic C-code used for compile/link allows to check for the existence of a specific function in libc without a need to know which system #include file is used to define a prototype for that function. This clang version, as a result of this default, behaves like a C++ compiler and aborts if a function is used with no previous function prototype. This caused most of the existing autoconf test to fail with error messages about missing prototypes. We implemented a workaround using these methods for the identified problems: - Most of the exit() calls in the various main() functions have been replaced by return() to avoid a need to #include <stdlib.h> in special since these test may be the case for layered tests that #include files from the higher level parts. - Many autoconf tests programs now #include more system include files, e.g. stdlib.h and unistd.h to avoid missing prototype errors. This cannot reliably be done in tests that are used as a base for higher level tests where the high level test #includes own system include files, since older platforms do not support to #include the same file twice. So this is tricky... - A test for a Linux glibc bug caused by incorect #pragma weak usage inside glibc that prevents one or more functions from ecvt()/fcvt()/gcvt() from being usable outside glibc now uses hand-written prototypes for some of the libc interface functions in order to avoid using the system includes. If we did not do that, we could not use ecvt()/fcvt()/gcvt() on MacOS anymore. Thanks to Ryan Schmidt from macports for reporting and for the given help that was needed for remote debugging. Please send the needed feedback on whether the current state of the configure script results on correct autoconf results on the M1 Macs. |
||
---|---|---|
.. | ||
DESCR | ||
distinfo | ||
Makefile | ||
Makefile.common | ||
PLIST |