unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Can't build previous versions of Emacs?
@ 2022-07-14  3:23 Eric Abrahamsen
  2022-07-14  3:33 ` Po Lu
  0 siblings, 1 reply; 35+ messages in thread
From: Eric Abrahamsen @ 2022-07-14  3:23 UTC (permalink / raw)
  To: emacs-devel

Hi all,

I have the Emacs 25, 26 and 27 branches checked out in git worktrees,
and I was going to build them to test some backwards compatibility. On a
clean checkout, "make" failed for all three of them with this error:

sysdep.c:1795:22: error: variably modified ‘sigsegv_stack’ at file scope
 1795 | static unsigned char sigsegv_stack[SIGSTKSZ];
      |                      ^~~~~~~~~~~~~
make[2]: *** [Makefile:377: sysdep.o] Error 1
make[2]: Leaving directory '/home/eric/dev/emacs-26/src'
make[1]: *** [Makefile:421: src] Error 2
make[1]: Leaving directory '/home/eric/dev/emacs-26'
make: *** [Makefile:1107: bootstrap] Error 2

This is on Arch Linux, I can send the config.status file for any of the
branches if that would help.

Master builds fine. Is this somehow expected, ie I've done something
wrong, or shall I open a bug report?

Thanks,
Eric




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

* Re: Can't build previous versions of Emacs?
  2022-07-14  3:23 Can't build previous versions of Emacs? Eric Abrahamsen
@ 2022-07-14  3:33 ` Po Lu
  2022-07-14 16:13   ` Eric Abrahamsen
  2022-07-14 17:01   ` Lars Ingebrigtsen
  0 siblings, 2 replies; 35+ messages in thread
From: Po Lu @ 2022-07-14  3:33 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: emacs-devel

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> Hi all,
>
> I have the Emacs 25, 26 and 27 branches checked out in git worktrees,
> and I was going to build them to test some backwards compatibility. On a
> clean checkout, "make" failed for all three of them with this error:
>
> sysdep.c:1795:22: error: variably modified ‘sigsegv_stack’ at file scope
>  1795 | static unsigned char sigsegv_stack[SIGSTKSZ];
>       |                      ^~~~~~~~~~~~~
> make[2]: *** [Makefile:377: sysdep.o] Error 1
> make[2]: Leaving directory '/home/eric/dev/emacs-26/src'
> make[1]: *** [Makefile:421: src] Error 2
> make[1]: Leaving directory '/home/eric/dev/emacs-26'
> make: *** [Makefile:1107: bootstrap] Error 2
>
> This is on Arch Linux, I can send the config.status file for any of the
> branches if that would help.

That's expected.  glibc recently changed in that SIGSTKSZ is now a call
to a function.  Emacs wasn't modified to be compatible with that until
28.1.



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

* Re: Can't build previous versions of Emacs?
  2022-07-14  3:33 ` Po Lu
@ 2022-07-14 16:13   ` Eric Abrahamsen
  2022-07-14 17:07     ` Ulrich Mueller
  2022-07-14 17:01   ` Lars Ingebrigtsen
  1 sibling, 1 reply; 35+ messages in thread
From: Eric Abrahamsen @ 2022-07-14 16:13 UTC (permalink / raw)
  To: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> Hi all,
>>
>> I have the Emacs 25, 26 and 27 branches checked out in git worktrees,
>> and I was going to build them to test some backwards compatibility. On a
>> clean checkout, "make" failed for all three of them with this error:
>>
>> sysdep.c:1795:22: error: variably modified ‘sigsegv_stack’ at file scope
>>  1795 | static unsigned char sigsegv_stack[SIGSTKSZ];
>>       |                      ^~~~~~~~~~~~~
>> make[2]: *** [Makefile:377: sysdep.o] Error 1
>> make[2]: Leaving directory '/home/eric/dev/emacs-26/src'
>> make[1]: *** [Makefile:421: src] Error 2
>> make[1]: Leaving directory '/home/eric/dev/emacs-26'
>> make: *** [Makefile:1107: bootstrap] Error 2
>>
>> This is on Arch Linux, I can send the config.status file for any of the
>> branches if that would help.
>
> That's expected.  glibc recently changed in that SIGSTKSZ is now a call
> to a function.  Emacs wasn't modified to be compatible with that until
> 28.1.

Thanks! That's good to know.




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

* Re: Can't build previous versions of Emacs?
  2022-07-14  3:33 ` Po Lu
  2022-07-14 16:13   ` Eric Abrahamsen
@ 2022-07-14 17:01   ` Lars Ingebrigtsen
  1 sibling, 0 replies; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-07-14 17:01 UTC (permalink / raw)
  To: Po Lu; +Cc: Eric Abrahamsen, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> That's expected.  glibc recently changed in that SIGSTKSZ is now a call
> to a function.  Emacs wasn't modified to be compatible with that until
> 28.1.

I was hit by this on my new laptop (current Ubuntu) -- I can no longer
build any Emacs versions older than Emacs 28.1, which is a bother (since
I have to test things on a different machine).

Anybody know whether there's any quick fix that can be applied to older
Emacs versions to get them to compile?

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



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 16:13   ` Eric Abrahamsen
@ 2022-07-14 17:07     ` Ulrich Mueller
  2022-07-14 17:24       ` Lars Ingebrigtsen
  2022-07-14 19:02       ` Alan Mackenzie
  0 siblings, 2 replies; 35+ messages in thread
From: Ulrich Mueller @ 2022-07-14 17:07 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: emacs-devel

>>>>> On Thu, 14 Jul 2022, Eric Abrahamsen wrote:

> Po Lu <luangruo@yahoo.com> writes:
>> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>> 
>>> Hi all,
>>> 
>>> I have the Emacs 25, 26 and 27 branches checked out in git worktrees,
>>> and I was going to build them to test some backwards compatibility. On a
>>> clean checkout, "make" failed for all three of them with this error:
>>> 
>>> sysdep.c:1795:22: error: variably modified ‘sigsegv_stack’ at file scope
>>> 1795 | static unsigned char sigsegv_stack[SIGSTKSZ];
>>> |                      ^~~~~~~~~~~~~
>>> make[2]: *** [Makefile:377: sysdep.o] Error 1
>>> make[2]: Leaving directory '/home/eric/dev/emacs-26/src'
>>> make[1]: *** [Makefile:421: src] Error 2
>>> make[1]: Leaving directory '/home/eric/dev/emacs-26'
>>> make: *** [Makefile:1107: bootstrap] Error 2
>>> 
>>> This is on Arch Linux, I can send the config.status file for any of the
>>> branches if that would help.
>> 
>> That's expected.  glibc recently changed in that SIGSTKSZ is now a call
>> to a function.  Emacs wasn't modified to be compatible with that until
>> 28.1.

> Thanks! That's good to know.

You can find patches for the SIGSTKSZ issue here:
https://gitweb.gentoo.org/proj/emacs-patches.git/tree/emacs

For example, for Emacs 27.2:
https://gitweb.gentoo.org/proj/emacs-patches.git/tree/emacs/27.2/02_all_glibc-2.34.patch



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 17:07     ` Ulrich Mueller
@ 2022-07-14 17:24       ` Lars Ingebrigtsen
  2022-07-14 18:21         ` Stefan Monnier
  2022-07-14 19:02       ` Alan Mackenzie
  1 sibling, 1 reply; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-07-14 17:24 UTC (permalink / raw)
  To: Ulrich Mueller; +Cc: Eric Abrahamsen, emacs-devel

Ulrich Mueller <ulm@gentoo.org> writes:

> For example, for Emacs 27.2:
> https://gitweb.gentoo.org/proj/emacs-patches.git/tree/emacs/27.2/02_all_glibc-2.34.patch

Thanks; with that I'm able to build Emacs 27 again on this Ubuntu
laptop.

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



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 17:24       ` Lars Ingebrigtsen
@ 2022-07-14 18:21         ` Stefan Monnier
  2022-07-14 18:23           ` Lars Ingebrigtsen
  2022-07-14 23:30           ` T.V Raman
  0 siblings, 2 replies; 35+ messages in thread
From: Stefan Monnier @ 2022-07-14 18:21 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Ulrich Mueller, Eric Abrahamsen, emacs-devel

Lars Ingebrigtsen [2022-07-14 19:24:47] wrote:
> Ulrich Mueller <ulm@gentoo.org> writes:
>> For example, for Emacs 27.2:
>> https://gitweb.gentoo.org/proj/emacs-patches.git/tree/emacs/27.2/02_all_glibc-2.34.patch
> Thanks; with that I'm able to build Emacs 27 again on this Ubuntu
> laptop.

I think applying the patch to the `emacs-27` branch would make sense :-)


        Stefan




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

* Re: Can't build previous versions of Emacs?
  2022-07-14 18:21         ` Stefan Monnier
@ 2022-07-14 18:23           ` Lars Ingebrigtsen
  2022-07-14 18:38             ` Stefan Monnier
  2022-07-14 23:30           ` T.V Raman
  1 sibling, 1 reply; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-07-14 18:23 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Ulrich Mueller, Eric Abrahamsen, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> I think applying the patch to the `emacs-27` branch would make sense :-)

We could do that, but the main problem is getting the actual releases to
build, and those are already tagged, so manual patching it is.

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



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 18:23           ` Lars Ingebrigtsen
@ 2022-07-14 18:38             ` Stefan Monnier
  2022-07-14 18:41               ` Lars Ingebrigtsen
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Monnier @ 2022-07-14 18:38 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Ulrich Mueller, Eric Abrahamsen, emacs-devel

Lars Ingebrigtsen [2022-07-14 20:23:26] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> I think applying the patch to the `emacs-27` branch would make sense :-)
> We could do that, but the main problem is getting the actual releases to
> build, and those are already tagged, so manual patching it is.

In my case, I never (or at least very rarely) care about building
exactly the actual release and I prefer building from the
`emacs-NN` branch.

Typically the main purpose is to run some older Emacs to see if some
ELisp code works on that older version and the difference between
`emacs-NN` and the actual release is negligible in that case.


        Stefan




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

* Re: Can't build previous versions of Emacs?
  2022-07-14 18:38             ` Stefan Monnier
@ 2022-07-14 18:41               ` Lars Ingebrigtsen
  2022-07-14 19:33                 ` Andreas Schwab
  2022-07-14 21:52                 ` Stefan Kangas
  0 siblings, 2 replies; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-07-14 18:41 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Ulrich Mueller, Eric Abrahamsen, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> In my case, I never (or at least very rarely) care about building
> exactly the actual release and I prefer building from the
> `emacs-NN` branch.
>
> Typically the main purpose is to run some older Emacs to see if some
> ELisp code works on that older version and the difference between
> `emacs-NN` and the actual release is negligible in that case.

I don't oppose checking in that fix on all the -NN branches, but I do
care about building the exact versions a lot (when doing bug triage).

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



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 17:07     ` Ulrich Mueller
  2022-07-14 17:24       ` Lars Ingebrigtsen
@ 2022-07-14 19:02       ` Alan Mackenzie
  1 sibling, 0 replies; 35+ messages in thread
From: Alan Mackenzie @ 2022-07-14 19:02 UTC (permalink / raw)
  To: Ulrich Mueller; +Cc: Eric Abrahamsen, emacs-devel

Hello, Ulrich.

On Thu, Jul 14, 2022 at 19:07:53 +0200, Ulrich Mueller wrote:
> >>>>> On Thu, 14 Jul 2022, Eric Abrahamsen wrote:

> > Po Lu <luangruo@yahoo.com> writes:
> >> Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> >>> Hi all,

> >>> I have the Emacs 25, 26 and 27 branches checked out in git worktrees,
> >>> and I was going to build them to test some backwards compatibility. On a
> >>> clean checkout, "make" failed for all three of them with this error:

> >>> sysdep.c:1795:22: error: variably modified ‘sigsegv_stack’ at file scope
> >>> 1795 | static unsigned char sigsegv_stack[SIGSTKSZ];
> >>> |                      ^~~~~~~~~~~~~
> >>> make[2]: *** [Makefile:377: sysdep.o] Error 1
> >>> make[2]: Leaving directory '/home/eric/dev/emacs-26/src'
> >>> make[1]: *** [Makefile:421: src] Error 2
> >>> make[1]: Leaving directory '/home/eric/dev/emacs-26'
> >>> make: *** [Makefile:1107: bootstrap] Error 2

> >>> This is on Arch Linux, I can send the config.status file for any of the
> >>> branches if that would help.

> >> That's expected.  glibc recently changed in that SIGSTKSZ is now a call
> >> to a function.  Emacs wasn't modified to be compatible with that until
> >> 28.1.

> > Thanks! That's good to know.

> You can find patches for the SIGSTKSZ issue here:
> https://gitweb.gentoo.org/proj/emacs-patches.git/tree/emacs

> For example, for Emacs 27.2:
> https://gitweb.gentoo.org/proj/emacs-patches.git/tree/emacs/27.2/02_all_glibc-2.34.patch

Brilliant!

For somebody who's got lots of branches to amend, the following (or
something like it) might come in handy.  Test it first before using it in
earnest!

find . -name sysdep.c | xargs sed -i~ 's/sigsegv_stack\[SIGSTKSZ\]/sigsegv_stack[32768]/'

I just fixed 26 copies of Emacs, both in /usr/local/src and my repository
structure.

-- 
Alan Mackenzie (Nuremberg, Germany).



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 18:41               ` Lars Ingebrigtsen
@ 2022-07-14 19:33                 ` Andreas Schwab
  2022-07-14 21:52                 ` Stefan Kangas
  1 sibling, 0 replies; 35+ messages in thread
From: Andreas Schwab @ 2022-07-14 19:33 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: Stefan Monnier, Ulrich Mueller, Eric Abrahamsen, emacs-devel

