problem compiling svn-fpc for arm-linux

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

problem compiling svn-fpc for arm-linux

Koenraad Lelong-2
Hi,
Since a while I'm experiencing problems compiling fpc from svn for
arm-linux. When "make CPU_TARGET=arm OS_TARGET=linux all" arrives at
assembling system.pp for arm it gives following errors :
/home/koenraad/fpc-devel/fpc/compiler/ppcrossarm -Ur -XParm-linux- -Xc
-Xr -Ur -Xs  -n -Fi../inc -Fi../arm -Fi../unix -Fiarm -FE.
-FU/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux -darm -dRELEASE  -Us
-Sg system.pp
/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s: Assembler
messages:
/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51628: Error:
unrecognized symbol type ""
/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51636: Error:
unrecognized symbol type ""
/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51643: Error:
unrecognized symbol type ""
...(about 40 similar lines)
When I look in system.s at those lines they are all similar to :
.section .bss
        .balign 2
        .globl operatingsystem_result
        .type operatingsystem_result,@object
        .size operatingsystem_result,2
operatingsystem_result:
        .zero 2
More specific, the error-lines point to the @object construct.
Is there any way I can avoid these errors ?
I used revision 2898 of fpc. My arm-linux-as is version 2.14.
Thanks for any help,
Koenraad Lelong.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: problem compiling svn-fpc for arm-linux

Peter Vreman
> More specific, the error-lines point to the @object construct.
> Is there any way I can avoid these errors ?
> I used revision 2898 of fpc. My arm-linux-as is version 2.14.

Use the latest binutils 2.16.1



_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: problem compiling svn-fpc for arm-linux

Koenraad Lelong-3
Peter Vreman schreef:
>>More specific, the error-lines point to the @object construct.
>>Is there any way I can avoid these errors ?
>>I used revision 2898 of fpc. My arm-linux-as is version 2.14.
>
>
> Use the latest binutils 2.16.1
>
I downloaded and compiled them from http://www.gnuarm.com, then compiled
fpc with it, with no success. Tried again from www.gnu.org, same result.
Do I have to specify some option ?
Regards,
Koenraad Lelong.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: problem compiling svn-fpc for arm-linux

Koenraad Lelong-2
Koenraad Lelong schreef:

> Peter Vreman schreef:
>
>>> More specific, the error-lines point to the @object construct.
>>> Is there any way I can avoid these errors ?
>>> I used revision 2898 of fpc. My arm-linux-as is version 2.14.
>>
>> Use the latest binutils 2.16.1
>>
> I downloaded and compiled them from http://www.gnuarm.com, then compiled
> fpc with it, with no success. Tried again from www.gnu.org, same result.
> Do I have to specify some option ?
I asked about this on [hidden email]. This is what
Russel King replied :
<quote>
 >> The assembler stumbles on the line containing @object :
 >> .section .bss
 >>     .balign 2
 >>     .globl operatingsystem_result
 >>     .type operatingsystem_result,@object
 >>     .size operatingsystem_result,2
 >> operatingsystem_result:
 >>     .zero 2
 >>
 >> This is what I get :
 >> ...fpc/rtl/units/arm-linux/system.s:51162: Error: unrecognized symbol
 >> type ""

This program is buggy - '@' is used as the comment character for ARM, so
everything after that is ignored.  The assembler therefore sees:

        .type operatingsystem_result,

which is garbage.  The GNU assembler targetted for ARM accepts '#' or
'%' here, not '@'.
</quote>
Is there anyone who can give a hint where to look to fix this ?
Regards,
Koenraad Lelong.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: problem compiling svn-fpc for arm-linux

Jonas Maebe-2

On 19 Mar 2006, at 10:07, Koenraad Lelong wrote:

