unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
@ 2007-01-09  1:44 Glenn Morris
  2007-01-09  9:58 ` Andreas Schwab
                   ` (2 more replies)
  0 siblings, 3 replies; 33+ messages in thread
From: Glenn Morris @ 2007-01-09  1:44 UTC (permalink / raw)



I suggest adding something like the following to etc/PROBLEMS and
etc/TODO. I not infrequently want to compile 32-bit apps on 64-bit
systems (so that they can be run on otherwise identical 64- and 32-bit
systems).



*** PROBLEMS    16 Dec 2006 14:00:15 -0000 1.202
--- PROBLEMS    9 Jan 2007 01:39:51 -0000
***************
*** 2355,2360 ****
--- 2355,2366 ----
  the problem, install the current version of GNU Sed, then rerun
  Emacs's configure script.
  
+ *** Building a 32-bit executable on a 64-bit GNU/Linux architecture fails.
+ 
+ For example, if CFLAGS=-m32 is passed to configure, the resulting
+ build will fail.  There is no fix for this problem at present - when
+ building on a 64-bit platform, you must build a 64-bit executable.
+ 
  *** Building the Cygwin port for MS-Windows can fail with some GCC
      version
  
  Building Emacs 22 with Cygwin builds of GCC 3.4.4-1 and 3.4.4-2 is


*** TODO   2 Jan 2007 18:29:37 -0000   1.137
--- TODO   9 Jan 2007 01:40:09 -0000
***************
*** 159,164 ****
--- 159,167 ----
  
  * Other features we would like:
  
+ ** Make it possible to build a 32-bit executable on 64-bit systems.
+   See http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-10/msg00462.html
+ 
  ** Remove the default toggling behavior of minor modes when called from elisp
  rather than interactively.  This a trivial one-liner in easy-mode.el.
  ** Create a category of errors called `user-error' for errors which are

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-09  1:44 add etc/PROBLEMS entry for building 32-bit exe on 64-bit system Glenn Morris
@ 2007-01-09  9:58 ` Andreas Schwab
  2007-01-09 21:08   ` Richard Stallman
  2007-01-09 17:57 ` Richard Stallman
  2007-01-15  6:21 ` Giorgos Keramidas
  2 siblings, 1 reply; 33+ messages in thread
From: Andreas Schwab @ 2007-01-09  9:58 UTC (permalink / raw)
  Cc: emacs-devel

Glenn Morris <rgm@gnu.org> writes:

> I suggest adding something like the following to etc/PROBLEMS and
> etc/TODO. I not infrequently want to compile 32-bit apps on 64-bit
> systems (so that they can be run on otherwise identical 64- and 32-bit
> systems).

The right thing to do is to pass --build=i386-linux-gnu when configuring.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-09  1:44 add etc/PROBLEMS entry for building 32-bit exe on 64-bit system Glenn Morris
  2007-01-09  9:58 ` Andreas Schwab
@ 2007-01-09 17:57 ` Richard Stallman
  2007-01-15  6:21 ` Giorgos Keramidas
  2 siblings, 0 replies; 33+ messages in thread
From: Richard Stallman @ 2007-01-09 17:57 UTC (permalink / raw)
  Cc: emacs-devel

Please install your change in etc/PROBLEMS.  However, I think this
feature is not crucial, so please don't add the item to etc/TODO.  If
someone implements it, we would install it assuming the code is clean,
but it isn't a priority.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-09  9:58 ` Andreas Schwab
@ 2007-01-09 21:08   ` Richard Stallman
  2007-01-09 22:30     ` Andreas Schwab
  0 siblings, 1 reply; 33+ messages in thread
From: Richard Stallman @ 2007-01-09 21:08 UTC (permalink / raw)
  Cc: rgm, emacs-devel

    The right thing to do is to pass --build=i386-linux-gnu when configuring.

