unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Emacs bootstrap
@ 2008-06-21  1:46 Stefan Monnier
  2008-06-21 20:53 ` Glenn Morris
  2008-06-22  1:38 ` Herbert Euler
  0 siblings, 2 replies; 14+ messages in thread
From: Stefan Monnier @ 2008-06-21  1:46 UTC (permalink / raw)
  To: emacs-devel


I've changed the Makefiles so the bootstrap now should be a bit
more reliable.  E.g., after a checkout, a simple

   ./configure
   make

should DTRT.  And to force a bootstrap, all you need to do is

   make bootstrap-clean

after which

   make

will do a full&clean bootstrap.  The target "bootstrap" actually does
just that (except it runs ./config.status between the two, just in case).

Hopefully, this still work with parallel make (it worked with "make -j4"
in my tests), and hopefully it will not cause excessive re-compilation
or re-dumping either when you do a simple "make" (a simple "make"
will now automatically compile the .el files that need it).


        Stefan




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

* Re: Emacs bootstrap
  2008-06-21  1:46 Emacs bootstrap Stefan Monnier
@ 2008-06-21 20:53 ` Glenn Morris
  2008-06-21 20:55   ` Glenn Morris
                     ` (2 more replies)
  2008-06-22  1:38 ` Herbert Euler
  1 sibling, 3 replies; 14+ messages in thread
From: Glenn Morris @ 2008-06-21 20:53 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Stefan Monnier wrote:

> I've changed the Makefiles so the bootstrap now should be a bit
> more reliable.

Some problems I don't know how to fix at the moment:

i) `make maintainer-clean' now exits with an error, because running
its prereq bootstrap-clean deletes the lisp and src Makefiles.

ii) with `make -j2 bootstrap', I get this error every time:

gcc -nostdlib `./prefix-args -Xlinker  -z nocombreloc`
-Wl,-znocombreloc  -o temacs pre-crt0.o /usr/lib64/crt1.o
/usr/lib64/crti.o dispnew.o frame.o scroll.o xdisp.o menu.o xmenu.o
window.o charset.o coding.o category.o ccl.o character.o chartab.o
cm.o term.o terminal.o xfaces.o xterm.o xfns.o xselect.o xrdb.o
fontset.o xsmfns.o fringe.o image.o  dbusbind.o 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 font.o print.o lread.o syntax.o
unexelf.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
xfont.o ftfont.o xftfont.o ftxfont.o terminfo.o lastfile.o
vm-limit.o widget.o    ../lwlib/liblw.a  -lXaw -lXmu -lXt -lSM -lICE
-lXext -ltiff -ljpeg -lpng -lz -lm -lgif -lXpm -lX11 -lXft -lXrender
-lfontconfig -lfreetype -lX11 -lasound -L/lib64 -lrsvg-2
-lgdk_pixbuf-2.0 -lm -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
-L/lib64 -ldbus-1 -lgpm -lncurses   -lm -lgcc -lc -lgcc
/usr/lib64/crtn.o 
make[3]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/lisp'
make -w --jobserver-fds=5,6 - --jobserver-fds=5,6 -
--jobserver-fds=5,6 - --jobserver-fds=5,6 -j bootstrap-emacs
make[3]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/src'
cd ../lwlib/; make -w --jobserver-fds=5,6 - --jobserver-fds=5,6 -
--jobserver-fds=5,6 - --jobserver-fds=5,6 - --jobserver-fds=5,6 -
--jobserver-fds=5,6 - --jobserver-fds=5,6 - --jobserver-fds=5,6 -j
CC='gcc' CFLAGS='-g -O2 -Wno-pointer-sign ' MAKE='make'
"C_SWITCH_X_SITE=-I/usr/include/X11 -I/usr/include/freetype2"
"C_SWITCH_X_MACHINE=" "C_SWITCH_X_SYSTEM=" "C_SWITCH_SITE="
"C_SWITCH_MACHINE=" "C_SWITCH_SYSTEM=-D_BSD_SOURCE"
make[4]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/lwlib'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/lwlib'
`/bin/pwd`/temacs --batch --load loadup bootstrap
/bin/sh: /scratch/gmorris/emacs/cvs/trunk/src/temacs: Permission
denied
make[3]: *** [bootstrap-emacs] Error 126
make[3]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/src'
make[2]: *** [witness-emacs] Error 2
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/src'
make[1]: *** [src] Error 2
make[1]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk'
make: *** [bootstrap] Error 2





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

