[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: `print' does not print
From: |
Ralf Fassel |
Subject: |
Re: `print' does not print |
Date: |
Mon, 25 Mar 2002 14:47:41 +0100 |
* Eli Zaretskii
| Assuming for a moment that the problem is caused by some disruption
| of memory allocation for the standard handles, one thing to try is
| to use setvbuf to allocate a buffer for stdout, somewhere near the
| beginning of `main'. Does that help?
The code snipped I tried is:
if (initialized) {
if (setvbuf (stdout, stdout_buffer, _IOLBF, BUFSIZ)) {
write(2, "setvbuf failed\n", 15);
exit(1);
}
write (2,"setbuf ok\n",10);
}
where `stdout_buffer' was a global char[BUFSIZ] in emacs.c (malloc'ing
it didn't make any difference).
Didn't help
- at the start of main in emacs.c, #737 just before calling `sort_args()'
- at the end of main before calling `Frecursive_edit()'
- in `printchar', where I had to trick a bit to invoke it only once at
first invocation (reset a static init-var in main to 0, since that
init-var was already initialized in the dumped emacs)
- any variation of
_IOFBF causes input/output to be fully buffered.
_IOLBF causes output to be line buffered; the buffer will be flushed
when a newline is written, the buffer is full, or input is
requested.
_IONBF causes input/output to be completely unbuffered.
for the buffering.
It also tried to use unbuffered I/O via setbuf() with a NULL pointer,
didn't help either.
It also did not help to freopen() stdout to some file at the same
places.
=========================================================
I then had a look what had actually changed in unexelf.c, and with the
following diff applied to unexelf.c I can make it work again
(i.e. disabling the SGI-specials introduced for the .got section):
*** unexelf.c.21.2 Mon Jan 28 17:33:22 2002
--- unexelf.c Mon Mar 25 14:40:55 2002
***************
*** 1033,1038 ****
--- 1033,1039 ----
".lit4")
|| !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
".lit8")
+ #if 0
#if __sgi
/* According to David Kaelbling <drk@bobo.hudson.sgi.com>,
the SGI-specific section below is required to avoid core
***************
*** 1042,1047 ****
--- 1043,1049 ----
|| !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
".got")
#endif
+ #endif
|| !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
".sdata1")
|| !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name),
***************
*** 1220,1228 ****
--- 1222,1232 ----
".lit4")
|| !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
".lit8")
+ #if 0
#if __sgi
|| !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
".got")
+ #endif
#endif
|| !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name),
".sdata1")
I did configure emacs as
# ./configure --prefix=/software/emacs/21.2
# -exec-prefix=/software/emacs/21.2/IRIX-6 --with-pop
# --with-x-toolkit=athena
R'
- Re: `print' does not print, (continued)
- Re: `print' does not print, Stefan Monnier, 2002/03/22
- Re: `print' does not print, Richard Stallman, 2002/03/23
- Re: `print' does not print, Ralf Fassel, 2002/03/24
- Re: `print' does not print, Eli Zaretskii, 2002/03/24
- Re: `print' does not print, Ralf Fassel, 2002/03/24
- Re: `print' does not print, Eli Zaretskii, 2002/03/25
- Re: `print' does not print,
Ralf Fassel <=
- Re: `print' does not print, Eli Zaretskii, 2002/03/25
- Re: `print' does not print, David Kaelbling, 2002/03/25
- Re: `print' does not print, Eli Zaretskii, 2002/03/25
- Re: `print' does not print, David Kaelbling, 2002/03/25
- Re: `print' does not print, Eli Zaretskii, 2002/03/26
- Re: `print' does not print, David Kaelbling, 2002/03/26
- Re: `print' does not print, Eli Zaretskii, 2002/03/26
- Re: `print' does not print, Ralf Fassel, 2002/03/26
- Re: `print' does not print, Ralf Fassel, 2002/03/25
- Re: `print' does not print, David Kaelbling, 2002/03/25