If you do that, does it work correctly?

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-09 21:08   ` Richard Stallman
@ 2007-01-09 22:30     ` Andreas Schwab
  2007-01-10  0:25       ` Glenn Morris
  0 siblings, 1 reply; 33+ messages in thread
From: Andreas Schwab @ 2007-01-09 22:30 UTC (permalink / raw)
  Cc: rgm, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     The right thing to do is to pass --build=i386-linux-gnu when configuring.
>
> If you do that, does it work correctly?

I can't test myself, but it certainly works for ppc vs ppc64.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-09 22:30     ` Andreas Schwab
@ 2007-01-10  0:25       ` Glenn Morris
  2007-01-10  4:14         ` Glenn Morris
                           ` (2 more replies)
  0 siblings, 3 replies; 33+ messages in thread
From: Glenn Morris @ 2007-01-10  0:25 UTC (permalink / raw)
  Cc: rms, emacs-devel

Andreas Schwab wrote:

> Richard Stallman <rms@gnu.org> writes:
>
>>     The right thing to do is to pass --build=i386-linux-gnu when configuring.
>>
>> If you do that, does it work correctly?
>
> I can't test myself, but it certainly works for ppc vs ppc64.


I wasn't aware of this method, so thanks for telling me about it.

By itself, it does not work for me. The build process just goes on to
call "gcc" as normal, which compiles x86_64 objects rather than i386
ones.

I found I had to do:

i) export CFLAGS=-m32; export LDFLAGS=-m32
    (to get i386 objects)

ii) Add "--build=i386-linux-gnu --x-libraries=/usr/X11R6/lib --without-sound"

to configure's arguments. This is on RHEL4 x86_64. The --x option is
needed to stop the build trying to use the 64-bit libraries from
/usr/X11R6/lib64. The --sound option is I think needed just to work
around a RHEL bug (there seems to be no x86_64 package that provides a
32-bit libasound).


I imagine it's reasonable to expect configure to just Do The Right
Thing for all of these but the sound issue, without so much user
intervention? Actually, I guess it should auto-detect no compatible
sound libraries as well...

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10  0:25       ` Glenn Morris
@ 2007-01-10  4:14         ` Glenn Morris
  2007-01-10 15:28           ` Stefan Monnier
                             ` (3 more replies)
  2007-01-10  9:41         ` Andreas Schwab
  2007-01-10 18:46         ` Richard Stallman
  2 siblings, 4 replies; 33+ messages in thread
From: Glenn Morris @ 2007-01-10  4:14 UTC (permalink / raw)
  Cc: Andreas Schwab, rms



Actually, I don't know any more if I'm asking for a reasonable thing.
Should I expect to be able to _compile_ 32-bit apps on an x86_64
system, or just _run_ them? The fact that almost none of the OS
"devel" packages exist in 32-bit form suggests the latter.


Glenn Morris wrote:

> I imagine it's reasonable to expect configure to just Do The Right
> Thing

With some playing around, I find the following change enables me to
just use configure --build=i386-linux-gnu to get the desired result. I
don't know how correct/desirable it is though.


Index: configure.in
===================================================================
RCS file: /sources/emacs/emacs/configure.in,v
retrieving revision 1.428
diff -c -c -w -r1.428 configure.in
*** configure.in	3 Jan 2007 23:47:04 -0000	1.428
--- configure.in	10 Jan 2007 04:09:31 -0000
***************
*** 1486,1491 ****
--- 1486,1523 ----
    CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
  fi
  
+ ## Build a 32-bit version on x86_64 GNU/Linux?
+ case "${canonical}" in
+   i386-*linux-gnu* )
+     case `$SHELL "$ac_aux_dir/config.guess"` in
+       x86_64-*-linux-gnu* )
+ 
+         x86_64_build_m32=yes
+ 
+         save_CFLAGS="$CFLAGS"
+         CFLAGS="-m32 $CFLAGS"
+         AC_MSG_CHECKING([whether compiler understands -m32])
+         AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
+         AC_MSG_RESULT($has_option)
+         if test $has_option = yes; then
+           REAL_CFLAGS="-m32 $REAL_CFLAGS"
+         fi
+         CFLAGS="$save_CFLAGS"
+         unset has_option
+         unset save_CFLAGS
+ 
+         save_LDFLAGS="$LDFLAGS"
+         LDFLAGS="-m32 $LDFLAGS"
+         AC_MSG_CHECKING([whether linker understands -m32])
+         AC_LINK_IFELSE([main(){return 0;}],
+           [AC_MSG_RESULT(yes)],
+           LDFLAGS="$save_LDFLAGS"
+           [AC_MSG_RESULT(no)])
+         unset save_LDFLAGS ;;
+ 
+     esac ;;
+ esac
+ 
  dnl For AC_FUNC_GETLOADAVG, at least:
  AC_CONFIG_LIBOBJ_DIR(src)
  
***************
*** 1765,1770 ****
--- 1797,1805 ----
  
  if test "${x_libraries}" != NONE; then
    if test -n "${x_libraries}"; then
+     if test -n "${x86_64_build_m32}"; then
+       x_libraries=`echo ${x_libraries} | sed -e "s:/lib64:/lib:g"`
+     fi
      LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
      LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
    fi

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10  0:25       ` Glenn Morris
  2007-01-10  4:14         ` Glenn Morris
@ 2007-01-10  9:41         ` Andreas Schwab
  2007-01-10 19:31           ` Glenn Morris
  2007-01-10 18:46         ` Richard Stallman
  2 siblings, 1 reply; 33+ messages in thread
From: Andreas Schwab @ 2007-01-10  9:41 UTC (permalink / raw)
  Cc: rms, emacs-devel

Glenn Morris <rgm@gnu.org> writes:

> I found I had to do:
>
> i) export CFLAGS=-m32; export LDFLAGS=-m32
>     (to get i386 objects)

You should set CC="gcc -m32" instead.  You are in essence using a
different compiler.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10  4:14         ` Glenn Morris
@ 2007-01-10 15:28           ` Stefan Monnier
  2007-01-10 20:17             ` Glenn Morris
  2007-01-10 20:36             ` Eli Zaretskii
  2007-01-10 23:05           ` Richard Stallman
                             ` (2 subsequent siblings)
  3 siblings, 2 replies; 33+ messages in thread
From: Stefan Monnier @ 2007-01-10 15:28 UTC (permalink / raw)
  Cc: Andreas Schwab, rms, emacs-devel

> Actually, I don't know any more if I'm asking for a reasonable thing.
> Should I expect to be able to _compile_ 32-bit apps on an x86_64
> system, or just _run_ them? The fact that almost none of the OS
> "devel" packages exist in 32-bit form suggests the latter.

