unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#28882: emacs-26.0.90 build feedback
@ 2017-10-17 23:31 Nelson H. F. Beebe
  2017-10-18  3:41 ` Noam Postavsky
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Nelson H. F. Beebe @ 2017-10-17 23:31 UTC (permalink / raw)
  To: 28882; +Cc: beebe

I now have more than 230 build attempts for emacs-26.0.90 in our
growing test lab with about 180 flavors of Unix(-like) operating
systems.

Of the initial 160 automated builds, 57 completed, and all that
I had to do manually was the "make install" step (at my site,
that is hidden in wrapper so that the installed executable is
named nemacs, for new emacs, so as not to overwrite any existing
version called emacs).

Unfortunately, a further 77 automated builds were broken by this
obnoxious failure:

>> ...
>>     configure: error: The following required libraries were not found:
>> 	 gnutls
>>     Maybe some development libraries/packages are missing?
>>     If you don't want to link with them give
>> 	 --with-gnutls=no
>>     as options to configure
>> ...

My suspicion is that the gnutls package is needed only for editing
files across a network, which few users ever do.  Thus, my strong view
is that, while it is fine for configure to test for the availability
of gnutls, it should NOT be a show-stopper that requires a manual
override and a fresh build attempt with that extra option.

I've expressed the view before on this list that the same should apply
for the various options for libraries that allow emacs to view
bitmap-graphics files, again a feature that few people are ever likely
to use.

With as many test systems as I have, it is utterly impractical to know
in advance which of the --with-XXX=no options are needed to avoid
configure-time termination.  Even if I wrote down once what those
options are for each system, subsequent system updates would likely
invalidate those choices, as would different versions of emacs.  On
several of my systems, there are GIF, JPEG, PNG, RSVG, TIFF,
... libraries installed, but configure may still reject them because
of version-number tests, or feature tests.

I strongly recommend that configure.ac be revised so that all
--with-XXX=[no|yes] options allow configuration and building to
proceed, regardless of their settings.  It is just too painful to have
to spend several unnecessary hours restarting builds to work around
the current undesirable behavior.

I still have a few systems where emacs-26.0.90 has not yet
successfully been built and installed, and I'm continuing to work on
finding solutions.  However, I wanted to get this report posted now
that I've done 125 successful installs.

On our old CentOS 5 systems (packages frozen by Red Hat), I got a
surprise message that has never appeared with any earlier version of
emacs (I have almost 6000 logs for emacs builds going back as far as
20-Aug-1998):

>> ...
>> loading /local/build/cc/emacs-26.0.90/lisp/leim/leim-list.el (source)...
>> Finding pointers to doc strings...
>> Finding pointers to doc strings...done
>> Dumping under the name emacs
>> **************************************************
>> Warning: Your system has a gap between BSS and the
>> heap (258966655 bytes).  This usually means that exec-shield
>> or something similar is in effect.  The dump may
>> fail because of this.  See the section about
>> exec-shield in etc/PROBLEMS for more information.
>> **************************************************
>> make[1]: *** [bootstrap-emacs] Segmentation fault (core dumped)
>> ...

I'm doubtful that CentOS 5 had any protection against stack/heap/bss
collision, because such discussions have only shown up on security
lists in the last several months.  Thus, it may be that the emacs test
for the unexpected gap is faulty.

The one class of operating systems for which emacs is known not to
work out-of-the-box from standard GNU distribution channels is Alpine
Linux. I have 5 VMs running various versions of that O/S.  Alpine uses
muscl instead of glibc, and has a different memory model that breaks
emacs, and also the tcsh shell.  Some Alpine versions have a patched
emacs in the package system, but the latest ones do not.  Thus,
emacs-26.0.90 will not build at all on Alpine Linux.

In no case has a build been stopped by emacs source code errors, but
some builds were stopped by link-time failures to find particular
functions.  In most cases, I could later get a successful build by
adding a suitable --with-XXX=no option to suppress use of a particular
library.

One final point: as far as I recall, in emacs-25 and earlier, the
Makefiles were carefully written to be usable by traditional Unix
make.  Sadly, that is no longer the case, and I think the changes that
now mandate GNU make for building emacs should be rescinded.

Even though most Unix-(like) systems other than GNU Hurd and GNU/Linux
have a gmake package, when bootstrapping a new system, usually the
first GNU package that I'm likely to build is GNU tar, and the second,
GNU emacs.  That means that both need to be buildable with traditional
make, and both are far too complex to do a build by manually running
cc.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28882: emacs-26.0.90 build feedback
  2017-10-17 23:31 bug#28882: emacs-26.0.90 build feedback Nelson H. F. Beebe
@ 2017-10-18  3:41 ` Noam Postavsky
  2017-10-18 13:31 ` Nelson H. F. Beebe
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Noam Postavsky @ 2017-10-18  3:41 UTC (permalink / raw)
  To: Nelson H. F. Beebe; +Cc: 28882

[-- Attachment #1: Type: text/plain, Size: 2105 bytes --]

"Nelson H. F. Beebe" <beebe@math.utah.edu> writes:

> Unfortunately, a further 77 automated builds were broken by this
> obnoxious failure:
>
>>> ...
>>>     configure: error: The following required libraries were not found:
>>> 	 gnutls
>>>     Maybe some development libraries/packages are missing?
>>>     If you don't want to link with them give
>>> 	 --with-gnutls=no
>>>     as options to configure
>>> ...
>
> My suspicion is that the gnutls package is needed only for editing
> files across a network, which few users ever do.  Thus, my strong view
> is that, while it is fine for configure to test for the availability
> of gnutls, it should NOT be a show-stopper that requires a manual
> override and a fresh build attempt with that extra option.

It's also used for downloading packages from repositories.  It is
optional there, but in recent times not using https for this is
considered unacceptable (e.g. [1]).  You might call this mass hysteria,
or you might call it sanity being restored, but either way, I don't
think it's accurate that few users will want gnutls.

[1]: https://glyph.twistedmatrix.com/2015/11/editor-malware.html

> I've expressed the view before on this list that the same should apply
> for the various options for libraries that allow emacs to view
> bitmap-graphics files, again a feature that few people are ever likely
> to use.

Yes, in Bug#25317 [2].  I was going to to add an option to make that
possible, but I didn't get around to finishing it at the time.

[2]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25317#13

> I strongly recommend that configure.ac be revised so that all
> --with-XXX=[no|yes] options allow configuration and building to
> proceed, regardless of their settings.  It is just too painful to have
> to spend several unnecessary hours restarting builds to work around
> the current undesirable behavior.

Here's a patch now, which should give the behaviour you want when
passing --with-all=maybe to ./configure.  Unfortunately, it's probably
too late to get this in for Emacs 26, but hopefully we can smooth things
out for version 27.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 9982 bytes --]

From facc909306885f013843ae48b78d916626c6b55f Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Tue, 17 Oct 2017 21:17:53 -0400
Subject: [PATCH v1] Support ./configure --with-all=maybe

* configure.ac: Change all --with-foo options to accept 'maybe' as a
synonym for 'yes' (except that there's no error if the option can't be
used).
---
 configure.ac | 67 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 34 insertions(+), 33 deletions(-)

diff --git a/configure.ac b/configure.ac
index 63324c2c7c..0ef9ca5147 100644
--- a/configure.ac
+++ b/configure.ac
@@ -243,7 +243,7 @@ AC_DEFUN
       installed])],
   [],
   [with_mailutils=$with_features
-   if test "$with_mailutils" = yes; then
+   if test "$with_mailutils" != no; then
      (movemail --version) >/dev/null 2>&1 || with_mailutils=no
    fi])
 if test "$with_mailutils" = no; then
@@ -302,9 +302,9 @@ AC_DEFUN
   [compile with sound support (VALUE one of: yes, alsa, oss, bsd-ossaudio, no;
 default yes).  Only for GNU/Linux, FreeBSD, NetBSD, MinGW, Cygwin.])],
   [ case "${withval}" in
-      yes|no|alsa|oss|bsd-ossaudio) val=$withval ;;
+      yes|no|maybe|alsa|oss|bsd-ossaudio) val=$withval ;;
       *) AC_MSG_ERROR(['--with-sound=$withval' is invalid;
-this option's value should be 'yes', 'no', 'alsa', 'oss', or 'bsd-ossaudio'.])
+this option's value should be 'yes', 'no', 'maybe', 'alsa', 'oss', or 'bsd-ossaudio'.])
       ;;
     esac
     with_sound=$val
@@ -316,10 +316,11 @@ AC_DEFUN
 dnl added later on when we find the file name of X, and it's best to
 dnl keep them together visually.
 AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
- [use an X toolkit (KIT one of: yes or gtk, gtk2, gtk3, lucid or athena, motif, no)])],
+ [use an X toolkit (KIT one of: yes or gtk, gtk2, gtk3, lucid or athena, motif, maybe, no)])],
 [	  case "${withval}" in
 	    y | ye | yes )	val=gtk ;;
 	    n | no )		val=no  ;;
+            maybe )             val=maybe ;;
 	    l | lu | luc | luci | lucid )	val=lucid ;;
 	    a | at | ath | athe | athen | athena )	val=athena ;;
 	    m | mo | mot | moti | motif )	val=motif ;;
@@ -328,7 +329,7 @@ AC_DEFUN
 	    gtk3  )	val=gtk3 ;;
 	    * )
 AC_MSG_ERROR(['--with-x-toolkit=$withval' is invalid;
-this option's value should be 'yes', 'no', 'lucid', 'athena', 'motif', 'gtk',
+this option's value should be 'yes', 'no', 'maybe', 'lucid', 'athena', 'motif', 'gtk',
 'gtk2' or 'gtk3'.  'yes' and 'gtk' are synonyms.
 'athena' and 'lucid' are synonyms.])
 	    ;;
@@ -337,7 +338,7 @@ AC_DEFUN
 ])
 
 OPTION_DEFAULT_OFF([wide-int], [prefer wide Emacs integers (typically 62-bit); allows buffer and string size up to 2GB on 32-bit hosts, at the cost of 10% to 30% slowdown of Lisp interpreter and larger memory footprint])
-if test "$with_wide_int" = yes; then
+if test "$with_wide_int" != no; then
   AC_DEFINE([WIDE_EMACS_INT], 1, [Use long long for EMACS_INT if available.])
 fi
 
@@ -384,13 +385,14 @@ AC_DEFUN
  [ case "${withval}" in
     y | ye | yes )	val=yes ;;
     n | no )		val=no  ;;
+    maybe )             val=maybe ;;
     i | in | ino | inot | inoti | inotif | inotify )	val=inotify ;;
     k | kq | kqu | kque | kqueu | kqueue )	val=kqueue ;;
     g | gf | gfi | gfil | gfile )	val=gfile ;;
     w | w3 | w32 )	val=w32 ;;
     * ) AC_MSG_ERROR(['--with-file-notification=$withval' is invalid;
-this option's value should be 'yes', 'no', 'inotify', 'kqueue', 'gfile' or 'w32'.
-'yes' is a synonym for 'w32' on MS-Windows, for 'no' on Nextstep,
+this option's value should be 'yes', 'no', 'maybe', 'inotify', 'kqueue', 'gfile' or 'w32'.
+'yes' and 'maybe' are a synonyms for 'w32' on MS-Windows, for 'no' on Nextstep,
 otherwise for the first of 'inotify', 'kqueue' or 'gfile' that is usable.])
     ;;
    esac
@@ -423,7 +425,7 @@ AC_DEFUN
 gamegroup=
 case ${with_gameuser} in
   '' | no) ;;
-  yes) gamegroup=games ;;
+  yes | maybe) gamegroup=games ;;
   :*) gamegroup=${with_gameuser#:} ;;
   *) gameuser=${with_gameuser} ;;
 esac
@@ -1622,7 +1624,7 @@ AC_DEFUN
   fi
   AC_SUBST(LIBSOUND)
 
-  if test "${with_sound}" = "alsa" || test "${with_sound}" = "yes"; then
+  if test "${with_sound}" = "alsa" || test "${with_sound}" = "yes" || test "${with_sound}" = "maybe" ; then
     ALSA_REQUIRED=1.0.0
     ALSA_MODULES="alsa >= $ALSA_REQUIRED"
     EMACS_CHECK_MODULES([ALSA], [$ALSA_MODULES])
@@ -2357,7 +2359,7 @@ AC_DEFUN
 
 AC_MSG_CHECKING([for thread support])
 threads_enabled=no
-if test "$with_threads" = yes; then
+if test "$with_threads" != no; then
    if test "$emacs_cv_pthread_lib" != no; then
       AC_DEFINE(THREADS_ENABLED, 1,
                 [Define to 1 if you want elisp thread support.])
@@ -2729,7 +2731,7 @@ AC_DEFUN
 dnl other platforms.
 HAVE_DBUS=no
 DBUS_OBJ=
-if test "${with_dbus}" = "yes"; then
+if test "${with_dbus}" != "no"; then
    EMACS_CHECK_MODULES([DBUS], [dbus-1 >= 1.0])
    if test "$HAVE_DBUS" = yes; then
      AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
@@ -2754,7 +2756,7 @@ AC_DEFUN
 
 dnl GSettings has been tested under GNU/Linux only.
 HAVE_GSETTINGS=no
-if test "${HAVE_X11}" = "yes" && test "${with_gsettings}" = "yes"; then
+if test "${HAVE_X11}" = "yes" && test "${with_gsettings}" != "no"; then
    EMACS_CHECK_MODULES([GSETTINGS], [gio-2.0 >= 2.26])
    if test "$HAVE_GSETTINGS" = "yes"; then
       old_CFLAGS=$CFLAGS
@@ -2818,7 +2820,7 @@ AC_DEFUN
 dnl SELinux is available for GNU/Linux only.
 HAVE_LIBSELINUX=no
 LIBSELINUX_LIBS=
-if test "${with_selinux}" = "yes"; then
+if test "${with_selinux}" != "no"; then
    AC_CHECK_LIB([selinux], [lgetfilecon], HAVE_LIBSELINUX=yes, HAVE_LIBSELINUX=no)
    if test "$HAVE_LIBSELINUX" = yes; then
       AC_DEFINE(HAVE_LIBSELINUX, 1, [Define to 1 if using SELinux.])
@@ -2828,7 +2830,7 @@ AC_DEFUN
 AC_SUBST(LIBSELINUX_LIBS)
 
 HAVE_GNUTLS=no
-if test "${with_gnutls}" = "yes" ; then
+if test "${with_gnutls}" != "no" ; then
   EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.12.2],
     [HAVE_GNUTLS=yes], [HAVE_GNUTLS=no])
   if test "${HAVE_GNUTLS}" = "yes"; then
@@ -2845,7 +2847,7 @@ AC_DEFUN
 AC_SUBST(LIBGNUTLS_CFLAGS)
 
 HAVE_LIBSYSTEMD=no
-if test "${with_libsystemd}" = "yes" ; then
+if test "${with_libsystemd}" != "no" ; then
   dnl This code has been tested with libsystemd 222 and later.
   dnl FIXME: Find the earliest version number for which Emacs should work,
   dnl and change '222' to that number.
@@ -2869,7 +2871,7 @@ AC_DEFUN
     this is only supported on MS-Windows native and MinGW32 builds.
     Consider using gfile instead.])
     ;;
-  w32,* | yes,mingw32)
+  w32,* | yes,mingw32 | maybe,mingw32)
     AC_CHECK_HEADER(windows.h)
     if test "$ac_cv_header_windows_h" = yes ; then
        AC_DEFINE(HAVE_W32NOTIFY, 1, [Define to 1 to use w32notify.])
@@ -2880,7 +2882,7 @@ AC_DEFUN
 
 dnl inotify is available only on GNU/Linux.
 case $with_file_notification,$NOTIFY_OBJ in
-  inotify, | yes,)
+  inotify, | yes, | maybe,)
     AC_CHECK_HEADER(sys/inotify.h)
     if test "$ac_cv_header_sys_inotify_h" = yes ; then
 	AC_CHECK_FUNC(inotify_init1)
@@ -2894,7 +2896,7 @@ AC_DEFUN
 
 dnl kqueue is available on BSD-like systems.
 case $with_file_notification,$NOTIFY_OBJ in
-  kqueue,* | yes,)
+  kqueue,* | yes, | maybe,)
     EMACS_CHECK_MODULES([KQUEUE], [libkqueue])
     if test "$HAVE_KQUEUE" = "yes"; then
        AC_DEFINE(HAVE_KQUEUE, 1, [Define to 1 to use kqueue.])
@@ -2917,7 +2919,7 @@ AC_DEFUN
 dnl has been added in glib 2.24.  It has been tested under
 dnl GNU/Linux only.
 case $with_file_notification,$NOTIFY_OBJ in
-  gfile,* | yes,)
+  gfile,* | yes, |maybe,)
     if test "${HAVE_NS}" = yes; then
        AC_MSG_ERROR(['--with-file-notification=gfile' is not supported in NextStep builds.
 Consider kqueue instead.])
@@ -2934,7 +2936,7 @@ AC_DEFUN
 esac
 
 case $with_file_notification,$NOTIFY_OBJ in
-  yes,* | no,* | *,?*) ;;
+  yes,* | no,* | maybe,* | *,?*) ;;
   *) AC_MSG_ERROR([File notification '$with_file_notification' requested but requirements not found.]) ;;
 esac
 
@@ -3298,14 +3300,13 @@ AC_DEFUN
     EMACS_CHECK_MODULES(CAIRO, $CAIRO_MODULE)
     if test $HAVE_CAIRO = yes; then
       AC_DEFINE(USE_CAIRO, 1, [Define to 1 if using cairo.])
-    else
+      CFLAGS="$CFLAGS $CAIRO_CFLAGS"
+      LIBS="$LIBS $CAIRO_LIBS"
+      AC_SUBST(CAIRO_CFLAGS)
+      AC_SUBST(CAIRO_LIBS)
+    elif test "${with_cairo}" = "yes" ; then
       AC_MSG_ERROR([cairo requested but not found.])
     fi
-
-    CFLAGS="$CFLAGS $CAIRO_CFLAGS"
-    LIBS="$LIBS $CAIRO_LIBS"
-    AC_SUBST(CAIRO_CFLAGS)
-    AC_SUBST(CAIRO_LIBS)
   fi
 fi
 
@@ -3672,18 +3673,18 @@ AC_DEFUN
 MISSING=
 WITH_NO=
 if test "${HAVE_X11}" = "yes"; then
-  test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
+  test "${with_xpm}" = "yes" && test "${HAVE_XPM}" != "yes" &&
     MISSING="libXpm" && WITH_NO="--with-xpm=no"
-  test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
+  test "${with_jpeg}" = "yes" && test "${HAVE_JPEG}" != "yes" &&
     MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
-  test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
+  test "${with_png}" = "yes" && test "${HAVE_PNG}" != "yes" &&
     MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
-  test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
+  test "${with_gif}" = "yes" && test "${HAVE_GIF}" != "yes" &&
     MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
-  test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
+  test "${with_tiff}" = "yes" && test "${HAVE_TIFF}" != "yes" &&
     MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
 fi
-test "${with_gnutls}" != "no" && test "${HAVE_GNUTLS}" != "yes" &&
+test "${with_gnutls}" = "yes" && test "${HAVE_GNUTLS}" != "yes" &&
   MISSING="$MISSING gnutls" && WITH_NO="$WITH_NO --with-gnutls=no"
 if test "X${MISSING}" != X; then
   AC_MSG_ERROR([The following required libraries were not found:
-- 
2.11.0


[-- Attachment #3: Type: text/plain, Size: 83 bytes --]


And here is the equivalent for configure, in case you don't have
autoconf handy:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: with-all=maybe patch for configure --]
[-- Type: text/x-diff, Size: 8685 bytes --]

--- configure	2017-10-17 22:10:41.684538677 -0400
+++ configure.with-maybe	2017-10-17 22:10:20.768469411 -0400
@@ -2370,7 +2370,7 @@
                           oss, bsd-ossaudio, no; default yes). Only for
                           GNU/Linux, FreeBSD, NetBSD, MinGW, Cygwin.
   --with-x-toolkit=KIT    use an X toolkit (KIT one of: yes or gtk, gtk2,
-                          gtk3, lucid or athena, motif, no)
+                          gtk3, lucid or athena, motif, maybe, no)
   --with-wide-int         prefer wide Emacs integers (typically 62-bit);
                           allows buffer and string size up to 2GB on 32-bit
                           hosts, at the cost of 10% to 30% slowdown of Lisp
@@ -4168,7 +4168,7 @@
   withval=$with_mailutils;
 else
   with_mailutils=$with_features
-   if test "$with_mailutils" = yes; then
+   if test "$with_mailutils" != no; then
      (movemail --version) >/dev/null 2>&1 || with_mailutils=no
    fi
 fi
@@ -4269,9 +4269,9 @@
 # Check whether --with-sound was given.
 if test "${with_sound+set}" = set; then :
   withval=$with_sound;  case "${withval}" in
-      yes|no|alsa|oss|bsd-ossaudio) val=$withval ;;
+      yes|no|maybe|alsa|oss|bsd-ossaudio) val=$withval ;;
       *) as_fn_error $? "'--with-sound=$withval' is invalid;
-this option's value should be 'yes', 'no', 'alsa', 'oss', or 'bsd-ossaudio'." "$LINENO" 5
+this option's value should be 'yes', 'no', 'maybe', 'alsa', 'oss', or 'bsd-ossaudio'." "$LINENO" 5
       ;;
     esac
     with_sound=$val
@@ -4287,6 +4287,7 @@
   withval=$with_x_toolkit; 	  case "${withval}" in
 	    y | ye | yes )	val=gtk ;;
 	    n | no )		val=no  ;;
+            maybe )             val=maybe ;;
 	    l | lu | luc | luci | lucid )	val=lucid ;;
 	    a | at | ath | athe | athen | athena )	val=athena ;;
 	    m | mo | mot | moti | motif )	val=motif ;;
@@ -4295,7 +4296,7 @@
 	    gtk3  )	val=gtk3 ;;
 	    * )
 as_fn_error $? "'--with-x-toolkit=$withval' is invalid;
-this option's value should be 'yes', 'no', 'lucid', 'athena', 'motif', 'gtk',
+this option's value should be 'yes', 'no', 'maybe', 'lucid', 'athena', 'motif', 'gtk',
 'gtk2' or 'gtk3'.  'yes' and 'gtk' are synonyms.
 'athena' and 'lucid' are synonyms." "$LINENO" 5
 	    ;;
@@ -4313,7 +4314,7 @@
       with_wide_int=no
 fi
 
-if test "$with_wide_int" = yes; then
+if test "$with_wide_int" != no; then
 
 $as_echo "#define WIDE_EMACS_INT 1" >>confdefs.h
 
@@ -4554,13 +4555,14 @@
   withval=$with_file_notification;  case "${withval}" in
     y | ye | yes )	val=yes ;;
     n | no )		val=no  ;;
+    maybe )             val=maybe ;;
     i | in | ino | inot | inoti | inotif | inotify )	val=inotify ;;
     k | kq | kqu | kque | kqueu | kqueue )	val=kqueue ;;
     g | gf | gfi | gfil | gfile )	val=gfile ;;
     w | w3 | w32 )	val=w32 ;;
     * ) as_fn_error $? "'--with-file-notification=$withval' is invalid;
-this option's value should be 'yes', 'no', 'inotify', 'kqueue', 'gfile' or 'w32'.
-'yes' is a synonym for 'w32' on MS-Windows, for 'no' on Nextstep,
+this option's value should be 'yes', 'no', 'maybe', 'inotify', 'kqueue', 'gfile' or 'w32'.
+'yes' and 'maybe' are a synonyms for 'w32' on MS-Windows, for 'no' on Nextstep,
 otherwise for the first of 'inotify', 'kqueue' or 'gfile' that is usable." "$LINENO" 5
     ;;
    esac
@@ -4615,7 +4617,7 @@
 gamegroup=
 case ${with_gameuser} in
   '' | no) ;;
-  yes) gamegroup=games ;;
+  yes | maybe) gamegroup=games ;;
   :*) gamegroup=${with_gameuser#:} ;;
   *) gameuser=${with_gameuser} ;;
 esac
@@ -9635,7 +9637,7 @@
           fi
 
 
-  if test "${with_sound}" = "alsa" || test "${with_sound}" = "yes"; then
+  if test "${with_sound}" = "alsa" || test "${with_sound}" = "yes" || test "${with_sound}" = "maybe" ; then
     ALSA_REQUIRED=1.0.0
     ALSA_MODULES="alsa >= $ALSA_REQUIRED"
 
@@ -11735,7 +11737,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread support" >&5
 $as_echo_n "checking for thread support... " >&6; }
 threads_enabled=no
-if test "$with_threads" = yes; then
+if test "$with_threads" != no; then
    if test "$emacs_cv_pthread_lib" != no; then
 
 $as_echo "#define THREADS_ENABLED 1" >>confdefs.h
@@ -12715,7 +12717,7 @@
 
 HAVE_DBUS=no
 DBUS_OBJ=
-if test "${with_dbus}" = "yes"; then
+if test "${with_dbus}" != "no"; then
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS" >&5
@@ -12820,7 +12822,7 @@
 
 
 HAVE_GSETTINGS=no
-if test "${HAVE_X11}" = "yes" && test "${with_gsettings}" = "yes"; then
+if test "${HAVE_X11}" = "yes" && test "${with_gsettings}" != "no"; then
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSETTINGS" >&5
@@ -13117,7 +13119,7 @@
 
 HAVE_LIBSELINUX=no
 LIBSELINUX_LIBS=
-if test "${with_selinux}" = "yes"; then
+if test "${with_selinux}" != "no"; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lgetfilecon in -lselinux" >&5
 $as_echo_n "checking for lgetfilecon in -lselinux... " >&6; }
 if ${ac_cv_lib_selinux_lgetfilecon+:} false; then :
@@ -13170,7 +13172,7 @@
 
 
 HAVE_GNUTLS=no
-if test "${with_gnutls}" = "yes" ; then
+if test "${with_gnutls}" != "no" ; then
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGNUTLS" >&5
@@ -13259,7 +13261,7 @@
 
 
 HAVE_LIBSYSTEMD=no
-if test "${with_libsystemd}" = "yes" ; then
+if test "${with_libsystemd}" != "no" ; then
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBSYSTEMD" >&5
@@ -13351,7 +13353,7 @@
     this is only supported on MS-Windows native and MinGW32 builds.
     Consider using gfile instead." "$LINENO" 5
     ;;
-  w32,* | yes,mingw32)
+  w32,* | yes,mingw32 | maybe,mingw32)
     ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default"
 if test "x$ac_cv_header_windows_h" = xyes; then :
 
@@ -13368,7 +13370,7 @@
 esac
 
 case $with_file_notification,$NOTIFY_OBJ in
-  inotify, | yes,)
+  inotify, | yes, | maybe,)
     ac_fn_c_check_header_mongrel "$LINENO" "sys/inotify.h" "ac_cv_header_sys_inotify_h" "$ac_includes_default"
 if test "x$ac_cv_header_sys_inotify_h" = xyes; then :
 
@@ -13392,7 +13394,7 @@
 esac
 
 case $with_file_notification,$NOTIFY_OBJ in
-  kqueue,* | yes,)
+  kqueue,* | yes, | maybe,)
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for KQUEUE" >&5
@@ -13542,7 +13544,7 @@
 esac
 
 case $with_file_notification,$NOTIFY_OBJ in
-  gfile,* | yes,)
+  gfile,* | yes, |maybe,)
     if test "${HAVE_NS}" = yes; then
        as_fn_error $? "'--with-file-notification=gfile' is not supported in NextStep builds.
 Consider kqueue instead." "$LINENO" 5
@@ -13632,7 +13634,7 @@
 esac
 
 case $with_file_notification,$NOTIFY_OBJ in
-  yes,* | no,* | *,?*) ;;
+  yes,* | no,* | maybe,* | *,?*) ;;
   *) as_fn_error $? "File notification '$with_file_notification' requested but requirements not found." "$LINENO" 5 ;;
 esac
 
@@ -14817,14 +14819,13 @@
 
 $as_echo "#define USE_CAIRO 1" >>confdefs.h
 
-    else
-      as_fn_error $? "cairo requested but not found." "$LINENO" 5
-    fi
-
-    CFLAGS="$CFLAGS $CAIRO_CFLAGS"
-    LIBS="$LIBS $CAIRO_LIBS"
+      CFLAGS="$CFLAGS $CAIRO_CFLAGS"
+      LIBS="$LIBS $CAIRO_LIBS"
 
 
+    elif test "${with_cairo}" = "yes" ; then
+      as_fn_error $? "cairo requested but not found." "$LINENO" 5
+    fi
   fi
 fi
 
@@ -15768,18 +15769,18 @@
 MISSING=
 WITH_NO=
 if test "${HAVE_X11}" = "yes"; then
-  test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
+  test "${with_xpm}" = "yes" && test "${HAVE_XPM}" != "yes" &&
     MISSING="libXpm" && WITH_NO="--with-xpm=no"
-  test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
+  test "${with_jpeg}" = "yes" && test "${HAVE_JPEG}" != "yes" &&
     MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
-  test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
+  test "${with_png}" = "yes" && test "${HAVE_PNG}" != "yes" &&
     MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
-  test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
+  test "${with_gif}" = "yes" && test "${HAVE_GIF}" != "yes" &&
     MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
-  test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
+  test "${with_tiff}" = "yes" && test "${HAVE_TIFF}" != "yes" &&
     MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
 fi
-test "${with_gnutls}" != "no" && test "${HAVE_GNUTLS}" != "yes" &&
+test "${with_gnutls}" = "yes" && test "${HAVE_GNUTLS}" != "yes" &&
   MISSING="$MISSING gnutls" && WITH_NO="$WITH_NO --with-gnutls=no"
 if test "X${MISSING}" != X; then
   as_fn_error $? "The following required libraries were not found:

[-- Attachment #5: Type: text/plain, Size: 2950 bytes --]


> On our old CentOS 5 systems (packages frozen by Red Hat), I got a
> surprise message that has never appeared with any earlier version of
> emacs (I have almost 6000 logs for emacs builds going back as far as
> 20-Aug-1998):
>
>>> ...
>>> loading /local/build/cc/emacs-26.0.90/lisp/leim/leim-list.el (source)...
>>> Finding pointers to doc strings...
>>> Finding pointers to doc strings...done
>>> Dumping under the name emacs
>>> **************************************************
>>> Warning: Your system has a gap between BSS and the
>>> heap (258966655 bytes).  This usually means that exec-shield
>>> or something similar is in effect.  The dump may
>>> fail because of this.  See the section about
>>> exec-shield in etc/PROBLEMS for more information.
>>> **************************************************
>>> make[1]: *** [bootstrap-emacs] Segmentation fault (core dumped)
>>> ...
>
> I'm doubtful that CentOS 5 had any protection against stack/heap/bss
> collision, because such discussions have only shown up on security
> lists in the last several months.  Thus, it may be that the emacs test
> for the unexpected gap is faulty.

Hmm, a quick web search does seem to indicate that exec-shield only is
only set by default in CentOS 6 and up.  On the other hand, since you
got a segfault, the test for the gap is probably not faulty (just that
the warning text is imprecise: "exec-shield or something").

> The one class of operating systems for which emacs is known not to
> work out-of-the-box from standard GNU distribution channels is Alpine
> Linux. I have 5 VMs running various versions of that O/S.  Alpine uses
> muscl instead of glibc, and has a different memory model that breaks
> emacs, and also the tcsh shell.  Some Alpine versions have a patched
> emacs in the package system, but the latest ones do not.  Thus,
> emacs-26.0.90 will not build at all on Alpine Linux.

I was under the impression that Emacs 26 should be able to work with
muscl now, see Bug#22086[3] (which specifically mentions "Alpine
Linux").

[3]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22086

> One final point: as far as I recall, in emacs-25 and earlier, the
> Makefiles were carefully written to be usable by traditional Unix
> make.  Sadly, that is no longer the case, and I think the changes that
> now mandate GNU make for building emacs should be rescinded.

I think this is unlikely to happen:

    The whole thing is a bit of a mess, and the mess is largely caused by
    Emacs using Automake, and Automake is needed only because of Gnulib
    (because Gnulib assumes Automake for portability to older systems
    lacking GNU Make). I'll look into fixing this so that Gnulib no longer
    assumes Automake, so that Emacs can stop relying on Automake. Since
    Emacs assumes GNU Make, it doesn't need Automake (except for the Gnulib
    code, which I think I can fix).

http://lists.gnu.org/archive/html/emacs-devel/2017-01/msg00097.html

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* bug#28882: emacs-26.0.90 build feedback
  2017-10-17 23:31 bug#28882: emacs-26.0.90 build feedback Nelson H. F. Beebe
  2017-10-18  3:41 ` Noam Postavsky