* Re: Emacs bootstrap
  2008-06-21 20:53 ` Glenn Morris
@ 2008-06-21 20:55   ` Glenn Morris
  2008-06-22  1:27     ` Stefan Monnier
  2008-06-22  1:06   ` Glenn Morris
  2008-06-22  1:29   ` Stefan Monnier
  2 siblings, 1 reply; 14+ messages in thread
From: Glenn Morris @ 2008-06-21 20:55 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel


PS question:

Is there a reason why $(lisp)/cus-load.el, $(lisp)/finder-inf.el,
$(lisp)/subdirs.el call sub-makes, rather than just having
custom-deps, finder-data, update-subdirs as prereqs?




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

* Re: Emacs bootstrap
  2008-06-21 20:53 ` Glenn Morris
  2008-06-21 20:55   ` Glenn Morris
@ 2008-06-22  1:06   ` Glenn Morris
  2008-06-22  2:45     ` Stefan Monnier
  2008-06-22  1:29   ` Stefan Monnier
  2 siblings, 1 reply; 14+ messages in thread
From: Glenn Morris @ 2008-06-22  1:06 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Glenn Morris wrote:

> /bin/sh: /scratch/gmorris/emacs/cvs/trunk/src/temacs: Permission denied

Making witness-emacs depend on temacs${EXEEXT} seems to fix this, but
I don't have a handle on your new scheme yet.




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

* Re: Emacs bootstrap
  2008-06-21 20:55   ` Glenn Morris
@ 2008-06-22  1:27     ` Stefan Monnier
  0 siblings, 0 replies; 14+ messages in thread
From: Stefan Monnier @ 2008-06-22  1:27 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel

> Is there a reason why $(lisp)/cus-load.el, $(lisp)/finder-inf.el,
> $(lisp)/subdirs.el call sub-makes, rather than just having
> custom-deps, finder-data, update-subdirs as prereqs?

Yes: so as to make the two targets different.
I.e. if you want a target the reconstructs the file, use custom-deps
(and friends), whereas if you want a target that only makes sure the
file exists, use $(lisp)/cus-load.el.


        Stefan




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

* Re: Emacs bootstrap
  2008-06-21 20:53 ` Glenn Morris
  2008-06-21 20:55   ` Glenn Morris
  2008-06-22  1:06   ` Glenn Morris
@ 2008-06-22  1:29   ` Stefan Monnier
  2 siblings, 0 replies; 14+ messages in thread
From: Stefan Monnier @ 2008-06-22  1:29 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel

>> I've changed the Makefiles so the bootstrap now should be a bit
>> more reliable.

> Some problems I don't know how to fix at the moment:

> i) `make maintainer-clean' now exits with an error, because running
> its prereq bootstrap-clean deletes the lisp and src Makefiles.

Hmm... I thought I'd changed those two to not remove the Makefile...
Oh I see I've only done it in `lisp' but not in `src'.

> ii) with `make -j2 bootstrap', I get this error every time:

> gcc -nostdlib `./prefix-args -Xlinker  -z nocombreloc`
> -Wl,-znocombreloc  -o temacs pre-crt0.o /usr/lib64/crt1.o
> /usr/lib64/crti.o dispnew.o frame.o scroll.o xdisp.o menu.o xmenu.o
> window.o charset.o coding.o category.o ccl.o character.o chartab.o
> cm.o term.o terminal.o xfaces.o xterm.o xfns.o xselect.o xrdb.o
> fontset.o xsmfns.o fringe.o image.o  dbusbind.o 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 font.o print.o lread.o syntax.o
> unexelf.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
> xfont.o ftfont.o xftfont.o ftxfont.o terminfo.o lastfile.o
> vm-limit.o widget.o    ../lwlib/liblw.a  -lXaw -lXmu -lXt -lSM -lICE
> -lXext -ltiff -ljpeg -lpng -lz -lm -lgif -lXpm -lX11 -lXft -lXrender
> -lfontconfig -lfreetype -lX11 -lasound -L/lib64 -lrsvg-2
> -lgdk_pixbuf-2.0 -lm -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
> -L/lib64 -ldbus-1 -lgpm -lncurses   -lm -lgcc -lc -lgcc
> /usr/lib64/crtn.o 
> make[3]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/lisp'
> make -w --jobserver-fds=5,6 - --jobserver-fds=5,6 -
> --jobserver-fds=5,6 - --jobserver-fds=5,6 -j bootstrap-emacs
> make[3]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/src'
> cd ../lwlib/; make -w --jobserver-fds=5,6 - --jobserver-fds=5,6 -
> --jobserver-fds=5,6 - --jobserver-fds=5,6 - --jobserver-fds=5,6 -
> --jobserver-fds=5,6 - --jobserver-fds=5,6 - --jobserver-fds=5,6 -j
> CC='gcc' CFLAGS='-g -O2 -Wno-pointer-sign ' MAKE='make'
> "C_SWITCH_X_SITE=-I/usr/include/X11 -I/usr/include/freetype2"
> "C_SWITCH_X_MACHINE=" "C_SWITCH_X_SYSTEM=" "C_SWITCH_SITE="
> "C_SWITCH_MACHINE=" "C_SWITCH_SYSTEM=-D_BSD_SOURCE"
> make[4]: Entering directory `/scratch/gmorris/emacs/cvs/trunk/lwlib'
> make[4]: Nothing to be done for `all'.
> make[4]: Leaving directory `/scratch/gmorris/emacs/cvs/trunk/lwlib'
> `/bin/pwd`/temacs --batch --load loadup bootstrap
> /bin/sh: /scratch/gmorris/emacs/cvs/trunk/src/temacs: Permission
> denied

