John Paul Adrian Glaubitz wrote 10 lines
On Mon, May 29, 2017 at 11:53:26AM +0200, Karoly Balogh (Charlie/SGR) wrote:
> > Running the file utility on one of the object files shows that the
> > assembler did not generate 32-bit code. So, at least a hotfix here
> > would be to pass "-m32" to the assembler.
>
> That is easy to add, see in compiler/sparc/cpugas.pas, MakeCmdLine method,
> which works from the templates at the bottom of the same
> file.
Good idea, I'll try that.
I tried adding "-32" like this:
Index: fpc-3.0.0+dfsg/fpcsrc/compiler/sparc/cpugas.pas =================================================================== --- fpc-3.0.0+dfsg.orig/fpcsrc/compiler/sparc/cpugas.pas +++ fpc-3.0.0+dfsg/fpcsrc/compiler/sparc/cpugas.pas @@ -77,7 +77,7 @@ implementation
cpu_SPARC_V7: Replace(result,'$ARCH','-Av7');
cpu_SPARC_V8: Replace(result,'$ARCH','-Av8')
else
- Replace(result,'$ARCH','-Av9')
+ Replace(result,'$ARCH','-Av9 -32')
end
end;
@@ -226,7 +226,7 @@ implementation
{$ifdef FPC_SPARC_V8_ONLY}
asmcmd : '$PIC -o $OBJ $EXTRAOPT $ASM';
{$else}
- asmcmd : '$ARCH $PIC -o $OBJ $EXTRAOPT $ASM';
+ asmcmd : '$ARCH $PIC -o $OBJ -32 $EXTRAOPT $ASM';
{$endif}
supported_targets : [system_sparc_solaris,system_sparc_linux,system_sparc_embedded];
flags : [af_needar,af_smartlink_sections];
@@ -240,7 +240,7 @@ implementation
id : as_ggas;
idtxt : 'GAS';
asmbin : 'gas';
- asmcmd : '$ARCH $PIC -o $OBJ $EXTRAOPT $ASM';
+ asmcmd : '$ARCH $PIC -o $OBJ -32 $EXTRAOPT $ASM';
supported_targets : [system_sparc_solaris,system_sparc_linux,system_sparc_embedded];
flags : [af_needar,af_smartlink_sections];
labelprefix : '.L';
Still generates 64-bit object files:
file /root/fpc/fpc-3.0.0+dfsg/fpcsrc/rtl/units/sparc-linux/strings.o /root/fpc/fpc-3.0.0+dfsg/fpcsrc/rtl/units/sparc-linux/strings.o: ELF 64-bit MSB relocatable, SPARC V9, relaxed memory ordering, version 1 (SYSV), not stripped
Any idea?
Adrian
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer -
`. `' Freie Universitaet Berlin -
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913