> This program is buggy - '@' is used as the comment character for  
> ARM, so
> everything after that is ignored.  The assembler therefore sees:
>
> .type operatingsystem_result,
>
> which is garbage.  The GNU assembler targetted for ARM accepts '#'  
> or '%' here, not '@'.
> </quote>
> Is there anyone who can give a hint where to look to fix this ?

Remove "tf_needs_symbol_type" from system_arm_linux_info in compiler/
systems/i_linux.pas

Or alternatively have a look at the output of gcc -S and if it does  
generate some sort of symbol type information, change compiler/
aggas.pas:590 based on "if (target_info.system <> system_arm_linux)  
then ... else ..."


Jonas
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: problem compiling svn-fpc for arm-linux

Koenraad Lelong-3
Jonas Maebe schreef:

>
> On 19 Mar 2006, at 10:07, Koenraad Lelong wrote:
>
>> This program is buggy - '@' is used as the comment character for  ARM, so
>> everything after that is ignored.  The assembler therefore sees:
>>
>>     .type operatingsystem_result,
>>
>> which is garbage.  The GNU assembler targetted for ARM accepts '#'  or
>> '%' here, not '@'.
>> </quote>
>> Is there anyone who can give a hint where to look to fix this ?
>
>
> Remove "tf_needs_symbol_type" from system_arm_linux_info in compiler/
> systems/i_linux.pas
>
> Or alternatively have a look at the output of gcc -S and if it does  
> generate some sort of symbol type information, change compiler/
> aggas.pas:590 based on "if (target_info.system <> system_arm_linux)  
> then ... else ..."
>
>
> Jonas
Thanks,
Enclosed you will find a diff that allows me to get past that error, but
I have another one. Actually two, this morning I had an 'internal
error', but I (stupidly) did another svn-update and now I'm having an
offset too large in sysutils :
/home/koenraad/fpc-devel/fpc/compiler/ppcrossarm -Ur -XParm-linux- -Xc
-Xr -Ur -Xs -O2 -n -Fi../inc -Fi../arm -Fi../unix -Fiarm -FE.
-FU/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux -darm -dRELEASE
../objpas/sysconst.pp
/home/koenraad/fpc-devel/fpc/compiler/ppcrossarm -Ur -XParm-linux- -Xc
-Xr -Ur -Xs -O2 -n -Fi../inc -Fi../arm -Fi../unix -Fiarm -FE.
-FU/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux -darm -dRELEASE
-Fi../objpas/sysutils ../unix/sysutils.pp
/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/sysutils.s: Assembler
messages:
/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/sysutils.s:11815:
Error: offset too large -- `sfm f4,1,[r11,#-1152]'
/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/sysutils.s:11862:
Error: offset too large -- `lfm f4,1,[r11,#-1152]'
sysutils.pp(551,20) Error: Error while assembling exitcode 1
sysutils.pp(551,20) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
make[5]: *** [sysutils.ppu] Fout 1
make[5]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl/linux'
make[4]: *** [linux_all] Fout 2
make[4]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl'
make[3]: *** [rtl] Fout 2
make[3]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler'
make[2]: *** [cycle] Fout 2
make[2]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler'
make[1]: *** [compiler_cycle] Fout 2
make[1]: Leaving directory `/home/koenraad/fpc-devel/fpc'
make: *** [build-stamp.arm-linux] Fout 2
I'm going to look at this.
Regards,
Koenraad Lelong.

Index: fpc/compiler/aggas.pas
===================================================================
--- fpc/compiler/aggas.pas (revision 2969)
+++ fpc/compiler/aggas.pas (working copy)
@@ -587,7 +587,10 @@
                        asmwriteln(Tai_datablock(hp).sym.name);
                      end;
                    if (tf_needs_symbol_type in target_info.flags) then
-                     asmwriteln(#9'.type '+Tai_datablock(hp).sym.name+',@object');
+                    if (target_info.system<>system_arm_linux) then
+                     asmwriteln(#9'.type '+Tai_datablock(hp).sym.name+',@object')
+                    else
+                     asmwriteln(#9'.type '+Tai_datablock(hp).sym.name+',%object');
                    if (tf_needs_symbol_size in target_info.flags) and (tai_datablock(hp).size > 0) then
                      asmwriteln(#9'.size '+Tai_datablock(hp).sym.name+','+tostr(Tai_datablock(hp).size));
                    asmwrite(Tai_datablock(hp).sym.name);

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: problem compiling svn-fpc for arm-linux

Peter Vreman

>>
>>Remove "tf_needs_symbol_type" from system_arm_linux_info in compiler/
>>systems/i_linux.pas
>>Or alternatively have a look at the output of gcc -S and if it does
>>generate some sort of symbol type information, change compiler/
>>aggas.pas:590 based on "if (target_info.system <> system_arm_linux)
>>then ... else ..."
>>
>>Jonas
>Thanks,
>Enclosed you will find a diff that allows me to get past that error, but I
>have another one. Actually two, this morning I had an 'internal error',
>but I (stupidly) did another svn-update and now I'm

Fixed

Peter

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: problem compiling svn-fpc for arm-linux

Koenraad Lelong-2
In reply to this post by Koenraad Lelong-3
Koenraad Lelong schreef:
> Jonas Maebe schreef:
>
...

> /home/koenraad/fpc-devel/fpc/compiler/ppcrossarm -Ur -XParm-linux- -Xc
> -Xr -Ur -Xs -O2 -n -Fi../inc -Fi../arm -Fi../unix -Fiarm -FE.
> -FU/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux -darm -dRELEASE
> ../objpas/sysconst.pp
> /home/koenraad/fpc-devel/fpc/compiler/ppcrossarm -Ur -XParm-linux- -Xc
> -Xr -Ur -Xs -O2 -n -Fi../inc -Fi../arm -Fi../unix -Fiarm -FE.
> -FU/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux -darm -dRELEASE
> -Fi../objpas/sysutils ../unix/sysutils.pp
> /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/sysutils.s: Assembler
> messages:
> /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/sysutils.s:11815:
> Error: offset too large -- `sfm f4,1,[r11,#-1152]'
> /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/sysutils.s:11862:
> Error: offset too large -- `lfm f4,1,[r11,#-1152]'
> sysutils.pp(551,20) Error: Error while assembling exitcode 1
> sysutils.pp(551,20) Fatal: There were 2 errors compiling module, stopping
> Fatal: Compilation aborted
> make[5]: *** [sysutils.ppu] Fout 1
> make[5]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl/linux'
> make[4]: *** [linux_all] Fout 2
> make[4]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl'
> make[3]: *** [rtl] Fout 2
> make[3]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler'
> make[2]: *** [cycle] Fout 2
> make[2]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler'
> make[1]: *** [compiler_cycle] Fout 2
> make[1]: Leaving directory `/home/koenraad/fpc-devel/fpc'
> make: *** [build-stamp.arm-linux] Fout 2
> I'm going to look at this.
> Regards,
> Koenraad Lelong.
I got past this error by modifying sysstr.inc (see the enclosed diff). I
hope it's an acceptable patch.
Now I'm having internal error 200203271 when compiling
buildgtk2.pp/gtkspinbutton.inc. I'm going to look at that.
Regards,
Koenraad Lelong.

Index: fpc/rtl/objpas/sysutils/sysstr.inc
===================================================================
--- fpc/rtl/objpas/sysutils/sysstr.inc (revision 3121)
+++ fpc/rtl/objpas/sysutils/sysstr.inc (working copy)
@@ -1917,7 +1917,7 @@
 Function FormatFloat(Const format: String; Value: Extended): String;
 
 Var
-  buf : Array[0..1024] of char;
+  buf : Array[0..1023] of char;
 
 Begin
   Buf[FloatToTextFmt(@Buf[0],Value,Pchar(Format))]:=#0;

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: problem compiling svn-fpc for arm-linux

Florian Klaempfl
Koenraad Lelong wrote:

> Koenraad Lelong schreef:
>> Jonas Maebe schreef:
>>
> ...
>> /home/koenraad/fpc-devel/fpc/compiler/ppcrossarm -Ur -XParm-linux- -Xc
>> -Xr -Ur -Xs -O2 -n -Fi../inc -Fi../arm -Fi../unix -Fiarm -FE.
>> -FU/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux -darm -dRELEASE
>> ../objpas/sysconst.pp
>> /home/koenraad/fpc-devel/fpc/compiler/ppcrossarm -Ur -XParm-linux- -Xc
>> -Xr -Ur -Xs -O2 -n -Fi../inc -Fi../arm -Fi../unix -Fiarm -FE.
>> -FU/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux -darm -dRELEASE
>> -Fi../objpas/sysutils ../unix/sysutils.pp
>> /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/sysutils.s: Assembler
>> messages:
>> /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/sysutils.s:11815:
>> Error: offset too large -- `sfm f4,1,[r11,#-1152]'
>> /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/sysutils.s:11862:
>> Error: offset too large -- `lfm f4,1,[r11,#-1152]'
>> sysutils.pp(551,20) Error: Error while assembling exitcode 1
>> sysutils.pp(551,20) Fatal: There were 2 errors compiling module, stopping
>> Fatal: Compilation aborted
>> make[5]: *** [sysutils.ppu] Fout 1
>> make[5]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl/linux'
>> make[4]: *** [linux_all] Fout 2
>> make[4]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl'
>> make[3]: *** [rtl] Fout 2
>> make[3]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler'
>> make[2]: *** [cycle] Fout 2
>> make[2]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler'
>> make[1]: *** [compiler_cycle] Fout 2
>> make[1]: Leaving directory `/home/koenraad/fpc-devel/fpc'
>> make: *** [build-stamp.arm-linux] Fout 2
>> I'm going to look at this.
>> Regards,
>> Koenraad Lelong.
> I got past this error by modifying sysstr.inc (see the enclosed diff). I
> hope it's an acceptable patch.

No ;) It solves the problem but not the cause :) I'll look into it when
I find time ;)

> Now I'm having internal error 200203271 when compiling
> buildgtk2.pp/gtkspinbutton.inc. I'm going to look at that.
> Regards,
> Koenraad Lelong.
>
>
> ------------------------------------------------------------------------
>
> Index: fpc/rtl/objpas/sysutils/sysstr.inc
> ===================================================================
> --- fpc/rtl/objpas/sysutils/sysstr.inc (revision 3121)
> +++ fpc/rtl/objpas/sysutils/sysstr.inc (working copy)
> @@ -1917,7 +1917,7 @@
>  Function FormatFloat(Const format: String; Value: Extended): String;
>  
>  Var
> -  buf : Array[0..1024] of char;
> +  buf : Array[0..1023] of char;
>  
>  Begin
>    Buf[FloatToTextFmt(@Buf[0],Value,Pchar(Format))]:=#0;
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: problem compiling svn-fpc for arm-linux

Koenraad Lelong-2
Florian Klaempfl schreef:
> Koenraad Lelong wrote:
>
>>Koenraad Lelong schreef:
>>
>>>Jonas Maebe schreef:
>>>
>>
>>...
>>
...

>>>I'm going to look at this.
>>>Regards,
>>>Koenraad Lelong.
>>
>>I got past this error by modifying sysstr.inc (see the enclosed diff). I
>>hope it's an acceptable patch.
>
>
> No ;) It solves the problem but not the cause :) I'll look into it when
> I find time ;)
>
>
I don't know if it's usefull : those lfm and sfm instructions seem to be
  limited to 10 bit offsets (max 1024, 4byte boundary, found by trail
and error).
I didn't find much information in arm-docs about those floating point
register instructions.
Regards,
Koenraad Lelong.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal