comparison PROBLEMS @ 1318:b531bf8658e9

[xemacs-hg @ 2003-02-21 06:56:46 by ben] redisplay fixes et al. PROBLEMS: Add comment about Cygwin, unexec and sysmalloc. Move some non-general stuff out of general. Make a section for x86. configure.in: Add check for broken alloca in funcalls. mule/mule-cmds.el: Alias file-name to native not vice-versa. Do set EOL of native but not of process output to fix various problems and be consistent with code-init.el. code-cmds.el: Return a name not a coding system. code-init.el: Reindent. Remove `file-name' since it should always be the same as native. unicode.el: Rename to load-unicode-mapping-table as suggested by the anonymous (but rather Turnbullian) comment in unicode.c. xemacs.dsp: Add /k to default build. alloc.c: Make gc_currently_forbidden static. config.h.in, lisp.h: Move some stuff to lisp.h. console-gtk.h, console-impl.h, console-msw.h, console-x.h, event-Xt.c, event-msw.c, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-x.c, gtk-xemacs.c: Remove duplicated code to redraw exposed area. Add deadbox method needed by the generalized redraw code. Defer redrawing if already in redisplay. frame-msw.c, event-stream.c, frame.c: Add comments about calling Lisp. debug.c, general-slots.h: Move generalish symbols to general-slots.h. doprnt.c: reindent. lisp.h, dynarr.c: Add debug code for locking a dynarr to catch invalid mods. Use in redisplay.c. eval.c: file-coding.c: Define file-name as alias for native not vice-versa. frame-gtk.c, frame-x.c: Move Qwindow_id to general-slots. dialog-msw.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, gui.c, gui.h, menubar-msw.c, menubar.c: Ensure that various glyph functions that eval within redisplay protect the evals. Same for calls to internal_equal(). Modify various functions, e.g. gui_item_*(), to protect evals within redisplay, taking an in_redisplay parameter if it's possible for them to be called both inside and outside of redisplay. gutter.c: Defer specifier-changed updating till after redisplay, if necessary, since we need to enter redisplay to do it. gutter.c: Do nothing if in redisplay. lisp.h: Add version of alloca() for use in function calls. lisp.h: Add XCAD[D+]R up to 6 D's, and aliases X1ST, X2ND, etc. frame.c, frame.h, redisplay.c, redisplay.h, signal.c, toolbar.c: Redo critical-section code and move from frame.c to redisplay.c. Require that every place inside of redisplay catch errors itself, not at the edge of the critical section (thereby bypassing the rest of redisplay and leaving things in an inconsistent state). Introduce separate means of holding frame-size changes without entering a complete critical section. Introduce "post-redisplay" methods for deferring things till after redisplay. Abort if we enter redisplay reentrantly. Disable all quit checking in redisplay since it's too dangerous. Ensure that all calls to QUIT trigger an abort if unprotected. redisplay.c, scrollbar-gtk.c, scrollbar-x.c, scrollbar.c: Create enter/exit_redisplay_critical_section_maybe() for code that needs to ensure it's in a critical section but doesn't interfere with an existing critical section. sysdep.c: Use _wexecve() when under Windows NT for Unicode correctness. text.c, text.h: Add new_dfc() functions, which return an alloca()ed value rather than requiring an lvalue. (Not really used yet; used in another workspace, to come.) Add some macros for SIZED_EXTERNAL. Update the encoding aliases after involved scrutinization of the X manual. unicode.c: Answer the anonymous but suspiciously Turnbullian questions. Rename parse-unicode-translation-table to load-unicode-mapping-table, as suggested.
author ben
date Fri, 21 Feb 2003 06:57:21 +0000
parents 6981ff72175a
children 6aa23bb3da6b
comparison
equal deleted inserted replaced
1317:d9d08dc5e617 1318:b531bf8658e9
58 Typical of Linux systems with package managers. To link with a shared 58 Typical of Linux systems with package managers. To link with a shared
59 library, you only need the shared library. To compile objects that 59 library, you only need the shared library. To compile objects that
60 link with it, you need the headers---and distros don't provide them with 60 link with it, you need the headers---and distros don't provide them with
61 the libraries. You need the additional "development" package, too. 61 the libraries. You need the additional "development" package, too.
62 62
63 *** Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures 63 *** When using gcc, you get the error message "undefined symbol __fixunsdfsi".
64 without also using `-fno-schedule-insns'. 64 When using gcc, you get the error message "undefined symbol __main".
65 65
66 gcc will generate incorrect code otherwise, typically resulting in 66 This means that you need to link with the gcc library. It may be called
67 crashes in the function skip-syntax-backward. 67 "gcc-gnulib" or "libgcc.a"; figure out where it is, and define LIB_GCC in
68 68 config.h to point to it.
69 *** egcs-1.1 69
70 70 It may also work to use the GCC version of `ld' instead of the standard one.
71 There have been reports of egcs-1.1 not compiling XEmacs correctly on 71
72 Alpha Linux. There have also been reports that egcs-1.0.3a is O.K. 72 *** Excessive optimization with pgcc can break XEmacs
73
74 It has been reported on some systems that compiling with -O6 can lead
75 to XEmacs failures. The workaround is to use a lower optimization
76 level. -O2 and -O4 have been tested extensively.
77
78 All of this depends heavily on the version of pgcc and the version
79 of libc. Snapshots near the release of pgcc-1.0 have been tested
80 extensively and no sign of breakage has been seen on systems using
81 glibc-2.
82
83 *** src/Makefile and lib-src/Makefile are truncated--most of the file missing.
84
85 This can happen if configure uses GNU sed version 2.03. That version
86 had a bug. GNU sed version 2.05 works properly.
87
88 *** When compiling with X11, you get "undefined symbol _XtStrings".
89
90 This means that you are trying to link emacs against the X11r4 version of
91 libXt.a, but you have compiled either Emacs or the code in the lwlib
92 subdirectory with the X11r5 header files. That doesn't work.
93
94 Remember, you can't compile lwlib for r4 and emacs for r5, or vice versa.
95 They must be in sync.
96
97 *** test-distrib says that the distribution has been clobbered
98 or, temacs prints "Command key out of range 0-127"
99 or, temacs runs and dumps xemacs, but xemacs totally fails to work.
100 or, temacs gets errors dumping xemacs
101
102 This can be because the .elc files have been garbled. Do not be
103 fooled by the fact that most of a .elc file is text: these are binary
104 files and can contain all 256 byte values.
105
106 In particular `shar' cannot be used for transmitting GNU Emacs. It
107 typically truncates "lines". (this does not apply to GNU shar, which
108 uses uuencode to encode binary files.)
109
110 If you have a copy of Emacs that has been damaged in its nonprinting
111 characters, you can fix them by running:
112
113 make all-elc
114
115 This will rebuild all the needed .elc files.
116
117 ** Intel Architecture General
73 118
74 *** Don't use -O2 or -O3 with Cygwin 1.0, CodeFusion-99070 or gcc 2.7.2 on x86 119 *** Don't use -O2 or -O3 with Cygwin 1.0, CodeFusion-99070 or gcc 2.7.2 on x86
75 without also using `-fno-strength-reduce'. 120 without also using `-fno-strength-reduce'.
76 121
77 gcc will generate incorrect code otherwise. This bug is present in at 122 gcc will generate incorrect code otherwise. This bug is present in at
92 (nil)) 137 (nil))
93 0 0 [main] 138 0 0 [main]
94 139
95 If you're unlucky, your code will simply execute incorrectly. 140 If you're unlucky, your code will simply execute incorrectly.
96 141
97 *** Don't use gcc-2.95.2 with -mcpu=ultrasparc on Solaris 2.6.
98
99 gcc will assume a 64-bit operating system, even though you've
100 merely told it to assume a 64-bit instruction set.
101
102 *** Don't use -O2 with gcc 2.7.2 under Intel architectures without also 142 *** Don't use -O2 with gcc 2.7.2 under Intel architectures without also
103 using `-fno-caller-saves'. 143 using `-fno-caller-saves'.
104 144
105 gcc will generate incorrect code otherwise. This bug is still 145 gcc will generate incorrect code otherwise. This bug is still
106 present in gcc 2.7.2.3. There have been no reports to indicate the 146 present in gcc 2.7.2.3. There have been no reports to indicate the
107 bug is present in egcs 1.0 (or pgcc 1.0) or later. This bug is O/S 147 bug is present in egcs 1.0 (or pgcc 1.0) or later. This bug is O/S
108 independent, but limited to x86 architectures. 148 independent, but limited to x86 architectures.
109 149
110 This problem is known to be fixed in egcs (or pgcc) 1.0 or later. 150 This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
111
112 *** When using gcc, you get the error message "undefined symbol __fixunsdfsi".
113 When using gcc, you get the error message "undefined symbol __main".
114
115 This means that you need to link with the gcc library. It may be called
116 "gcc-gnulib" or "libgcc.a"; figure out where it is, and define LIB_GCC in
117 config.h to point to it.
118
119 It may also work to use the GCC version of `ld' instead of the standard one.
120
121 *** Excessive optimization with pgcc can break XEmacs
122
123 It has been reported on some systems that compiling with -O6 can lead
124 to XEmacs failures. The workaround is to use a lower optimization
125 level. -O2 and -O4 have been tested extensively.
126
127 All of this depends heavily on the version of pgcc and the version
128 of libc. Snapshots near the release of pgcc-1.0 have been tested
129 extensively and no sign of breakage has been seen on systems using
130 glibc-2.
131
132 *** src/Makefile and lib-src/Makefile are truncated--most of the file missing.
133
134 This can happen if configure uses GNU sed version 2.03. That version
135 had a bug. GNU sed version 2.05 works properly.
136
137 *** When compiling with X11, you get "undefined symbol _XtStrings".
138
139 This means that you are trying to link emacs against the X11r4 version of
140 libXt.a, but you have compiled either Emacs or the code in the lwlib
141 subdirectory with the X11r5 header files. That doesn't work.
142
143 Remember, you can't compile lwlib for r4 and emacs for r5, or vice versa.
144 They must be in sync.
145
146 *** test-distrib says that the distribution has been clobbered
147 or, temacs prints "Command key out of range 0-127"
148 or, temacs runs and dumps xemacs, but xemacs totally fails to work.
149 or, temacs gets errors dumping xemacs
150
151 This can be because the .elc files have been garbled. Do not be
152 fooled by the fact that most of a .elc file is text: these are binary
153 files and can contain all 256 byte values.
154
155 In particular `shar' cannot be used for transmitting GNU Emacs. It
156 typically truncates "lines". (this does not apply to GNU shar, which
157 uses uuencode to encode binary files.)
158
159 If you have a copy of Emacs that has been damaged in its nonprinting
160 characters, you can fix them by running:
161
162 make all-elc
163
164 This will rebuild all the needed .elc files.
165 151
166 *** `compress' and `uncompress' not found and XFree86 152 *** `compress' and `uncompress' not found and XFree86
167 153
168 XFree86 installs a very old version of libz.a by default ahead of where 154 XFree86 installs a very old version of libz.a by default ahead of where
169 more modern version of libz might be installed. This will cause problems 155 more modern version of libz might be installed. This will cause problems
358 (3.1.4.4), there are problems with -O3. I haven't investigated 344 (3.1.4.4), there are problems with -O3. I haven't investigated
359 further. 345 further.
360 346
361 347
362 ** SunOS/Solaris 348 ** SunOS/Solaris
349 *** Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures
350 without also using `-fno-schedule-insns'.
351
352 gcc will generate incorrect code otherwise, typically resulting in
353 crashes in the function skip-syntax-backward.
354
355 *** Don't use gcc-2.95.2 with -mcpu=ultrasparc on Solaris 2.6.
356
357 gcc will assume a 64-bit operating system, even though you've
358 merely told it to assume a 64-bit instruction set.
359
363 *** Dumping error when using GNU binutils / GNU ld on a Sun. 360 *** Dumping error when using GNU binutils / GNU ld on a Sun.
364 361
365 Errors similar to the following: 362 Errors similar to the following:
366 363
367 Dumping under the name xemacs unexec(): 364 Dumping under the name xemacs unexec():
478 475
479 The X headers and libraries that Sun ships in /usr/{include,lib}/X11 are 476 The X headers and libraries that Sun ships in /usr/{include,lib}/X11 are
480 broken. Use the ones in /usr/openwin/{include,lib} instead. 477 broken. Use the ones in /usr/openwin/{include,lib} instead.
481 478
482 ** Linux 479 ** Linux
480
481 See also Intel Architecture General, above.
482
483 *** egcs-1.1 on Alpha Linux
484
485 There have been reports of egcs-1.1 not compiling XEmacs correctly on
486 Alpha Linux. There have also been reports that egcs-1.0.3a is O.K.
487
483 *** Under Linux, you get "too many arguments to function `getpgrp'". 488 *** Under Linux, you get "too many arguments to function `getpgrp'".
484 489
485 You have probably installed LessTiff under `/usr/local' and `libXm.so' 490 You have probably installed LessTiff under `/usr/local' and `libXm.so'
486 could not be found when linking `getpgrp()' test program, making XEmacs 491 could not be found when linking `getpgrp()' test program, making XEmacs
487 think that `getpgrp()' takes an argument. Try adding `/usr/local/lib' 492 think that `getpgrp()' takes an argument. Try adding `/usr/local/lib'
732 737
733 Note: Much of the above entry is probably not valid for XEmacs 21.0 738 Note: Much of the above entry is probably not valid for XEmacs 21.0
734 and later. 739 and later.
735 740
736 ** Cygwin 741 ** Cygwin
742
743 See also Intel Architecture General, above.
744
745 *** Signal 11 when building or running a dumped XEmacs.
746
747 This appears to happen when using the traditional dumping mechanism and
748 the system malloc. Andy Piper writes:
749
750 Traditional dumping on cygwin relies on using gmalloc (there are specific
751 hacks in our version of gmalloc to support this), I suspect using sysmalloc
752 is the problem.
753
754 Try configuring with pdump or without system malloc.
737 755
738 *** In general use etc/check_cygwin_setup.sh to trap environment problems. 756 *** In general use etc/check_cygwin_setup.sh to trap environment problems.
739 757
740 The script etc/check_cygwin_setup.sh will attempt to detect whether 758 The script etc/check_cygwin_setup.sh will attempt to detect whether
741 you have a suitable environment for building. This script may not work 759 you have a suitable environment for building. This script may not work
1951 experiencing problems, try the latest beta version to see if the 1969 experiencing problems, try the latest beta version to see if the
1952 problem still exists. Also ask on xemacs-nt@xemacs.org. 1970 problem still exists. Also ask on xemacs-nt@xemacs.org.
1953 1971
1954 1972
1955 ** Cygwin 1973 ** Cygwin
1974 *** Signal 11 when building or running a dumped XEmacs.
1975
1976 See the section on Cygwin above, under building.
1977
1956 *** XEmacs fails to start because cygXpm-noX4.dll was not found. 1978 *** XEmacs fails to start because cygXpm-noX4.dll was not found.
1957 1979
1958 Andy Piper <andy@xemacs.org> sez: 1980 Andy Piper <andy@xemacs.org> sez:
1959 1981
1960 cygXpm-noX4 is part of the cygwin distribution under libraries or 1982 cygXpm-noX4 is part of the cygwin distribution under libraries or