Johannes Ziegler <ziegler(a)pm.informatik.uni-ulm.de> writes:
Thanks for all the info! I am hoping somebody on xemacs-beta might
know better. Therefore I am citing more than usual in case they missed
the original.
Here's a more detailed description of my problem with
building xemacs-21.1.7.
SOURCES: xemacs-21.1.7.tar.gz
xemacs-21.1.7-elc.tar.gz
xemacs-21.1.7-info.tar.gz
MACHINERY:
| mach. | cpu | kernel | glibc | gcc | dist |
-----------------------------------------------------------------------
| barrios | i686 | 2.2.7 | 2.1.1-6 | 2.95-4 | RH6.0 |
| bella | i686 | 2.2.7 | 2.1.1-6 | 2.95-4 | RH6.0 |
| macallan | i586 | 2.2.7 | 2.1.1-6 | 2.95-4 | RH6.0 |
| honegger | i686 | 2.2.7 | 2.1.1-6 | 2.95-4 | RH6.0 |
| jura | i586 | 2.0.36 | 2.0.7-29 | 2.7.2.3-14 | RH5.2 |
| glenlivet | i686 | 2.2.9 | 2.0.7-29 | 2.7.2.3-14 | RH5.2 |
| balblair | i686 | 2.0.36 | 2.0.7-29 | 2.7.2.3-14 | RH5.2 |
| scapa | i586 | 2.0.36 | 2.0.7-29 | 2.7.2.3-14 | RH5.2 |
-----------------------------------------------------------------------
Is libgcc.a identical on barrios,bella,macallan and honegger?
step 1)
-------
I compiled the sources on machine jura which went very well.
The temacs-binary is working on all machines.
What happens if you do the complete compile (and dump) on a glibc 2.1
machine?
step 2) (dump on barrios)
--------------------------
I removed the xemacs-binary and dumped it new by hand
on machine barrios.
The new binary was working on following machines:
barrios, bella, honegger.
The new binary exited with a "segmentation fault" on :
jura, glenlivet, balblair, macallan.
The new binary exited with a "bus error" on :
scapa.
jura, glenlivet, balblair and scapa I understand. glibc 2.1 binaries
will not work on an glibc 2.0 system
macallan is the wierd one!
step 3) (dump on bella)
------------------------
[results identical]
At least _something_ predictable happened.
step 4) (dump on macallan)
---------------------------
I removed the xemacs-binary and dumped it new by hand
on machine macallan.
The new binary was working on following machines:
macallan.
The new binary exited with a "segmentation fault" on :
bella, glenlivet, balblair, scapa, honegger, barrios.
The new binary exited with a "bus error" on :
jura.
:-(
step 5) (dump on honegger)
---------------------------
[.. identical to 2) ]
step 6) (dump on jura)
-----------------------
I removed the xemacs-binary and dumped it new by hand
on machine jura.
The new binary was working on following machines:
jura.
The new binary exited with a "segmentation fault" on :
glenlivet, balblair, macallan, scapa, .
The new binary exited with a "illegal instruction" on :
bella, honegger, barrios .
This is the wierdest part: it should have worked on all machines.
I would have expected it to work on scapa....
step 7) (dump on glenlivet)
----------------------------
I removed the xemacs-binary and dumped it new by hand
on machine glenlivet.
The new binary was working on following machines:
glenlivet, balblair.
The new binary exited with a "segmentation fault" on :
jura, bella, scapa, honegger, barrios.
The new binary exited with a "illegal instruction" on :
macallan.
step 8) (dump on balblair)
---------------------------
I removed the xemacs-binary and dumped it new by hand
on machine balblair.
The new binary was working on following machines:
balblair, glenlivet.
The new binary exited with a "segmentation fault" on :
jura, bella, scapa, honegger, barrios.
The new binary exited with a "illegal instruction" on :
macallan.
step 9) (dump on scapa)
------------------------
I removed the xemacs-binary and dumped it new by hand
on machine scapa.
The new binary was working on following machines:
scapa.
The new binary exited with a "segmentation fault" on :
jura, bella, glenlivet, balblair, macallan, honegger, barrios.
One would have expected at least scapa to be interchangable :-(
-----------------------------------------------------------------
Just for fun I did steps 1) to 9) with the xemacs-21.1.4 sources.
And guess what ?
All dumped xemacs-binaries worked fine on all machines.
....
Any idea?
Well.. The unexec code _was_ changed between 21.1.4 and 21.1.6, so it
must be it.
Could you try copying the 21.1.4 version of unexelf.c to 21.1.7 and
try (some of the combinations) again?
However looking at the path I cannot see what the problem is... On the
other hand with dumping any change can give mysterious results.
The only real code that should matter of ix86-linux is the .sbbs
dumping code which _should_ be in active.. Could you use objdump
--headers to see if anything changes between a build with .7 and the
.4 unexec?
Jan