I for one have compiled Emacs in 32bit-mode on an amd64 machine in two
difference circumstances:

- once on my home machine which is a Debian GNU/Linux x86 system (no amd64
  lib or compiler installed) with an amd64 kernel (mostly to get access to
  more than 3GB of ram, although a bigmem kernel would have done the trick
  as well).

- once on my work machine, which is running a version of Fedora for amd64
  and where some of the 32bit libs are indeed missing.  There's still plenty
  of libs to build Emacs.  The main reason there was to test the 32bit
  build, as well as to get a build which uses less memory.


        Stefan

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10  0:25       ` Glenn Morris
  2007-01-10  4:14         ` Glenn Morris
  2007-01-10  9:41         ` Andreas Schwab
@ 2007-01-10 18:46         ` Richard Stallman
  2007-01-13  2:26           ` Glenn Morris
  2 siblings, 1 reply; 33+ messages in thread
From: Richard Stallman @ 2007-01-10 18:46 UTC (permalink / raw)
  Cc: schwab, emacs-devel

    I found I had to do:

    i) export CFLAGS=-m32; export LDFLAGS=-m32
	(to get i386 objects)

    ii) Add "--build=i386-linux-gnu --x-libraries=/usr/X11R6/lib --without-sound"

Could you please mention this in etc/MACHINES and etc/PROBLEMS?

    I imagine it's reasonable to expect configure to just Do The Right
    Thing for all of these but the sound issue, without so much user
    intervention? Actually, I guess it should auto-detect no compatible
    sound libraries as well...

Yes, it should.  However, we don't need to fix that now
if it is not straightforward.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10  9:41         ` Andreas Schwab
@ 2007-01-10 19:31           ` Glenn Morris
  2007-01-10 20:00             ` Andreas Schwab
                               ` (2 more replies)
  0 siblings, 3 replies; 33+ messages in thread
From: Glenn Morris @ 2007-01-10 19:31 UTC (permalink / raw)
  Cc: rms, emacs-devel

Andreas Schwab wrote:

> You should set CC="gcc -m32" instead.  You are in essence using a
> different compiler.

Well, OK, but that seems fairly counterintuitive to me. I'd expect
that to look for an executable called "gcc -m32".

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 19:31           ` Glenn Morris
@ 2007-01-10 20:00             ` Andreas Schwab
  2007-01-10 20:14               ` Glenn Morris
  2007-01-10 20:16             ` Stuart D. Herring
  2007-01-10 20:42             ` Eli Zaretskii
  2 siblings, 1 reply; 33+ messages in thread
From: Andreas Schwab @ 2007-01-10 20:00 UTC (permalink / raw)
  Cc: rms, emacs-devel

Glenn Morris <rgm@gnu.org> writes:

> Andreas Schwab wrote:
>
>> You should set CC="gcc -m32" instead.  You are in essence using a
>> different compiler.
>
> Well, OK, but that seems fairly counterintuitive to me. I'd expect
> that to look for an executable called "gcc -m32".

CC is not handled differently from CFLAGS, both in the shell and in the
makefile.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 20:00             ` Andreas Schwab
@ 2007-01-10 20:14               ` Glenn Morris
  2007-01-10 20:23                 ` Andreas Schwab
  0 siblings, 1 reply; 33+ messages in thread
From: Glenn Morris @ 2007-01-10 20:14 UTC (permalink / raw)
  Cc: rms, emacs-devel

Andreas Schwab wrote:

> CC is not handled differently from CFLAGS, both in the shell and in the
> makefile.

I'm not entirely sure what that statement means, other than it will in
fact work and not look for "gcc -m32". Which I did not doubt (I see in
the make info pages that 'The "name of a program" may also contain
some command arguments'), I just personally find it an odd way of
doing things. I guess it has the advantage of not needing to set
LDFLAGS as well.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 19:31           ` Glenn Morris
  2007-01-10 20:00             ` Andreas Schwab
@ 2007-01-10 20:16             ` Stuart D. Herring
  2007-01-10 20:42             ` Eli Zaretskii
  2 siblings, 0 replies; 33+ messages in thread
From: Stuart D. Herring @ 2007-01-10 20:16 UTC (permalink / raw)
  Cc: Andreas Schwab, rms, emacs-devel

> Andreas Schwab wrote:
>
>> You should set CC="gcc -m32" instead.  You are in essence using a
>> different compiler.
>
> Well, OK, but that seems fairly counterintuitive to me. I'd expect
> that to look for an executable called "gcc -m32".

That would be CC="\"gcc -m32\"" instead; the plain " characters in this
case are for (and are removed by) the shell invoking make, not make or the
shells it invokes.

Davis

-- 
This product is sold by volume, not by mass.  If it appears too dense or
too sparse, it is because mass-energy conversion has occurred during
shipping.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 15:28           ` Stefan Monnier
@ 2007-01-10 20:17             ` Glenn Morris
  2007-01-10 20:36             ` Eli Zaretskii
  1 sibling, 0 replies; 33+ messages in thread
From: Glenn Morris @ 2007-01-10 20:17 UTC (permalink / raw)
  Cc: Andreas Schwab, rms, emacs-devel

Stefan Monnier wrote:

> - once on my work machine, which is running a version of Fedora for
> amd64 and where some of the 32bit libs are indeed missing. There's
> still plenty of libs to build Emacs.