On Jul 14 2022, Lars Ingebrigtsen wrote:

> I don't oppose checking in that fix on all the -NN branches, but I do
> care about building the exact versions a lot (when doing bug triage).

You can git cherry-pick f97e07ea80 before building.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 18:41               ` Lars Ingebrigtsen
  2022-07-14 19:33                 ` Andreas Schwab
@ 2022-07-14 21:52                 ` Stefan Kangas
  2022-07-15  9:47                   ` Lars Ingebrigtsen
  1 sibling, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-07-14 21:52 UTC (permalink / raw)
  To: Lars Ingebrigtsen, Stefan Monnier
  Cc: Ulrich Mueller, Eric Abrahamsen, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I don't oppose checking in that fix on all the -NN branches, but I do
> care about building the exact versions a lot (when doing bug triage).

So how about pushing either Paul's fix (commit f97e07ea80) to emacs-27
(and emacs-26?), alternatively Ulrich's smaller patch?



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 18:21         ` Stefan Monnier
  2022-07-14 18:23           ` Lars Ingebrigtsen
@ 2022-07-14 23:30           ` T.V Raman
  2022-07-15 14:03             ` andrés ramírez
  2022-07-16 20:59             ` Karl Berry
  1 sibling, 2 replies; 35+ messages in thread
From: T.V Raman @ 2022-07-14 23:30 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: Lars Ingebrigtsen, Ulrich Mueller, Eric Abrahamsen, emacs-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=gb18030, Size: 249 bytes --]

That said should we think of a "emacs wayback machine" -- would be nice
in 2030 to download and run an Emacs-21 to see how it was back then :-)
-- 

Thanks,

--Raman(I Search, I Find, I Misplace, I Research)
7©4 Id: kg:/m/0285kf1  •0Ü8



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 21:52                 ` Stefan Kangas
@ 2022-07-15  9:47                   ` Lars Ingebrigtsen
  2022-07-15 13:37                     ` Stefan Kangas
  0 siblings, 1 reply; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-07-15  9:47 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: Stefan Monnier, Ulrich Mueller, Eric Abrahamsen, emacs-devel

Stefan Kangas <stefankangas@gmail.com> writes:

>> I don't oppose checking in that fix on all the -NN branches, but I do
>> care about building the exact versions a lot (when doing bug triage).
>
> So how about pushing either Paul's fix (commit f97e07ea80) to emacs-27
> (and emacs-26?), alternatively Ulrich's smaller patch?

Fine by me.  (And to emacs-25, too.)

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



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

* Re: Can't build previous versions of Emacs?
  2022-07-15  9:47                   ` Lars Ingebrigtsen
@ 2022-07-15 13:37                     ` Stefan Kangas
  2022-07-16 10:31                       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-07-15 13:37 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: Stefan Monnier, Ulrich Mueller, Eric Abrahamsen, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

>> So how about pushing either Paul's fix (commit f97e07ea80) to emacs-27
>> (and emacs-26?),
>
> Fine by me.  (And to emacs-25, too.)

I've now pushed Paul's patch to these branches, after verifying that
they build for me:

  - emacs-27
  - emacs-26
  - emacs-25



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 23:30           ` T.V Raman
@ 2022-07-15 14:03             ` andrés ramírez
  2022-07-15 14:50               ` Stefan Kangas
  2022-07-16 20:59             ` Karl Berry
  1 sibling, 1 reply; 35+ messages in thread
From: andrés ramírez @ 2022-07-15 14:03 UTC (permalink / raw)
  To: T.V Raman
  Cc: Stefan Monnier, Lars Ingebrigtsen, Ulrich Mueller,
	Eric Abrahamsen, emacs-devel

Hi. Guys.

JIC. If You want to try emacs-20 right now. You try in on netbsd. netbsd
guys still compile and have a packaged emacs-20.

If You want to try emacs-23. Ulrich and the gentoo guys have a heavily
patched emacs-23 version still compiling on latest gentoo. And they also
have an emacs18 still compiling too.

But. Right. +1 on having an 'emacs wayback machine'

BTW: {compiling 21.4 took some workarounds on arm. But I believe It
could be possible compiling it on x86 too}. Below is the probe.
--8<---------------cut here---------------start------------->8---
To: bug-gnu-emacs@gnu.org
Subject: I am report-emacs-bug on emacs-21.4 {compiled}
--text follows this line--
This bug report will be sent to the Free Software Foundation,
not to your local site managers!
Please write in English, because the Emacs maintainers do not have
translators to read other languages for them.

Your bug report will be posted to the bug-gnu-emacs@gnu.org mailing list,
and to the gnu.emacs.bug news group.

In GNU Emacs 21.4 (armv7l-unknown-linux-gnu)
 of 2022-04-08 on chama
configured using `configure  '--with-x-toolkit=no' '--with-xpm=no' '--with-jpeg=no' '--with-tiff=no' '--with-gif=no' '--with-png=no''
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: nil
  locale-coding-system: nil
  default-enable-multibyte-characters: t

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:
--8<---------------cut here---------------end--------------->8---

Best Regards
>>>>> "T" == T V Raman <raman@google.com> writes:

    T> That said should we think of a "emacs wayback machine" -- would be nice in 2030 to download
    T> and run an Emacs-21 to see how it was back then :-) --

    T> Thanks,

    T> --Raman(I Search, I Find, I Misplace, I Research) ♉ Id: kg:/m/0285kf1 🦮





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

* Re: Can't build previous versions of Emacs?
  2022-07-15 14:03             ` andrés ramírez
@ 2022-07-15 14:50               ` Stefan Kangas
  2022-07-15 15:30                 ` Eli Zaretskii
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-07-15 14:50 UTC (permalink / raw)
  To: andrés ramírez, T.V Raman
  Cc: Stefan Monnier, Lars Ingebrigtsen, Ulrich Mueller,
	Eric Abrahamsen, emacs-devel

andrés ramírez <rrandresf@hotmail.com> writes:

> JIC. If You want to try emacs-20 right now. You try in on netbsd. netbsd
> guys still compile and have a packaged emacs-20.
>
> If You want to try emacs-23. Ulrich and the gentoo guys have a heavily
> patched emacs-23 version still compiling on latest gentoo. And they also
> have an emacs18 still compiling too.

How about installing such patches on the release branches, so that it is
easy to build them on recent machines?

It might even indirectly help with bisecting really old bugs by giving
an idea of which patches might be needed to get various versions to
build.



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

* Re: Can't build previous versions of Emacs?
  2022-07-15 14:50               ` Stefan Kangas
@ 2022-07-15 15:30                 ` Eli Zaretskii
  0 siblings, 0 replies; 35+ messages in thread
From: Eli Zaretskii @ 2022-07-15 15:30 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: rrandresf, raman, monnier, larsi, ulm, eric, emacs-devel

> From: Stefan Kangas <stefankangas@gmail.com>
> Date: Fri, 15 Jul 2022 07:50:20 -0700
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>,
>  Lars Ingebrigtsen <larsi@gnus.org>, 
>  Ulrich Mueller <ulm@gentoo.org>, Eric Abrahamsen <eric@ericabrahamsen.net>,
>  emacs-devel@gnu.org
> 
> andrés ramírez <rrandresf@hotmail.com> writes:
> 
> > JIC. If You want to try emacs-20 right now. You try in on netbsd. netbsd
> > guys still compile and have a packaged emacs-20.
> >
> > If You want to try emacs-23. Ulrich and the gentoo guys have a heavily
> > patched emacs-23 version still compiling on latest gentoo. And they also
> > have an emacs18 still compiling too.
> 
> How about installing such patches on the release branches, so that it is
> easy to build them on recent machines?
> 
> It might even indirectly help with bisecting really old bugs by giving
> an idea of which patches might be needed to get various versions to
> build.

AFAIU only if you install on a single branch emacs-NN, and then merge
from it to emacs-NN+1, from there to emacs-NN+2, etc.  Which AFAICT
not what was actually done.



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

* Re: Can't build previous versions of Emacs?
  2022-07-15 13:37                     ` Stefan Kangas
@ 2022-07-16 10:31                       ` Lars Ingebrigtsen
  2022-07-16 11:03                         ` Po Lu
  0 siblings, 1 reply; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-07-16 10:31 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: Stefan Monnier, Ulrich Mueller, Eric Abrahamsen, emacs-devel

Stefan Kangas <stefankangas@gmail.com> writes:

> I've now pushed Paul's patch to these branches, after verifying that
> they build for me:
>
>   - emacs-27
>   - emacs-26
>   - emacs-25

Thanks.

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



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

* Re: Can't build previous versions of Emacs?
  2022-07-16 10:31                       ` Lars Ingebrigtsen
@ 2022-07-16 11:03                         ` Po Lu
  2022-07-16 11:05                           ` Lars Ingebrigtsen
  2022-07-16 11:17                           ` Ulrich Mueller
  0 siblings, 2 replies; 35+ messages in thread
From: Po Lu @ 2022-07-16 11:03 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: Stefan Kangas, Stefan Monnier, Ulrich Mueller, Eric Abrahamsen,
	emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Stefan Kangas <stefankangas@gmail.com> writes:
>
>> I've now pushed Paul's patch to these branches, after verifying that
>> they build for me:
>>
>>   - emacs-27
>>   - emacs-26
>>   - emacs-25
>
> Thanks.

Would anyone mind me getting emacs-23 and emacs-24 to build as well?
(Eventually, not now.)

I know how to do that, but the existing patches don't have copyright
papers, and the original authors are missing, so I will have to write
them from scratch.



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

* Re: Can't build previous versions of Emacs?
  2022-07-16 11:03                         ` Po Lu
@ 2022-07-16 11:05                           ` Lars Ingebrigtsen
  2022-07-16 11:17                           ` Ulrich Mueller
  1 sibling, 0 replies; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-07-16 11:05 UTC (permalink / raw)
  To: Po Lu
  Cc: Stefan Kangas, Stefan Monnier, Ulrich Mueller, Eric Abrahamsen,
	emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Would anyone mind me getting emacs-23 and emacs-24 to build as well?
> (Eventually, not now.)

Yes, that'd be much appreciated.

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



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

* Re: Can't build previous versions of Emacs?
  2022-07-16 11:03                         ` Po Lu
  2022-07-16 11:05                           ` Lars Ingebrigtsen
@ 2022-07-16 11:17                           ` Ulrich Mueller
  2022-07-16 12:49                             ` Po Lu
  1 sibling, 1 reply; 35+ messages in thread
From: Ulrich Mueller @ 2022-07-16 11:17 UTC (permalink / raw)
  To: Po Lu
  Cc: Lars Ingebrigtsen, Stefan Kangas, Stefan Monnier, Ulrich Mueller,
	Eric Abrahamsen, emacs-devel

>>>>> On Sat, 16 Jul 2022, Po Lu wrote:

> Would anyone mind me getting emacs-23 and emacs-24 to build as well?
> (Eventually, not now.)

> I know how to do that, but the existing patches don't have copyright
> papers, and the original authors are missing, so I will have to write
> them from scratch.

That sounds likes useless duplication of work. Why not start from
https://gitweb.gentoo.org/proj/emacs-patches.git/tree/emacs instead?

Some of these patches are backported from later Emacs versions, in which
case the original commits are indicated in the header. Others are
authored by me, and there are copyright papers for me on file.



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

* Re: Can't build previous versions of Emacs?
  2022-07-16 11:17                           ` Ulrich Mueller
@ 2022-07-16 12:49                             ` Po Lu
  2022-07-16 13:01                               ` Lars Ingebrigtsen
  0 siblings, 1 reply; 35+ messages in thread
From: Po Lu @ 2022-07-16 12:49 UTC (permalink / raw)
  To: Ulrich Mueller
  Cc: Lars Ingebrigtsen, Stefan Kangas, Stefan Monnier, Eric Abrahamsen,
	emacs-devel

Ulrich Mueller <ulm@gentoo.org> writes:

> That sounds likes useless duplication of work. Why not start from
> https://gitweb.gentoo.org/proj/emacs-patches.git/tree/emacs instead?

Interesting.

> Some of these patches are backported from later Emacs versions, in which
> case the original commits are indicated in the header. Others are
> authored by me, and there are copyright papers for me on file.

If they already work, couldn't they be integrated into the appropriate
upstream branches now?

But I see you're missing 19.34 and 19.10, both of which I got working :)



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

* Re: Can't build previous versions of Emacs?
  2022-07-16 12:49                             ` Po Lu
@ 2022-07-16 13:01                               ` Lars Ingebrigtsen
  2022-07-16 14:54                                 ` Ulrich Mueller
  0 siblings, 1 reply; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-07-16 13:01 UTC (permalink / raw)
  To: Po Lu
  Cc: Ulrich Mueller, Stefan Kangas, Stefan Monnier, Eric Abrahamsen,
	emacs-devel

Po Lu <luangruo@yahoo.com> writes:

>> Some of these patches are backported from later Emacs versions, in which
>> case the original commits are indicated in the header. Others are
>> authored by me, and there are copyright papers for me on file.
>
> If they already work, couldn't they be integrated into the appropriate
> upstream branches now?

Looking at those patches, they seem pretty extensive and makes the Emacs
versions actually, well, usable.  Which isn't really what I'd want
ideally -- I just want to be able to build the older Emacs versions to
do testing, bugs and all.

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



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

