Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SUMMARY: 64bit Solaris 8 Questions

2 views
Skip to first unread message

Rachel Polanskis

unread,
Dec 22, 2000, 3:19:14 AM12/22/00
to
Thankyou to everyone who helped me answer my 64bit newbie question.

A summary of the answers lies below. In short, I am running the
64bit kernel and do not have to alter my path or do much to
use it as an end user. The information below is quite enlightening.


rachel


From: "Scanlan, Brian (5188)"

Hiya,

Yes, that isainfo output shows you're running a 64-bit kernel.

The OS automatically runs the 64-bit versions of the programs. Check
out the truss output of "ps". You'll see the /usr/bin/sparcv9/ps binary
being
forked and executed.

64-bit binarys/librarys aren't automatically generated by compilers on
64-bit
systems, you've to have a 64-bit capable compiler (The Sun workshop ones
are, as is the
latest development version of gcc) and pass the right options to the
program.

From: Casper Dik

>Hello,
>I have installed Solaris 8 64bit version on my Ultra 30 as a Christmas
>project. However, I have some questions regarding it's use.
>
>Firstly, How do I know I am using the 64bit kernel?
>
>Is this via the isalist and isainfo commands?
>
>My system reports:
>
># isainfo -vk
>64-bit sparcv9 kernel modules
>
>I presume this means I am Ok?

Yes.

>Secondly, how do I use 64bit programs as supplied by the OS by default?

Most OS programs are 32 bit; however, some are supplied as 32 bit and 64 bit;
the OS will chose the proper one.

>I note that all the command line tools I run are 32bit by default.
>Then I note that the 64bit variants are in a separate directory called
>"sparcv9". For example "/usr/bin/ps" is the default and "/usr/bin/sparcv9/ps"
>is the 64bit version.

The /usr/bin/ps executable is a link to /usr/lib/isaexec; it in turn
executes the proper ps version.

>Do I just modify my $PATH to point to the 64bit versions ahead of the
>32bit ones or is my install incorrect?

NO!

>Thirdly, I installed disksuite but it appears to only be using the
>32bit version or am I now using the 64bit kernel modules anyway?

If it works, you installed the 64 bit modules.

>When I run "modinfo" it doesn't really tell me if I am using 64bit or
>32bit versions of the kernel drivers. How do I probe to see what
>module I am using to see if it's 64 or 32bit?

If it's loaded in a 64 bit kernel, it's a 64 bit module.

>Also, I note that I have 64bit and 32bit versions of my Xserver installed.
>The Xserver itself seems to default to a 32bit one.

You don't; there's only a 32 bit version of the X server.

>How do I setup my X environment to use the 64bit programs and libraries
>over the 32bit ones?

You don't. The 64 bit libraries have been provided to enable you to
run 64 bit X programs. Running all programs as 64 bit programs is
actually slower; 64 bit programs use more memory and need to move
more data around. 64 bitness is only useful for large programs.

>How do I setup my environment to be 64bit aware for gcc and so on?

64 bit gcc is merely experimental; the latest experimental gccs builds
as dual mode 32 bit/64bit compilers.

Casper


From: Scott Howard

Hi Rachel,


On Thu, Dec 21, 2000 at 11:27:09AM +1100, Rachel Polanskis wrote:
> Hello,
> I have installed Solaris 8 64bit version on my Ultra 30 as a Christmas
> project. However, I have some questions regarding it's use.
>
> Firstly, How do I know I am using the 64bit kernel?
>
> Is this via the isalist and isainfo commands?
>
> My system reports:
>
> # isainfo -vk
> 64-bit sparcv9 kernel modules
>
> I presume this means I am Ok?

Yup. the 64-bit means you're running a 64 bit kernel

> Secondly, how do I use 64bit programs as supplied by the OS by default?
>
> I note that all the command line tools I run are 32bit by default.
> Then I note that the 64bit variants are in a separate directory called
> "sparcv9". For example "/usr/bin/ps" is the default and "/usr/bin/sparcv9/ps"
> is the 64bit version.

If you have a look, you'll find that a number of programs like "ps"
are just hardlinks to the same program.
This then checks to see if you're on a 32 bit or 64 bit kernel, and runs
the relevant version of the program from the sparcv7/ or sparcv9/
directory.

ls -li /usr/bin/ps
and then
ls -li /usr/bin | grep XXXX
where XXXX is the first number from the first ls (ie, the inode number)

> Thirdly, I installed disksuite but it appears to only be using the
> 32bit version or am I now using the 64bit kernel modules anyway?

Solaris 8 doesn't support 32 bit kernel modules when running in 64 bit mode.
Thus you must be running the 64 bit version of ODS (It's package name
has an "x" on the end if I remember correctly).

