[Lazarus] Lazarus on POWER9 Little Endian

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

[Lazarus] Lazarus on POWER9 Little Endian

Free Pascal - Lazarus mailing list
Hello,
I am trying to use Lazarus on a ppc64el processor under Ubuntu.

Unfortunately startlazarus and lazarus crash with a segmentation fault in
a call to XGetWindowProperty in gtk2widgetset.inc in function
TGtk2WidgetSet.GetWindowManager.

Unable to fix this, I added an "Exit" command early in this function.

I then get "The program 'startlazarus' received an X Window System error.
The error was "BadValue (integer parameter out of range for operation)
(Details: serial 866 error_code 2 request_code 130 minor_code 3)"

and it does not run.

Any ideas what might be needed to enable Lazarus to run on a ppc64el CPU?

The system is a Blackbird mainboard from Raptor Computing Systems.

Thanks.
Tobias Giesen


--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Lazarus on POWER9 Little Endian

Free Pascal - Lazarus mailing list
Am 18.08.2019 um 11:41 schrieb Tobias Giesen via lazarus:
> Hello,
> I am trying to use Lazarus on a ppc64el processor under Ubuntu.
>
> Unfortunately startlazarus and lazarus crash with a segmentation fault in
> a call to XGetWindowProperty in gtk2widgetset.inc in function
> TGtk2WidgetSet.GetWindowManager.

A stack trace and assembler dump at the crash location might be helpful ...
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Lazarus on POWER9 Little Endian

Free Pascal - Lazarus mailing list
Hello,
I compiled lazarus trunk with Free Pascal Compiler version 3.3.1 [2019/07/12] for powerpc64.

I also tried an older FPC snapshot but the result is the same
(Free Pascal Compiler version 3.1.1 [2017/10/19] for powerpc64)

(gdb) run
Starting program: /home/tobias/lazarus/startlazarus
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/powerpc64le-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7c3aa64 in XGetWindowProperty () from /lib/powerpc64le-linux-gnu/libX11.so.6
(gdb) info stack
#0  0x00007ffff7c3aa64 in XGetWindowProperty () at /lib/powerpc64le-linux-gnu/libX11.so.6
#1  0x0000000010155b30 in XLIB_$$_XGETWINDOWPROPERTY$crcF838B835 ()
#2  0x00000000100e6310 in GETWINDOWMANAGER (this=0x7ffff5700f30) at gtk2widgetset.inc:4424

(gdb) info registers
r0             0x10155b30          269835056
r1             0x7fffffffdf40      140737488346944
r2             0x7ffff7dc7c00      140737351810048
r3             0x10a0d1e0          278974944
r4             0x2a1               673
r5             0x188               392
r6             0x0                 0
r7             0x400               1024
r8             0x0                 0
r9             0x7fffffffdfb0      140737488347056
r10            0x0                 0
r11            0xffffffffffffffd8  18446744073709551576
r12            0x7ffff7c3a9c0      140737350183360
r13            0x7ffff60fd540      140737321620800
r14            0x0                 0
r15            0x0                 0
r16            0x0                 0
r17            0x0                 0
r18            0x0                 0
r19            0x0                 0
r20            0x2a1               673
r21            0x188               392
r22            0x21                33
r23            0x0                 0
r24            0x0                 0
r25            0x400               1024
r26            0x7fffffffe1d0      140737488347600
r27            0x7fffffffe1c0      140737488347584
r28            0x7fffffffe0e0      140737488347360
r29            0x100d93d0          269325264
r30            0x7fffffffe1c8      140737488347592
r31            0x10a0d1e0          278974944
pc             0x7ffff7c3aa64      0x7ffff7c3aa64 <XGetWindowProperty+164>
msr            0x900000000000d933  10376293541461678387
cr             0x28000244          671089220
lr             0x10155b30          0x10155b30 <XLIB_$$_XGETWINDOWPROPERTY$crcF838B835+72>
ctr            0x7ffff7c3a9c0      140737350183360
xer            0x0                 0
fpscr          0x82020090          2181169296
vscr           0x0                 0
vrsave         0xffffffff          -1
ppr            0xc000000000000     3377699720527872
--Type <RET> for more, q to quit, c to continue without paging--c
dscr           0x10                16
tar            0x0                 0
bescr          <unavailable>
ebbhr          <unavailable>
ebbrr          <unavailable>
mmcr0          0x0                 0
mmcr2          0x0                 0
siar           0x0                 0
sdar           0x0                 0
sier           0x0                 0
orig_r3        0x7ffff7fc9bd0      140737353915344
trap           0x300               768