* Re: Can't build previous versions of Emacs?
  2022-07-16 13:01                               ` Lars Ingebrigtsen
@ 2022-07-16 14:54                                 ` Ulrich Mueller
  2022-07-16 16:10                                   ` Lars Ingebrigtsen
  0 siblings, 1 reply; 35+ messages in thread
From: Ulrich Mueller @ 2022-07-16 14:54 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: Po Lu, Stefan Kangas, Stefan Monnier, Eric Abrahamsen,
	emacs-devel

>>>>> On Sat, 16 Jul 2022, Lars Ingebrigtsen wrote:

> Looking at those patches, they seem pretty extensive and makes the Emacs
> versions actually, well, usable.  Which isn't really what I'd want
> ideally -- I just want to be able to build the older Emacs versions to
> do testing, bugs and all.

Sure, I could reduce that patchset to something minimalistic, i.e. just
the bare minimum to make it build, and no backports of features.

What about security fixes, include them?



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

* Re: Can't build previous versions of Emacs?
  2022-07-16 14:54                                 ` Ulrich Mueller
@ 2022-07-16 16:10                                   ` Lars Ingebrigtsen
  0 siblings, 0 replies; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-07-16 16:10 UTC (permalink / raw)
  To: Ulrich Mueller
  Cc: Po Lu, Stefan Kangas, Stefan Monnier, Eric Abrahamsen,
	emacs-devel

Ulrich Mueller <ulm@gentoo.org> writes:

> Sure, I could reduce that patchset to something minimalistic, i.e. just
> the bare minimum to make it build, and no backports of features.
>
> What about security fixes, include them?

I'd prefer just build fixes -- we're not recommending that anybody use
these old versions; it's just nice to be able to build the old versions
to test things when chasing down regressions and the like.

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



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

* Re: Can't build previous versions of Emacs?
  2022-07-14 23:30           ` T.V Raman
  2022-07-15 14:03             ` andrés ramírez
@ 2022-07-16 20:59             ` Karl Berry
  2022-07-17  0:49               ` Po Lu
  1 sibling, 1 reply; 35+ messages in thread
From: Karl Berry @ 2022-07-16 20:59 UTC (permalink / raw)
  To: raman, emacs-devel

[-- Attachment #1: message body text --]
[-- Type: text/plain, Size: 1794 bytes --]

    in 2030 to download and run an Emacs-21 to see how it was back then :-)

FWIW, I was able to compile e21 on a current x86_64 machine running 
Alma Linux 8 (I doubt the os matters much) with the attached.
Copied in m/amdx86-64.h from 22.3 as a starting point. I didn't try to
include X support, since I had no interest in it.

My configure invocation (largefile does not matter).
  env CFLAGS='-g -w' ./configure --prefix=/usr/local/gnu/emacs-21.4 --without-pop --without-gif --without-gpm --without-x --with-x-toolkit=no --without-xpm --without-jpeg --without-tiff --without-png --without-toolkit-scroll-bars --without-xim --disable-largefile

I found it necessary to remove all the \-newlines from the Makefile.in's
since I could not find any cpp option to preserve them other than
-traditional, which then breaks the actual compilation in myriad ways
wrt system headers, etc.:
  (cd src; mkdir ORIG; cp Makefile.in ORIG;
   perl -p -e 's/\\\n//' ORIG/Makefile.in >Makefile.in)
  # same for lib-src.

The normal make fails at the final dump; it gets a seg fault.  But when
running temacs under gdb, with -batch -l loadup dump, it works. Did not
try to investigate, was just happy to have the binary.

Compilation with -O2 causes temacs to die immediately in malloc.
So just -g. Used the distro compiler:
gcc version 8.5.0 20210514 (Red Hat 8.5.0-10) (GCC) 

Lots of memory failures along the way.
This set of configure outcomes is what seems to work:
  Should Emacs use the GNU version of malloc?             yes
  Should Emacs use a relocating allocator for buffers?    no
  Should Emacs use mmap(2) for buffer allocation?         yes

As a bonus for getting through it, the maximum buffer size is increased
to somewhere around 1GB (by experimentation).

Happy historical Emacsing,
Karl


[-- Attachment #2: emacs-21.4a-x86_64-almalinux8.diff --]
[-- Type: application/octet-stream, Size: 63606 bytes --]

See /usr/local/src/README for more.
Mailed emacs-devel on 16jul22.

diff -u2rN '--exclude=ORIG' dist-emacs-21.4/src/m/amdx86-64.h build-emacs-21.4/src/m/amdx86-64.h
--- dist-emacs-21.4/src/m/amdx86-64.h	1969-12-31 16:00:00.000000000 -0800
+++ work-emacs-21.4/src/m/amdx86-64.h	2022-06-25 15:27:23.000000000 -0700
@@ -0,0 +1,169 @@
+/* machine description file for AMD x86-64.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+     Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+
+/* The following line tells the configuration script what sort of
+   operating system this machine is likely to run.
+   USUAL-OPSYS="linux"  */
+
+#define BITS_PER_LONG           64
+#define BITS_PER_EMACS_INT      64
+
+/* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#undef WORDS_BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+/* #define WORD_MACHINE */
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+/* __x86_64 defined automatically.  */
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define the type to use.  */
+#define EMACS_INT               long
+#define EMACS_UINT              unsigned long
+#define SPECIAL_EMACS_INT
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the 24-bit bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE long
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+
+/* If compiling with GCC, let GCC implement alloca.  */
+#if defined(__GNUC__) && !defined(alloca)
+#define alloca(n) __builtin_alloca(n)
+#define HAVE_ALLOCA
+#endif
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+/* #define CANNOT_DUMP */
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+/* #define NO_REMAP */
+
+#define PNTR_COMPARISON_TYPE unsigned long
+
+/* Define XPNTR to avoid or'ing with DATA_SEG_BITS */
+#undef DATA_SEG_BITS
+
+#ifdef __FreeBSD__
+
+/* The libraries for binaries native to the build host's architecture are
+   installed under /usr/lib in FreeBSD, and the ones that need special paths
+   are 32-bit compatibility libraries (installed under /usr/lib32).  To build
+   a native binary of Emacs on FreeBSD/amd64 we can just point to /usr/lib.  */
+
+#undef START_FILES
+#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
+
+/* The duplicate -lgcc is intentional in the definition of LIB_STANDARD.
+   The reason is that some functions in libgcc.a call functions from libc.a,
+   and some libc.a functions need functions from libgcc.a.  Since most
+   versions of ld are one-pass linkers, we need to mention -lgcc twice,
+   or else we risk getting unresolved externals.  */
+#undef LIB_STANDARD
+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o
+
+#elif defined(__OpenBSD__)
+
+#undef START_FILES
+#define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crtbegin.o
+#undef LIB_STANDARD
+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o
+
+#elif defined(__NetBSD__)
+
+/* LIB_STANDARD and START_FILES set correctly in s/netbsd.h */
+
+#elif defined(sun)
+
+#undef START_FILES
+#undef LIB_STANDARD
+
+#else /* !__OpenBSD__ && !__FreeBSD__ && !__NetBSD__ && !sun */
+
+#undef START_FILES
+#define HAVE_X86_64_LIB64_DIR
+#ifdef HAVE_X86_64_LIB64_DIR
+#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o
+#else
+#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
+#endif
+
+/* The duplicate -lgcc is intentional in the definition of LIB_STANDARD.
+   The reason is that some functions in libgcc.a call functions from libc.a,
+   and some libc.a functions need functions from libgcc.a.  Since most
+   versions of ld are one-pass linkers, we need to mention -lgcc twice,
+   or else we risk getting unresolved externals.  */
+#undef LIB_STANDARD
+#ifdef HAVE_X86_64_LIB64_DIR
+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o
+#else
+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o
+#endif
+
+#endif /* __FreeBSD__ */
+
+/* arch-tag: 8a5e001d-e12e-4692-a3a6-0b15ba271c6e
+   (do not change this comment) */
-----------------------------------------------------------------------------
diff -u2r '--exclude=ORIG' dist-emacs-21.4/Makefile.in work-emacs-21.4/Makefile.in
--- dist-emacs-21.4/Makefile.in	2002-10-18 18:21:01.000000000 -0700
+++ work-emacs-21.4/Makefile.in	2022-06-25 15:41:12.811328717 -0700
@@ -230,17 +230,5 @@
 # Generate epaths.h from epaths.in.  This target is invoked by `configure'.
 epaths-force: FRC