@ 2017-10-18 13:31 ` Nelson H. F. Beebe
  2017-10-18 14:24   ` Andreas Schwab
  2020-08-22 16:19   ` Lars Ingebrigtsen
  2017-10-18 14:17 ` Nelson H. F. Beebe
  2017-10-18 17:58 ` Nelson H. F. Beebe
  3 siblings, 2 replies; 7+ messages in thread
From: Nelson H. F. Beebe @ 2017-10-18 13:31 UTC (permalink / raw)
  To: 28882, Noam Postavsky; +Cc: beebe

Thanks, Noam, for your extensive response to my long report yesterday
of my build experience for emacs-26.0.90 on, initially, 160 different
operating systems in our test lab.

Since that report, with manual tweaks, such as hiding /usr/local
during builds, and restoring it before installs, I've increased the
number of successes to 135 systems.

This reply addresses the issue of Alpine Linux.  This morning, I read
the section in etc/PROBLEMS on address space layout randomization
(ASLR), and on our Alpine systems, tried the trick (as root) of

	echo 0 > /proc/sys/kernel/randomize_va_space

before doing a build with 

	env CONFIG_SITE= ./configure  --prefix=$L --with-pop && make all check

[L is a personal variable for our default prefix on newer systems].

I'm pleased to report that the builds on Alpine Linux succeeded, and
emacs is now fully functional on all of them, which report their
versions in /etc/alpine-release as 3.4.6, 3.5.2, 3.6.0, and 3.6.2.

I'm now looking into similar issues on Hardened BSD 11.1-STABLE-HBSD
and 12.0-CURRENT, where the build succeeds up to the point of the
memory dump, and then fails with

	Dumping under the name emacs
	11323200 of 33554432 static heap bytes used
	gmake[1]: *** [Makefile:738: bootstrap-emacs] Segmentation fault

I'll report back on this list if/when I learn more.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28882: emacs-26.0.90 build feedback
  2017-10-17 23:31 bug#28882: emacs-26.0.90 build feedback Nelson H. F. Beebe
  2017-10-18  3:41 ` Noam Postavsky
  2017-10-18 13:31 ` Nelson H. F. Beebe
@ 2017-10-18 14:17 ` Nelson H. F. Beebe
  2017-10-18 17:58 ` Nelson H. F. Beebe
  3 siblings, 0 replies; 7+ messages in thread
From: Nelson H. F. Beebe @ 2017-10-18 14:17 UTC (permalink / raw)
  To: 28882, Noam Postavsky; +Cc: beebe

The emacs-26.0.90 etc/PROBLEMS file suggests another approach to work
around kernel memory layout randomizations for Red Hat systems.
Curiously, I had no difficulty building emacs-26.0.90 on CentOS 6 and
7 on x86-64 systems, and CentOS 5 IA-64 (Itanium), but on CentOS 5 x86
and x86-64, I get

	Dumping under the name emacs
	**************************************************
	Warning: Your system has a gap between BSS and the
	heap (8467071 bytes).  This usually means that exec-shield
	or something similar is in effect.  The dump may
	fail because of this.  See the section about
	exec-shield in etc/PROBLEMS for more information.
	**************************************************
	make[1]: *** [bootstrap-emacs] Segmentation fault

Today, as root, I ran 

	# cat /proc/sys/kernel/exec-shield
	1

	# echo 0 > /proc/sys/kernel/exec-shield

	# cat /proc/sys/kernel/exec-shield
	0

and then as an unprivileged user, restarted the make.  Unlike on
Alpine Linux, the kernel symbol-value change had no effect: the build
still gets a segmentation fault.

I then tried

	% ./src/temacs
	Loading loadup.el (source)...
	Using load-path (/local/build/cc/emacs-26.0.90/lisp)
	Loading emacs-lisp/byte-run...
	...
	Finding pointers to doc strings...done
	Pure-hashed: 15477 strings, 4055 vectors, 40214 conses, 3919 bytecodes, 175 others

At that point, a normal emacs X11 window appears on my screen, so most
of emacs is working.

However, the dumped executable is unusable:

	% ls -l src/*emacs
	-rwxrwxr-x 1 beebe sysstaff 84149492 Oct 18 07:40 src/emacs
	-rwxrwxr-x 1 beebe sysstaff 48352600 Oct 18 07:40 src/temacs

	% file src/emacs
	src/emacs: data

	% ./src/emacs
	src/emacs: Exec format error. Binary file not executable.

	% ldd ./src/emacs
        not a dynamic executable

In CentOS 5 and 6, the exec-shield variable is 1 by default; it does
not exist on CentOS 7.  The latter instead has
/proc/sys/kernel/randomize_va_space set to 2, but a successful dump to
create src/emacs does not require changing that variable.

Next, I tried another suggestion from etc/PROBLEMS:

	% rm src/emacs src/temacs
	$ bash
	$ export PATH=/bin:/usr/bin:/sbin:/usr/sbin
	$ setarch $(uname -m ) -R make

That one succeeded in making a usable src/emacs executable on both x86
and x86-64 CentOS 5 systems, with /usr/local hidden; I then restored
/usr/local and successfully installed emacs-26.0.90 on those servers.

Thus, the build problems for emacs-26.0.90 on CentOS 5 are resolved,
and my count of successes has increased to 138.



-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28882: emacs-26.0.90 build feedback
  2017-10-18 13:31 ` Nelson H. F. Beebe
