On 24 Aug 2010, at 23:35, Morton, John wrote:
Given that the "with gcc" binary tarballs are intended to be stand- alone I am somewhat surprised that installing 32 bit versions of "all dev packages (including libc-dev)" may be needed.
A compiler only transforms source code into machine code. If your program depends on functionality that is inside libraries, then you obviously have to install those libraries as well. GPC programs by default use functionality from libc afaik, and hence to compile such programs you have to have the right libraries installed.
And since I do not come from the C/Linux world (my background is primarily Fortan, Pascal, Ada) I'm not sure quite what is meant by "dev packages" - are we talking only libraries (libc-dev), tools (gcc, gpc, etc.) or something else?
Only libraries.
And which ones do I need, if any?
libc, plus whichever libraries you use functionality from in your program.
First: Am I correct in assuming that the "i686" versions are: a) 32- bit not 64-bit,
Yes.
and more importantly, b) NOT for the iTanium chip?
The Itanium's monicker is ia64. i686 means "sixth generation of the 80x86 processors", i.e., basically any 80x86-compatible micro- architecture that came after the original Pentium (Pentium Pro, AMD K6, Cyrix 6x86, Pentium II etc).
And am I correct in that a true 64-bit wide (x86_64) gpc Linux compiler is not yet available?
See Maurice' answer for this.
If so I expect I need to install the i686 version of the "binutils" package. (yum only lists the x86_64 version and the trace below implies that the 64 bit assembler is being used - this seems to confirm my initial suspicion about a word length mismatch.)
The x86-64 version of the assembler can also assemble 32 bit code. You just have to specify the correct parameter, which is "--32" (so you'd have to use -Wa,--32 rather than -Wa,-m32, sorry about that).
BTW, The application has safety, security, configuration control and legal reasons that preclude the target machines from ever having anything installed that someone can use (e.g. compilers) to compromise the system. All development is done here, all that our field sites ever get are the binary executables in the form of an install package.
That is no problem.
[root@lxstn08 dev]# gpc -v -Wa -m32 hello.pas
-Wa by itself does nothing. That parameter means "pass everything after the comma literally as option to the assembler". If you don't add anything, nothing will be passed. Use this instead: -Wa,--32 (including the comma, and no spaces in between)
Jonas