layout asm:

  >│0x7ffff7c3aa64 <XGetWindowProperty+164> std     r10,0(r29)                                                                                                │
   │0x7ffff7c3aa68 <XGetWindowProperty+168> stxvd2x vs0,r9,r11                                                                                                │
   │0x7ffff7c3aa6c <XGetWindowProperty+172> std     r10,0(r26)                                                                                                │
   │0x7ffff7c3aa70 <XGetWindowProperty+176> std     r10,88(r1)                                                                                                │
   │0x7ffff7c3aa74 <XGetWindowProperty+180> std     r10,96(r1)                                                                                                │
   │0x7ffff7c3aa78 <XGetWindowProperty+184> ld      r9,2408(r3)                                                                                               │
   │0x7ffff7c3aa7c <XGetWindowProperty+188> cmpdi   cr7,r9,0                                                                                                  │
   │0x7ffff7c3aa80 <XGetWindowProperty+192> beq     cr7,0x7ffff7c3aa98 <XGetWindowProperty+216>                                                               │
   │0x7ffff7c3aa84 <XGetWindowProperty+196> ld      r9,0(r9)                                                                                                  │
   │0x7ffff7c3aa88 <XGetWindowProperty+200> mtctr   r9                                                                                                        │
   │0x7ffff7c3aa8c <XGetWindowProperty+204> mr      r12,r9                                                                                                    │
   │0x7ffff7c3aa90 <XGetWindowProperty+208> bctrl                                                                                                             │
   │0x7ffff7c3aa94 <XGetWindowProperty+212> ld      r2,24(r1)                                                                                                 │
   │0x7ffff7c3aa98 <XGetWindowProperty+216> li      r5,24                                                                                                     │
   │0x7ffff7c3aa9c <XGetWindowProperty+220> li      r4,20                                                                                                     │
   │0x7ffff7c3aaa0 <XGetWindowProperty+224> mr      r3,r31                                                                                                    │
   │0x7ffff7c3aaa4 <XGetWindowProperty+228> bl      0x7ffff7c6a168 <_XGetRequest+8>                                                                           │
   │0x7ffff7c3aaa8 <XGetWindowProperty+232> nop                                                                                                               │
   │0x7ffff7c3aaac <XGetWindowProperty+236> li      r6,0                                                                                                      │
   │0x7ffff7c3aab0 <XGetWindowProperty+240> li      r5,0                                                                                                      │
   │0x7ffff7c3aab4 <XGetWindowProperty+244> addi    r4,r1,40                                                                                                  │
   │0x7ffff7c3aab8 <XGetWindowProperty+248> mr      r9,r3                                                                                                     │
   │0x7ffff7c3aabc <XGetWindowProperty+252> stw     r20,4(r3)                                                                                                 │
   │0x7ffff7c3aac0 <XGetWindowProperty+256> stw     r21,8(r3)                                                                                                 │
   │0x7ffff7c3aac4 <XGetWindowProperty+260> mr      r3,r31                                                                                                    │
   │0x7ffff7c3aac8 <XGetWindowProperty+264> stb     r23,1(r9)  



On Mon, Aug 19, 2019 at 9:24 PM Florian Klaempfl via lazarus <[hidden email]> wrote:
Am 18.08.2019 um 11:41 schrieb Tobias Giesen via lazarus:
> Hello,
> I am trying to use Lazarus on a ppc64el processor under Ubuntu.
>
> Unfortunately startlazarus and lazarus crash with a segmentation fault in
> a call to XGetWindowProperty in gtk2widgetset.inc in function
> TGtk2WidgetSet.GetWindowManager.

A stack trace and assembler dump at the crash location might be helpful ...
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Lazarus on POWER9 Little Endian

Free Pascal - Lazarus mailing list
In reply to this post by Free Pascal - Lazarus mailing list
It seems to work slightly better on Fedora. It doesn't cause a signal and very briefly, an empty small window appears. The console output is like this:
[tobias@blackbird lazarus]$ ./startlazarus
 is a file

(startlazarus:3893): Gdk-ERROR **: 13:02:08.997: The program 'startlazarus' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
  (Details: serial 334 error_code 2 request_code 130 minor_code 3)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
Trace/breakpoint trap (core dumped)

On Mon, Aug 19, 2019 at 9:24 PM Florian Klaempfl via lazarus <[hidden email]> wrote:
Am 18.08.2019 um 11:41 schrieb Tobias Giesen via lazarus:
> Hello,
> I am trying to use Lazarus on a ppc64el processor under Ubuntu.
>
> Unfortunately startlazarus and lazarus crash with a segmentation fault in
> a call to XGetWindowProperty in gtk2widgetset.inc in function
> TGtk2WidgetSet.GetWindowManager.

A stack trace and assembler dump at the crash location might be helpful ...
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Lazarus on POWER9 Little Endian

Free Pascal - Lazarus mailing list
When debugging these kinds of X related errors, start your application with the (gtk) X option in synchronized mode.
I can't remember which option it was, but Google will tell

Marc

On August 20, 2019 1:06:35 PM GMT+02:00, Tobias Giesen via lazarus <[hidden email]> wrote:

>It seems to work slightly better on Fedora. It doesn't cause a signal
>and
>very briefly, an empty small window appears. The console output is like
>this:
>[tobias@blackbird lazarus]$ ./startlazarus
> is a file
>
>(startlazarus:3893): Gdk-ERROR **: 13:02:08.997: The program
>'startlazarus'
>received an X Window System error.
>This probably reflects a bug in the program.
>The error was 'BadValue (integer parameter out of range for
>operation)'.
>  (Details: serial 334 error_code 2 request_code 130 minor_code 3)
>  (Note to programmers: normally, X errors are reported asynchronously;
>   that is, you will receive the error a while after causing it.
>   To debug your program, run it with the --sync command line
>   option to change this behavior. You can then get a meaningful
>backtrace from your debugger if you break on the gdk_x_error()
>function.)
>Trace/breakpoint trap (core dumped)
>
>On Mon, Aug 19, 2019 at 9:24 PM Florian Klaempfl via lazarus <
>[hidden email]> wrote:
>
>> Am 18.08.2019 um 11:41 schrieb Tobias Giesen via lazarus:
>> > Hello,
>> > I am trying to use Lazarus on a ppc64el processor under Ubuntu.
>> >
>> > Unfortunately startlazarus and lazarus crash with a segmentation
>fault in
>> > a call to XGetWindowProperty in gtk2widgetset.inc in function
>> > TGtk2WidgetSet.GetWindowManager.
>>
>> A stack trace and assembler dump at the crash location might be
>helpful ...
>> --
>> _______________________________________________
>> lazarus mailing list
>> [hidden email]
>> https://lists.lazarus-ide.org/listinfo/lazarus
>>
--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Lazarus on POWER9 Little Endian

Free Pascal - Lazarus mailing list
Hi,
this problem has now been solved with a new FPC 3.3.1 fix that's
available on SVN (trunk) now. Lazarus runs and I'm happy :=)

Cheers,
Tobias

----

On Mon, 26 Aug 2019 20:52:36 +0200
Marc Weustink via lazarus <[hidden email]> wrote:

> When debugging these kinds of X related errors, start your application with the (gtk) X option in synchronized mode.
> I can't remember which option it was, but Google will tell
>
> Marc
>
> On August 20, 2019 1:06:35 PM GMT+02:00, Tobias Giesen via lazarus <[hidden email]> wrote:
> >It seems to work slightly better on Fedora. It doesn't cause a signal
> >and
> >very briefly, an empty small window appears. The console output is like
> >this:
> >[tobias@blackbird lazarus]$ ./startlazarus
> > is a file
> >
> >(startlazarus:3893): Gdk-ERROR **: 13:02:08.997: The program
> >'startlazarus'
> >received an X Window System error.
> >This probably reflects a bug in the program.
> >The error was 'BadValue (integer parameter out of range for
> >operation)'.
> >  (Details: serial 334 error_code 2 request_code 130 minor_code 3)
> >  (Note to programmers: normally, X errors are reported asynchronously;
> >   that is, you will receive the error a while after causing it.
> >   To debug your program, run it with the --sync command line
> >   option to change this behavior. You can then get a meaningful
> >backtrace from your debugger if you break on the gdk_x_error()
> >function.)
> >Trace/breakpoint trap (core dumped)
> >
> >On Mon, Aug 19, 2019 at 9:24 PM Florian Klaempfl via lazarus <
> >[hidden email]> wrote:
> >
> >> Am 18.08.2019 um 11:41 schrieb Tobias Giesen via lazarus:
> >> > Hello,
> >> > I am trying to use Lazarus on a ppc64el processor under Ubuntu.
> >> >
> >> > Unfortunately startlazarus and lazarus crash with a segmentation
> >fault in
> >> > a call to XGetWindowProperty in gtk2widgetset.inc in function
> >> > TGtk2WidgetSet.GetWindowManager.
> >>
> >> A stack trace and assembler dump at the crash location might be
> >helpful ...
> >> --
> >> _______________________________________________
> >> lazarus mailing list
> >> [hidden email]
> >> https://lists.lazarus-ide.org/listinfo/lazarus
> >>
> --
> _______________________________________________
> lazarus mailing list
> [hidden email]
> https://lists.lazarus-ide.org/listinfo/lazarus

Kind Regards,
Tobias Giesen

Super Flexible Software GmbH & Co. KG
Buddenstr. 29-31
48143 Münster, Germany
www.superflexible.com
www.tgtools.com

-----------------------------------------------------------
Registered at register court Münster as HRA 9716
Liability / general partner: TGTools GmbH
Registered at register court Münster as HRB 17763
Directors: Tobias Giesen and Claudia Giesen

--
_______________________________________________
lazarus mailing list
[hidden email]
https://lists.lazarus-ide.org/listinfo/lazarus