> When I run "modinfo" it doesn't really tell me if I am using 64bit or
> 32bit versions of the kernel drivers. How do I probe to see what
> module I am using to see if it's 64 or 32bit?

As above. They are all 64 bit.

> Also, I note that I have 64bit and 32bit versions of my Xserver installed.
> The Xserver itself seems to default to a 32bit one.
>
> How do I setup my X environment to use the 64bit programs and libraries
> over the 32bit ones?

No idea!

> Lastly, I am also interested in using the 64bit libs to
> compile source code (where possible). Is this done automatically
> or do I have to do something to my environment? I typically use
> gcc (32bit) but was intending to try the 64bit version for evaluation.

You'll need to get a 64 bit version of the latest gcc, but it's not
exactly recommended (It'll work, but you'll do better using Sun Workshop)

> I thought about using the Sun Workshop 5.0 Eval CD but I don't want
> to become dependant on it as I cannot afford it merely for personal
> education use!

You realise there's now a cheaper, single user version of Sun Workshop?
With an education discount it's probably quite affordable.

> How do I setup my environment to be 64bit aware for gcc and so on?

You need to add a few flags for Sun Workshop (It's documented somewhere -
let me know if you cant find them). No idea for gcc, but I presume it's
similar.

> Have a safe, happy Christmas/Hanukah/Ramadan/&c.

And I hope your air conditioners working for tomorrow :)

Scott.


From: Ric Anderson

The tools in /usr/bin that have v9 equivalents are front ends. If the
architecture is 64 bit, they execute /usr/bin/sparcv9/xxx. Otherwise
they run /usr/bin/sparcv7/xxx. No path change is needed.

If your compiler specifies 64 bit code, then the proper libraries
will be used automatically. There is no official 64 bit support from
gcc yet. I've downloaded a BETA test version of the next gcc from
ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/2000-09-11/egcs-core-20000911.tar.gz
and beaten it into compiling, and in turn used it to build scsiinfo,
lsof, and top. However I would not sleep nights if that compiler
were in production use. Its just too temperamental at this point.

I suspect the gcc group will have that in "distribution form" soon
though.

No ideas on disksuite - we stopped using that a long time ago.

Cheers,
Ric Anderson (r...@opus1.com)

From: Christophe Dupre

On Thu, 21 Dec 2000, Rachel Polanskis wrote:

> Hello,
> I have installed Solaris 8 64bit version on my Ultra 30 as a Christmas
> project. However, I have some questions regarding it's use.
>
> Firstly, How do I know I am using the 64bit kernel?
>
> Is this via the isalist and isainfo commands?

Yes.

> My system reports:
>
> # isainfo -vk
> 64-bit sparcv9 kernel modules
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

That means you are running in 64 bits.

> I presume this means I am Ok?
>
> Secondly, how do I use 64bit programs as supplied by the OS by default?
>
> I note that all the command line tools I run are 32bit by default.
> Then I note that the 64bit variants are in a separate directory called
> "sparcv9". For example "/usr/bin/ps" is the default and "/usr/bin/sparcv9/ps"
> is the 64bit version.

You don't do anything - Solaris in 64bit mode can run 32bit programs AND
64bit ones. At the same time. So most utilities are programmed in 32bits.
Those that need to interface with the kernel have both versions, but the
32bit one will detect a 64bit OS and spawn the 64bit version. Ergo, you
don't need to do anything.

> Thirdly, I installed disksuite but it appears to only be using the
> 32bit version or am I now using the 64bit kernel modules anyway?

Which version of Disksuite ? 4.2 and above come with 64bit modules which
will be used by 64bit Solaris automatically (unless you messed up the
installation).

> When I run "modinfo" it doesn't really tell me if I am using 64bit or
> 32bit versions of the kernel drivers. How do I probe to see what
> module I am using to see if it's 64 or 32bit?

They're all either 32bit or 64bit, the kernel cannot be mixed. isainfo
will tell you which you are running.

> Also, I note that I have 64bit and 32bit versions of my Xserver installed.
> The Xserver itself seems to default to a 32bit one.
>
> How do I setup my X environment to use the 64bit programs and libraries
> over the 32bit ones?

It is automatic. The linker knows about the word size of your binary and
will use the adequate library.

> Lastly, I am also interested in using the 64bit libs to
> compile source code (where possible). Is this done automatically
> or do I have to do something to my environment? I typically use
> gcc (32bit) but was intending to try the 64bit version for evaluation.

What using Sun Workshop, you have to specify the -xarch=v9 switch to
generate 64bit code. I don't know what the gcc switch is, but there's
probably one.

> Sorry for the stupid questions - I am a 64bit newbie and want to
> get my feet wet on this new OS! Any FAQ pointers, Howtos and other
> docs would be great. The Sun docs seem a bit thin on the ground
> regarding my specific questions.