I've seen similar problems today but haven't been able to track them
down yet.


        Stefan




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

* RE: Emacs bootstrap
  2008-06-21  1:46 Emacs bootstrap Stefan Monnier
  2008-06-21 20:53 ` Glenn Morris
@ 2008-06-22  1:38 ` Herbert Euler
  2008-06-22  2:20   ` Glenn Morris
  2008-06-22  2:47   ` Stefan Monnier
  1 sibling, 2 replies; 14+ messages in thread
From: Herbert Euler @ 2008-06-22  1:38 UTC (permalink / raw)
  To: Stefan Monnier, emacs-devel


There is a small problem when doing `make bootstrap-clean'.  In
`top_bootclean', we have

  top_bootclean=\
	  rm -f config.cache config.log ; \
	  if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi

This wants to remove the `CVS' subdirectory in `lock', which leads to
an error.

Regards,
Guanpeng Xu
_________________________________________________________________
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE




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

* Re: Emacs bootstrap
  2008-06-22  1:38 ` Herbert Euler
@ 2008-06-22  2:20   ` Glenn Morris
  2008-06-22  2:28     ` Herbert Euler
  2008-06-22  2:47   ` Stefan Monnier
  1 sibling, 1 reply; 14+ messages in thread
From: Glenn Morris @ 2008-06-22  2:20 UTC (permalink / raw)
  To: Herbert Euler; +Cc: Stefan Monnier, emacs-devel

Herbert Euler wrote:

>   top_bootclean=\
> 	  rm -f config.cache config.log ; \
> 	  if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi
>
> This wants to remove the `CVS' subdirectory in `lock', which leads to
> an error.

This hasn't changed recently. Use cvs up -dP and you won't have a lock
directory. In any case, this part of the rule is obsolete and can be
removed.




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

* RE: Emacs bootstrap
  2008-06-22  2:20   ` Glenn Morris
@ 2008-06-22  2:28     ` Herbert Euler
  0 siblings, 0 replies; 14+ messages in thread
From: Herbert Euler @ 2008-06-22  2:28 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Stefan Monnier, emacs-devel


> This hasn't changed recently. Use cvs up -dP and you won't have a lock
> directory. In any case, this part of the rule is obsolete and can be
> removed.

OK, thank you for the information.

Regards,
Guanpeng Xu
_________________________________________________________________
Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy!
http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us




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

* Re: Emacs bootstrap
  2008-06-22  1:06   ` Glenn Morris
@ 2008-06-22  2:45     ` Stefan Monnier
  2008-06-22 20:01       ` Glenn Morris
  0 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2008-06-22  2:45 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel

>> /bin/sh: /scratch/gmorris/emacs/cvs/trunk/src/temacs: Permission denied
> Making witness-emacs depend on temacs${EXEEXT} seems to fix this, but

I see...  hmmm... I think I understand why that is.

> I don't have a handle on your new scheme yet.

Adding the above dependency means that witness-emacs will be recreated
everytime a C source file is changed, so every change to a C source file
will cause 2 dumps: one to `bootstrap-emacs' (via witness-emacs) and
another to `emacs'.  So it defeats the whole idea behind
`witness-emacs'.