@ 2017-10-18 14:24   ` Andreas Schwab
  2020-08-22 16:19   ` Lars Ingebrigtsen
  1 sibling, 0 replies; 7+ messages in thread
From: Andreas Schwab @ 2017-10-18 14:24 UTC (permalink / raw)
  To: Nelson H. F. Beebe; +Cc: 28882, Noam Postavsky

On Okt 18 2017, "Nelson H. F. Beebe" <beebe@math.utah.edu> wrote:

> I'm now looking into similar issues on Hardened BSD 11.1-STABLE-HBSD
> and 12.0-CURRENT, where the build succeeds up to the point of the
> memory dump, and then fails with
>
> 	Dumping under the name emacs
> 	11323200 of 33554432 static heap bytes used
> 	gmake[1]: *** [Makefile:738: bootstrap-emacs] Segmentation fault

Does it help to add -no-pie to LDFLAGS?

Andreas.

-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28882: emacs-26.0.90 build feedback
  2017-10-17 23:31 bug#28882: emacs-26.0.90 build feedback Nelson H. F. Beebe
                   ` (2 preceding siblings ...)
  2017-10-18 14:17 ` Nelson H. F. Beebe
@ 2017-10-18 17:58 ` Nelson H. F. Beebe
  3 siblings, 0 replies; 7+ messages in thread
From: Nelson H. F. Beebe @ 2017-10-18 17:58 UTC (permalink / raw)
  To: 28882, Noam Postavsky, Andreas Schwab; +Cc: beebe

Andreas Schwab asks about my build attempts for emacs-26.0.90 on
HardenedBSD:

>> Does it help to add -no-pie to LDFLAGS?

For HardenedBSD 11.1-STABLE-HBSD (FreeBSD 11.1-STABLE-HBSD #0), that
worked:

	rm src/emacs src/temacs
	gmake LDFLAGS=-no-pie

I installed that version.

I then tried the same on HardenedBSD 12.0-CURRENT (FreeBSD
12.0-CURRENT #0).

It complained that the -no-pie option was unrecognized, so I retried
with --no-pie: that was accepted, but there was still a segmentation
fault at dump time.

Next, based on the advice for NetBSD in etc/PROBLEMS about kernel
parameters that control address-space layout randomization (ASLR), 
I looked to see what HardenedBSD had:

	# sysctl -a | grep -i aslr
	kern.features.hbsd_aslr: 1
	options PAX_ASLR
	hardening.pax.aslr.status: 2

With those defaults, I get failure like this in the emacs build:

	Dumping under the name emacs
	11323200 of 33554432 static heap bytes used
	gmake[1]: *** [Makefile:738: bootstrap-emacs] Segmentation fault

In another window, as root, I then ran

	# sysctl kern.features.hbsd_aslr:0
	sysctl: oid 'kern.features.hbsd_aslr' is read only

	# sysctl hardening.pax.aslr.status:0
	hardening.pax.aslr.status: 2 -> 0

Then, back in the emacs build window, I ran

	% \rm src/emacs src/temacs
	% gmake
	...
	./temacs --batch  --load loadup bootstrap
	Loading loadup.el (source)...
	Using load-path (/local/build/cc/emacs-26.0.90/lisp /local/build/cc/emacs-26.0.90/lisp/emacs-lisp
	/local/build/cc/emacs-26.0.90/lisp/language /local/build/cc/emacs-26.0.90/lisp/international
	/local/build/cc/emacs-26.0.90/lisp/textmodes /local/build/cc/emacs-26.0.90/lisp/vc)
	Loading emacs-lisp/byte-run...
	Loading emacs-lisp/backquote...
	...
	Finding pointers to doc strings...
	Finding pointers to doc strings...done
	Dumping under the name emacs
	11323200 of 33554432 static heap bytes used
	96055 pure bytes used
	mv -f emacs bootstrap-emacs
	gmake -C ../lisp compile-first EMACS="../src/bootstrap-emacs"
	gmake[2]: Entering directory '/local/build/cc/emacs-26.0.90/lisp'
	gmake[2]: Nothing to be done for 'compile-first'.
	gmake[2]: Leaving directory '/local/build/cc/emacs-26.0.90/lisp'
	gmake -C ../admin/unidata all EMACS="../../src/bootstrap-emacs"
	gmake[2]: Entering directory '/local/build/cc/emacs-26.0.90/admin/unidata'
	  ELC      uvs.elc
	elf_load_section: truncated ELF file
	gmake[2]: *** [Makefile:72: uvs.elc] Abort trap

If I try to run the dumped emacs, I get

	% src/bootstrap-emacs --version
	elf_load_section: truncated ELF file
	Abort

Thus, disabling the ASLR feature in HardenedBSD 12.0 DOES let temacs
run to completion, but the result dumped emacs does not run correctly.

As I final experiment, I ported over the 11.1 emacs installation
directories to 12.0, and after installing some missing packages, and
creating some symlinks to missing older library versions, I was able
to get a usable emacs-26.0.90 on 12.0.  However, that has to be viewed
as a temporary stopgap.

The number of dependent shared libraries is frighteningly large

	% ldd $B/nemacs |wc -l
	96

so the import from 11.1 to 12.0 is fragile, and likely to break with
future system updates on the 12.0 system.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28882: emacs-26.0.90 build feedback
  2017-10-18 13:31 ` Nelson H. F. Beebe
  2017-10-18 14:24   ` Andreas Schwab
@ 2020-08-22 16:19   ` Lars Ingebrigtsen
  1 sibling, 0 replies; 7+ messages in thread