[my reply is off-topic for Emacs, I think]

In RHEL 4, there is no package that provides 32-bit devel files for:
libasound, libjpeg, libtiff, libungif, libpng, etc. So you can build
a 32-bit Emacs, but it is missing a lot of optional support.

The non-devel packages provide libfoo.so.VERSION in 32- and 64-bit
forms, but the symlink libfoo.so (sans version) gets relegated to the
devel package, which only exists in x86_64 form, most of the time. Of
course, one can trivially add the necessary 32-bit symlink, but it
certainly gave me the impression one is only supposed to be able to
_run_ 32-bit apps, not _compile_ them. Having said that, I've been
told more 32-bit devel packages will feature in RHEL5.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 20:14               ` Glenn Morris
@ 2007-01-10 20:23                 ` Andreas Schwab
  0 siblings, 0 replies; 33+ messages in thread
From: Andreas Schwab @ 2007-01-10 20:23 UTC (permalink / raw)
  Cc: rms, emacs-devel

Glenn Morris <rgm@gnu.org> writes:

> I just personally find it an odd way of doing things.

You are using a different compiler in essence, so it should be identified
by $CC.

> I guess it has the advantage of not needing to set LDFLAGS as well.

Yes, that's the main point.  It will make sure the right compiler is used
independent of the use of $CFLAGS or $LDFLAGS.  For example, you don't
have to think about -m32 if you want to override CFLAGS temporally.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 15:28           ` Stefan Monnier
  2007-01-10 20:17             ` Glenn Morris
@ 2007-01-10 20:36             ` Eli Zaretskii
  2007-01-10 23:28               ` Stefan Monnier
  1 sibling, 1 reply; 33+ messages in thread
From: Eli Zaretskii @ 2007-01-10 20:36 UTC (permalink / raw)
  Cc: rgm, emacs-devel, rms, schwab

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Wed, 10 Jan 2007 10:28:30 -0500
> Cc: Andreas Schwab <schwab@suse.de>, rms@gnu.org, emacs-devel@gnu.org
> 
> I for one have compiled Emacs in 32bit-mode on an amd64 machine in two
> difference circumstances:

How about sharing the experience: how did you configure and build to
get a 32bit binaries?

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 19:31           ` Glenn Morris
  2007-01-10 20:00             ` Andreas Schwab
  2007-01-10 20:16             ` Stuart D. Herring
@ 2007-01-10 20:42             ` Eli Zaretskii
  2 siblings, 0 replies; 33+ messages in thread
From: Eli Zaretskii @ 2007-01-10 20:42 UTC (permalink / raw)
  Cc: schwab, rms, emacs-devel

> From: Glenn Morris <rgm@gnu.org>
> Date: Wed, 10 Jan 2007 14:31:44 -0500
> Cc: rms@gnu.org, emacs-devel@gnu.org
> 
> Andreas Schwab wrote:
> 
> > You should set CC="gcc -m32" instead.  You are in essence using a
> > different compiler.
> 
> Well, OK, but that seems fairly counterintuitive to me. I'd expect
> that to look for an executable called "gcc -m32".

CC specifies a shell command, not a file name of the compiler's
executable.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10  4:14         ` Glenn Morris
  2007-01-10 15:28           ` Stefan Monnier
@ 2007-01-10 23:05           ` Richard Stallman
  2007-01-11  1:52             ` Glenn Morris
  2007-01-14 23:23           ` Richard Stallman
  2007-01-15  6:23           ` Giorgos Keramidas
  3 siblings, 1 reply; 33+ messages in thread
From: Richard Stallman @ 2007-01-10 23:05 UTC (permalink / raw)
  Cc: schwab, emacs-devel

The change as you wrote it looks rather ad-hoc.  I have a suspicion
that a person who is more familiar with the design of Emacs
configure.in might find a much cleaner fix.  But I am not familiar
enough with it to do any better myself.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 20:36             ` Eli Zaretskii
@ 2007-01-10 23:28               ` Stefan Monnier
  2007-01-16  1:22                 ` Glenn Morris
  0 siblings, 1 reply; 33+ messages in thread
From: Stefan Monnier @ 2007-01-10 23:28 UTC (permalink / raw)
  Cc: rgm, emacs-devel, rms, schwab

>> I for one have compiled Emacs in 32bit-mode on an amd64 machine in two
>> difference circumstances:

> How about sharing the experience: how did you configure and build to
> get a 32bit binaries?

On my work machine it was a while back and I can't remember doing much: it
seemed to just work.  But I probably had to muck around with something,
I just can't remember it, probably because it was fairly obvious.

On my home machine I reported my problems here at the time and basically
fixed them for this one time by adding 

   #ifndef _LP64
   /* It's actually running in x86 compatibility mode. */
   #include "m/intel386.h"
   #else

to src/m/amdx86-64.h and a few other quick&dirt hacks.
Luckily my system is pure 32bit (other than the kernel) so I didn't have to
deal with issues such as /usr/lib64/crtn.o.


        Stefan


PS: IMHO we shouldn't need to specify --build=i386-linux-gnu.  Instead,
passing CC="gcc -m32" should be sufficient.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 23:05           ` Richard Stallman
@ 2007-01-11  1:52             ` Glenn Morris
  0 siblings, 0 replies; 33+ messages in thread
From: Glenn Morris @ 2007-01-11  1:52 UTC (permalink / raw)
  Cc: schwab, emacs-devel

Richard Stallman wrote:

> The change as you wrote it looks rather ad-hoc.  I have a suspicion
> that a person who is more familiar with the design of Emacs
> configure.in might find a much cleaner fix.

I think you are absolutely right (indeed, almost charitable in your
circumlocution!). :)

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 18:46         ` Richard Stallman
@ 2007-01-13  2:26           ` Glenn Morris
  0 siblings, 0 replies; 33+ messages in thread
From: Glenn Morris @ 2007-01-13  2:26 UTC (permalink / raw)
  Cc: schwab, emacs-devel

Richard Stallman wrote:

> Could you please mention this in etc/MACHINES and etc/PROBLEMS?

I did so. It can be removed if someone wants to install a proper fix
for configure.in.

A lot of the stuff in etc/MACHINES seems to be only of historical
interest now, BTW.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10  4:14         ` Glenn Morris
  2007-01-10 15:28           ` Stefan Monnier
  2007-01-10 23:05           ` Richard Stallman
