--- Begin Message ---
Subject: |
29.0.60; Skip failing tests on Cygwin with native compilation |
Date: |
Sat, 25 Mar 2023 16:55:49 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 |
When 'make check' is run on Cygwin and Emacs has been built with native
compilation, all the tests in comp-tests.el and benchmark-tests.el fail
with fork errors, for the reasons explained in etc/PROBLEMS. I don't
see an easy way to fix this by rebasing, as is done elsewhere in the
code, and I don't think it's worth investing any effort into this just
for the sake of making some tests pass. I propose that we just skip
these tests.
Patch attached (with a placeholder for the bug number). OK for emacs-29?
Ken
0001-Skip-failing-tests-on-Cygwin-with-native-compilation.patch
Description: Text document
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#62450: 29.0.60; Skip failing tests on Cygwin with native compilation |
Date: |
Sun, 26 Mar 2023 10:15:17 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 |
On 3/26/2023 12:44 AM, Eli Zaretskii wrote:
OK, but please add in both places comments explaining the reason, and
in particular include there a pointer to etc/PROBLEMS.
Done.
(I do wonder whether this is a good idea in the long run. Native
compilation is here to stay, so avoiding its testing for Cygwin might
not be the best solution. The PROBLEMS entry seems to imply that
relatively simple measures, which the test suite could take, could
avoid the fork failures, so my recommendation would be to try to find
a better fix in the future, albeit not in Emacs 29.)
I agree, and I hope I can do it. By the way, I've been experimenting
with building the .eln files with ASLR enabled, via the following:
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -186,8 +186,9 @@ native-comp-compiler-options
:type '(repeat string)
:version "28.1")
-(defcustom native-comp-driver-options (when (eq system-type 'darwin)
- '("-Wl,-w"))
+(defcustom native-comp-driver-options
+ (cond ((eq system-type 'darwin) '("-Wl,-w"))
+ ((eq system-type 'cygwin) '("-Wl,-dynamicbase")))
"Options passed verbatim to the native compiler's back-end driver.
Note that not all options are meaningful; typically only the options
affecting the assembler and linker are likely to be useful.
I've been building and running Emacs like this for a couple months and
not doing any rebasing, and I haven't seen a single fork failure outside
of the test suite. So this might be the way to handle the problem in
the long run. But I still hope to figure out what's different about
native compilation in the test suite.
Ken
--- End Message ---