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.