Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Building current...



After some hiatus, "my" VAX 8650 is back among the living, so I decided to try and build current again.

First of all, it was previously sitting on 5.99. Building took for ages, and the system was mostly sitting in sys, which made it feel that something must be wrong. After numerous aborted attempts, since the system managed to hang after building for two days, repeatedly, I decided to do a cross build to get to current at least.

Running current seems slightly more responsive, and the system seems to spend slightly less time in sys, so maybe something got improve/fixed.

That is the good news. The bad news is that building natively do not work. It crashes out with an illegal instruction after only coming through a few files in the building of make itself.

Other programs also crash with illegal instruction now, which previously worked.

Looking at one of them, ntpd, it seems we have a problem here...

First the backtrace:
(gdb) core ntpd.core
[New process 1]
Core was generated by `ntpd'.
Program terminated with signal SIGILL, Illegal instruction.
#0  0x7f7a8940 in infnan (-34) from /usr/lib/libm.so.0
(gdb) bt
#0  0x7f7a8940 in infnan (-34) from /usr/lib/libm.so.0
#1  0x7f7a8175 in log (0, 0) from /usr/lib/libm.so.0
#2  0x7f7a41fa in log10 (0, 0) from /usr/lib/libm.so.0
#3  0x0006d772 in auth_prealloc_symkeys (0)
#4  0x0001bc0f in save_and_apply_config_tree (1)
#5  0x0001d963 in getconfig (0, 2147479180)
#6  0x0003ffda in ntpdmain (0, 2147479180)
#7  0x0004063c in main (3, 2147479168, 2147479184)
(gdb)

Now the "analysis". It appears that programs call log10() with an argument of 0, and consider this to be normal. Unfortunately, this is one of those places where the VAX not doing IEEE FP bites us. The IEEE log10() of 0 will return -inf, and happily chug on. The VAX log10() of 0 will cause an illegal instruction trap.

I suspect the other programs crashing might be because of the same reason. The question is - what should we do? I'm tempted to just change the code for log() to return 0, or possible -MAX_whatever and not trap. Opinions?

	Johnny

--
Johnny Billquist                  || "I'm on a bus
                                  ||  on a psychedelic trip
email: bqt%softjar.se@localhost             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol


Home | Main Index | Thread Index | Old Index