-	@(lisppath=`echo ${lisppath} | ${removenullpaths}` ;		\
-	  buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ;	\
-	  x_default_search_path=`echo ${x_default_search_path}`; \
-	  sed < ${srcdir}/src/epaths.in > epaths.h.$$$$		\
-	  -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";'	\
-	  -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' \
-	  -e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";'		\
-	  -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";'			\
-	  -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";'			\
-	  -e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";'		\
-	  -e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' \
-	  -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') &&		\
-	${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h
+	@(lisppath=`echo ${lisppath} | ${removenullpaths}` ;			  buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ;		  x_default_search_path=`echo ${x_default_search_path}`; 	  sed < ${srcdir}/src/epaths.in > epaths.h.$$$$			  -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";'		  -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";' 	  -e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";'			  -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";'				  -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";'				  -e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";'			  -e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' 	  -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') &&			${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h
 
 # For parallel make, src should be build before leim.
@@ -249,7 +237,5 @@
 # the $TIT files there.
 leim:   src ${SUBDIR_MAKEFILES} FRC
-	(export PARALLEL; PARALLEL=0; cd $@; $(MAKE) all $(MFLAGS) \
-	  CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
-	  LDFLAGS='${LDFLAGS}' MAKE='${MAKE}')
+	(export PARALLEL; PARALLEL=0; cd $@; $(MAKE) all $(MFLAGS) 	  CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' 	  LDFLAGS='${LDFLAGS}' MAKE='${MAKE}')
 
 src:	lib-src FRC
@@ -260,11 +246,8 @@
 
 ${SUBDIR}: ${SUBDIR_MAKEFILES} FRC
-	cd $@; $(MAKE) all $(MFLAGS) \
-	  CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
-	  LDFLAGS='${LDFLAGS}' MAKE='${MAKE}'
+	cd $@; $(MAKE) all $(MFLAGS) 	  CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' 	  LDFLAGS='${LDFLAGS}' MAKE='${MAKE}'
 
 blessmail: ${SUBDIR_MAKEFILES} src FRC
-	cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) \
-	  MAKE='${MAKE}' archlibdir='$(archlibdir)'
+	cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) 	  MAKE='${MAKE}' archlibdir='$(archlibdir)'
 
 Makefile: $(srcdir)/Makefile.in config.status
@@ -324,19 +307,10 @@
 ### to ensure that install-arch-indep finishes before this starts.
 install-arch-dep: mkdir
-	(cd lib-src; \
-	  $(MAKE) install $(MFLAGS) prefix=${prefix} \
-	    exec_prefix=${exec_prefix} bindir=${bindir} \
-	    libexecdir=${libexecdir} archlibdir=${archlibdir} \
-	    INSTALL_STRIP=${INSTALL_STRIP})
+	(cd lib-src; 	  $(MAKE) install $(MFLAGS) prefix=${prefix} 	    exec_prefix=${exec_prefix} bindir=${bindir} 	    libexecdir=${libexecdir} archlibdir=${archlibdir} 	    INSTALL_STRIP=${INSTALL_STRIP})
 	${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs ${bindir}/emacs-${version}
 	-chmod 1755  ${bindir}/emacs-${version}
 	rm -f ${bindir}/$(EMACS)
 	-ln ${bindir}/emacs-${version} ${bindir}/$(EMACS)
-	-unset CDPATH; \
-	for f in `cd lib-src && echo fns-*.el`; do \
-	  if test -r lib-src/$$f ; then \
-	    ${INSTALL_DATA} lib-src/$$f ${archlibdir}/$$f; \
-	  else true; fi ; \
-	done
+	-unset CDPATH; 	for f in `cd lib-src && echo fns-*.el`; do 	  if test -r lib-src/$$f ; then 	    ${INSTALL_DATA} lib-src/$$f ${archlibdir}/$$f; 	  else true; fi ; 	done
 
 ### Install the files that are machine-independent.
@@ -348,110 +322,18 @@
 ## as a workaround for a bug in tar on Ultrix 4.2.
 install-arch-indep: mkdir info
-	-set ${COPYDESTS} ; \
-	unset CDPATH; \
-	for dir in ${COPYDIR} ; do \
-	  if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \
-	    rm -rf $$1 ; \
-	  fi ; \
-	  shift ; \
-	done
-	-set ${COPYDESTS} ; \
-	mkdir ${COPYDESTS} ; \
-	chmod ugo+rx ${COPYDESTS} ; \
-	unset CDPATH; \
-	for dir in ${COPYDIR} ; do \
-	  dest=$$1 ; shift ; \
-	  [ -d $${dir} ] \
-	  && [ `(cd $${dir} && /bin/pwd)` != `(cd $${dest} && /bin/pwd)` ] \
-	  && (echo "Copying $${dir} to $${dest}..." ; \
-	      (cd $${dir}; tar -chf - . ) \
-		| (cd $${dest}; umask 022; \
-                   tar -xvf - && cat > /dev/null) || exit 1; \
-	      for subdir in `find $${dest} -type d ! -name RCS ! -name CVS -print` ; do \
-		chmod a+rx $${subdir} ; \
-		rm -rf $${subdir}/RCS ; \
-		rm -rf $${subdir}/CVS ; \
-		rm -f  $${subdir}/.cvsignore ; \
-		rm -f  $${subdir}/\#* ; \
-		rm -f  $${subdir}/.\#* ; \
-		rm -f  $${subdir}/*~ ; \
-		rm -f  $${subdir}/*.orig ; \
-		rm -f  $${subdir}/[mM]akefile* ; \
-		rm -f  $${subdir}/ChangeLog* ; \
-		rm -f  $${subdir}/dired.todo ; \
-	      done) ; \
-	done
+	-set ${COPYDESTS} ; 	unset CDPATH; 	for dir in ${COPYDIR} ; do 	  if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then 	    rm -rf $$1 ; 	  fi ; 	  shift ; 	done
+	-set ${COPYDESTS} ; 	mkdir ${COPYDESTS} ; 	chmod ugo+rx ${COPYDESTS} ; 	unset CDPATH; 	for dir in ${COPYDIR} ; do 	  dest=$$1 ; shift ; 	  [ -d $${dir} ] 	  && [ `(cd $${dir} && /bin/pwd)` != `(cd $${dest} && /bin/pwd)` ] 	  && (echo "Copying $${dir} to $${dest}..." ; 	      (cd $${dir}; tar -chf - . ) 		| (cd $${dest}; umask 022;                    tar -xvf - && cat > /dev/null) || exit 1; 	      for subdir in `find $${dest} -type d ! -name RCS ! -name CVS -print` ; do 		chmod a+rx $${subdir} ; 		rm -rf $${subdir}/RCS ; 		rm -rf $${subdir}/CVS ; 		rm -f  $${subdir}/.cvsignore ; 		rm -f  $${subdir}/\#* ; 		rm -f  $${subdir}/.\#* ; 		rm -f  $${subdir}/*~ ; 		rm -f  $${subdir}/*.orig ; 		rm -f  $${subdir}/[mM]akefile* ; 		rm -f  $${subdir}/ChangeLog* ; 		rm -f  $${subdir}/dired.todo ; 	      done) ; 	done
 	-rm -f ${lispdir}/subdirs.el
 	$(srcdir)/update-subdirs ${lispdir}
-	if [ -f ${datadir}/emacs/${version}/site-lisp/subdirs.el ]; \
-	then true; \
-	else \
-	  (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
-	   echo "    (normal-top-level-add-subdirs-to-load-path))") \
-	    > ${datadir}/emacs/${version}/site-lisp/subdirs.el; \
-	fi
+	if [ -f ${datadir}/emacs/${version}/site-lisp/subdirs.el ]; 	then true; 	else 	  (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; 	   echo "    (normal-top-level-add-subdirs-to-load-path))") 	    > ${datadir}/emacs/${version}/site-lisp/subdirs.el; 	fi
 	chmod a+r ${datadir}/emacs/${version}/site-lisp/subdirs.el
-	-if [ -f ${datadir}/emacs/site-lisp/subdirs.el ]; \
-	then true; \
-	else \
-	  (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
-	   echo "    (normal-top-level-add-subdirs-to-load-path))") \
-	    > ${datadir}/emacs/site-lisp/subdirs.el; \
-	fi
+	-if [ -f ${datadir}/emacs/site-lisp/subdirs.el ]; 	then true; 	else 	  (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; 	   echo "    (normal-top-level-add-subdirs-to-load-path))") 	    > ${datadir}/emacs/site-lisp/subdirs.el; 	fi
 	-chmod a+r ${datadir}/emacs/site-lisp/subdirs.el
-	-unset CDPATH; \
-	if [ `(cd ./etc; /bin/pwd)` != `(cd ${docdir}; /bin/pwd)` ]; \
-	then \
-	   echo "Copying etc/DOC-* to ${docdir} ..." ; \
-	   (cd ./etc; tar -chf - DOC*) \
-	     |(cd ${docdir}; umask 0; tar -xvf - && cat > /dev/null) || exit 1; \
-	   (cd $(docdir); chmod a+r DOC*; \
-	    if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); \
-	else true; fi
-	-unset CDPATH; \
-	if [ -r ./lisp ] \
-	   && [ -r ./lisp/simple.el ] \
-	   && [ x`(cd ./lisp; /bin/pwd)` != x`(cd ${lispdir}; /bin/pwd)` ] \
-	   && [ x`(cd ${srcdir}/lisp; /bin/pwd)` != x`(cd ./lisp; /bin/pwd)` ]; \
-	then \
-	   echo "Copying lisp/*.el and lisp/*.elc to ${lispdir} ..." ; \
-	   (cd lisp; tar -chf - *.el *.elc) \
-	     |(cd ${lispdir}; umask 0; tar -xvf - && cat > /dev/null) || exit 1; \
-	else true; fi
-	-unset CDPATH; \
-	thisdir=`/bin/pwd`; \
-	if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
-	then \
-	  (cd ${infodir};  \
-	   if [ -f dir ]; then true; \
-	   else	\
-	     (cd $${thisdir}; \
-	      ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir; \
-	      chmod a+r ${infodir}/dir); \
-	   fi; \
-	   cd ${srcdir}/info ; \
-	   for f in ada-mode* autotype* ccmode* cl* dired-x* ebrowse* ediff* efaq* emacs* eshell* eudc* forms* gnus* idlwave* info* message* mh-e* pcl-cvs* reftex* sc* speedbar* vip* widget* woman*; do \
-	     (cd $${thisdir}; \
-	      ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \
-	      chmod a+r ${infodir}/$$f); \
-	   done); \
-	else true; fi
-	-unset CDPATH; \
-	thisdir=`/bin/pwd`; \
-	if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \
-	then \
-	  for f in ada-mode autotype ccmode cl dired-x ebrowse ediff efaq emacs emacs-mime eshell eudc forms gnus idlwave info message mh-e pcl-cvs reftex sc speedbar vip viper widget woman; do \
-	    (cd $${thisdir}; \
-	     ${INSTALL_INFO} --info-dir=${infodir} ${infodir}/$$f); \
-	  done; \
-	else true; fi
+	-unset CDPATH; 	if [ `(cd ./etc; /bin/pwd)` != `(cd ${docdir}; /bin/pwd)` ]; 	then 	   echo "Copying etc/DOC-* to ${docdir} ..." ; 	   (cd ./etc; tar -chf - DOC*) 	     |(cd ${docdir}; umask 0; tar -xvf - && cat > /dev/null) || exit 1; 	   (cd $(docdir); chmod a+r DOC*; 	    if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); 	else true; fi
+	-unset CDPATH; 	if [ -r ./lisp ] 	   && [ -r ./lisp/simple.el ] 	   && [ x`(cd ./lisp; /bin/pwd)` != x`(cd ${lispdir}; /bin/pwd)` ] 	   && [ x`(cd ${srcdir}/lisp; /bin/pwd)` != x`(cd ./lisp; /bin/pwd)` ]; 	then 	   echo "Copying lisp/*.el and lisp/*.elc to ${lispdir} ..." ; 	   (cd lisp; tar -chf - *.el *.elc) 	     |(cd ${lispdir}; umask 0; tar -xvf - && cat > /dev/null) || exit 1; 	else true; fi
+	-unset CDPATH; 	thisdir=`/bin/pwd`; 	if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; 	then 	  (cd ${infodir};  	   if [ -f dir ]; then true; 	   else		     (cd $${thisdir}; 	      ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir; 	      chmod a+r ${infodir}/dir); 	   fi; 	   cd ${srcdir}/info ; 	   for f in ada-mode* autotype* ccmode* cl* dired-x* ebrowse* ediff* efaq* emacs* eshell* eudc* forms* gnus* idlwave* info* message* mh-e* pcl-cvs* reftex* sc* speedbar* vip* widget* woman*; do 	     (cd $${thisdir}; 	      ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; 	      chmod a+r ${infodir}/$$f); 	   done); 	else true; fi
+	-unset CDPATH; 	thisdir=`/bin/pwd`; 	if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; 	then 	  for f in ada-mode autotype ccmode cl dired-x ebrowse ediff efaq emacs emacs-mime eshell eudc forms gnus idlwave info message mh-e pcl-cvs reftex sc speedbar vip viper widget woman; do 	    (cd $${thisdir}; 	     ${INSTALL_INFO} --info-dir=${infodir} ${infodir}/$$f); 	  done; 	else true; fi
 	-chmod -R a+r ${datadir}/emacs ${COPYDESTS} ${infodir}
-	thisdir=`/bin/pwd`; \
-	cd ${srcdir}/etc; \
-	for page in emacs etags ctags gfdl ; do \
-	  (cd $${thisdir}; \
-	   ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/$${page}${manext}; \
-	   chmod a+r ${man1dir}/$${page}${manext}); \
-	done
+	thisdir=`/bin/pwd`; 	cd ${srcdir}/etc; 	for page in emacs etags ctags gfdl ; do 	  (cd $${thisdir}; 	   ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${man1dir}/$${page}${manext}; 	   chmod a+r ${man1dir}/$${page}${manext}); 	done
 
 ### Install LEIM files.  Although they are machine-independent, we
@@ -471,13 +353,6 @@
 ### instead of mkdir.  Not all systems' mkdir programs have the `-p' flag.
 mkdir: FRC
-	if [ -d ${datadir} ]; then true; else \
-	  $(srcdir)/mkinstalldirs ${datadir}; \
-	  chmod a+r ${datadir};\
-	fi
-	$(srcdir)/mkinstalldirs ${COPYDESTS} ${infodir} ${man1dir} \
-	  ${bindir} ${docdir} ${libexecdir} \
-	  ${datadir}/emacs/site-lisp \
-	  ${datadir}/emacs/${version}/site-lisp \
-	  `echo ${locallisppath} | sed 's/:/ /g'`
+	if [ -d ${datadir} ]; then true; else 	  $(srcdir)/mkinstalldirs ${datadir}; 	  chmod a+r ${datadir};	fi
+	$(srcdir)/mkinstalldirs ${COPYDESTS} ${infodir} ${man1dir} 	  ${bindir} ${docdir} ${libexecdir} 	  ${datadir}/emacs/site-lisp 	  ${datadir}/emacs/${version}/site-lisp 	  `echo ${locallisppath} | sed 's/:/ /g'`
 
 ### Delete all the installed files that the `install' target would
@@ -487,22 +362,6 @@
 ### Don't delete the lisp and etc directories if they're in the source tree.
 uninstall:
-	(cd lib-src; 					\
-	 $(MAKE) $(MFLAGS) uninstall			\
-	    prefix=${prefix} exec_prefix=${exec_prefix}	\
-	    bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir})
-	-unset CDPATH; \
-	for dir in ${lispdir} ${etcdir} ; do 		\
-	  if [ -d $${dir} ]; then			\
-	    case `(cd $${dir} ; /bin/pwd)` in		\
-	      `(cd ${srcdir} ; /bin/pwd)`* ) ;;		\
-	      * ) rm -rf $${dir} ;;			\
-	    esac ;					\
-	    case $${dir} in				\
-	      ${datadir}/emacs/${version}/* )		\
-	        rm -rf ${datadir}/emacs/${version}	\
-	      ;;					\
-	    esac ;					\
-	  fi ;						\
-	done
+	(cd lib-src; 						 $(MAKE) $(MFLAGS) uninstall				    prefix=${prefix} exec_prefix=${exec_prefix}		    bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir})
+	-unset CDPATH; 	for dir in ${lispdir} ${etcdir} ; do 			  if [ -d $${dir} ]; then				    case `(cd $${dir} ; /bin/pwd)` in			      `(cd ${srcdir} ; /bin/pwd)`* ) ;;			      * ) rm -rf $${dir} ;;				    esac ;						    case $${dir} in					      ${datadir}/emacs/${version}/* )			        rm -rf ${datadir}/emacs/${version}		      ;;						    esac ;						  fi ;							done
 	(cd ${archlibdir} && rm -f fns-*)
 	-rm -rf ${libexecdir}/emacs/${version}
@@ -553,8 +412,5 @@
 ###      `make distclean' should leave only the files that were in the
 ###      distribution.
-top_distclean=\
-	rm -f config.status config.cache config.log ; \
-	rm -f Makefile ${SUBDIR_MAKEFILES} ; \
-	if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi
+top_distclean=	rm -f config.status config.cache config.log ; 	rm -f Makefile ${SUBDIR_MAKEFILES} ; 	if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi
 distclean: FRC
 	(cd src;      $(MAKE) $(MFLAGS) distclean)
@@ -607,6 +463,5 @@
 ### and VC will swiftly let you know if this happens, and it is easily
 ### corrected.
-SOURCES = ChangeLog FTP INSTALL Makefile.in \
-	README configure make-dist move-if-change
+SOURCES = ChangeLog FTP INSTALL Makefile.in 	README configure make-dist move-if-change
 
 .PHONY: unlock relock
@@ -668,7 +523,5 @@
 
 maybe_bootstrap:
-	if [ ! -f $(srcdir)/lisp/abbrev.elc ]; then \
-	  $(MAKE) $(MFLAGS) bootstrap; \
-	fi
+	if [ ! -f $(srcdir)/lisp/abbrev.elc ]; then 	  $(MAKE) $(MFLAGS) bootstrap; 	fi
 
 bootstrap: clean bootstrap-lisp-1 bootstrap-src bootstrap-lisp bootstrap-clean all info
diff -u2r '--exclude=ORIG' dist-emacs-21.4/configure work-emacs-21.4/configure
--- dist-emacs-21.4/configure	2003-03-18 06:19:12.000000000 -0800
+++ work-emacs-21.4/configure	2022-06-25 10:22:41.000000000 -0700
@@ -1687,4 +1687,9 @@
   ;;
 
+  ## AMD x86-64 Linux-based GNU system
+  x86_64-*-linux-gnu* )
+    machine=amdx86-64 opsys=gnu-linux
+  ;;
+
   * )
     unported=yes
diff -u2r '--exclude=ORIG' dist-emacs-21.4/lib-src/Makefile.in work-emacs-21.4/lib-src/Makefile.in
--- dist-emacs-21.4/lib-src/Makefile.in	2002-05-31 09:45:17.000000000 -0700
+++ work-emacs-21.4/lib-src/Makefile.in	2022-06-25 15:43:27.988378630 -0700
@@ -98,6 +98,5 @@
 # Things that Emacs runs internally, or during the build process,
 #  which should not be installed in bindir.
-UTILITIES=  profile digest-doc \
-	sorted-doc movemail cvtmail fakemail yow emacsserver hexl
+UTILITIES=  profile digest-doc 	sorted-doc movemail cvtmail fakemail yow emacsserver hexl
 
 DONT_INSTALL= test-distrib make-docfile
@@ -109,6 +108,5 @@
 EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}
 
-SOURCES = COPYING ChangeLog Makefile.in README emacs.csh \
-	makedoc.com *.[chy] rcs2log vcdiff
+SOURCES = COPYING ChangeLog Makefile.in README emacs.csh 	makedoc.com *.[chy] rcs2log vcdiff
 
 # Additional -D flags for movemail (add to MOVE_FLAGS if desired):
@@ -235,15 +233,11 @@
    HAVE_CONFIG_H #defined before they know they can take advantage of
    the information in ../src/config.h.  */
-ALL_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
-   -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
-LINK_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
-   -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CFLAGS}
-CPP_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
-   -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
+ALL_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H    -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
+LINK_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H    -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CFLAGS}
+CPP_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H    -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
 /* This was all of CPP_CFLAGS except -Demacs.
    Now that -Demacs has been deleted from CPP_CFLAGS,
    this is actually the same as CPP_CFLAGS, but let's not delete it yet.  */
-BASE_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
-   -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
+BASE_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H    -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
 \f
 /* This is the default compilation command.
@@ -266,11 +260,5 @@
 /* Don't charge ahead and do it!  Let the installer decide.
 	  ./blessmail ${archlibdir}/movemail  */
-	@if [ `wc -l <blessmail` != 2 ] ; then \
-	  dir=`sed -n -e 's/echo mail directory = \(.*\)/\1/p' blessmail`; \
-	  echo Assuming $$dir is really the mail spool directory, you should; \
-	  echo run  lib-src/blessmail ${archlibdir}/movemail; \
-	  echo as root, to give  movemail  appropriate permissions.; \
-	  echo Do that after running  make install.; \
-	fi
+	@if [ `wc -l <blessmail` != 2 ] ; then 	  dir=`sed -n -e 's/echo mail directory = \(.*\)/\1/p' blessmail`; 	  echo Assuming $$dir is really the mail spool directory, you should; 	  echo run  lib-src/blessmail ${archlibdir}/movemail; 	  echo as root, to give  movemail  appropriate permissions.; 	  echo Do that after running  make install.; 	fi
 #endif
 
@@ -281,33 +269,16 @@
 	@echo "Installing utilities run internally by Emacs."
 	$(top_srcdir)/mkinstalldirs ${archlibdir}
-	if [ `(cd ${archlibdir} && /bin/pwd)` != `/bin/pwd` ]; then \
-	  for file in ${UTILITIES}; do \
-	    $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file ${archlibdir}/$$file ; \
-	  done ; \
-        fi
-        if [ `(cd ${archlibdir} && /bin/pwd)` \
-             != `(cd ${srcdir} && /bin/pwd)` ]; then \
-	  for file in ${SCRIPTS}; do \
-	    $(INSTALL_PROGRAM) ${srcdir}/$$file ${archlibdir}/$$file; \
-	  done ; \
-	fi
+	if [ `(cd ${archlibdir} && /bin/pwd)` != `/bin/pwd` ]; then 	  for file in ${UTILITIES}; do 	    $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file ${archlibdir}/$$file ; 	  done ;         fi
+        if [ `(cd ${archlibdir} && /bin/pwd)`              != `(cd ${srcdir} && /bin/pwd)` ]; then 	  for file in ${SCRIPTS}; do 	    $(INSTALL_PROGRAM) ${srcdir}/$$file ${archlibdir}/$$file; 	  done ; 	fi
 
 install: ${archlibdir}
 	@echo
 	@echo "Installing utilities for users to run."
-	for file in ${INSTALLABLES} ; do \
-	  $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} ${bindir}/$${file} ; \
-	  chmod a+rx ${bindir}/$${file}; \
-	done
-	for file in ${INSTALLABLE_SCRIPTS} ; do \
-	  $(INSTALL_PROGRAM) ${srcdir}/$${file} ${bindir}/$${file} ; \
-	  chmod a+rx ${bindir}/$${file}; \
-	done
+	for file in ${INSTALLABLES} ; do 	  $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} ${bindir}/$${file} ; 	  chmod a+rx ${bindir}/$${file}; 	done
+	for file in ${INSTALLABLE_SCRIPTS} ; do 	  $(INSTALL_PROGRAM) ${srcdir}/$${file} ${bindir}/$${file} ; 	  chmod a+rx ${bindir}/$${file}; 	done
 
 uninstall:
-	(cd ${bindir}; \
-	 rm -f ${INSTALLABLES} ${INSTALLABLE_SCRIPTS})
-	(cd ${archlibdir}; \
-	 rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS})
+	(cd ${bindir}; 	 rm -f ${INSTALLABLES} ${INSTALLABLE_SCRIPTS})
+	(cd ${archlibdir}; 	 rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS})
 
 mostlyclean:
@@ -394,6 +365,5 @@
 
 b2m: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS)
-	$(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c  -DVERSION="\"${version}\"" \
-	   $(GETOPTOBJS) $(LOADLIBES) -o b2m 
+	$(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c  -DVERSION="\"${version}\"" 	   $(GETOPTOBJS) $(LOADLIBES) -o b2m 
 
 movemail: movemail.o pop.o $(GETOPTDEPS)
@@ -419,7 +389,5 @@
 
 emacsclient: ${srcdir}/emacsclient.c ../src/config.h $(GETOPTDEPS)
-	$(CC) ${ALL_CFLAGS} ${srcdir}/emacsclient.c $(GETOPTOBJS)  \
-	   -DVERSION=`sed -n -e '/(defconst emacs-version/ s/^[^"]*\("[^"]*"\).*/\1/p' ${srcdir}/../lisp/version.el` \
-	   $(LOADLIBES) -o emacsclient
+	$(CC) ${ALL_CFLAGS} ${srcdir}/emacsclient.c $(GETOPTOBJS)  	   -DVERSION=`sed -n -e '/(defconst emacs-version/ s/^[^"]*\("[^"]*"\).*/\1/p' ${srcdir}/../lisp/version.el` 	   $(LOADLIBES) -o emacsclient
 
 hexl: ${srcdir}/hexl.c ../src/config.h
@@ -429,19 +397,13 @@
    See ../src/Makefile.in.  */
 emacstool: ${srcdir}/emacstool.c
-	$(CC) ${srcdir}/emacstool.c -o emacstool ${ALL_CFLAGS} \
-	  -lsuntool -lsunwindow -lpixrect $(LOADLIBES)
+	$(CC) ${srcdir}/emacstool.c -o emacstool ${ALL_CFLAGS} 	  -lsuntool -lsunwindow -lpixrect $(LOADLIBES)
 
 /* For SUN Japanese Language Environment.  */
 nemacstool: ${srcdir}/emacstool.c
-	$(CC) -o nemacstool -DJLE ${ALL_CFLAGS} ${srcdir}/emacstool.c \
-	  -lsuntool -lmle -lsunwindow -lpixrect $(LOADLIBES)
+	$(CC) -o nemacstool -DJLE ${ALL_CFLAGS} ${srcdir}/emacstool.c 	  -lsuntool -lmle -lsunwindow -lpixrect $(LOADLIBES)
 
 xvetool: ${srcdir}/emacstool.c
-	$(CC) -o xvetool -DXVIEW ${ALL_CFLAGS} ${srcdir}/emacstool.c \
-	  -lxview -lX -I$(OPENWINHOME)/include -L$(OPENWINHOME)/lib \
-	  $(LOADLIBES)
+	$(CC) -o xvetool -DXVIEW ${ALL_CFLAGS} ${srcdir}/emacstool.c 	  -lxview -lX -I$(OPENWINHOME)/include -L$(OPENWINHOME)/lib 	  $(LOADLIBES)
 
 xveterm: ${srcdir}/emacstool.c
-	$(CC) -o xveterm -DXVIEW -DTTERM ${ALL_CFLAGS} ${srcdir}/emacstool.c \
-	  -lxview -lolgx -lX  -I$(OPENWINHOME)/include -L$(OPENWINHOME)/lib \
-	  $(LOADLIBES)
+	$(CC) -o xveterm -DXVIEW -DTTERM ${ALL_CFLAGS} ${srcdir}/emacstool.c 	  -lxview -lolgx -lX  -I$(OPENWINHOME)/include -L$(OPENWINHOME)/lib 	  $(LOADLIBES)
diff -u2r '--exclude=ORIG' dist-emacs-21.4/src/.gdbinit work-emacs-21.4/src/.gdbinit
--- dist-emacs-21.4/src/.gdbinit	2001-02-20 02:56:48.000000000 -0800
+++ work-emacs-21.4/src/.gdbinit	2022-06-26 10:20:23.883656285 -0700
@@ -379,5 +379,5 @@
 show environment DISPLAY
 show environment TERM
-set args -geometry 80x40+0+0
+#set args -geometry 80x40+0+0
 
 # Don't let abort actually run, as it will make
@@ -388,3 +388,3 @@
 # before Emacs exits.  Perhaps we should put the break somewhere else
 # instead...
-break x_error_quitter
+#break x_error_quitter
diff -u2r '--exclude=ORIG' dist-emacs-21.4/src/Makefile.in work-emacs-21.4/src/Makefile.in
--- dist-emacs-21.4/src/Makefile.in	2003-01-23 02:34:06.000000000 -0800
+++ work-emacs-21.4/src/Makefile.in	2022-06-25 15:43:17.700450896 -0700
@@ -495,6 +495,5 @@
 #endif /* not ORDINARY_LINK */
 
-ALL_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE \
-	 LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE $(LDFLAGS)
+ALL_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE 	 LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE $(LDFLAGS)
 
 /* A macro which other sections of Makefile can redefine to munge the
@@ -530,24 +529,10 @@
 /* lastfile must follow all files
    whose initialized data areas should be dumped as pure by dump-emacs.  */
-obj=    dispnew.o frame.o scroll.o xdisp.o xmenu.o window.o \
-	charset.o coding.o category.o ccl.o\
-	cm.o term.o xfaces.o $(XOBJ) \
-	emacs.o keyboard.o macros.o keymap.o sysdep.o \
-	buffer.o filelock.o insdel.o marker.o \
-	minibuf.o fileio.o dired.o filemode.o \
-	cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
-	alloc.o data.o doc.o editfns.o callint.o \
-	eval.o floatfns.o fns.o print.o lread.o \
-	abbrev.o syntax.o UNEXEC mocklisp.o bytecode.o \
-	process.o callproc.o \
-	region-cache.o sound.o atimer.o \
-	doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
-	$(MSDOS_OBJ)
+obj=    dispnew.o frame.o scroll.o xdisp.o xmenu.o window.o 	charset.o coding.o category.o ccl.o	cm.o term.o xfaces.o $(XOBJ) 	emacs.o keyboard.o macros.o keymap.o sysdep.o 	buffer.o filelock.o insdel.o marker.o 	minibuf.o fileio.o dired.o filemode.o 	cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o 	alloc.o data.o doc.o editfns.o callint.o 	eval.o floatfns.o fns.o print.o lread.o 	abbrev.o syntax.o UNEXEC mocklisp.o bytecode.o 	process.o callproc.o 	region-cache.o sound.o atimer.o 	doprnt.o strftime.o intervals.o textprop.o composite.o md5.o 	$(MSDOS_OBJ)
 
 /* Object files used on some machine or other.
    These go in the DOC file on all machines
    in case they are needed there.  */
-SOME_MACHINE_OBJECTS = sunfns.o dosfns.o msdos.o \
-  xterm.o xfns.o xmenu.o xselect.o xrdb.o fontset.o
+SOME_MACHINE_OBJECTS = sunfns.o dosfns.o msdos.o   xterm.o xfns.o xmenu.o xselect.o xrdb.o fontset.o
 
 
@@ -606,6 +591,5 @@
 
 #ifdef HAVE_MOUSE
-#define MOUSE_SUPPORT ${lispsource}mouse.elc \
-  ${lispsource}select.elc ${lispsource}scroll-bar.elc
+#define MOUSE_SUPPORT ${lispsource}mouse.elc   ${lispsource}select.elc ${lispsource}scroll-bar.elc
 #else
 #define MOUSE_SUPPORT
@@ -619,7 +603,5 @@
 
 #ifdef MSDOS
-#define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
- ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
- ${lispsource}international/ccl.elc ${lispsource}international/codepage.elc
+#define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc  ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc  ${lispsource}international/ccl.elc ${lispsource}international/codepage.elc
 
 #else
@@ -628,6 +610,5 @@
 
 #ifdef WINDOWSNT
-#define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}w32-fns.elc \
-  ${lispsource}dos-w32.elc
+#define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}w32-fns.elc   ${lispsource}dos-w32.elc
 #else
 #define WINNT_SUPPORT
@@ -646,81 +627,5 @@
    in SOME_MACHINE_LISP.  */
 
-lisp= \
-	${lispsource}abbrev.elc \
-	${lispsource}buff-menu.elc \
-	${lispsource}byte-run.elc \
-	${lispsource}cus-start.el \
-	${lispsource}custom.elc \
-	${lispsource}emacs-lisp/lisp-mode.elc \
-	${lispsource}emacs-lisp/lisp.elc \
-	${lispsource}env.elc \
-	${lispsource}faces.elc \
-	${lispsource}files.elc \
-	${lispsource}format.elc \
-	${lispsource}facemenu.elc \
-	MOUSE_SUPPORT \
-	${lispsource}float-sup.elc \
-	${lispsource}frame.elc\
-	${lispsource}help.elc \
-	${lispsource}indent.elc \
-	${lispsource}isearch.elc \
-	${lispsource}loadup.el \
-	${lispsource}loaddefs.el \
-	${lispsource}bindings.elc \
-	${lispsource}map-ynp.elc \
-	${lispsource}menu-bar.elc \
-	${lispsource}international/mule.elc \
-	${lispsource}international/mule-conf.el \
-	${lispsource}international/mule-cmds.elc \
-	${lispsource}international/characters.elc \
-	${lispsource}international/utf-8.elc \
-	${lispsource}international/utf-16.elc \
-	${lispsource}international/latin-1.el \
-	${lispsource}international/latin-2.el \
-	${lispsource}international/latin-3.el \
-	${lispsource}international/latin-4.el \
-	${lispsource}international/latin-5.el \
-	${lispsource}international/latin-8.el \
-	${lispsource}international/latin-9.el \
-	${lispsource}case-table.elc \
-	${lispsource}language/chinese.elc \
-	${lispsource}language/cyrillic.elc \
-	${lispsource}language/indian.elc \
-	${lispsource}language/devanagari.elc \
-	${lispsource}language/english.elc \
-	${lispsource}language/ethiopic.elc \
-	${lispsource}language/european.elc \
-	${lispsource}language/czech.elc \
-	${lispsource}language/slovak.elc \
-	${lispsource}language/romanian.elc \
-	${lispsource}language/greek.elc \
-	${lispsource}language/hebrew.elc \
-	${lispsource}language/japanese.elc \
-	${lispsource}language/korean.elc \
-	${lispsource}language/lao.elc \
-	${lispsource}language/thai.elc \
-	${lispsource}language/tibetan.elc \
-	${lispsource}language/vietnamese.elc \
-	${lispsource}language/misc-lang.elc \
-	${lispsource}international/ucs-tables.elc \
-	${lispsource}paths.el \
-	${lispsource}register.elc \
-	${lispsource}replace.elc \
-	${lispsource}simple.elc \
-	${lispsource}startup.elc \
-	${lispsource}subr.elc \
-	${lispsource}term/tty-colors.elc \
-	${lispsource}textmodes/fill.elc \
-	${lispsource}textmodes/page.elc \
-	${lispsource}textmodes/paragraphs.elc \
-	${lispsource}textmodes/text-mode.elc \
-	${lispsource}vc-hooks.elc \
-	${lispsource}ediff-hook.elc \
-	VMS_SUPPORT \
-	MSDOS_SUPPORT \
-	WINNT_SUPPORT \
-	${lispsource}widget.elc \
-	${lispsource}window.elc \
-	${lispsource}version.el
+lisp= 	${lispsource}abbrev.elc 	${lispsource}buff-menu.elc 	${lispsource}byte-run.elc 	${lispsource}cus-start.el 	${lispsource}custom.elc 	${lispsource}emacs-lisp/lisp-mode.elc 	${lispsource}emacs-lisp/lisp.elc 	${lispsource}env.elc 	${lispsource}faces.elc 	${lispsource}files.elc 	${lispsource}format.elc 	${lispsource}facemenu.elc 	MOUSE_SUPPORT 	${lispsource}float-sup.elc 	${lispsource}frame.elc	${lispsource}help.elc 	${lispsource}indent.elc 	${lispsource}isearch.elc 	${lispsource}loadup.el 	${lispsource}loaddefs.el 	${lispsource}bindings.elc 	${lispsource}map-ynp.elc 	${lispsource}menu-bar.elc 	${lispsource}international/mule.elc 	${lispsource}international/mule-conf.el 	${lispsource}international/mule-cmds.elc 	${lispsource}international/characters.elc 	${lispsource}international/utf-8.elc 	${lispsource}international/utf-16.elc 	${lispsource}international/latin-1.el 	${lispsource}international/latin-2.el 	${lispsource}international/latin-3.el 	${lispsource}international/latin-4.el 	${lispsource}international/latin-5.el 	${lispsource}international/latin-8.el 	${lispsource}international/latin-9.el 	${lispsource}case-table.elc 	${lispsource}language/chinese.elc 	${lispsource}language/cyrillic.elc 	${lispsource}language/indian.elc 	${lispsource}language/devanagari.elc 	${lispsource}language/english.elc 	${lispsource}language/ethiopic.elc 	${lispsource}language/european.elc 	${lispsource}language/czech.elc 	${lispsource}language/slovak.elc 	${lispsource}language/romanian.elc 	${lispsource}language/greek.elc 	${lispsource}language/hebrew.elc 	${lispsource}language/japanese.elc 	${lispsource}language/korean.elc 	${lispsource}language/lao.elc 	${lispsource}language/thai.elc 	${lispsource}language/tibetan.elc 	${lispsource}language/vietnamese.elc 	${lispsource}language/misc-lang.elc 	${lispsource}international/ucs-tables.elc 	${lispsource}paths.el 	${lispsource}register.elc 	${lispsource}replace.elc 	${lispsource}simple.elc 	${lispsource}startup.elc 	${lispsource}subr.elc 	${lispsource}term/tty-colors.elc 	${lispsource}textmodes/fill.elc 	${lispsource}textmodes/page.elc 	${lispsource}textmodes/paragraphs.elc 	${lispsource}textmodes/text-mode.elc 	${lispsource}vc-hooks.elc 	${lispsource}ediff-hook.elc 	VMS_SUPPORT 	MSDOS_SUPPORT 	WINNT_SUPPORT 	${lispsource}widget.elc 	${lispsource}window.elc 	${lispsource}version.el
 
 /* These are relative file names for the Lisp files
@@ -728,78 +633,5 @@
    It need not contain the files that are loaded conditionally
    because SOME_MACHINE_LISP has those.  */
-shortlisp= \
-	../lisp/abbrev.elc \
-	../lisp/buff-menu.elc \
-	../lisp/byte-run.elc \
-	../lisp/cus-start.el \
-	../lisp/custom.elc \
-	../lisp/emacs-lisp/backquote.elc \
-	../lisp/emacs-lisp/lisp-mode.elc \
-	../lisp/emacs-lisp/lisp.elc \
-	../lisp/facemenu.elc \
-	../lisp/faces.elc \
-	../lisp/files.elc \
-	../lisp/float-sup.elc \
-	../lisp/format.elc \
-	../lisp/frame.elc \
-	../lisp/help.elc \
-	../lisp/indent.elc \
-	../lisp/isearch.elc \
-	../lisp/loadup.el \
-	../lisp/loaddefs.el \
-	../lisp/bindings.elc \
-	../lisp/map-ynp.elc \
-	../lisp/env.elc \
-	../lisp/international/mule.elc \
-	../lisp/international/mule-conf.el \
-	../lisp/international/mule-cmds.elc \
-	../lisp/international/characters.elc \
-	../lisp/international/utf-8.elc \
-	../lisp/international/utf-16.elc \
-	../lisp/international/latin-1.el \
-	../lisp/international/latin-2.el \
-	../lisp/international/latin-3.el \
-	../lisp/international/latin-4.el \
-	../lisp/international/latin-5.el \
-	../lisp/international/latin-8.el \
-	../lisp/international/latin-9.el \
-	../lisp/case-table.elc \
-	../lisp/language/chinese.elc \
-	../lisp/language/cyrillic.elc \
-	../lisp/language/indian.elc \
-	../lisp/language/devanagari.elc \
-	../lisp/language/english.elc \
-	../lisp/language/ethiopic.elc \
-	../lisp/language/european.elc \
-	../lisp/language/czech.elc \
-	../lisp/language/slovak.elc \
-	../lisp/language/romanian.elc \
-	../lisp/language/greek.elc \
-	../lisp/language/hebrew.elc \
-	../lisp/language/japanese.elc \
-	../lisp/language/korean.elc \
-	../lisp/language/lao.elc \
-	../lisp/language/thai.elc \
-	../lisp/language/tibetan.elc \
-	../lisp/language/vietnamese.elc \
-	../lisp/language/misc-lang.elc \
-	../lisp/international/ucs-tables.elc \
-	../lisp/menu-bar.elc \
-	../lisp/paths.el \
-	../lisp/register.elc \
-	../lisp/replace.elc \
-	../lisp/simple.elc \
-	../lisp/startup.elc \
-	../lisp/subr.elc \
-	../lisp/term/tty-colors.elc \
-	../lisp/textmodes/fill.elc \
-	../lisp/textmodes/page.elc \
-	../lisp/textmodes/paragraphs.elc \
-	../lisp/textmodes/text-mode.elc \
-	../lisp/vc-hooks.elc \
-	../lisp/ediff-hook.elc \
-	../lisp/widget.elc \
-	../lisp/window.elc \
-	../lisp/version.el
+shortlisp= 	../lisp/abbrev.elc 	../lisp/buff-menu.elc 	../lisp/byte-run.elc 	../lisp/cus-start.el 	../lisp/custom.elc 	../lisp/emacs-lisp/backquote.elc 	../lisp/emacs-lisp/lisp-mode.elc 	../lisp/emacs-lisp/lisp.elc 	../lisp/facemenu.elc 	../lisp/faces.elc 	../lisp/files.elc 	../lisp/float-sup.elc 	../lisp/format.elc 	../lisp/frame.elc 	../lisp/help.elc 	../lisp/indent.elc 	../lisp/isearch.elc 	../lisp/loadup.el 	../lisp/loaddefs.el 	../lisp/bindings.elc 	../lisp/map-ynp.elc 	../lisp/env.elc 	../lisp/international/mule.elc 	../lisp/international/mule-conf.el 	../lisp/international/mule-cmds.elc 	../lisp/international/characters.elc 	../lisp/international/utf-8.elc 	../lisp/international/utf-16.elc 	../lisp/international/latin-1.el 	../lisp/international/latin-2.el 	../lisp/international/latin-3.el 	../lisp/international/latin-4.el 	../lisp/international/latin-5.el 	../lisp/international/latin-8.el 	../lisp/international/latin-9.el 	../lisp/case-table.elc 	../lisp/language/chinese.elc 	../lisp/language/cyrillic.elc 	../lisp/language/indian.elc 	../lisp/language/devanagari.elc 	../lisp/language/english.elc 	../lisp/language/ethiopic.elc 	../lisp/language/european.elc 	../lisp/language/czech.elc 	../lisp/language/slovak.elc 	../lisp/language/romanian.elc 	../lisp/language/greek.elc 	../lisp/language/hebrew.elc 	../lisp/language/japanese.elc 	../lisp/language/korean.elc 	../lisp/language/lao.elc 	../lisp/language/thai.elc 	../lisp/language/tibetan.elc 	../lisp/language/vietnamese.elc 	../lisp/language/misc-lang.elc 	../lisp/international/ucs-tables.elc 	../lisp/menu-bar.elc 	../lisp/paths.el 	../lisp/register.elc 	../lisp/replace.elc 	../lisp/simple.elc 	../lisp/startup.elc 	../lisp/subr.elc 	../lisp/term/tty-colors.elc 	../lisp/textmodes/fill.elc 	../lisp/textmodes/page.elc 	../lisp/textmodes/paragraphs.elc 	../lisp/textmodes/text-mode.elc 	../lisp/vc-hooks.elc 	../lisp/ediff-hook.elc 	../lisp/widget.elc 	../lisp/window.elc 	../lisp/version.el
 
 /* Lisp files that may or may not be used.
@@ -808,12 +640,5 @@
    to reduce the size of the argument list for make-docfile
    for the sake of systems which can't handle large ones.  */
-SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
-  ${dotdot}/lisp/select.elc ${dotdot}/lisp/scroll-bar.elc \
-  ${dotdot}/lisp/vmsproc.elc ${dotdot}/lisp/vms-patch.elc \
-  ${dotdot}/lisp/ls-lisp.elc ${dotdot}/lisp/dos-fns.elc \
-  ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
-  ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
-  ${dotdot}/lisp/international/ccl.elc \
-  ${dotdot}/lisp/international/codepage.elc
+SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc   ${dotdot}/lisp/select.elc ${dotdot}/lisp/scroll-bar.elc   ${dotdot}/lisp/vmsproc.elc ${dotdot}/lisp/vms-patch.elc   ${dotdot}/lisp/ls-lisp.elc ${dotdot}/lisp/dos-fns.elc   ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc   ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc   ${dotdot}/lisp/international/ccl.elc   ${dotdot}/lisp/international/codepage.elc
 
 /* Construct full set of libraries to be linked.
@@ -821,8 +646,5 @@
    duplicated symbols.  If the standard libraries were compiled
    with GCC, we might need gnulib again after them.  */
-LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) \
-   LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
-   LIBS_DEBUG $(GETLOADAVG_LIBS) $(GNULIB_VAR) LIB_MATH LIB_STANDARD \
-   $(GNULIB_VAR)
+LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND)    LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP    LIBS_DEBUG $(GETLOADAVG_LIBS) $(GNULIB_VAR) LIB_MATH LIB_STANDARD    $(GNULIB_VAR)
 
 /* Enable recompilation of certain other files depending on system type.  */