@ 2007-01-14 23:23           ` Richard Stallman
  2007-01-15  6:23           ` Giorgos Keramidas
  3 siblings, 0 replies; 33+ messages in thread
From: Richard Stallman @ 2007-01-14 23:23 UTC (permalink / raw)
  Cc: schwab, emacs-devel

Does anyone have the expertise to look for a cleaner version of this
change?


From: Glenn Morris <rgm@gnu.org>
To: emacs-devel@gnu.org
Cc: rms@gnu.org,  Andreas Schwab <schwab@suse.de>
Subject: Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
Date: Tue, 09 Jan 2007 23:14:02 -0500
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii



Actually, I don't know any more if I'm asking for a reasonable thing.
Should I expect to be able to _compile_ 32-bit apps on an x86_64
system, or just _run_ them? The fact that almost none of the OS
"devel" packages exist in 32-bit form suggests the latter.


Glenn Morris wrote:

> I imagine it's reasonable to expect configure to just Do The Right
> Thing

With some playing around, I find the following change enables me to
just use configure --build=i386-linux-gnu to get the desired result. I
don't know how correct/desirable it is though.


Index: configure.in
===================================================================
RCS file: /sources/emacs/emacs/configure.in,v
retrieving revision 1.428
diff -c -c -w -r1.428 configure.in
*** configure.in	3 Jan 2007 23:47:04 -0000	1.428
--- configure.in	10 Jan 2007 04:09:31 -0000
***************
*** 1486,1491 ****
--- 1486,1523 ----
    CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
  fi
  
+ ## Build a 32-bit version on x86_64 GNU/Linux?
+ case "${canonical}" in
+   i386-*linux-gnu* )
+     case `$SHELL "$ac_aux_dir/config.guess"` in
+       x86_64-*-linux-gnu* )
+ 
+         x86_64_build_m32=yes
+ 
+         save_CFLAGS="$CFLAGS"
+         CFLAGS="-m32 $CFLAGS"
+         AC_MSG_CHECKING([whether compiler understands -m32])
+         AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
+         AC_MSG_RESULT($has_option)
+         if test $has_option = yes; then
+           REAL_CFLAGS="-m32 $REAL_CFLAGS"
+         fi
+         CFLAGS="$save_CFLAGS"
+         unset has_option
+         unset save_CFLAGS
+ 
+         save_LDFLAGS="$LDFLAGS"
+         LDFLAGS="-m32 $LDFLAGS"
+         AC_MSG_CHECKING([whether linker understands -m32])
+         AC_LINK_IFELSE([main(){return 0;}],
+           [AC_MSG_RESULT(yes)],
+           LDFLAGS="$save_LDFLAGS"
+           [AC_MSG_RESULT(no)])
+         unset save_LDFLAGS ;;
+ 
+     esac ;;
+ esac
+ 
  dnl For AC_FUNC_GETLOADAVG, at least:
  AC_CONFIG_LIBOBJ_DIR(src)
  
***************
*** 1765,1770 ****
--- 1797,1805 ----
  
  if test "${x_libraries}" != NONE; then
    if test -n "${x_libraries}"; then
+     if test -n "${x86_64_build_m32}"; then
+       x_libraries=`echo ${x_libraries} | sed -e "s:/lib64:/lib:g"`
+     fi
      LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
      LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
    fi

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-09  1:44 add etc/PROBLEMS entry for building 32-bit exe on 64-bit system Glenn Morris
  2007-01-09  9:58 ` Andreas Schwab
  2007-01-09 17:57 ` Richard Stallman
