rusty@belch.Berkeley.EDU (Rusty Wright) (12/10/90)
What's the trick to get perl (patch level 41) to compile under Ultrix 4.1 on a DECstation with optimization? I thought I remembered someone saying that you had to use 1 for VOIDFLAGS and I'm doing that, but it's still failing tests op.eval and op.s.
jv@mh.nl (Johan Vromans) (12/10/90)
In article <RUSTY.90Dec9105756@belch.Berkeley.EDU> rusty@belch.Berkeley.EDU (Rusty Wright) writes:
What's the trick to get perl (patch level 41) to compile under Ultrix
4.1 on a DECstation with optimization? I thought I remembered someone
saying that you had to use 1 for VOIDFLAGS and I'm doing that, but
it's still failing tests op.eval and op.s.
If you are using the standard C-compiler: don't optimize. If you are
using gcc (OSF version 1.9.2.13): no problems should occur except for
a few compilation warnings.
Johan
evans@decvax.DEC.COM (Marc Evans) (12/10/90)
In article <RUSTY.90Dec9105756@belch.Berkeley.EDU>, rusty@belch.Berkeley.EDU (Rusty Wright) writes: |> What's the trick to get perl (patch level 41) to compile under Ultrix |> 4.1 on a DECstation with optimization? I thought I remembered someone |> saying that you had to use 1 for VOIDFLAGS and I'm doing that, but |> it's still failing tests op.eval and op.s. undef volatile - Marc -- =========================================================================== Marc Evans - WB1GRH - evans@decvax.DEC.COM | Synergytics (603)635-8876 Unix and X Software Contractor | 21 Hinds Ln, Pelham, NH 03076 ===========================================================================
meissner@osf.org (Michael Meissner) (12/11/90)
In article <RUSTY.90Dec9105756@belch.Berkeley.EDU> rusty@belch.Berkeley.EDU (Rusty Wright) writes: | What's the trick to get perl (patch level 41) to compile under Ultrix | 4.1 on a DECstation with optimization? I thought I remembered someone | saying that you had to use 1 for VOIDFLAGS and I'm doing that, but | it's still failing tests op.eval and op.s. Don't optimize, and set d_castneg to 'undef'. I don't remember off-hand which are the modules that have traditionally broken the MIPS optimizer. The castneg was recently reported, and it's because PERL and the MIPS compiler disagree on how negative floats are to be converted to unsigned. Alternatively, you could use my patches to GCC, which runs perl just fine even at the highest optimization level. If you have Ultrix 3.1, you do have to tell perl no to use the waitpid function, since the function is broken in those revisions. -- Michael Meissner email: meissner@osf.org phone: 617-621-8861 Open Software Foundation, 11 Cambridge Center, Cambridge, MA, 02142 Considering the flames and intolerance, shouldn't USENET be spelled ABUSENET?
rusty@BELCH.BERKELEY.EDU (Rusty Wright) (12/11/90)
Ok, I got it to work. It was the combination of several things from 2 people: 1) Answer "-DLANGUAGE_C -DJMPCLOBBER" to the other cflags question when you run Configure. 2) Answer "1" to the void flags question. 3) When it asks you if you want to edit config.sh say yes and change d_waitpids='define' to d_waitpids='undef'. 4) While in step 3, when it asks you if you want to edit config.sh and you said yes, also change d_volatile='define' to d_volatile='undef'. *) Extra bonus: if your machine only has 16 meg (as mine does) and you want to watch the compiler go virtual and spend 99.9% of its time paging and 0.1% of its time compiling, when you run Configure, at the question for optimization/debug flags answer "-O -Olimit 30000". When you do this it takes many hours to compile eval.c (about 8 hours on my DECstation 5000 with 16 meg of ram and 2 swap disks). Check with your local DEC Field Service office to see if your making it do this excessive paging voids the warranty on your disks.
tale@rpi.edu (David C Lawrence) (12/14/90)
Well, I find this all very curious. I am wondering right now what might be secretly broken in my the perl I had installed on the DECstations several days ago. I compiled on the 5600, running Ultrix 3.1C, with gcc first (well, second, after the native compile didn't do the trick and also had problems with void). Then I saw someone who followed up to Rusty's request saying to undefine volatile. So I did, and recompiled. Then perl passed all of its tests. So I installed it, somewhat trusting that it would be fine. In short, how I compiled with cc: o -DLANGUAGE_C -O -Olimit 3000[*] options o undef waitpid o undef volatile In particular, the various things I did not do which Rusty and Michael say to do: o -DJMPCLOBBER o Use "1" as voidflags (I used the 3 Configure decided on) o Don't use optimisation Are these simple differences in the version of the OS? (Yes, I saw that Michael said you could leave waitpid defined for Ultrix 4.) [*] I am expecting that Rusty's suggesting the use of -Olimit 30000 to optimise eval.c was a typo. I had upped it to 3000 to optimise both t?eval.c and t?toke.c though. My machine wasn't as severely hosed by it as his was. However they did take much longer to compile, but it was still completely done, from Configure to {,taint,suid}perl, in all under an hour. -- (setq mail '("tale@cs.rpi.edu" "tale@ai.mit.edu" "tale@rpitsmts.bitnet"))