@@ -873,7 +695,5 @@
 
 temacs: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args
-	$(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${ALL_LDFLAGS}) \
-    -o temacs ${STARTFILES} ${obj} ${otherobj}  \
-    OBJECTS_MACHINE ${LIBES}
+	$(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${ALL_LDFLAGS})     -o temacs ${STARTFILES} ${obj} ${otherobj}      OBJECTS_MACHINE ${LIBES}
 
 /* We don't use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
@@ -916,12 +736,5 @@
 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
 really-lwlib:
-	cd ${lwlibdir}; ${MAKE} ${MFLAGS} LWLIB_OPTIONS \
-    CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
-    "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
-    "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
-    "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
-    "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
-    "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
-    "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
+	cd ${lwlibdir}; ${MAKE} ${MFLAGS} LWLIB_OPTIONS     CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'     "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)"     "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)"     "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)"     "C_SWITCH_SITE=$(C_SWITCH_SITE_1)"     "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)"     "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
 	@true  /* make -t should not create really-lwlib.  */
 .PHONY: really-lwlib
@@ -938,12 +751,5 @@
 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
 really-oldXMenu:
-	cd ${oldXMenudir}; ${MAKE} ${MFLAGS} OLDXMENU_OPTIONS \
-    CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
-    "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
-    "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
-    "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
-    "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
-    "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
-    "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
+	cd ${oldXMenudir}; ${MAKE} ${MFLAGS} OLDXMENU_OPTIONS     CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'     "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)"     "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)"     "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)"     "C_SWITCH_SITE=$(C_SWITCH_SITE_1)"     "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)"     "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
 	@true  /* make -t should not create really-oldXMenu.  */
 .PHONY: really-oldXMenu
