Hi,
I am running Mac OS X 10.4.8 on a MacBook Intel 2Ghz Core Duo, using gpc installed from gpc345u2-intel.dmg (downloaded from http:// www.microbizz.nl/gpc.html).
When compiling I get errors involving "indirect jmp without `*'" as in
$ gpc helloworld.p /var/tmp//ccz2cAa1.s:110:indirect jmp without `*' /var/tmp//ccz2cAa1.s:127:indirect jmp without `*' /var/tmp//ccz2cAa1.s:144:indirect jmp without `*' /var/tmp//ccz2cAa1.s:161:indirect jmp without `*' /var/tmp//ccz2cAa1.s:178:indirect jmp without `*' /var/tmp//ccz2cAa1.s:195:indirect jmp without `*' /var/tmp//ccz2cAa1.s:212:indirect jmp without `*'
where helloworld.p is
program helloworld(input, output); begin writeln('Hello world') end.
Do you know what the problem is?
Thanks,
Nestor Aguilera
Nestor Aguilera wrote:
Hi,
I am running Mac OS X 10.4.8 on a MacBook Intel 2Ghz Core Duo, using gpc installed from gpc345u2-intel.dmg (downloaded from http:// www.microbizz.nl/gpc.html).
I don't have am Intel Mac so I can't test to see what might be going wrong. On a PPC Mac, your helloworld.p example compiles and runs with no problem.
When compiling I get errors involving "indirect jmp without `*'" as in
$ gpc helloworld.p
You might try using "gp" instead of "gpc", i.e.,:
gp helloworld.p
Other than that and without a real Intel Mac to test with, I don't know what might be the problem. I'm fairly certain other people have used the GPC in that download package on an Intel Mac and I haven't seen a reports of problems like yours.
Gale Paeper gpaeper@empirenet.com
On 5 Oct, 2006, at 20:12, Gale Paeper wrote:
Nestor Aguilera wrote:
Hi,
I am running Mac OS X 10.4.8 on a MacBook Intel 2Ghz Core Duo, using gpc installed from gpc345u2-intel.dmg (downloaded from http:// www.microbizz.nl/gpc.html).
I don't have am Intel Mac so I can't test to see what might be going wrong. On a PPC Mac, your helloworld.p example compiles and runs with no problem.
I had no problem with Mac OS X 10.3.9 and a G4.
Do you know what the messages mean?
When compiling I get errors involving "indirect jmp without `*'" as in
$ gpc helloworld.p
You might try using "gp" instead of "gpc", i.e.,:
gp helloworld.p
I tried it but got the same errors.
By the way, could you tell me what is the difference between "gp" and "gpc" in this case?
Other than that and without a real Intel Mac to test with, I don't know what might be the problem. I'm fairly certain other people have used the GPC in that download package on an Intel Mac and I haven't seen a reports of problems like yours.
Gale Paeper
Since I use Pascal for work and teaching, I really need a reliable compiler, preferably with fast execution times. Do you think I could use any of the other binaries (e.g. for 10.3.9 PPC or 10.4 PPC) in the Intel machine? Any suggestions?
Thank you very much.
Nestor Aguilera
Nestor Aguilera wrote:
On 5 Oct, 2006, at 20:12, Gale Paeper wrote:
Nestor Aguilera wrote:
Hi,
I am running Mac OS X 10.4.8 on a MacBook Intel 2Ghz Core Duo, using gpc installed from gpc345u2-intel.dmg (downloaded from http:// www.microbizz.nl/gpc.html).
I don't have am Intel Mac so I can't test to see what might be going wrong. On a PPC Mac, your helloworld.p example compiles and runs with no problem.
I had no problem with Mac OS X 10.3.9 and a G4.
Do you know what the messages mean?
First, Adriaan (the person's web site where you download GPC from) is the Mac OS X GPC expert on problems like this. But he's tied up with "pays the bills" work right now so I'm trying to help out where I can.
I'm not for certain about it, but the messages look like some code generation issues in the long jump asnd position independent code area that Adriaan has had to find a fix for before for both the PPC and Intel Mac OS X GPC compilers. But I'm fairly certain Adriaan got all the known issues in that area taken care of in one way or other so at least compiling with the configured default setttings works.
The ".s" and the rest of the file name in "/var/tmp//ccz2cAa1.s" indicates it is the assembler "as" that is finding a problem with the assembly code that the GPC compiler proper has generated for the hello world test program. The file is a temporary file that is the same as you get with "gpc -S helloworld.p". (The -S tell GPC just to compile the Pascal program/unit file to the assembly code stage and not continue on with assembling to object code and linking into a executeable.)
When compiling I get errors involving "indirect jmp without `*'" as in
$ gpc helloworld.p
You might try using "gp" instead of "gpc", i.e.,:
gp helloworld.p
I tried it but got the same errors.
By the way, could you tell me what is the difference between "gp" and "gpc" in this case?
Hmmm. gp is in essense the "new, improved, bug fixed" way to compile Pascal code with the GNU Pascal compiler system. gp does (or is supposed to do) a better job of analyzing and orchestrating what needs to be done to correctly compile and build a Pascal program than what gpc currently does in that area. gp invokes gpc to do most of the dirty work of actually compiling source code files but the command line parameters that get sent to gpc aren't necessarily the same as one might type for a direct gpc command line program compile and build.
For a simple hello world program like yours I'm not sure there is any difference in command line parameters that are used in invoking gpc. It was something of a stab in the dark try at something that might end up working around whatever might be causing the problem.
Other than that and without a real Intel Mac to test with, I don't know what might be the problem. I'm fairly certain other people have used the GPC in that download package on an Intel Mac and I haven't seen a reports of problems like yours.
Gale Paeper
Since I use Pascal for work and teaching, I really need a reliable compiler, preferably with fast execution times. Do you think I could use any of the other binaries (e.g. for 10.3.9 PPC or 10.4 PPC) in the Intel machine? Any suggestions?
The gpc345u2-intel.dmg package installs a GPC cross compiler for PPC code generation along with the native Intel compiler. The installation is set up to associate gpc and gp with the native code generation tools. In the README file that gets installed in /Developer/Pascal/, there is a list of commands that show what commands to use to get a specific architecture's compiler used for compiling and building. On an Intel Mac, gpc-ppc or gp PC=gpc-ppc are the commands for getting a PPC code cross compile. The cross compiled PPC machine code program should still run on an Intel Mac but it will run using the Rosetta PPC emulator. (The cross compiler itself is native machine code so there isn't any performace penalty in compiling. It will just be the produced application that has the emulator prformance penalty.)
Based upon what Glenn Howes has said about 10.3.9 PPC generated programs in the "compiling static library + gpc runtime" discussion thread, that compiler version may have a linking and/or program running problem with 10.4 Macs.
As to the 10.4 PPC binary install set, I don't know whether Adriaan set up the install package to allow for installation on an Intel Mac. In theory, I think the binaries in the 10.4 PPC install package could be used on an Intel Mac but it is strictly a thrillseeker hacker type of thing.
Gale Paeper gpaeper@empirenet.com
Gale: thank you very much for your comments, patience and time! Perhaps Adriaan can give me a hand when he finds some time.
Nestor
=======================================================================
On 6 Oct, 2006, at 7:38, Gale Paeper wrote:
Nestor Aguilera wrote:
On 5 Oct, 2006, at 20:12, Gale Paeper wrote:
Nestor Aguilera wrote:
Hi,
I am running Mac OS X 10.4.8 on a MacBook Intel 2Ghz Core Duo, using gpc installed from gpc345u2-intel.dmg (downloaded from http:// www.microbizz.nl/gpc.html).
I don't have am Intel Mac so I can't test to see what might be going wrong. On a PPC Mac, your helloworld.p example compiles and runs with no problem.
I had no problem with Mac OS X 10.3.9 and a G4.
Do you know what the messages mean?
First, Adriaan (the person's web site where you download GPC from) is the Mac OS X GPC expert on problems like this. But he's tied up with "pays the bills" work right now so I'm trying to help out where I can.
I'm not for certain about it, but the messages look like some code generation issues in the long jump asnd position independent code area that Adriaan has had to find a fix for before for both the PPC and Intel Mac OS X GPC compilers. But I'm fairly certain Adriaan got all the known issues in that area taken care of in one way or other so at least compiling with the configured default setttings works.
The ".s" and the rest of the file name in "/var/tmp//ccz2cAa1.s" indicates it is the assembler "as" that is finding a problem with the assembly code that the GPC compiler proper has generated for the hello world test program. The file is a temporary file that is the same as you get with "gpc -S helloworld.p". (The -S tell GPC just to compile the Pascal program/unit file to the assembly code stage and not continue on with assembling to object code and linking into a executeable.)
When compiling I get errors involving "indirect jmp without `*'" as in
$ gpc helloworld.p
You might try using "gp" instead of "gpc", i.e.,:
gp helloworld.p
I tried it but got the same errors.
By the way, could you tell me what is the difference between "gp" and "gpc" in this case?
Hmmm. gp is in essense the "new, improved, bug fixed" way to compile Pascal code with the GNU Pascal compiler system. gp does (or is supposed to do) a better job of analyzing and orchestrating what needs to be done to correctly compile and build a Pascal program than what gpc currently does in that area. gp invokes gpc to do most of the dirty work of actually compiling source code files but the command line parameters that get sent to gpc aren't necessarily the same as one might type for a direct gpc command line program compile and build.
For a simple hello world program like yours I'm not sure there is any difference in command line parameters that are used in invoking gpc. It was something of a stab in the dark try at something that might end up working around whatever might be causing the problem.
Other than that and without a real Intel Mac to test with, I don't know what might be the problem. I'm fairly certain other people have used the GPC in that download package on an Intel Mac and I haven't seen a reports of problems like yours.
Gale Paeper
Since I use Pascal for work and teaching, I really need a reliable compiler, preferably with fast execution times. Do you think I could use any of the other binaries (e.g. for 10.3.9 PPC or 10.4 PPC) in the Intel machine? Any suggestions?
The gpc345u2-intel.dmg package installs a GPC cross compiler for PPC code generation along with the native Intel compiler. The installation is set up to associate gpc and gp with the native code generation tools. In the README file that gets installed in /Developer/Pascal/, there is a list of commands that show what commands to use to get a specific architecture's compiler used for compiling and building. On an Intel Mac, gpc-ppc or gp PC=gpc-ppc are the commands for getting a PPC code cross compile. The cross compiled PPC machine code program should still run on an Intel Mac but it will run using the Rosetta PPC emulator. (The cross compiler itself is native machine code so there isn't any performace penalty in compiling. It will just be the produced application that has the emulator prformance penalty.)
Based upon what Glenn Howes has said about 10.3.9 PPC generated programs in the "compiling static library + gpc runtime" discussion thread, that compiler version may have a linking and/or program running problem with 10.4 Macs.
As to the 10.4 PPC binary install set, I don't know whether Adriaan set up the install package to allow for installation on an Intel Mac. In theory, I think the binaries in the 10.4 PPC install package could be used on an Intel Mac but it is strictly a thrillseeker hacker type of thing.
Gale Paeper gpaeper@empirenet.com
Nestor Aguilera wrote:
I am running Mac OS X 10.4.8 on a MacBook Intel 2Ghz Core Duo, using gpc installed from gpc345u2-intel.dmg (downloaded from http:// www.microbizz.nl/gpc.html).
When compiling I get errors involving "indirect jmp without `*'" as in
$ gpc helloworld.p /var/tmp//ccz2cAa1.s:110:indirect jmp without `*' /var/tmp//ccz2cAa1.s:127:indirect jmp without `*' /var/tmp//ccz2cAa1.s:144:indirect jmp without `*' /var/tmp//ccz2cAa1.s:161:indirect jmp without `*' /var/tmp//ccz2cAa1.s:178:indirect jmp without `*' /var/tmp//ccz2cAa1.s:195:indirect jmp without `*' /var/tmp//ccz2cAa1.s:212:indirect jmp without `*'
where helloworld.p is
program helloworld(input, output); begin writeln('Hello world') end.
Do you know what the problem is?
That looks like versioning problem: I suspect that this version of gpc is incompatible with the assembler you have. In detail: gpc translates Pascal program into assembly and then invokes assembler to translate it into machine code. Assembly files are text file where each line denotes a single machine instruction. Exact form of assembly instructions depends on assembler in use (gpc on Mac OS X uses assembler provided by Apple). Some time ago may Intel assemblers decided that they want extra stars in jump instructions. AFAIK Apple did not want stars. I suspect that in Mac OS X 10.4.8 Apple changed the assembler to require stars in jump instructions.
It is likely that a simple workaround (like installing older assembler) may work, however since I am not a Mac user I can not give a more specific hint. I hoped that Mac people know more about the problem. In the future GPC needs to be updated to handle the problem. More precisely, GPC uses GCC backend and it is GCC which needs an update. AFAICS all official versions of GCC have the same problem.
On 6 Oct, 2006, at 8:41, Waldek Hebisch wrote:
Nestor Aguilera wrote:
I am running Mac OS X 10.4.8 on a MacBook Intel 2Ghz Core Duo, using gpc installed from gpc345u2-intel.dmg (downloaded from http:// www.microbizz.nl/gpc.html).
When compiling I get errors involving "indirect jmp without `*'" as in
$ gpc helloworld.p /var/tmp//ccz2cAa1.s:110:indirect jmp without `*' /var/tmp//ccz2cAa1.s:127:indirect jmp without `*' /var/tmp//ccz2cAa1.s:144:indirect jmp without `*' /var/tmp//ccz2cAa1.s:161:indirect jmp without `*' /var/tmp//ccz2cAa1.s:178:indirect jmp without `*' /var/tmp//ccz2cAa1.s:195:indirect jmp without `*' /var/tmp//ccz2cAa1.s:212:indirect jmp without `*'
where helloworld.p is
program helloworld(input, output); begin writeln('Hello world') end.
Do you know what the problem is?
That looks like versioning problem: I suspect that this version of gpc is incompatible with the assembler you have. In detail: gpc translates Pascal program into assembly and then invokes assembler to translate it into machine code. Assembly files are text file where each line denotes a single machine instruction. Exact form of assembly instructions depends on assembler in use (gpc on Mac OS X uses assembler provided by Apple). Some time ago may Intel assemblers decided that they want extra stars in jump instructions. AFAIK Apple did not want stars. I suspect that in Mac OS X 10.4.8 Apple changed the assembler to require stars in jump instructions.
It is likely that a simple workaround (like installing older assembler) may work, however since I am not a Mac user I can not give a more specific hint. I hoped that Mac people know more about the problem. In the future GPC needs to be updated to handle the problem. More precisely, GPC uses GCC backend and it is GCC which needs an update. AFAICS all official versions of GCC have the same problem.
Thanks for the comments, they are very enlightening.
Compiling the equivalent "helloworld.c" with gcc doesn't bring up any error messages. The gcc I have installed is "gcc version 4.0.1 (Apple Computer, Inc. build 5363)", and the gpc is "gpc version 20051116, based on gcc-3.4.5", so indeed there is a mismatch between the gcc's.
Nestor