From: Darren Dunham

>
> Hello,
> I have installed Solaris 8 64bit version on my Ultra 30 as a Christmas
> project. However, I have some questions regarding it's use.
>
> Firstly, How do I know I am using the 64bit kernel?

http://www.science.uva.nl/pub/solaris/solaris2.html#q3.64
3.64) How can I tell whether I'm running a 32 or 64 bit kernel?

The command "isainfo" was provided for precisely that reason;

64% isainfo -kv
64-bit sparcv9 kernel modules

32% isainfo -kv
32-bit sparc kernel modules

> Thirdly, I installed disksuite but it appears to only be using the
> 32bit version or am I now using the 64bit kernel modules anyway?

32 bit kernel modules cannot load into a 64bit kernel, so you must be
using the 64bit version.

> When I run "modinfo" it doesn't really tell me if I am using 64bit or
> 32bit versions of the kernel drivers. How do I probe to see what
> module I am using to see if it's 64 or 32bit?

See above. They must be 64 bit.

> Also, I note that I have 64bit and 32bit versions of my Xserver installed.
> The Xserver itself seems to default to a 32bit one.
>
> How do I setup my X environment to use the 64bit programs and libraries
> over the 32bit ones?

Why would you have a 64bit X server?

Kernel modules *must* be 64 bit. Programs that interface with the
kernel may benefit somewhat by being 64bit. Most other programs have no
benefit and will not be recompiled just to make it bigger.

Making a 64bit app means that it won't work on a 32bit machine.
Everything that will work on both will probably be left as 32bit.

Things that need to use more than 4G virtual memory will need to be
64bit. Some 64bit instructions are only available to 64bit apps.

Notice that most of the items in usr/bin/sparcv9 are related to
processes in some way: ps, all the p* utils, truss, adb, gcore....
Because they have to understand 64bit processes, they have different
versions.

Virtually everything else exists only in a 32bit version that will run
perfectly under both 32bit and 64bit.

/usr/bin/ps is smart enough to know if it needs to load the v7 or the v9
version.

> Lastly, I am also interested in using the 64bit libs to
> compile source code (where possible). Is this done automatically
> or do I have to do something to my environment? I typically use
> gcc (32bit) but was intending to try the 64bit version for evaluation.

Use it for evaluation. There have been some reported problems with
64bit kernel modules. I believe you just tell it you want to use the v9
instructions.

> I thought about using the Sun Workshop 5.0 Eval CD but I don't want
> to become dependant on it as I cannot afford it merely for personal
> education use!
>
> How do I setup my environment to be 64bit aware for gcc and so on?

Just install the latest test version of GCC.


From: Frederick Hall

See Sun InfoDoc 17115 as a start.

From: Michael Hill

On Thu, Dec 21, 2000 at 11:27:09AM +1100, Rachel Polanskis wrote:
>Firstly, How do I know I am using the 64bit kernel?
>
>Is this via the isalist and isainfo commands?

Yes.

>My system reports:
>
># isainfo -vk
>64-bit sparcv9 kernel modules
>
>I presume this means I am Ok?

Yes.

>Secondly, how do I use 64bit programs as supplied by the OS by default?

You don't have to do anything. The kernel exec()'s the right version.

>Lastly, I am also interested in using the 64bit libs to
>compile source code (where possible). Is this done automatically
>or do I have to do something to my environment? I typically use
>gcc (32bit) but was intending to try the 64bit version for evaluation.

Where do you get this 64-bit gcc??

>I thought about using the Sun Workshop 5.0 Eval CD but I don't want
>to become dependant on it as I cannot afford it merely for personal
>education use!

I completely agree & sympathize! :^/


From: Kevin Buterbaugh


Rachel,

As far as I can tell from your e-mail, you have everything installed
correctly. You are running the 64-bit kernel. You should definitely not
modify your PATH. There are not 64-bit versions of every binary available.
For those that are available, the kernel will automagically run the 64-bit
version. Using /usr/bin/ps as the example, you'll note that it has 38 hard
links. That's because it (and a bunch of other commands) are linked to
/usr/lib/isaexec. isaexec determines whether you're running a 32 or 64-bit
kernel and invokes the proper executable for you.

You are running 64-bit drivers. AFAIK, 64-bit Solaris can't use a
32-bit driver (note that it can run 32-bit applications, however). Hope
this helps...

--
Rachel Polanskis Kingswood, Greater Western Sydney, Australia
gr...@zeta.org.au http://www.zeta.org.au/~grove/grove.html
"People don't say sorry in this country" - Max Connors (Seachange)

_______________________________________________
sunmanagers mailing list
sunma...@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers

0 new messages