From: Lars Ingebrigtsen @ 2020-08-22 16:19 UTC (permalink / raw)
  To: Nelson H. F. Beebe; +Cc: 28882, Noam Postavsky

"Nelson H. F. Beebe" <beebe@math.utah.edu> writes:

> I now have more than 230 build attempts for emacs-26.0.90 in our
> growing test lab with about 180 flavors of Unix(-like) operating
> systems.

Cool!  Is it possible to see the status of these builds anywhere?

> This reply addresses the issue of Alpine Linux.  This morning, I read
> the section in etc/PROBLEMS on address space layout randomization
> (ASLR), and on our Alpine systems, tried the trick (as root) of
>
> 	echo 0 > /proc/sys/kernel/randomize_va_space
>
> before doing a build with 
>
> 	env CONFIG_SITE= ./configure  --prefix=$L --with-pop && make all check

I think that newer Emacs versions should build with address
randomisation just fine, so this should no longer be necessary.

The other concrete issue in this bug report was that you have to say
./configure --with-gnutls=no (or ifavailable, these days), otherwise
Emacs will refuse to build (if you have no gnutls libraries).  I think
that's a the correct choice, and leads to a whole lot fewer bug reports
about packages etc not working.

So I'm closing this bug report; if there's anything more to be done
here, please respond to the debbugs mail address and we'll reopen.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-08-22 16:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-17 23:31 bug#28882: emacs-26.0.90 build feedback Nelson H. F. Beebe
2017-10-18  3:41 ` Noam Postavsky
2017-10-18 13:31 ` Nelson H. F. Beebe
2017-10-18 14:24   ` Andreas Schwab
2020-08-22 16:19   ` Lars Ingebrigtsen
2017-10-18 14:17 ` Nelson H. F. Beebe
2017-10-18 17:58 ` Nelson H. F. Beebe

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).