@@ -978,6 +784,5 @@
    users of alloca in Emacs.  Check out ../lib-src/getopt.c.  */
 alloca.o : alloca.c
-	$(CC) -c $(CPPFLAGS) -DEMACS_FREE=xfree \
-	$(ALL_CFLAGS) ${srcdir}/alloca.c
+	$(CC) -c $(CPPFLAGS) -DEMACS_FREE=xfree 	$(ALL_CFLAGS) ${srcdir}/alloca.c
 #else
 #ifndef HAVE_ALLOCA
@@ -991,7 +796,5 @@
    output file, since some stupid compilers (Green Hill's) use that
    name for the intermediate assembler file. */
-	$(CPP) $(CPPFLAGS) $(ALL_CFLAGS) allocatem.c | \
-	sed -e 's/\f//' -e 's/^#.*//' | \
-	sed -n -e '/^..*$$/p' > allocax.s
+	$(CPP) $(CPPFLAGS) $(ALL_CFLAGS) allocatem.c | 	sed -e 's/\f//' -e 's/^#.*//' | 	sed -n -e '/^..*$$/p' > allocax.s
 	-rm -f alloca.o
 /* Xenix, in particular, needs to run assembler via cc.  */
@@ -1007,63 +810,38 @@
    and so rarely changed in ways that do require any.  */
 
-abbrev.o: abbrev.c buffer.h window.h dispextern.h commands.h charset.h \
-	$(config_h)
-buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
-   dispextern.h $(INTERVAL_SRC) blockinput.h atimer.h systime.h charset.h \
-   $(config_h)
-callint.o: callint.c window.h commands.h buffer.h mocklisp.h \
-   keyboard.h dispextern.h $(config_h)
-callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
-	process.h systty.h syssignal.h charset.h coding.h ccl.h msdos.h \
-        composite.h
+abbrev.o: abbrev.c buffer.h window.h dispextern.h commands.h charset.h 	$(config_h)
+buffer.o: buffer.c buffer.h region-cache.h commands.h window.h    dispextern.h $(INTERVAL_SRC) blockinput.h atimer.h systime.h charset.h    $(config_h)
+callint.o: callint.c window.h commands.h buffer.h mocklisp.h    keyboard.h dispextern.h $(config_h)
+callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) 	process.h systty.h syssignal.h charset.h coding.h ccl.h msdos.h         composite.h
 casefiddle.o: casefiddle.c syntax.h commands.h buffer.h composite.h $(config_h)
 casetab.o: casetab.c buffer.h $(config_h)
 category.o: category.c category.h buffer.h charset.h $(config_h)
 ccl.o: ccl.c ccl.h charset.h coding.h $(config_h)
-charset.o: charset.c charset.h buffer.h coding.h composite.h disptab.h \
-	$(config_h)
+charset.o: charset.c charset.h buffer.h coding.h composite.h disptab.h 	$(config_h)
 coding.o: coding.c coding.h ccl.h buffer.h charset.h $(config_h)
 cm.o: cm.c cm.h termhooks.h $(config_h)
-cmds.o: cmds.c syntax.h buffer.h charset.h commands.h window.h $(config_h) \
-	msdos.h dispextern.h
+cmds.o: cmds.c syntax.h buffer.h charset.h commands.h window.h $(config_h) 	msdos.h dispextern.h
 pre-crt0.o: pre-crt0.c
 ecrt0.o: ecrt0.c $(config_h)
 	CRT0_COMPILE ${srcdir}/ecrt0.c
-dired.o: dired.c commands.h buffer.h $(config_h) charset.h coding.h regex.h \
-   systime.h
-dispnew.o: dispnew.c  commands.h frame.h window.h buffer.h dispextern.h \
-   termchar.h termopts.h termhooks.h cm.h disptab.h systty.h systime.h \
-   xterm.h blockinput.h atimer.h charset.h msdos.h composite.h keyboard.h \
-   $(config_h)
+dired.o: dired.c commands.h buffer.h $(config_h) charset.h coding.h regex.h    systime.h
+dispnew.o: dispnew.c  commands.h frame.h window.h buffer.h dispextern.h    termchar.h termopts.h termhooks.h cm.h disptab.h systty.h systime.h    xterm.h blockinput.h atimer.h charset.h msdos.h composite.h keyboard.h    $(config_h)
 doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h charset.h
 doprnt.o: doprnt.c charset.h $(config_h)
 dosfns.o: buffer.h termchar.h termhooks.h frame.h msdos.h dosfns.h $(config_h)
-editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h \
-   coding.h dispextern.h $(config_h)
-emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
-   termhooks.h buffer.h atimer.h systime.h $(INTERVAL_SRC) $(config_h)
-fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h \
-   coding.h ccl.h msdos.h dispextern.h $(config_h)
+editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h    coding.h dispextern.h $(config_h)
+emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h    termhooks.h buffer.h atimer.h systime.h $(INTERVAL_SRC) $(config_h)
+fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h    coding.h ccl.h msdos.h dispextern.h $(config_h)
 filelock.o: filelock.c buffer.h systime.h epaths.h $(config_h)
 filemode.o: filemode.c  $(config_h)
-frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
-   buffer.h charset.h fontset.h msdos.h dosfns.h dispextern.h $(config_h)
-fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h charset.h frame.h \
-   keyboard.h $(config_h)
+frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h    buffer.h charset.h fontset.h msdos.h dosfns.h dispextern.h $(config_h)
+fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h charset.h frame.h    keyboard.h $(config_h)
 getloadavg.o: getloadavg.c $(config_h)
-indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
-   termopts.h disptab.h region-cache.h charset.h composite.h dispextern.h \
-   keyboard.h
-insdel.o: insdel.c window.h buffer.h $(INTERVAL_SRC) blockinput.h charset.h\
-   dispextern.h atimer.h systime.h $(config_h)
-keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h charset.h \
-   commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
-   systty.h systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
-   atimer.h xterm.h puresize.h msdos.h $(config_h)
-keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
-   atimer.h systime.h puresize.h charset.h intervals.h $(config_h)
+indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h    termopts.h disptab.h region-cache.h charset.h composite.h dispextern.h    keyboard.h
+insdel.o: insdel.c window.h buffer.h $(INTERVAL_SRC) blockinput.h charset.h   dispextern.h atimer.h systime.h $(config_h)
+keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h charset.h    commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h    systty.h systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h    atimer.h xterm.h puresize.h msdos.h $(config_h)
+keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h    atimer.h systime.h puresize.h charset.h intervals.h $(config_h)
 lastfile.o: lastfile.c  $(config_h)
-macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
-	dispextern.h $(config_h)
+macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h 	dispextern.h $(config_h)
 malloc.o: malloc.c $(config_h)
 gmalloc.o: gmalloc.c $(config_h)
@@ -1071,29 +849,17 @@
 vm-limit.o: vm-limit.c mem-limits.h $(config_h)
 marker.o: marker.c buffer.h charset.h $(config_h)
-minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
-   buffer.h commands.h charset.h msdos.h $(config_h)
+minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h    buffer.h commands.h charset.h msdos.h $(config_h)
 mktime.o: mktime.c $(config_h)
 mocklisp.o: mocklisp.c buffer.h $(config_h)
-msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
-   termopts.h termchar.h charset.h coding.h ccl.h disptab.h window.h \
-   keyboard.h $(config_h)
-process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
-   commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
-   blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
-   keyboard.h $(config_h)
+msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h    termopts.h termchar.h charset.h coding.h ccl.h disptab.h window.h    keyboard.h $(config_h)
+process.o: process.c process.h buffer.h window.h termhooks.h termopts.h    commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h    blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h    keyboard.h $(config_h)
 regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h charset.h
 region-cache.o: region-cache.c buffer.h region-cache.h
-scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
-   $(config_h)
-search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
-   blockinput.h atimer.h systime.h category.h charset.h composite.h $(config_h)
+scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h    $(config_h)
+search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h    blockinput.h atimer.h systime.h category.h charset.h composite.h $(config_h)
 strftime.o: strftime.c $(config_h)
-syntax.o: syntax.c syntax.h buffer.h commands.h category.h charset.h \
-   composite.h $(config_h)
-sysdep.o: sysdep.c $(config_h) dispextern.h termhooks.h termchar.h termopts.h \
-   frame.h syssignal.h systty.h systime.h syswait.h blockinput.h atimer.h \
-   window.h msdos.h dosfns.h keyboard.h
-term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
-   disptab.h dispextern.h keyboard.h charset.h coding.h ccl.h msdos.h
+syntax.o: syntax.c syntax.h buffer.h commands.h category.h charset.h    composite.h $(config_h)
+sysdep.o: sysdep.c $(config_h) dispextern.h termhooks.h termchar.h termopts.h    frame.h syssignal.h systty.h systime.h syswait.h blockinput.h atimer.h    window.h msdos.h dosfns.h keyboard.h
+term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h    disptab.h dispextern.h keyboard.h charset.h coding.h ccl.h msdos.h
 termcap.o: termcap.c $(config_h)
 terminfo.o: terminfo.c $(config_h)
@@ -1104,28 +870,13 @@
 UNEXEC_ALIAS=UNEXEC
 $(UNEXEC_ALIAS): UNEXEC_SRC $(config_h)
-w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
-   msdos.h $(config_h)
-widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
-   $(srcdir)/../lwlib/lwlib.h $(config_h)
-window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
-   termhooks.h disptab.h keyboard.h dispextern.h msdos.h composite.h \
-   $(config_h)
-xdisp.o: xdisp.c macros.h commands.h indent.h buffer.h dispextern.h coding.h \
-   termchar.h frame.h window.h disptab.h termhooks.h charset.h $(config_h) \
-   msdos.h composite.h fontset.h
-xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
-   window.h charset.h msdos.h dosfns.h composite.h atimer.h systime.h $(config_h)
-xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
-   $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
-   charset.h $(config_h)
-xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h keyboard.h \
-   buffer.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h \
-   msdos.h $(config_h)
-xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
-  dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
-  keyboard.h gnu.h charset.h ccl.h fontset.h composite.h \
-  coding.h $(config_h)
-xselect.o: xselect.c dispextern.h frame.h xterm.h blockinput.h charset.h \
-  coding.h ccl.h buffer.h atimer.h systime.h $(config_h)
+w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h    msdos.h $(config_h)
+widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h    $(srcdir)/../lwlib/lwlib.h $(config_h)
+window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h    termhooks.h disptab.h keyboard.h dispextern.h msdos.h composite.h    $(config_h)
+xdisp.o: xdisp.c macros.h commands.h indent.h buffer.h dispextern.h coding.h    termchar.h frame.h window.h disptab.h termhooks.h charset.h $(config_h)    msdos.h composite.h fontset.h
+xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h    window.h charset.h msdos.h dosfns.h composite.h atimer.h systime.h $(config_h)
+xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h    $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h    charset.h $(config_h)
+xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h keyboard.h    buffer.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h    msdos.h $(config_h)
+xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h   dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h   keyboard.h gnu.h charset.h ccl.h fontset.h composite.h   coding.h $(config_h)
+xselect.o: xselect.c dispextern.h frame.h xterm.h blockinput.h charset.h   coding.h ccl.h buffer.h atimer.h systime.h $(config_h)
 xrdb.o: xrdb.c $(config_h) epaths.h
 hftctl.o: hftctl.c $(config_h)
@@ -1135,21 +886,15 @@
 /* The files of Lisp proper */
 
-alloc.o: alloc.c frame.h window.h buffer.h  puresize.h syssignal.h keyboard.h \
- blockinput.h atimer.h systime.h charset.h dispextern.h $(config_h) $(INTERVAL_SRC)
+alloc.o: alloc.c frame.h window.h buffer.h  puresize.h syssignal.h keyboard.h  blockinput.h atimer.h systime.h charset.h dispextern.h $(config_h) $(INTERVAL_SRC)
 bytecode.o: bytecode.c buffer.h syntax.h charset.h $(config_h)
 data.o: data.c buffer.h puresize.h charset.h syssignal.h keyboard.h $(config_h)
-eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
-  $(config_h)
+eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h   $(config_h)
 floatfns.o: floatfns.c $(config_h)