@ 2007-01-15  6:21 ` Giorgos Keramidas
  2007-01-15  9:54   ` Andreas Schwab
                     ` (2 more replies)
  2 siblings, 3 replies; 33+ messages in thread
From: Giorgos Keramidas @ 2007-01-15  6:21 UTC (permalink / raw)
  Cc: emacs-devel

On 2007-01-08 20:44, Glenn Morris <rgm@gnu.org> wrote:
> I suggest adding something like the following to etc/PROBLEMS and
> etc/TODO. I not infrequently want to compile 32-bit apps on 64-bit
> systems (so that they can be run on otherwise identical 64- and 32-bit
> systems).

I don't really think the text below is correct.

I have been building 32-bit versions of Emacs 22 on Solaris amd64
systems for several months now, and the build works fine.  This means
that, at least the following part of the text below is false:

    "when building on a 64-bit platform, you must build a 64-bit
    executable"

Depending on the set of runtime libraries, and the support of the build
system for compiling and installing 32-bit vs. 64-bit binaries, the
above statement may or may not be true.

> *** PROBLEMS    16 Dec 2006 14:00:15 -0000 1.202
> --- PROBLEMS    9 Jan 2007 01:39:51 -0000
> ***************
> *** 2355,2360 ****
> --- 2355,2366 ----
>   the problem, install the current version of GNU Sed, then rerun
>   Emacs's configure script.
>   
> + *** Building a 32-bit executable on a 64-bit GNU/Linux architecture fails.
> + 
> + For example, if CFLAGS=-m32 is passed to configure, the resulting
> + build will fail.  There is no fix for this problem at present - when
> + building on a 64-bit platform, you must build a 64-bit executable.
> + 
>   *** Building the Cygwin port for MS-Windows can fail with some GCC
>       version
>   
>   Building Emacs 22 with Cygwin builds of GCC 3.4.4-1 and 3.4.4-2 is
> 
> 
> *** TODO   2 Jan 2007 18:29:37 -0000   1.137
> --- TODO   9 Jan 2007 01:40:09 -0000
> ***************
> *** 159,164 ****
> --- 159,167 ----
>   
>   * Other features we would like:
>   
> + ** Make it possible to build a 32-bit executable on 64-bit systems.
> +   See http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-10/msg00462.html
> + 
>   ** Remove the default toggling behavior of minor modes when called from elisp
>   rather than interactively.  This a trivial one-liner in easy-mode.el.
>   ** Create a category of errors called `user-error' for errors which are

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10  4:14         ` Glenn Morris
                             ` (2 preceding siblings ...)
  2007-01-14 23:23           ` Richard Stallman
@ 2007-01-15  6:23           ` Giorgos Keramidas
  3 siblings, 0 replies; 33+ messages in thread
From: Giorgos Keramidas @ 2007-01-15  6:23 UTC (permalink / raw)
  Cc: Andreas Schwab, rms, emacs-devel

On 2007-01-09 23:14, Glenn Morris <rgm@gnu.org> wrote:
> Actually, I don't know any more if I'm asking for a reasonable thing.
> Should I expect to be able to _compile_ 32-bit apps on an x86_64
> system, or just _run_ them? The fact that almost none of the OS
> "devel" packages exist in 32-bit form suggests the latter.

This depends on the availability of 32-bit versions of the runtime
libraries.  On some systems, both versions of the libraries are
installed, or are available for installation.  On others, only the
'native' binary format is supported.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-15  6:21 ` Giorgos Keramidas
@ 2007-01-15  9:54   ` Andreas Schwab
  2007-01-15 20:27   ` Glenn Morris
  2007-01-15 23:28   ` Richard Stallman
  2 siblings, 0 replies; 33+ messages in thread
From: Andreas Schwab @ 2007-01-15  9:54 UTC (permalink / raw)
  Cc: Glenn Morris, emacs-devel

Giorgos Keramidas <keramida@ceid.upatras.gr> writes:

> On 2007-01-08 20:44, Glenn Morris <rgm@gnu.org> wrote:
>> I suggest adding something like the following to etc/PROBLEMS and
>> etc/TODO. I not infrequently want to compile 32-bit apps on 64-bit
>> systems (so that they can be run on otherwise identical 64- and 32-bit
>> systems).
>
> I don't really think the text below is correct.
>
> I have been building 32-bit versions of Emacs 22 on Solaris amd64
> systems for several months now, and the build works fine.  This means
> that, at least the following part of the text below is false:
>
>     "when building on a 64-bit platform, you must build a 64-bit
>     executable"

Same for PowerPC64 systems, where the runtime environment is 32-bit by
default.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-15  6:21 ` Giorgos Keramidas
  2007-01-15  9:54   ` Andreas Schwab
@ 2007-01-15 20:27   ` Glenn Morris
  2007-01-15 23:28   ` Richard Stallman
  2 siblings, 0 replies; 33+ messages in thread
From: Glenn Morris @ 2007-01-15 20:27 UTC (permalink / raw)
  Cc: emacs-devel

Giorgos Keramidas wrote:

> I don't really think the text below is correct.

Which is why it was never installed, following the subsequent
discussion in this thread.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-15  6:21 ` Giorgos Keramidas
  2007-01-15  9:54   ` Andreas Schwab
  2007-01-15 20:27   ` Glenn Morris
@ 2007-01-15 23:28   ` Richard Stallman
  2007-01-15 23:33     ` Giorgos Keramidas
  2 siblings, 1 reply; 33+ messages in thread
From: Richard Stallman @ 2007-01-15 23:28 UTC (permalink / raw)
  Cc: rgm, emacs-devel

    I don't really think the text below is correct.

    I have been building 32-bit versions of Emacs 22 on Solaris amd64
    systems for several months now, and the build works fine.  This means
    that, at least the following part of the text below is false:

Can you write text that is more correct?

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-15 23:28   ` Richard Stallman
@ 2007-01-15 23:33     ` Giorgos Keramidas
  2007-01-19 15:36       ` Giorgos Keramidas
  0 siblings, 1 reply; 33+ messages in thread