I don't have a better answer yet, tho,


        Stefan




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

* Re: Emacs bootstrap
  2008-06-22  1:38 ` Herbert Euler
  2008-06-22  2:20   ` Glenn Morris
@ 2008-06-22  2:47   ` Stefan Monnier
  2008-06-22  3:13     ` Herbert Euler
  1 sibling, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2008-06-22  2:47 UTC (permalink / raw)
  To: Herbert Euler; +Cc: emacs-devel

> There is a small problem when doing `make bootstrap-clean'.  In
> `top_bootclean', we have

>   top_bootclean=\
> 	  rm -f config.cache config.log ; \
> 	  if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi

> This wants to remove the `CVS' subdirectory in `lock', which leads to
> an error.

I don't have any `lock' nor `lock/CVS' directory.  What error do
you get?  And why do you have a lock/CVS subdirectory?


        Stefan




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

* RE: Emacs bootstrap
  2008-06-22  2:47   ` Stefan Monnier
@ 2008-06-22  3:13     ` Herbert Euler
  0 siblings, 0 replies; 14+ messages in thread
From: Herbert Euler @ 2008-06-22  3:13 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel


>> There is a small problem when doing `make bootstrap-clean'. In
>> `top_bootclean', we have
>
>> top_bootclean=\
>> rm -f config.cache config.log ; \
>> if [ -d lock ] ; then (cd lock && (rm -f * || true)); else true; fi
>
>> This wants to remove the `CVS' subdirectory in `lock', which leads to
>> an error.
>
> I don't have any `lock' nor `lock/CVS' directory. What error do
> you get? And why do you have a lock/CVS subdirectory?

Perhaps this is because I didn't provide any options to `cvs', i.e. I
just did `cvs ... co emacs'.  Glenn told me to use `cvs up -dP', and
after that, the `lock' directory (as well as the `1' directory but I
didn't count others) went away.

Regards,
Guanpeng Xu
_________________________________________________________________
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE




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

* Re: Emacs bootstrap
  2008-06-22  2:45     ` Stefan Monnier
@ 2008-06-22 20:01       ` Glenn Morris
  2008-06-22 22:03         ` Stefan Monnier
  0 siblings, 1 reply; 14+ messages in thread
From: Glenn Morris @ 2008-06-22 20:01 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Stefan Monnier wrote:

> Adding the above dependency means that witness-emacs will be recreated
> everytime a C source file is changed, so every change to a C source file
> will cause 2 dumps: one to `bootstrap-emacs' (via witness-emacs) and
> another to `emacs'.  So it defeats the whole idea behind
> `witness-emacs'.

D'oh, sorry. I see you've changed it all again now anyway. :)




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

* Re: Emacs bootstrap
  2008-06-22 20:01       ` Glenn Morris
@ 2008-06-22 22:03         ` Stefan Monnier
  0 siblings, 0 replies; 14+ messages in thread
From: Stefan Monnier @ 2008-06-22 22:03 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel

>> Adding the above dependency means that witness-emacs will be recreated
>> everytime a C source file is changed, so every change to a C source file
>> will cause 2 dumps: one to `bootstrap-emacs' (via witness-emacs) and
>> another to `emacs'.  So it defeats the whole idea behind
>> `witness-emacs'.

> D'oh, sorry. I see you've changed it all again now anyway. :)

Yes, I hope it works better now (fixes your problem but without
introducing the above problem).


        Stefan




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

end of thread, other threads:[~2008-06-22 22:03 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-21  1:46 Emacs bootstrap Stefan Monnier
2008-06-21 20:53 ` Glenn Morris
2008-06-21 20:55   ` Glenn Morris
2008-06-22  1:27     ` Stefan Monnier
2008-06-22  1:06   ` Glenn Morris
2008-06-22  2:45     ` Stefan Monnier
2008-06-22 20:01       ` Glenn Morris
2008-06-22 22:03         ` Stefan Monnier
2008-06-22  1:29   ` Stefan Monnier
2008-06-22  1:38 ` Herbert Euler
2008-06-22  2:20   ` Glenn Morris
2008-06-22  2:28     ` Herbert Euler
2008-06-22  2:47   ` Stefan Monnier
2008-06-22  3:13     ` Herbert Euler

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