-fns.o: fns.c commands.h $(config_h) frame.h buffer.h charset.h keyboard.h \
- frame.h window.h dispextern.h $(INTERVAL_SRC)
-print.o: print.c process.h frame.h window.h buffer.h keyboard.h charset.h\
-   $(config_h) dispextern.h msdos.h composite.h
-lread.o: lread.c commands.h keyboard.h buffer.h epaths.h charset.h $(config_h) \
- termhooks.h msdos.h
+fns.o: fns.c commands.h $(config_h) frame.h buffer.h charset.h keyboard.h  frame.h window.h dispextern.h $(INTERVAL_SRC)
+print.o: print.c process.h frame.h window.h buffer.h keyboard.h charset.h   $(config_h) dispextern.h msdos.h composite.h
+lread.o: lread.c commands.h keyboard.h buffer.h epaths.h charset.h $(config_h)  termhooks.h msdos.h
 
 /* Text properties support */
-textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVAL_SRC) \
-	$(config_h)
+textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVAL_SRC) 	$(config_h)
 intervals.o: intervals.c buffer.h $(INTERVAL_SRC) keyboard.h puresize.h $(config_h)
 composite.o: composite.c buffer.h  charset.h $(INTERVAL_SRC) $(config_h)
@@ -1183,6 +928,5 @@
 /* The rule for the [sm] files has to be written a little funny to
    avoid looking like a C comment to CPP. */
-SOURCES = *.[ch] [sm]/?* COPYING Makefile.in \
-	config.in epaths.in README COPYING ChangeLog vms.pp-trans
+SOURCES = *.[ch] [sm]/?* COPYING Makefile.in 	config.in epaths.in README COPYING ChangeLog vms.pp-trans
 unlock:
 	chmod u+w $(SOURCES)
@@ -1199,7 +943,5 @@
 
 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
-	../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
-	  --regex='/[ 	]*DEFVAR_[A-Z_ 	(]+"\([^"]+\)"/' \
-	  $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
+	../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS 	  --regex='/[ 	]*DEFVAR_[A-Z_ 	(]+"\([^"]+\)"/' 	  $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
 frc:
 TAGS-LISP: frc
@@ -1227,7 +969,5 @@
 bootstrap-doc: ${libsrc}make-docfile
 	-rm -f ${etc}DOC
-	els=`echo ${shortlisp} ${SOME_MACHINE_LISP} \
-		| sed -e "s/\\.elc/.el/g"`; \
-	${libsrc}make-docfile -d ${srcdir} $$els ${obj} > ${etc}DOC
+	els=`echo ${shortlisp} ${SOME_MACHINE_LISP} 		| sed -e "s/\\.elc/.el/g"`; 	${libsrc}make-docfile -d ${srcdir} $$els ${obj} > ${etc}DOC
 
 /* Dump an Emacs executable named bootstrap-emacs containing the 
diff -u2r '--exclude=ORIG' dist-emacs-21.4/src/config.in work-emacs-21.4/src/config.in
--- dist-emacs-21.4/src/config.in	2002-07-08 15:23:31.000000000 -0700
+++ work-emacs-21.4/src/config.in	2022-06-26 09:38:44.160091925 -0700
@@ -334,5 +334,7 @@
    generally, because even if non-gcc compilers accept `inline', they
    may reject `extern inline'.  */
-#ifdef __GNUC__
+/* disable inline, doesn't link on alma 8 */
+#if 0
+/* #ifdef __GNUC__ */
 #define INLINE __inline__
 #else
diff -u2r '--exclude=ORIG' dist-emacs-21.4/src/s/gnu-linux.h work-emacs-21.4/src/s/gnu-linux.h
--- dist-emacs-21.4/src/s/gnu-linux.h	2001-09-28 08:50:04.000000000 -0700
+++ work-emacs-21.4/src/s/gnu-linux.h	2022-06-26 10:20:04.793798893 -0700
@@ -156,4 +156,7 @@
 #ifdef emacs
 #include <stdio.h>  /* Get the definition of _IO_STDIO_H.  */
+/* not defined in Alma Linux 8, though actual struct has these members. */
+#define _IO_STDIO_H
+#define _STDIO_USES_IOSTREAM
 #if defined(_IO_STDIO_H) || defined(_STDIO_USES_IOSTREAM)
 /* new C libio names */
@@ -251,5 +254,6 @@
    since libc-4.4.1.  So -lipc was deleted.  */
 #define LIBS_SYSTEM
-#define C_SWITCH_SYSTEM -D_BSD_SOURCE
+/*  -D_BSD_SOURCE removed for modern x86 */
+#define C_SWITCH_SYSTEM
 #endif
 
@@ -324,4 +328,8 @@
 #define NARROWPROTO 1
 
+/* without this define, no mmap, relocating allocator is uses,
+   crashes on alma. */
+#define USE_MMAP_FOR_BUFFERS 1
+/* #define GNU_MALLOC -- defined by configure */
 /* Use mmap directly for allocating larger buffers.  */
 #ifdef DOUG_LEA_MALLOC


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

* Re: Can't build previous versions of Emacs?
  2022-07-16 20:59             ` Karl Berry
@ 2022-07-17  0:49               ` Po Lu
  2022-07-17  5:35                 ` Eli Zaretskii
  0 siblings, 1 reply; 35+ messages in thread
From: Po Lu @ 2022-07-17  0:49 UTC (permalink / raw)
  To: Karl Berry; +Cc: raman, emacs-devel

Karl Berry <karl@freefriends.org> writes:

> FWIW, I was able to compile e21 on a current x86_64 machine running 
> Alma Linux 8 (I doubt the os matters much) with the attached.
> Copied in m/amdx86-64.h from 22.3 as a starting point. I didn't try to
> include X support, since I had no interest in it.

Nice.  I was able to build Emacs 19.34 on a modern Fedora system.  I
wrote some new machine files based on the existing Alpha support, but
just that unfortunately did not quite work, since it made assumptions
about the DEC Alpha calling convention.  So most of the work ended up
being writing prototypes for the many implicitly declared functions,
since returning int simply doesn't work (unlike on the Alpha.)

If anyone wants that code, feel free to ask.



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

* Re: Can't build previous versions of Emacs?
  2022-07-17  0:49               ` Po Lu
@ 2022-07-17  5:35                 ` Eli Zaretskii
  2022-07-17  8:04                   ` Gregory Heytings
       [not found]                   ` <DM6PR03MB3803454A10E226097F5A3877A68D9@DM6PR03MB3803.namprd03.prod.outlook.com>
  0 siblings, 2 replies; 35+ messages in thread
From: Eli Zaretskii @ 2022-07-17  5:35 UTC (permalink / raw)
  To: Po Lu; +Cc: karl, raman, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: raman@google.com,  emacs-devel@gnu.org
> Date: Sun, 17 Jul 2022 08:49:45 +0800
> 
> Karl Berry <karl@freefriends.org> writes:
> 
> > FWIW, I was able to compile e21 on a current x86_64 machine running 
> > Alma Linux 8 (I doubt the os matters much) with the attached.
> > Copied in m/amdx86-64.h from 22.3 as a starting point. I didn't try to
> > include X support, since I had no interest in it.
> 
> Nice.  I was able to build Emacs 19.34 on a modern Fedora system.  I
> wrote some new machine files based on the existing Alpha support, but
> just that unfortunately did not quite work, since it made assumptions
> about the DEC Alpha calling convention.  So most of the work ended up
> being writing prototypes for the many implicitly declared functions,
> since returning int simply doesn't work (unlike on the Alpha.)

My hats off to MS-Windows, whose libc stability and backward
compatibility allow me to run and debug _today_ all the original
binaries of Emacs from 21.4 all the way to 28.1, each binary as it was
built in its own time.  "Modern" systems have a lesson to learn there.



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

* Re: Can't build previous versions of Emacs?
  2022-07-17  5:35                 ` Eli Zaretskii
@ 2022-07-17  8:04                   ` Gregory Heytings
  2022-07-17  8:53                     ` Po Lu
       [not found]                   ` <DM6PR03MB3803454A10E226097F5A3877A68D9@DM6PR03MB3803.namprd03.prod.outlook.com>
  1 sibling, 1 reply; 35+ messages in thread
From: Gregory Heytings @ 2022-07-17  8:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Po Lu, karl, raman, emacs-devel


>
> My hats off to MS-Windows, whose libc stability and backward 
> compatibility allow me to run and debug _today_ all the original 
> binaries of Emacs from 21.4 all the way to 28.1, each binary as it was 
> built in its own time.  "Modern" systems have a lesson to learn there.
>

The same is true at least on GNU/Linux.



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

* Re: Can't build previous versions of Emacs?
  2022-07-17  8:04                   ` Gregory Heytings
@ 2022-07-17  8:53                     ` Po Lu
  2022-07-17  8:56                       ` Gregory Heytings
  0 siblings, 1 reply; 35+ messages in thread
From: Po Lu @ 2022-07-17  8:53 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Eli Zaretskii, karl, raman, emacs-devel

Gregory Heytings <gregory@heytings.org> writes:

> The same is true at least on GNU/Linux.

Not exactly, trying to run an old copy of 20.4 (built on Red Hat Linux
5.2) results in linker complaints that I'm missing libc.so.5.



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

* Re: Can't build previous versions of Emacs?
  2022-07-17  8:53                     ` Po Lu
@ 2022-07-17  8:56                       ` Gregory Heytings
  2022-07-17  9:27                         ` Po Lu
  0 siblings, 1 reply; 35+ messages in thread
From: Gregory Heytings @ 2022-07-17  8:56 UTC (permalink / raw)
  To: Po Lu; +Cc: Eli Zaretskii, karl, raman, emacs-devel


>> The same is true at least on GNU/Linux.
>
> Not exactly, trying to run an old copy of 20.4 (built on Red Hat Linux 
> 5.2) results in linker complaints that I'm missing libc.so.5.
>

You may have seen that the sentence above applies to "the original 
binaries of Emacs from 21.4 all the way to 28.1".



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

* Re: Can't build previous versions of Emacs?
  2022-07-17  8:56                       ` Gregory Heytings
@ 2022-07-17  9:27                         ` Po Lu
  0 siblings, 0 replies; 35+ messages in thread
From: Po Lu @ 2022-07-17  9:27 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Eli Zaretskii, karl, raman, emacs-devel

Gregory Heytings <gregory@heytings.org> writes:

>>> The same is true at least on GNU/Linux.
>>
>> Not exactly, trying to run an old copy of 20.4 (built on Red Hat
>> Linux 5.2) results in linker complaints that I'm missing libc.so.5.
>>
>
> You may have seen that the sentence above applies to "the original
> binaries of Emacs from 21.4 all the way to 28.1".

Okay, but I think that's because only those builds are still available
from the FTP site.



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

* Re: Can't build previous versions of Emacs?
       [not found]                     ` <83wncbq2ya.fsf@gnu.org>
@ 2022-07-17 15:44                       ` andrés ramírez
  0 siblings, 0 replies; 35+ messages in thread
From: andrés ramírez @ 2022-07-17 15:44 UTC (permalink / raw)
  To: Eli Zaretskii, emacs-devel

Hi. Eli.

>>>>> "Eli" == Eli Zaretskii <eliz@gnu.org> writes:

    >> From: andrés ramírez <rrandresf@hotmail.com> Date: Sun, 17 Jul 2022 12:47:45 +0000
    >> 
    >> Hi. Eli and guys.

    Eli> What guys?

You are totally right. I thought I was sending this email to the
list. So It would have meant that the guys were tv, larsi, po, stephen
and others. Thanks for the reminder. It is a shame.

    >> Question: which one was the first version released for DOS?, we are talking now of times
    >> around the nineties.

    Eli> 19.23, see NEWS.19.

Ok. I would check it.
(view-emacs-news '19)

Best Regards



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

end of thread, other threads:[~2022-07-17 15:44 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-14  3:23 Can't build previous versions of Emacs? Eric Abrahamsen
2022-07-14  3:33 ` Po Lu
2022-07-14 16:13   ` Eric Abrahamsen
2022-07-14 17:07     ` Ulrich Mueller
2022-07-14 17:24       ` Lars Ingebrigtsen
2022-07-14 18:21         ` Stefan Monnier
2022-07-14 18:23           ` Lars Ingebrigtsen
2022-07-14 18:38             ` Stefan Monnier
2022-07-14 18:41               ` Lars Ingebrigtsen
2022-07-14 19:33                 ` Andreas Schwab
2022-07-14 21:52                 ` Stefan Kangas
2022-07-15  9:47                   ` Lars Ingebrigtsen
2022-07-15 13:37                     ` Stefan Kangas
2022-07-16 10:31                       ` Lars Ingebrigtsen
2022-07-16 11:03                         ` Po Lu
2022-07-16 11:05                           ` Lars Ingebrigtsen
2022-07-16 11:17                           ` Ulrich Mueller
2022-07-16 12:49                             ` Po Lu
2022-07-16 13:01                               ` Lars Ingebrigtsen
2022-07-16 14:54                                 ` Ulrich Mueller
2022-07-16 16:10                                   ` Lars Ingebrigtsen
2022-07-14 23:30           ` T.V Raman
2022-07-15 14:03             ` andrés ramírez
2022-07-15 14:50               ` Stefan Kangas
2022-07-15 15:30                 ` Eli Zaretskii
2022-07-16 20:59             ` Karl Berry
2022-07-17  0:49               ` Po Lu
2022-07-17  5:35                 ` Eli Zaretskii
2022-07-17  8:04                   ` Gregory Heytings
2022-07-17  8:53                     ` Po Lu
2022-07-17  8:56                       ` Gregory Heytings
2022-07-17  9:27                         ` Po Lu
     [not found]                   ` <DM6PR03MB3803454A10E226097F5A3877A68D9@DM6PR03MB3803.namprd03.prod.outlook.com>
     [not found]                     ` <83wncbq2ya.fsf@gnu.org>
2022-07-17 15:44                       ` andrés ramírez
2022-07-14 19:02       ` Alan Mackenzie
2022-07-14 17:01   ` Lars Ingebrigtsen

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).