From: Giorgos Keramidas @ 2007-01-15 23:33 UTC (permalink / raw)
  Cc: rgm, emacs-devel

On 2007-01-15 18:28, Richard Stallman <rms@gnu.org> wrote:
>     I don't really think the text below is correct.
> 
>     I have been building 32-bit versions of Emacs 22 on Solaris amd64
>     systems for several months now, and the build works fine.  This means
>     that, at least the following part of the text below is false:
> 
> Can you write text that is more correct?

Yes.

Please note that I haven't been able to build a 64-only version of Emacs
on Solaris amd64; Emacs 22.X crashes during the autoload stage of the
bootstrap process, when I try to build a 64-bit binary on Solaris.

Nevertheless, I can definitely help with writing the text for 32-bit
builds for Solaris and FreeBSD.  For other systems, I may need some help
from people who are more experienced in their use, and have more current
installations than me.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-10 23:28               ` Stefan Monnier
@ 2007-01-16  1:22                 ` Glenn Morris
  2007-01-16  9:58                   ` Andreas Schwab
  2007-01-16 14:40                   ` Stefan Monnier
  0 siblings, 2 replies; 33+ messages in thread
From: Glenn Morris @ 2007-01-16  1:22 UTC (permalink / raw)
  Cc: schwab, Eli Zaretskii, rms, emacs-devel

Stefan Monnier wrote:

> PS: IMHO we shouldn't need to specify --build=i386-linux-gnu.  Instead,
> passing CC="gcc -m32" should be sufficient.

This may be a superfluous comment (depending on the meaning of
"should"), but in practice it is not sufficient (RHEL4 x86_64 with all
available relevant 32-bit libs installed):

Using CC="gcc -m32":

1) Configure wrongly picks /usr/X11R6/lib64 for the X windows
   libraries. Manually fix this by passing --x-libraries=/usr/X11R6/lib.

2) Configure wrongly decides sound is available, when it is not
  (there is no standard package for this OS that provides 32-bit
  "libasound.so"). Bootstrap fails trying to create temacs due to the
  lack of compatible libasound.so. Fix this by manually passing
  --without-sound.

3) Configure sets HAVE_X86_64_LIB64_DIR to 1, so linking temacs fails
   because it tries to use /usr/lib64/crt1.o etc rather than
   /usr/lib/crt1.o etc. After correcting this...

4) temacs segfaults after loading subr during dumping.

There are also hundreds of "warning: left shift count >= width of
type" on compilation.


Just using --build=i386-linux-gnu is also not sufficient. The build
just calls "gcc" as usual, which compiles 64-bit objects.


Only the combination of the two methods works for me (still subject to
1 and 2, not 3 or 4). No compilation warnings either.


Quite possibly the fix is trivial for someone who knows what they are
doing. I have nothing else to say as to what the "right" approach is
or how to do it; I can only offer to test any solutions.

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-16  1:22                 ` Glenn Morris
@ 2007-01-16  9:58                   ` Andreas Schwab
  2007-01-16 14:40                   ` Stefan Monnier
  1 sibling, 0 replies; 33+ messages in thread
From: Andreas Schwab @ 2007-01-16  9:58 UTC (permalink / raw)
  Cc: Eli Zaretskii, emacs-devel, Stefan Monnier, rms

Glenn Morris <rgm@gnu.org> writes:

> Only the combination of the two methods works for me (still subject to
> 1 and 2, not 3 or 4). No compilation warnings either.

And this is exactly the supported way.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-16  1:22                 ` Glenn Morris
  2007-01-16  9:58                   ` Andreas Schwab
@ 2007-01-16 14:40                   ` Stefan Monnier
  1 sibling, 0 replies; 33+ messages in thread
From: Stefan Monnier @ 2007-01-16 14:40 UTC (permalink / raw)
  Cc: schwab, Eli Zaretskii, rms, emacs-devel

>> PS: IMHO we shouldn't need to specify --build=i386-linux-gnu.  Instead,
>> passing CC="gcc -m32" should be sufficient.

> This may be a superfluous comment (depending on the meaning of
> "should"),

Yes, it is superfluous ;-)
I didn't mean that it works, but that we should make it work.


        Stefan

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

* Re: add etc/PROBLEMS entry for building 32-bit exe on 64-bit system
  2007-01-15 23:33     ` Giorgos Keramidas
@ 2007-01-19 15:36       ` Giorgos Keramidas
  0 siblings, 0 replies; 33+ messages in thread
From: Giorgos Keramidas @ 2007-01-19 15:36 UTC (permalink / raw)
  Cc: rgm, emacs-devel

On 2007-01-16 01:33, Giorgos Keramidas <keramida@ceid.upatras.gr> wrote:
> On 2007-01-15 18:28, Richard Stallman <rms@gnu.org> wrote:
> >     I don't really think the text below is correct.
> > 
> >     I have been building 32-bit versions of Emacs 22 on Solaris amd64
> >     systems for several months now, and the build works fine.  This means
> >     that, at least the following part of the text below is false:
> > 
> > Can you write text that is more correct?
> 
> Yes.
> 
> Please note that I haven't been able to build a 64-only version of Emacs
> on Solaris amd64; Emacs 22.X crashes during the autoload stage of the
> bootstrap process, when I try to build a 64-bit binary on Solaris.
> 
> Nevertheless, I can definitely help with writing the text for 32-bit
> builds for Solaris and FreeBSD.  For other systems, I may need some help
> from people who are more experienced in their use, and have more current
> installations than me.

