Date: Wed, 11 Sep 2002 15:36:56 -0400 (EDT) From: Andrew Gallatin <gallatin@cs.duke.edu> To: Mike Tibor <tibor@tibor.org> Cc: alpha@FreeBSD.ORG Subject: Re: Using GCC3.x and/or CPML to Build World/Kernel Message-ID: <15743.39768.338356.544370@grasshopper.cs.duke.edu> In-Reply-To: <20020911103851.B53911-100000@xena.mikey.net> References: <20020911103851.B53911-100000@xena.mikey.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Mike Tibor writes: > I've got a 164LX and an old AlphaStation 200 4/233 that I've been playing > with, and was curious about the use of CCC, CPML, and GCC3[012] to get > some better performance. > > In searching the list archive, I noticed a reply Andrew Gallatin posted > (the subject was "Re: make world with compaq compiler"), a couple of > months ago, in which he mentioned that CCC wouldn't work to build world at > this time (Andrew, does this also include the kernel?). Yes, especially the kernel. Compaq ccc doesn't understand gnu asm assembly convetions. Certain header files which are included in most of the kernel files contain lots of gnu assembly code. Eg. /sys/alpha/include/alpha_cpu.h would need lots of ifdef's like this: static __inline unsigned long alpha_implver(void) { u_int64_t result; #ifdef __GNUC__ __asm__ __volatile__ ( "implver %0" : "=r" (result)); return result; #elif __DECC return asm("implver %v0"); #else #error "unsupported compiler" #endif } Its mainly a matter of somebody who understands both asm formats, and who has the time to do the manual cranking. If you'd like to do the job, go for it! There have been other people talking about building the world with icc (the intel c compiler) on x86. You might want to collaborate with them. I've forgotten if ccc understands __attributes__() directives. That may be another source of problems. I think icc may have problems here too, but I'm fuzzy. > Using Linux on the old AS200, I had some success rebuilding most binaries > that had been linked to libm, with cpml. Any opinions how that might work > on FreeBSD? It should work fine. In many cases, just linking with cpml provides 90% of the speedup that compiling with ccc would provide. > Also, I remember reading on axp-list@redhat.com awhile back that GCC 3 > would be a significant improvement over 2.95 for the Alpha--what kind of > luck have people had using more recent GCC releases? (ie, "generally > works okay, but don't even think about complaining here if you have > problems", or "forget it--it's not even close") It may be from poor > search wording on my part, but I haven't been able to find anything in the > archive about this one. > > I'm asking mainly just out of curiousity, but I thought it would save a > significant amount of work in the event that doing any of the above > completely hosed my systems. -current uses gcc3. I have not tried anything mathamatically intensive, so I do not have a lot to say about it. I did notice that it seems to take a little longer to compile the same code using gcc3 vs. gcc2. The current gcc33 port does not build on -stable. The java compiler (of all things!) craps out with a floating point exception in printf when creating Double.h. To work around it, I built a shared libc with -mieee. Cheers, Drew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15743.39768.338356.544370>