[comp.unix.aix] rt > risc/6000

35002_3025@uwovax.uwo.ca (02/24/90)

	Could anyone comment on the possibility of porting AIX 2.2.1
applications from the RT to AIX 3.0 on the RISC/6000 series machines?

-- 
Kevin-john Conway
...a librarian from hell...

School of Library and Information Science
University of Western Ontario
London Canada
"...deviants from the norm..."

"My ideas may be silly, but I'm not.  I'm positively skewed!"

35002_3025@uwovax.uwo.ca
conway@uwovax.bitnet
kjc@uwovax.bitnet

clarke@acheron.uucp (Ed Clarke/10240000) (02/25/90)

From article <5064.25e6649b@uwovax.uwo.ca>, by 35002_3025@uwovax.uwo.ca:
> 	Could anyone comment on the possibility of porting AIX 2.2.1
> applications from the RT to AIX 3.0 on the RISC/6000 series machines?

I compiled nntp (clientlib.o) and vn with the nntp option on a 6000.
It works ... except that command line parsing is screwed up.  I'll
take a look at it when I get a chance.  Note! The c compiler won't
let you do perverted things like store into a string constant.  I
had to use the AIX tmpnam rather than the vn version.

We ported a fairly large OS/2-PM and X/Windows-Motif application also.
Works perfectly ( port was from AIX/PS2 to 6000, not RT. ).
-- 
Ed Clarke      | Happiness, n.  An agreeable sensation arising from
acheron!clarke | contemplating the misery of another. - Ambrose Bierce

marc@stingray..austin.ibm.com (Marc J. Stephenson/140000;1C-22) (02/27/90)

In article <1990Feb25.065535.25717@acheron.uucp> clarke@acheron.uucp (Ed Clarke/10240000) writes:
>I compiled nntp (clientlib.o) and vn with the nntp option on a 6000.
>It works ... except that command line parsing is screwed up.  I'll
>take a look at it when I get a chance.  Note! The c compiler won't
>let you do perverted things like store into a string constant.  I
>had to use the AIX tmpnam rather than the vn version.
>
ANSI allows compilers to store string constants in read-only storage, and
that is what the compiler is doing.  For some situations where it is not
feasible to change the code to an acceptable form (character arrays, for
instance), there is an option for the compiler to put the string constants
in read-write storage.  This option is -qnoro.  That is, just use
    cc -qnoro hello.c -o hello
to disable the read-only string storage mechanism.

Marc Stephenson (marc@stingray.austin.ibm.com)
Location: F57/992, (79)3-3796, ZIP 2401, 1C-22/992, Austin, Texas
Internal: marc@stingray.austin.ibm.com		VNET: MARC at AUSVM6
External: uunet!cs.utexas.edu!ibmaus!auschs!stingray.austin.ibm.com!marc

mlandau@bbn.com (Matt Landau) (02/27/90)

marc@stingray..austin.ibm.com (Marc J. Stephenson/140000;1C-22) writes:
>.... there is an option for the compiler to put the string constants
>in read-write storage.  This option is -qnoro.  That is, just use
>    cc -qnoro hello.c -o hello
>to disable the read-only string storage mechanism.

If you don't feel like modifying all of your Makefiles to change the 
compiler flags, you should be able to edit /etc/xlc.cfg and set them
once and for all.  

That's one *really* nice thing about the RIOS C compiler -- all of the 
default options are set through this file, and you can have different 
option sets depending on the name by which you invoke the compiler.  
(For instance, cc and xlc are really the same binary, but with different 
options controlled by /etc/xlc.cfg)

When porting code from non-ANSI environments, I found it helpful to
set the options for "cc" so they include -qchars=signed and -qnoro.

jfc@athena.mit.edu (John F Carr) (02/28/90)

I assume from this discussion that the new machine comes with an ANSI
compiler?  Am I correct?


--
    --John Carr (jfc@athena.mit.edu)

marc@stingray..austin.ibm.com (Marc J. Stephenson/140000;1C-22) (02/28/90)

In article <1990Feb27.210550.4826@athena.mit.edu> jfc@athena.mit.edu (John F Carr) writes:
>
>I assume from this discussion that the new machine comes with an ANSI
>compiler?  Am I correct?
>
>
>--
>    --John Carr (jfc@athena.mit.edu)

In a word, yes.  The AIX XL C Compiler is an ANSI compiler which is included
in AIX Version 3 for Risc System/6000.  The .cfg file has stanzas for xlc and
cc, where xlc has -D_ANSI_C_SOURCE defined and a cc stanza where it handles
extended mode programs.  xlc for ANSI, cc for extended (which I take as a
superset of ANSI).  

Extra disclaimer:  I couldn't find exactly how IBM is describing exactly what
constitutes ANSI (my copy is a draft from May 13,1988.  Did it pass?).  Anyway
it handles prototypes and pragmas and stringize and that ilk - ANSI things.

Marc Stephenson (marc@stingray.austin.ibm.com)
DISCLAIMER: The content of this posting is independent of official IBM position.
External: uunet!cs.utexas.edu!ibmaus!auschs!stingray.austin.ibm.com!marc
Internal: marc@stingray.austin.ibm.com 	VNET: MARC at AUSVM6  T/L: 793-3796

smvorkoetter@daisy.waterloo.edu (Stefan M. Vorkoetter) (03/01/90)

I have ported the Maple Computer Algebra system to the RS/6000, and therefore
feel qualified to comment on the C Compiler (since the Maple Kernel is written
in C).

Our Kernel is not an ANSI C program, and xlc spewed pages and pages of error
messages at me when I compiled it.  However, when invoked as cc, the entire
program compiled just fine (in under 10 minutes for 25000 lines of code in
about 50 source files).

So, my understanding is that xlc is an ANSI compiler, while invoking it as cc
makes it behave more like a typical UNIX compiler (ie. it can compile real
programs, not just textbook examples :-).

A further note: turning on the optimizer is significant.  It sped up Maple by
50 to 75 per cent.

Stefan Vorkoetter
Technical Manager
Waterloo Maple Software
(smvorkoetter@daisy.uwaterloo.ca)

steve@qe2.uucp (Steve DeJarnett) (03/03/90)

In article <1990Feb25.065535.25717@acheron.uucp> clarke@acheron.uucp (Ed Clarke/10240000) writes:
>I compiled nntp (clientlib.o) and vn with the nntp option on a 6000.
>It works ... except that command line parsing is screwed up.  I'll
>take a look at it when I get a chance.  Note! The c compiler won't
>let you do perverted things like store into a string constant.  I
>had to use the AIX tmpnam rather than the vn version.

	This is because the compiler obeys ANSI C, which states that you can't
store into a string constant (or words to that effect -- I don't have the 
standard with me at the moment).  The compiler can be made more lax by using 
the -qNORO (no read-only text) flag, which I believe will let you do what you 
want.

	You can also get around this problem by redeclaring the string constant
to be an array of char's, which can be reassigned into.

>Ed Clarke      | Happiness, n.  An agreeable sensation arising from
>acheron!clarke | contemplating the misery of another. - Ambrose Bierce

	Hope that helps a little.

Steve DeJarnett			Internal: steve@ibmpa.tcspa.ibm.com
IBM AWD Palo Alto		UUCP:	  ibmsupt!ibmpa!steve@uunet.uu.net
(415) 855-3510			VNET:	  steve at paloalto
These opinions are my own.  I doubt IBM wants them.......