Hi all,

I posted the following to rms@gnu.org, but forgot to Cc: the list, so
here it is, in case anyone else has time to review the text too:

%%
diff -r 1f853b6e3574 -r 59b73f6c6f46 ChangeLog
--- a/ChangeLog	Fri Jan 19 07:10:51 2007 +0200
+++ b/ChangeLog	Fri Jan 19 17:04:43 2007 +0200
@@ -1,3 +1,8 @@ 2007-01-18  Bruno Haible  <bruno@clisp.o
+2007-01-19  Giorgos Keramidas  <keramida@ceid.upatras.gr> (tiny change)
+
+	* etc/MACHINES: Describe how 32-bit and 64-bit versions of Emacs
+	  can be compiled on Solaris systems.
+
 2007-01-18  Bruno Haible  <bruno@clisp.org> (tiny change)
 
 	* INSTALL: Info files moved to share/info.
diff -r 1f853b6e3574 -r 59b73f6c6f46 etc/MACHINES
--- a/etc/MACHINES	Fri Jan 19 07:10:51 2007 +0200
+++ b/etc/MACHINES	Fri Jan 19 17:04:43 2007 +0200
@@ -1021,11 +1021,27 @@ Sun 3, Sun 4 (sparc), Sun 386 (m68k-sun-
 			       sparc-sun-sunos4.1.3noshr, sparc-sun-solaris2.*,
 			       i386-sun-solaris2.*, sparc*-*-linux-gnu)
 
+  To build a 32-bit Emacs (i.e. if you are having any sort of problem
+  bootstrapping a 64-bit version), you can use the Sun Studio compiler
+  and configure Emacs with:
+
+    env CC="cc -xarch=v7" CFLAGS='' ./configure    # on SPARC systems
+    env CC="cc -xarch=386" CFLAGS='' ./configure   # on x86 systems
+
+  On Solaris 2.10, it is also possible to use /usr/sfw/bin/gcc to build
+  a 32-bit version of Emacs.  Just make sure you point ./configure to
+  the right compiler:
+
+    env CC='/usr/sfw/bin/gcc -m32' ./configure
+
   To build a 64-bit Emacs (with larger maximum buffer size and
   including large file support) on a Solaris system which supports
   64-bit executables, use the Sun compiler, configuring something like
   this (see the cc documentation for information on 64-bit
-  compilation):  env CC="cc -xarch=v9" ./configure
+  compilation):
+
+    env CC="cc -xarch=v9" CFLAGS='' ./configure    # on SPARC systems
+    env CC="cc -xarch=amd64" CFLAGS='' ./configure # on x86 systems
 
   As of version 2.95, GCC doesn't support the 64-bit ABI properly, but
   later releases may.
%%

There is a buglet in the version I posted to Richard.  The last command,
which can be used to build a 64-bit Emacs on Solaris uses -xarch=386,
which should be replaced with the version shown above (-xarch=amd64).

Regards,
Giorgos

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

end of thread, other threads:[~2007-01-19 15:36 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-09  1:44 add etc/PROBLEMS entry for building 32-bit exe on 64-bit system Glenn Morris
2007-01-09  9:58 ` Andreas Schwab
2007-01-09 21:08   ` Richard Stallman
2007-01-09 22:30     ` Andreas Schwab
2007-01-10  0:25       ` Glenn Morris
2007-01-10  4:14         ` Glenn Morris
2007-01-10 15:28           ` Stefan Monnier
2007-01-10 20:17             ` Glenn Morris
2007-01-10 20:36             ` Eli Zaretskii
2007-01-10 23:28               ` Stefan Monnier
2007-01-16  1:22                 ` Glenn Morris
2007-01-16  9:58                   ` Andreas Schwab
2007-01-16 14:40                   ` Stefan Monnier
2007-01-10 23:05           ` Richard Stallman
2007-01-11  1:52             ` Glenn Morris
2007-01-14 23:23           ` Richard Stallman
2007-01-15  6:23           ` Giorgos Keramidas
2007-01-10  9:41         ` Andreas Schwab
2007-01-10 19:31           ` Glenn Morris
2007-01-10 20:00             ` Andreas Schwab
2007-01-10 20:14               ` Glenn Morris
2007-01-10 20:23                 ` Andreas Schwab
2007-01-10 20:16             ` Stuart D. Herring
2007-01-10 20:42             ` Eli Zaretskii
2007-01-10 18:46         ` Richard Stallman
2007-01-13  2:26           ` Glenn Morris
2007-01-09 17:57 ` Richard Stallman
2007-01-15  6:21 ` Giorgos Keramidas
2007-01-15  9:54   ` Andreas Schwab
2007-01-15 20:27   ` Glenn Morris
2007-01-15 23:28   ` Richard Stallman
2007-01-15 23:33     ` Giorgos Keramidas
2007-01-19 15:36       ` Giorgos Keramidas

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