Squeak5.3 linux ARMv6 segfaults on startup

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
63 messages Options
1234
Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Bruce O'Neel-2

Hi,

It looks like

sudo apt-get install libgl1-mesa-dev


replaces 

sudo apt-get install libgl-mesa-dev


I'm guessing...

cheers

bruce
15 March 2020 20:55 tim Rowledge <[hidden email]> wrote:


> On 2020-03-13, at 6:56 PM, tim Rowledge wrote:
>
> More as it happens...

Well, wasn't *that* fun.

a) sometihng 'interesting' has happened to the CIFS setup connecting my Pi to my iMac; somehow new files (as in stuff downloaded from github or files created and saved by the Pi) cannot be seen by *some* programs; like the asasm assembler for the fast bitblt code. This is goinf to be interesting to find a fix for.

b) as a workaround I copied the vm source tree onto my Pi SSD. Just in case it triggers any idea about the CIFS stuff I'll mention that it failed to handle the directory links relating to the alsa lib stuff

c) As best I recall the makefile/config stuff used to check for openGL include files and wouldn't try to make the B3DAcceleratorPlugin if they were absent. The current makefile tried to make it and that stalled the make and caused assorted other annoyance.

d) after installing (most of) the libraries listed in the HowToBuild (because libgl-mesa-dev is not found?), a clean build makes a vm that fails in the same way as the release vm

So at least we can now debug...

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- Only playing with 51 cards.








Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

timrowledge


> On 2020-03-15, at 1:11 PM, Bruce O'Neel <[hidden email]> wrote:
>
>
> Hi,
>
> It looks like
>
> sudo apt-get install libgl1-mesa-dev
>
> replaces
>
> sudo apt-get install libgl-mesa-dev

Looks like it; at least it built ok. Eventually we'll see if it works!


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Oxymorons: Act naturally



Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Bruce O'Neel-2

Hi,

So since I can seem to build things on my PI, I spent last evening running git bisects.  What that came up with was below.  The first bad commit does seem like somewhere things could go bad with 32 vs 64 bit, and, possibly unaligned access?  Our main test case are the x86 and the x86-64 machines which are famous for doing unaligned access with few complaints.  

Now this http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html&_ga=2.65157998.1175841526.1584348406-1352071188.1515062694 claims that as of ARMv6 unaligned access is allowed and done in hardware.  One wonders if it is completely correctly done, and, this isn't something in Debian/Raspberian, or the hardware, or ????

Of course, that might be a rabbit hole as well.  

cheers

bruce

/work/share/tmp/opensmalltalk-vm$ git bisect good

f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e is the first bad commit

commit f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e

Author: smalltalking <[hidden email]>

Date:   Wed Jan 8 10:55:18 2020 +0000


    Fix type inconsistencies (int vs sqInt) (#464)

    

    * Fix type inconsistencies (int vs sqInt)

    

    Found by trying to compile with LTO enabled.

    The VM compiles with the updated types on linux with or without LTO enabled (the LTO VM is not functional).

    Didn't test with the OSes but changed the declarations in their files.

    Affected functions:

    - primInIOProcessEventsFlagAddress

    - ioGatherEntropy

    - GetAttributeString

    - primitivePluginBrowserReady

    - primitivePluginDestroyRequest

    - primitivePluginRequestFileHandle

    - primitivePluginRequestState

    - primitivePluginRequestURL

    - primitivePluginRequestURLStream

    - primitivePluginPostURL

    

    * Include sqMemoryAccess.h to have sqInt defined


:040000 040000 1488890eae3ef3147710b08b2cdf07b98e57b763 d6f7b25507a86fe9c5e618ccd03088598d9bc852 M platforms

:040000 040000 97c8f9d7a00839fa93d472a8840abec8c42ff45c 1e678e1e08e5badd258cce1a4a20d5c6243b39a8 M src




Last good commit


commit 0b4551db2e5c00f67502250d0336757ed12ab096

Merge: f219b7218 afbf9e015

Author: Fabio Niephaus <[hidden email]>

Date:   Mon Jan 6 17:08:45 2020 +0100


    Merge pull request #466 from OpenSmalltalk/dtl/build-script-patch [ci skip]

    

    Fix image MC loading glitch in image build scripts when checking pack…




With the last good commit I have a working ARM COG vm.

Image
-----
/work/share/tmp/Squeak5.3-19431-32bit.image
Squeak5.3
latest update: #19431
Current Change Set: HomeProject
Image format 6521 (32 bit)

Virtual Machine
---------------
/work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2597]
Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
platform sources revision VM: 202001061608 :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash: 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
CoInterpreter VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020

To Build A Similar Virtual Machine
----------------------------------
"Clone or download" instructions, then read the top-level README.md
and HowToBuild files in the top-level build directory for your
platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.


Image
-----
/work/share/tmp/Squeak6.0alpha-19511-32bit.image
Squeak6.0alpha
latest update: #19511
Current Change Set: HomeProject
Image format 6521 (32 bit)

Virtual Machine
---------------
/work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2597]
Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
platform sources revision VM: 202001061608 :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash: 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
CoInterpreter VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020

To Build A Similar Virtual Machine
----------------------------------
"Clone or download" instructions, then read the top-level README.md
and HowToBuild files in the top-level build directory for your
platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.

Tiny Benchmarks
---------------
320,000,000 bytecodes/sec; 19,000,000 sends/sec


15 March 2020 23:39 tim Rowledge <[hidden email]> wrote:


> On 2020-03-15, at 1:11 PM, Bruce O'Neel wrote:
>
>
> Hi,
>
> It looks like
>
> sudo apt-get install libgl1-mesa-dev
>
> replaces
>
> sudo apt-get install libgl-mesa-dev

Looks like it; at least it built ok. Eventually we'll see if it works!


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Oxymorons: Act naturally







Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Bruce O'Neel-2

HI,

If one wants to run this version you can download it from here.


http://www.pckswarms.ch/arm/squeak.cog.spur_linux32ARMv6_20200106170845-all.tar.bz2


Do not that the normal rules apply about downloading and running random programs off the internet.

 % shasum -a 256 squeak.cog.spur_linux32ARMv6_20200106170845-all.tar.bz2 

f3408bc075754a98b5656d7ccde3f3cad29d481940c4ec55ba80d721b0b940fa  squeak.cog.spur_linux32ARMv6_20200106170845-all.tar.bz2


cheers

bruce

16 March 2020 09:55 "Bruce O'Neel" <[hidden email]> wrote:

Hi,

So since I can seem to build things on my PI, I spent last evening running git bisects.  What that came up with was below.  The first bad commit does seem like somewhere things could go bad with 32 vs 64 bit, and, possibly unaligned access?  Our main test case are the x86 and the x86-64 machines which are famous for doing unaligned access with few complaints.  

Now this http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html&_ga=2.65157998.1175841526.1584348406-1352071188.1515062694 claims that as of ARMv6 unaligned access is allowed and done in hardware.  One wonders if it is completely correctly done, and, this isn't something in Debian/Raspberian, or the hardware, or ????

Of course, that might be a rabbit hole as well.  

cheers

bruce

/work/share/tmp/opensmalltalk-vm$ git bisect good

f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e is the first bad commit

commit f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e

Author: smalltalking <[hidden email]>

Date:   Wed Jan 8 10:55:18 2020 +0000


    Fix type inconsistencies (int vs sqInt) (#464)

    

    * Fix type inconsistencies (int vs sqInt)

    

    Found by trying to compile with LTO enabled.

    The VM compiles with the updated types on linux with or without LTO enabled (the LTO VM is not functional).

    Didn't test with the OSes but changed the declarations in their files.

    Affected functions:

    - primInIOProcessEventsFlagAddress

    - ioGatherEntropy

    - GetAttributeString

    - primitivePluginBrowserReady

    - primitivePluginDestroyRequest

    - primitivePluginRequestFileHandle

    - primitivePluginRequestState

    - primitivePluginRequestURL

    - primitivePluginRequestURLStream

    - primitivePluginPostURL

    

    * Include sqMemoryAccess.h to have sqInt defined


:040000 040000 1488890eae3ef3147710b08b2cdf07b98e57b763 d6f7b25507a86fe9c5e618ccd03088598d9bc852 M platforms

:040000 040000 97c8f9d7a00839fa93d472a8840abec8c42ff45c 1e678e1e08e5badd258cce1a4a20d5c6243b39a8 M src




Last good commit


commit 0b4551db2e5c00f67502250d0336757ed12ab096

Merge: f219b7218 afbf9e015

Author: Fabio Niephaus <[hidden email]>

Date:   Mon Jan 6 17:08:45 2020 +0100


    Merge pull request #466 from OpenSmalltalk/dtl/build-script-patch [ci skip]

    

    Fix image MC loading glitch in image build scripts when checking pack…




With the last good commit I have a working ARM COG vm.

Image
-----
/work/share/tmp/Squeak5.3-19431-32bit.image
Squeak5.3
latest update: #19431
Current Change Set: HomeProject
Image format 6521 (32 bit)

Virtual Machine
---------------
/work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2597]
Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
platform sources revision VM: 202001061608 :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash: 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
CoInterpreter VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020

To Build A Similar Virtual Machine
----------------------------------
"Clone or download" instructions, then read the top-level README.md
and HowToBuild files in the top-level build directory for your
platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.


Image
-----
/work/share/tmp/Squeak6.0alpha-19511-32bit.image
Squeak6.0alpha
latest update: #19511
Current Change Set: HomeProject
Image format 6521 (32 bit)

Virtual Machine
---------------
/work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2597]
Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
platform sources revision VM: 202001061608 :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash: 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
CoInterpreter VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020

To Build A Similar Virtual Machine
----------------------------------
"Clone or download" instructions, then read the top-level README.md
and HowToBuild files in the top-level build directory for your
platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.

Tiny Benchmarks
---------------
320,000,000 bytecodes/sec; 19,000,000 sends/sec


15 March 2020 23:39 tim Rowledge <[hidden email]> wrote:


> On 2020-03-15, at 1:11 PM, Bruce O'Neel wrote:
>
>
> Hi,
>
> It looks like
>
> sudo apt-get install libgl1-mesa-dev
>
> replaces
>
> sudo apt-get install libgl-mesa-dev

Looks like it; at least it built ok. Eventually we'll see if it works!


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Oxymorons: Act naturally





<>



Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Nicolas Cellier
Hmm,
the "bad" commit just replace int by sqInt which are equivalent on 32bits VM, I do not see what could go wrong on this side...
It also include sqMemoryAccess.h, could it be that some macro in this file override an existing one?
Is there any warning related in the LOG file?

In such case, what we can do is to compiled -Wall and diff the warning LOG produced by the two versions (good and bad).
 

Le lun. 16 mars 2020 à 10:35, Bruce O'Neel <[hidden email]> a écrit :

HI,

If one wants to run this version you can download it from here.


http://www.pckswarms.ch/arm/squeak.cog.spur_linux32ARMv6_20200106170845-all.tar.bz2


Do not that the normal rules apply about downloading and running random programs off the internet.

 % shasum -a 256 squeak.cog.spur_linux32ARMv6_20200106170845-all.tar.bz2 

f3408bc075754a98b5656d7ccde3f3cad29d481940c4ec55ba80d721b0b940fa  squeak.cog.spur_linux32ARMv6_20200106170845-all.tar.bz2


cheers

bruce

16 March 2020 09:55 "Bruce O'Neel" <[hidden email]> wrote:

Hi,

So since I can seem to build things on my PI, I spent last evening running git bisects.  What that came up with was below.  The first bad commit does seem like somewhere things could go bad with 32 vs 64 bit, and, possibly unaligned access?  Our main test case are the x86 and the x86-64 machines which are famous for doing unaligned access with few complaints.  

Now this http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html&_ga=2.65157998.1175841526.1584348406-1352071188.1515062694 claims that as of ARMv6 unaligned access is allowed and done in hardware.  One wonders if it is completely correctly done, and, this isn't something in Debian/Raspberian, or the hardware, or ????

Of course, that might be a rabbit hole as well.  

cheers

bruce

/work/share/tmp/opensmalltalk-vm$ git bisect good

f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e is the first bad commit

commit f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e

Author: smalltalking <[hidden email]>

Date:   Wed Jan 8 10:55:18 2020 +0000


    Fix type inconsistencies (int vs sqInt) (#464)

    

    * Fix type inconsistencies (int vs sqInt)

    

    Found by trying to compile with LTO enabled.

    The VM compiles with the updated types on linux with or without LTO enabled (the LTO VM is not functional).

    Didn't test with the OSes but changed the declarations in their files.

    Affected functions:

    - primInIOProcessEventsFlagAddress

    - ioGatherEntropy

    - GetAttributeString

    - primitivePluginBrowserReady

    - primitivePluginDestroyRequest

    - primitivePluginRequestFileHandle

    - primitivePluginRequestState

    - primitivePluginRequestURL

    - primitivePluginRequestURLStream

    - primitivePluginPostURL

    

    * Include sqMemoryAccess.h to have sqInt defined


:040000 040000 1488890eae3ef3147710b08b2cdf07b98e57b763 d6f7b25507a86fe9c5e618ccd03088598d9bc852 M platforms

:040000 040000 97c8f9d7a00839fa93d472a8840abec8c42ff45c 1e678e1e08e5badd258cce1a4a20d5c6243b39a8 M src




Last good commit


commit 0b4551db2e5c00f67502250d0336757ed12ab096

Merge: f219b7218 afbf9e015

Author: Fabio Niephaus <[hidden email]>

Date:   Mon Jan 6 17:08:45 2020 +0100


    Merge pull request #466 from OpenSmalltalk/dtl/build-script-patch [ci skip]

    

    Fix image MC loading glitch in image build scripts when checking pack…




With the last good commit I have a working ARM COG vm.

Image
-----
/work/share/tmp/Squeak5.3-19431-32bit.image
Squeak5.3
latest update: #19431
Current Change Set: HomeProject
Image format 6521 (32 bit)

Virtual Machine
---------------
/work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2597]
Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
platform sources revision VM: 202001061608 :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash: 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
CoInterpreter VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020

To Build A Similar Virtual Machine
----------------------------------
"Clone or download" instructions, then read the top-level README.md
and HowToBuild files in the top-level build directory for your
platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.


Image
-----
/work/share/tmp/Squeak6.0alpha-19511-32bit.image
Squeak6.0alpha
latest update: #19511
Current Change Set: HomeProject
Image format 6521 (32 bit)

Virtual Machine
---------------
/work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2597]
Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
platform sources revision VM: 202001061608 :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash: 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
CoInterpreter VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020

To Build A Similar Virtual Machine
----------------------------------
"Clone or download" instructions, then read the top-level README.md
and HowToBuild files in the top-level build directory for your
platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.

Tiny Benchmarks
---------------
320,000,000 bytecodes/sec; 19,000,000 sends/sec


15 March 2020 23:39 tim Rowledge <[hidden email]> wrote:


> On 2020-03-15, at 1:11 PM, Bruce O'Neel wrote:
>
>
> Hi,
>
> It looks like
>
> sudo apt-get install libgl1-mesa-dev
>
> replaces
>
> sudo apt-get install libgl-mesa-dev

Looks like it; at least it built ok. Eventually we'll see if it works!


tim
--
Oxymorons: Act naturally





<>




Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Levente Uzonyi
In reply to this post by Bruce O'Neel-2
Hi Bruce,

(cc'd vm-dev list)
That looks interesting.
If you have a look at the output of

git diff 0b4551db2e5c00f67502250d0336757ed12ab096 f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e

you'll see that only the type declarations of a few methods changed, and
the only change is that int was rewritten to sqInt.
On 32-bit platforms sqInt is int, so that commit should make no difference
at all.
(just saw that Nicolas had a look at this as well)

Are you sure that's the first bad commit?

The next commit (0f0b5324b6e41cda7f92c335d45e563d41285ccd) contains
multiple arm specific changes according to its message. E.g.:

>    Fix old bug in ARM32 LoadEffectiveAddressMwrR
>    Improve the ARM32 trampoline marshalling code fractionally.

>    A number of small improvements to context creation as part of
reversing the
>    order of comparison of the SPReg with anythin g else, to suit ARMv8.

>    Get the ARMv5 "stop" instruction (BKPT) correct.

Which version of gcc did you use to compile the VM?


Levente

On Mon, 16 Mar 2020, Bruce O'Neel wrote:

>
> Hi,
>
> So since I can seem to build things on my PI, I spent last evening running git bisects.  What that came up with was below.  The first bad commit does seem like somewhere things could go bad with 32 vs 64 bit, and, possibly unaligned access?  Our main test case are the x86 and the x86-64 machines which are famous
> for doing unaligned access with few complaints.  
>
> Now this http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html&_ga=2.65157998.1175841526.1584348406-1352071188.1515062694 claims that as of ARMv6 unaligned access is allowed and done in hardware.  One wonders if it is completely correctly done, and, this isn't something in
> Debian/Raspberian, or the hardware, or ????
>
> Of course, that might be a rabbit hole as well.  
>
> cheers
>
> bruce
>
> /work/share/tmp/opensmalltalk-vm$ git bisect good
>
> f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e is the first bad commit
>
> commit f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e
>
> Author: smalltalking <[hidden email]>
>
> Date:   Wed Jan 8 10:55:18 2020 +0000
>
>
>     Fix type inconsistencies (int vs sqInt) (#464)
>
>     
>
>     * Fix type inconsistencies (int vs sqInt)
>
>     
>
>     Found by trying to compile with LTO enabled.
>
>     The VM compiles with the updated types on linux with or without LTO enabled (the LTO VM is not functional).
>
>     Didn't test with the OSes but changed the declarations in their files.
>
>     Affected functions:
>
>     - primInIOProcessEventsFlagAddress
>
>     - ioGatherEntropy
>
>     - GetAttributeString
>
>     - primitivePluginBrowserReady
>
>     - primitivePluginDestroyRequest
>
>     - primitivePluginRequestFileHandle
>
>     - primitivePluginRequestState
>
>     - primitivePluginRequestURL
>
>     - primitivePluginRequestURLStream
>
>     - primitivePluginPostURL
>
>     
>
>     * Include sqMemoryAccess.h to have sqInt defined
>
>
> :040000 040000 1488890eae3ef3147710b08b2cdf07b98e57b763 d6f7b25507a86fe9c5e618ccd03088598d9bc852 M platforms
>
> :040000 040000 97c8f9d7a00839fa93d472a8840abec8c42ff45c 1e678e1e08e5badd258cce1a4a20d5c6243b39a8 M src
>
>
>
>
> Last good commit
>
>
> commit 0b4551db2e5c00f67502250d0336757ed12ab096
>
> Merge: f219b7218 afbf9e015
>
> Author: Fabio Niephaus <[hidden email]>
>
> Date:   Mon Jan 6 17:08:45 2020 +0100
>
>
>     Merge pull request #466 from OpenSmalltalk/dtl/build-script-patch [ci skip]
>
>     
>
>     Fix image MC loading glitch in image build scripts when checking pack…
>
>
>
>
>
> With the last good commit I have a working ARM COG vm.
>
> Image
> -----
> /work/share/tmp/Squeak5.3-19431-32bit.image
> Squeak5.3
> latest update: #19431
> Current Change Set: HomeProject
> Image format 6521 (32 bit)
>
> Virtual Machine
> ---------------
> /work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
> Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2597]
> Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
> platform sources revision VM: 202001061608 :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash: 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
> CoInterpreter VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
> StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
>
> To Build A Similar Virtual Machine
> ----------------------------------
> Visit https://github.com/OpenSmalltalk/opensmalltalk-vm; follow the
> "Clone or download" instructions, then read the top-level README.md
> and HowToBuild files in the top-level build directory for your
> platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.
>
>
> Image
> -----
> /work/share/tmp/Squeak6.0alpha-19511-32bit.image
> Squeak6.0alpha
> latest update: #19511
> Current Change Set: HomeProject
> Image format 6521 (32 bit)
>
> Virtual Machine
> ---------------
> /work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
> Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.2597]
> Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
> platform sources revision VM: 202001061608 :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash: 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
> CoInterpreter VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
> StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid: 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
>
> To Build A Similar Virtual Machine
> ----------------------------------
> Visit https://github.com/OpenSmalltalk/opensmalltalk-vm; follow the
> "Clone or download" instructions, then read the top-level README.md
> and HowToBuild files in the top-level build directory for your
> platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.
>
> Tiny Benchmarks
> ---------------
> 320,000,000 bytecodes/sec; 19,000,000 sends/sec
>
>
> 15 March 2020 23:39 tim Rowledge <[hidden email]> wrote:
>
>
> > On 2020-03-15, at 1:11 PM, Bruce O'Neel wrote:
> >
> >
> > Hi,
> >
> > It looks like
> >
> > sudo apt-get install libgl1-mesa-dev
> >
> > replaces
> >
> > sudo apt-get install libgl-mesa-dev
>
> Looks like it; at least it built ok. Eventually we'll see if it works!
>
>
> tim
> --
> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> Oxymorons: Act naturally
>
>
>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Levente Uzonyi
(cc'd vm-dev for real)

On Mon, 16 Mar 2020, Levente Uzonyi wrote:

> Hi Bruce,
>
> (cc'd vm-dev list)
> That looks interesting.
> If you have a look at the output of
>
> git diff 0b4551db2e5c00f67502250d0336757ed12ab096
> f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e
>
> you'll see that only the type declarations of a few methods changed, and the
> only change is that int was rewritten to sqInt.
> On 32-bit platforms sqInt is int, so that commit should make no difference at
> all.
> (just saw that Nicolas had a look at this as well)
>
> Are you sure that's the first bad commit?
>
> The next commit (0f0b5324b6e41cda7f92c335d45e563d41285ccd) contains multiple
> arm specific changes according to its message. E.g.:
>
>>    Fix old bug in ARM32 LoadEffectiveAddressMwrR
>>    Improve the ARM32 trampoline marshalling code fractionally.
>
>>    A number of small improvements to context creation as part of
> reversing the
>>    order of comparison of the SPReg with anythin g else, to suit ARMv8.
>
>>    Get the ARMv5 "stop" instruction (BKPT) correct.
>
> Which version of gcc did you use to compile the VM?
>
>
> Levente
>
> On Mon, 16 Mar 2020, Bruce O'Neel wrote:
>
>>
>> Hi,
>>
>> So since I can seem to build things on my PI, I spent last evening running
>> git bisects.  What that came up with was below.  The first bad commit does
>> seem like somewhere things could go bad with 32 vs 64 bit, and, possibly
>> unaligned access?  Our main test case are the x86 and the x86-64 machines
>> which are famous
>> for doing unaligned access with few complaints.  
>>
>> Now
>> this http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html&_ga=2.65157998.1175841526.1584348406-1352071188.1515062694 claims
>> that as of ARMv6 unaligned access is allowed and done in hardware.  One
>> wonders if it is completely correctly done, and, this isn't something in
>> Debian/Raspberian, or the hardware, or ????
>>
>> Of course, that might be a rabbit hole as well.  
>>
>> cheers
>>
>> bruce
>>
>> /work/share/tmp/opensmalltalk-vm$ git bisect good
>>
>> f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e is the first bad commit
>>
>> commit f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e
>>
>> Author: smalltalking <[hidden email]>
>>
>> Date:   Wed Jan 8 10:55:18 2020 +0000
>>
>>
>>     Fix type inconsistencies (int vs sqInt) (#464)
>>
>>     
>>
>>     * Fix type inconsistencies (int vs sqInt)
>>
>>     
>>
>>     Found by trying to compile with LTO enabled.
>>
>>     The VM compiles with the updated types on linux with or without LTO
>> enabled (the LTO VM is not functional).
>>
>>     Didn't test with the OSes but changed the declarations in their files.
>>
>>     Affected functions:
>>
>>     - primInIOProcessEventsFlagAddress
>>
>>     - ioGatherEntropy
>>
>>     - GetAttributeString
>>
>>     - primitivePluginBrowserReady
>>
>>     - primitivePluginDestroyRequest
>>
>>     - primitivePluginRequestFileHandle
>>
>>     - primitivePluginRequestState
>>
>>     - primitivePluginRequestURL
>>
>>     - primitivePluginRequestURLStream
>>
>>     - primitivePluginPostURL
>>
>>     
>>
>>     * Include sqMemoryAccess.h to have sqInt defined
>>
>>
>> :040000 040000 1488890eae3ef3147710b08b2cdf07b98e57b763
>> d6f7b25507a86fe9c5e618ccd03088598d9bc852 M platforms
>>
>> :040000 040000 97c8f9d7a00839fa93d472a8840abec8c42ff45c
>> 1e678e1e08e5badd258cce1a4a20d5c6243b39a8 M src
>>
>>
>>
>>
>> Last good commit
>>
>>
>> commit 0b4551db2e5c00f67502250d0336757ed12ab096
>>
>> Merge: f219b7218 afbf9e015
>>
>> Author: Fabio Niephaus <[hidden email]>
>>
>> Date:   Mon Jan 6 17:08:45 2020 +0100
>>
>>
>>     Merge pull request #466 from OpenSmalltalk/dtl/build-script-patch [ci
>> skip]
>>
>>     
>>
>>     Fix image MC loading glitch in image build scripts when checking pack…
>>
>>
>>
>>
>>
>> With the last good commit I have a working ARM COG vm.
>>
>> Image
>> -----
>> /work/share/tmp/Squeak5.3-19431-32bit.image
>> Squeak5.3
>> latest update: #19431
>> Current Change Set: HomeProject
>> Image format 6521 (32 bit)
>>
>> Virtual Machine
>> ---------------
>> /work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
>> Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives
>> VMMaker.oscog-eem.2597]
>> Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
>> platform sources revision VM: 202001061608
>> :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash:
>> 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
>> CoInterpreter VMMaker.oscog-eem.2597 uuid:
>> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
>> StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid:
>> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
>>
>> To Build A Similar Virtual Machine
>> ----------------------------------
>> Visit https://github.com/OpenSmalltalk/opensmalltalk-vm; follow the
>> "Clone or download" instructions, then read the top-level README.md
>> and HowToBuild files in the top-level build directory for your
>> platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.
>>
>>
>> Image
>> -----
>> /work/share/tmp/Squeak6.0alpha-19511-32bit.image
>> Squeak6.0alpha
>> latest update: #19511
>> Current Change Set: HomeProject
>> Image format 6521 (32 bit)
>>
>> Virtual Machine
>> ---------------
>> /work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
>> Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives
>> VMMaker.oscog-eem.2597]
>> Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
>> platform sources revision VM: 202001061608
>> :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash:
>> 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
>> CoInterpreter VMMaker.oscog-eem.2597 uuid:
>> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
>> StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid:
>> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
>>
>> To Build A Similar Virtual Machine
>> ----------------------------------
>> Visit https://github.com/OpenSmalltalk/opensmalltalk-vm; follow the
>> "Clone or download" instructions, then read the top-level README.md
>> and HowToBuild files in the top-level build directory for your
>> platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.
>>
>> Tiny Benchmarks
>> ---------------
>> 320,000,000 bytecodes/sec; 19,000,000 sends/sec
>>
>>
>> 15 March 2020 23:39 tim Rowledge <[hidden email]> wrote:
>>
>>
>> > On 2020-03-15, at 1:11 PM, Bruce O'Neel wrote:
>> >
>> >
>> > Hi,
>> >
>> > It looks like
>> >
>> > sudo apt-get install libgl1-mesa-dev
>> >
>> > replaces
>> >
>> > sudo apt-get install libgl-mesa-dev
>>
>> Looks like it; at least it built ok. Eventually we'll see if it works!
>>
>>
>> tim
>> --
>> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
>> Oxymorons: Act naturally
>>
>>
>>
>>
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

timrowledge
Thanks for banging on the bisect thing Bruce. I gave up yesterday when cloning the repository to my Pi was running. Well, crawling, at the time.

> On 2020-03-16, at 9:33 AM, Levente Uzonyi <[hidden email]> wrote:
>>
>>>   Fix old bug in ARM32 LoadEffectiveAddressMwrR

Looking back at a last November version of cogitARMv5.c and the implementation/translation of LoadEffectiveAddressMwrR I see that there seems now to be a missing calculation of the immediate5 and rot5 in

5259: /* begin machineCodeAt:put: */
aWord42 = addrnimmror(self_in_dispatchConcretize, destReg1, srcReg9, immediate5, rot5);

by comparison in the (working) older file it is

5158: rot4 = 32 - i4;
                immediate4 = (((usqInt) offset27) >> i4) | ((offset27 << (32 - i4)) & 0xFFFFFFFFU);
                /* begin machineCodeAt:put: */
                aWord37 = addrnimmror(self_in_dispatchConcretize, destReg1, srcReg7, immediate4, ((sqInt)((usqInt)(rot4) << 1)));

A bit of scanning shows immediate5 is never set, which rarely works out well...

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Vacca foeda = Stupid cow



Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Bruce O'Neel-2
In reply to this post by Levente Uzonyi

Hi,

Something to remember about git bisect is that it's a binary search.

You give it a working version, I chose one from 31 May 2019, and a broken one, current, and it does the binary search where it makes a checkout the current one, and, you build and test.  Then you say that it's good or bad.

But......  And this is very important.  You have to say that a version is bad if it does not produce a working binary.  The assumption is that there is one broken commit, and, therefore a binary search will work.

It assumes that the problem is below, with Y means good and N means bad.

YYYYYYYYYYYYYYYYNNNNNNNNN

It will find the transition between Y and N correctly.

If on the other hand you have something like this, again with Y is good and N is bad:

YYYYYYYYYYYYYNNNNNNNNNNYYNNN

It will find likely find the first transition of Y to N, not the second which is the one you want to find.  It would depend totally on which start point one chooses.

I can rerun bisect with a different start and see what happens.  Since I'm Day Drinking, sorry, working from home, I can setup the build system next to my work computer and run it that way.

cheers

bruce

P.S.  If you want to try this at home, I do

untar an existing checkout from sometime in march.
build, confirm it fails.

git bisect start
git bisect bad
git bisect good somecheckoutthatisthoughttowork

Now rerun the build and check, if it's good

git bisect good

and if bad then

git bisect bad

after a few seconds it will move you to the next version to check, and, you can rebuild again.

Repeat until either of the good/bad git bisect commands tells you which is the first bad checkout.

cheers

bruce


16 March 2020 17:33 Levente Uzonyi <[hidden email]> wrote:
(cc'd vm-dev for real)

On Mon, 16 Mar 2020, Levente Uzonyi wrote:

> Hi Bruce,
>
> (cc'd vm-dev list)
> That looks interesting.
> If you have a look at the output of
>
> git diff 0b4551db2e5c00f67502250d0336757ed12ab096
> f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e
>
> you'll see that only the type declarations of a few methods changed, and the
> only change is that int was rewritten to sqInt.
> On 32-bit platforms sqInt is int, so that commit should make no difference at
> all.
> (just saw that Nicolas had a look at this as well)
>
> Are you sure that's the first bad commit?
>
> The next commit (0f0b5324b6e41cda7f92c335d45e563d41285ccd) contains multiple
> arm specific changes according to its message. E.g.:
>
>> Fix old bug in ARM32 LoadEffectiveAddressMwrR
>> Improve the ARM32 trampoline marshalling code fractionally.
>
>> A number of small improvements to context creation as part of
> reversing the
>> order of comparison of the SPReg with anythin g else, to suit ARMv8.
>
>> Get the ARMv5 "stop" instruction (BKPT) correct.
>
> Which version of gcc did you use to compile the VM?
>
>
> Levente
>
> On Mon, 16 Mar 2020, Bruce O'Neel wrote:
>
>>
>> Hi,
>>
>> So since I can seem to build things on my PI, I spent last evening running
>> git bisects.  What that came up with was below.  The first bad commit does
>> seem like somewhere things could go bad with 32 vs 64 bit, and, possibly
>> unaligned access?  Our main test case are the x86 and the x86-64 machines
>> which are famous
>> for doing unaligned access with few complaints.  
>>
>> Now
>> this http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html&_ga=2.65157998.1175841526.1584348406-1352071188.1515062694 claims
>> that as of ARMv6 unaligned access is allowed and done in hardware.  One
>> wonders if it is completely correctly done, and, this isn't something in
>> Debian/Raspberian, or the hardware, or ????
>>
>> Of course, that might be a rabbit hole as well.  
>>
>> cheers
>>
>> bruce
>>
>> /work/share/tmp/opensmalltalk-vm$ git bisect good
>>
>> f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e is the first bad commit
>>
>> commit f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e
>>
>> Author: smalltalking
>>
>> Date:   Wed Jan 8 10:55:18 2020 +0000
>>
>>
>>     Fix type inconsistencies (int vs sqInt) (#464)
>>
>>     
>>
>>     * Fix type inconsistencies (int vs sqInt)
>>
>>     
>>
>>     Found by trying to compile with LTO enabled.
>>
>>     The VM compiles with the updated types on linux with or without LTO
>> enabled (the LTO VM is not functional).
>>
>>     Didn't test with the OSes but changed the declarations in their files.
>>
>>     Affected functions:
>>
>>     - primInIOProcessEventsFlagAddress
>>
>>     - ioGatherEntropy
>>
>>     - GetAttributeString
>>
>>     - primitivePluginBrowserReady
>>
>>     - primitivePluginDestroyRequest
>>
>>     - primitivePluginRequestFileHandle
>>
>>     - primitivePluginRequestState
>>
>>     - primitivePluginRequestURL
>>
>>     - primitivePluginRequestURLStream
>>
>>     - primitivePluginPostURL
>>
>>     
>>
>>     * Include sqMemoryAccess.h to have sqInt defined
>>
>>
>> :040000 040000 1488890eae3ef3147710b08b2cdf07b98e57b763
>> d6f7b25507a86fe9c5e618ccd03088598d9bc852 M platforms
>>
>> :040000 040000 97c8f9d7a00839fa93d472a8840abec8c42ff45c
>> 1e678e1e08e5badd258cce1a4a20d5c6243b39a8 M src
>>
>>
>>
>>
>> Last good commit
>>
>>
>> commit 0b4551db2e5c00f67502250d0336757ed12ab096
>>
>> Merge: f219b7218 afbf9e015
>>
>> Author: Fabio Niephaus
>>
>> Date:   Mon Jan 6 17:08:45 2020 +0100
>>
>>
>>     Merge pull request #466 from OpenSmalltalk/dtl/build-script-patch [ci
>> skip]
>>
>>     
>>
>>     Fix image MC loading glitch in image build scripts when checking pack…
>>
>>
>>
>>
>>
>> With the last good commit I have a working ARM COG vm.
>>
>> Image
>> -----
>> /work/share/tmp/Squeak5.3-19431-32bit.image
>> Squeak5.3
>> latest update: #19431
>> Current Change Set: HomeProject
>> Image format 6521 (32 bit)
>>
>> Virtual Machine
>> ---------------
>> /work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
>> Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives
>> VMMaker.oscog-eem.2597]
>> Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
>> platform sources revision VM: 202001061608
>> :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash:
>> 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
>> CoInterpreter VMMaker.oscog-eem.2597 uuid:
>> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
>> StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid:
>> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
>>
>> To Build A Similar Virtual Machine
>> ----------------------------------
>> Visit https://github.com/OpenSmalltalk/opensmalltalk-vm; follow the
>> "Clone or download" instructions, then read the top-level README.md
>> and HowToBuild files in the top-level build directory for your
>> platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.
>>
>>
>> Image
>> -----
>> /work/share/tmp/Squeak6.0alpha-19511-32bit.image
>> Squeak6.0alpha
>> latest update: #19511
>> Current Change Set: HomeProject
>> Image format 6521 (32 bit)
>>
>> Virtual Machine
>> ---------------
>> /work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak
>> Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives
>> VMMaker.oscog-eem.2597]
>> Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516
>> platform sources revision VM: 202001061608
>> :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash:
>> 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm
>> CoInterpreter VMMaker.oscog-eem.2597 uuid:
>> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
>> StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid:
>> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020
>>
>> To Build A Similar Virtual Machine
>> ----------------------------------
>> Visit https://github.com/OpenSmalltalk/opensmalltalk-vm; follow the
>> "Clone or download" instructions, then read the top-level README.md
>> and HowToBuild files in the top-level build directory for your
>> platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.
>>
>> Tiny Benchmarks
>> ---------------
>> 320,000,000 bytecodes/sec; 19,000,000 sends/sec
>>
>>
>> 15 March 2020 23:39 tim Rowledge wrote:
>>
>>
>> > On 2020-03-15, at 1:11 PM, Bruce O'Neel wrote:
>> >
>> >
>> > Hi,
>> >
>> > It looks like
>> >
>> > sudo apt-get install libgl1-mesa-dev
>> >
>> > replaces
>> >
>> > sudo apt-get install libgl-mesa-dev
>>
>> Looks like it; at least it built ok. Eventually we'll see if it works!
>>
>>
>> tim
>> --
>> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
>> Oxymorons: Act naturally
>>
>>
>>
>>
>>
>>
><>



Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] Squeak5.3 linux ARMv6 segfaults on startup

Jakob Reschke
In reply to this post by timrowledge
tim Rowledge <[hidden email]> schrieb am Mo., 16. März 2020, 18:47:
 
I can manage a `git clone URL` and that's about it. How can I get a particular historical version, for example?

After the clone, you can do (in the cloned directory)

    git checkout <commit-id/sha-1>

And your directory will contain the tree as it was at that version.

(If you want to use this clone for further work, you must go back to a branch before you create new commits: git checkout <branchname>)


Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] Squeak5.3 linux ARMv6 segfaults on startup

timrowledge
It looks like sometihng caused the CogARMCompiler>>#rotateable8bitImmediate:ifTrue:ifFalse: to get translated in a way that messes up the block args for the falseBlock (which are supposed to be the requird rotation and immediate values.

What we get is
                /* begin rotateable8bitImmediate:ifTrue:ifFalse: */
                if ((offset27 & 0xFF) == offset27) {
                        /* begin machineCodeAt:put: */
                        aWord42 = addrnimmror(self_in_dispatchConcretize, destReg1, srcReg9, immediate5, rot5);
                        ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord42;
                        return 4;
                }
                for (i5 = 2; i5 <= 30; i5 += 2) {
                        if ((offset27 & (((0xFFU << i5) & 0xFFFFFFFFU) | (((usqInt)(0xFF)) >> (32 - i5)))) == offset27) {
                                /* begin machineCodeAt:put: */
                                aWord42 = addrnimmror(self_in_dispatchConcretize, destReg1, srcReg9, immediate5, rot5);
                                ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord42;
                                return 4;
                        }
                }
... when we should get more like -

                /* begin rotateable8bitImmediate:ifTrue:ifFalse: */
                if ((offset27 & 0xFF) == offset27) {
                        /* begin machineCodeAt:put: */
                        aWord37 = addrnimmror(self_in_dispatchConcretize, destReg1, srcReg7, offset27, 0U << 1);
                        ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord37;
                        (self_in_dispatchConcretize->machineCodeSize) = 4;
                        goto l204;
                }
                for (i4 = 2; i4 <= 30; i4 += 2) {
                        if ((offset27 & (((0xFFU << i4) & 0xFFFFFFFFU) | (((usqInt) 0xFF) >> (32 - i4)))) == offset27) {
>>>>>>>> rot4 = 32 - i4; <<<<<<<<<<<
>>>>>>>> immediate4 = (((usqInt) offset27) >> i4) | ((offset27 << (32 - i4)) & 0xFFFFFFFFU); <<<<<<<<<<<
                                /* begin machineCodeAt:put: */
                                aWord37 = addrnimmror(self_in_dispatchConcretize, destReg1, srcReg7, immediate4, ((sqInt)((usqInt)(rot4) << 1)));
                                ((self_in_dispatchConcretize->machineCode))[0 / 4] = aWord37;
                                (self_in_dispatchConcretize->machineCodeSize) = 4;
                                goto l204;
                        }
                }
(ignoring for a moment the desired change in the last couple of lines)

The actual code for CogARMCompiler>>#rotateable8bitImmediate:ifTrue:ifFalse: hasn't changed since 2015 so it's some other part of the system at fault. Do I recall correctly that some changes were recently made in the translator stuff for type-fiddling?

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Don't diddle code to make it faster; find a better algorithm.



Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Eliot Miranda-2
In reply to this post by timrowledge
Hi All,

    apologies; this is my bug.  Having revived my Raspberry 3 build machine I've just reproduced the crash and can see that it's a code generator bug.  The very first JITted method executed answers SmalltalkImage current.  The code generated for this should be

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #8]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

but is alas

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #-0]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

I have to find out why this does't fail in the simulator (or find out that it does and that my recollection of having tested 32-bit ARM recently is, in fact, a self-serving hallucination).  Hopefully normal service should be restored presently.  But it does mean releasing an updated Squeak5.3 release with a fixed VM. Again, apologies.

On Sat, Mar 7, 2020 at 10:10 PM tim Rowledge <[hidden email]> wrote:
Oh pooh.

Download the release zip; extract, cd into the directory, run ./squeak.sh; boom.

The image is fine and runs OK with a slightly older VM build (5.0-201912311458).




tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Mellita, domi adsum. = Honey, I'm home.





--
_,,,^..^,,,_
best, Eliot


Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Eliot Miranda-2
Hi All,

    interesting.  Indeed the simulator generates the correct code, and the image is functional:

00001cdc: ldr r0, [pc, #8] ; 0x0000000000001cec a(n) Global
00001ce0: ldr r7, [r0, #12]
00001ce4: mov r5, r7
00001ce8: mov pc, lr

So there's a Slang bug.

On Tue, Mar 17, 2020 at 5:34 PM Eliot Miranda <[hidden email]> wrote:
Hi All,

    apologies; this is my bug.  Having revived my Raspberry 3 build machine I've just reproduced the crash and can see that it's a code generator bug.  The very first JITted method executed answers SmalltalkImage current.  The code generated for this should be

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #8]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

but is alas

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #-0]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

I have to find out why this does't fail in the simulator (or find out that it does and that my recollection of having tested 32-bit ARM recently is, in fact, a self-serving hallucination).  Hopefully normal service should be restored presently.  But it does mean releasing an updated Squeak5.3 release with a fixed VM. Again, apologies.

On Sat, Mar 7, 2020 at 10:10 PM tim Rowledge <[hidden email]> wrote:
Oh pooh.

Download the release zip; extract, cd into the directory, run ./squeak.sh; boom.

The image is fine and runs OK with a slightly older VM build (5.0-201912311458).




tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Mellita, domi adsum. = Honey, I'm home.





--
_,,,^..^,,,_
best, Eliot


--
_,,,^..^,,,_
best, Eliot


Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Eliot Miranda-2


On Tue, Mar 17, 2020 at 7:56 PM Eliot Miranda <[hidden email]> wrote:
Hi All,

    interesting.  Indeed the simulator generates the correct code, and the image is functional:

00001cdc: ldr r0, [pc, #8] ; 0x0000000000001cec a(n) Global
00001ce0: ldr r7, [r0, #12]
00001ce4: mov r5, r7
00001ce8: mov pc, lr

So there's a Slang bug.

fixed in VMMaker.oscog-eem.2728.mcz
 

On Tue, Mar 17, 2020 at 5:34 PM Eliot Miranda <[hidden email]> wrote:
Hi All,

    apologies; this is my bug.  Having revived my Raspberry 3 build machine I've just reproduced the crash and can see that it's a code generator bug.  The very first JITted method executed answers SmalltalkImage current.  The code generated for this should be

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #8]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

but is alas

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #-0]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

I have to find out why this does't fail in the simulator (or find out that it does and that my recollection of having tested 32-bit ARM recently is, in fact, a self-serving hallucination).  Hopefully normal service should be restored presently.  But it does mean releasing an updated Squeak5.3 release with a fixed VM. Again, apologies.

On Sat, Mar 7, 2020 at 10:10 PM tim Rowledge <[hidden email]> wrote:
Oh pooh.

Download the release zip; extract, cd into the directory, run ./squeak.sh; boom.

The image is fine and runs OK with a slightly older VM build (5.0-201912311458).




tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Mellita, domi adsum. = Honey, I'm home.





--
_,,,^..^,,,_
best, Eliot


--
_,,,^..^,,,_
best, Eliot


--
_,,,^..^,,,_
best, Eliot


Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Bruce O'Neel-2
HI,

I've built with this version:

commit 102b0fa831e2f793620a9a4cf94369d696e7920f
Author: Eliot Miranda <[hidden email]>
Date:   Tue Mar 17 19:01:16 2020 -0700

    CogVM source as per VMMaker.oscog-eem.2728
   

And it builds and runs on Arm32.  Seems ok though without a giant amount of checking.

Thanks!!!!

cheers

bruce



18 March 2020 03:58 Eliot Miranda <[hidden email]> wrote:


On Tue, Mar 17, 2020 at 7:56 PM Eliot Miranda <[hidden email]> wrote:
Hi All,

    interesting.  Indeed the simulator generates the correct code, and the image is functional:

00001cdc: ldr r0, [pc, #8] ; 0x0000000000001cec a(n) Global
00001ce0: ldr r7, [r0, #12]
00001ce4: mov r5, r7
00001ce8: mov pc, lr

So there's a Slang bug.

fixed in VMMaker.oscog-eem.2728.mcz
 

On Tue, Mar 17, 2020 at 5:34 PM Eliot Miranda <[hidden email]> wrote:
Hi All,


    apologies; this is my bug.  Having revived my Raspberry 3 build machine I've just reproduced the crash and can see that it's a code generator bug.  The very first JITted method executed answers SmalltalkImage current.  The code generated for this should be

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #8]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

but is alas

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #-0]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

I have to find out why this does't fail in the simulator (or find out that it does and that my recollection of having tested 32-bit ARM recently is, in fact, a self-serving hallucination).  Hopefully normal service should be restored presently.  But it does mean releasing an updated Squeak5.3 release with a fixed VM. Again, apologies.

On Sat, Mar 7, 2020 at 10:10 PM tim Rowledge <[hidden email]> wrote:
Oh pooh.

Download the release zip; extract, cd into the directory, run ./squeak.sh; boom.

The image is fine and runs OK with a slightly older VM build (5.0-201912311458).




tim
--
Useful Latin Phrases:- Mellita, domi adsum. = Honey, I'm home.





--

_,,,^..^,,,_
best, Eliot


--

_,,,^..^,,,_
best, Eliot


--

_,,,^..^,,,_
best, Eliot
<>



Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Bruce O'Neel-2

Now that I've said that, the About dialog is bizarre.  The fonts seem wrong, kind of Klingon like.

The other tools seem to have sensible fonts.


18 March 2020 15:26 "Bruce O'Neel" <[hidden email]> wrote:
HI,

I've built with this version:

commit 102b0fa831e2f793620a9a4cf94369d696e7920f
Author: Eliot Miranda <[hidden email]>
Date:   Tue Mar 17 19:01:16 2020 -0700

    CogVM source as per VMMaker.oscog-eem.2728
   

And it builds and runs on Arm32.  Seems ok though without a giant amount of checking.

Thanks!!!!

cheers

bruce



18 March 2020 03:58 Eliot Miranda <[hidden email]> wrote:


On Tue, Mar 17, 2020 at 7:56 PM Eliot Miranda <[hidden email]> wrote:
Hi All,

    interesting.  Indeed the simulator generates the correct code, and the image is functional:

00001cdc: ldr r0, [pc, #8] ; 0x0000000000001cec a(n) Global
00001ce0: ldr r7, [r0, #12]
00001ce4: mov r5, r7
00001ce8: mov pc, lr

So there's a Slang bug.

fixed in VMMaker.oscog-eem.2728.mcz
 

On Tue, Mar 17, 2020 at 5:34 PM Eliot Miranda <[hidden email]> wrote:
Hi All,


    apologies; this is my bug.  Having revived my Raspberry 3 build machine I've just reproduced the crash and can see that it's a code generator bug.  The very first JITted method executed answers SmalltalkImage current.  The code generated for this should be

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #8]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

but is alas

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #-0]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

I have to find out why this does't fail in the simulator (or find out that it does and that my recollection of having tested 32-bit ARM recently is, in fact, a self-serving hallucination).  Hopefully normal service should be restored presently.  But it does mean releasing an updated Squeak5.3 release with a fixed VM. Again, apologies.

On Sat, Mar 7, 2020 at 10:10 PM tim Rowledge <[hidden email]> wrote:
Oh pooh.

Download the release zip; extract, cd into the directory, run ./squeak.sh; boom.

The image is fine and runs OK with a slightly older VM build (5.0-201912311458).




tim
--
Useful Latin Phrases:- Mellita, domi adsum. = Honey, I'm home.





--

_,,,^..^,,,_
best, Eliot


--

_,,,^..^,,,_
best, Eliot


--

_,,,^..^,,,_
best, Eliot
<>

<>



Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

Eliot Miranda-2
Hi Bruce,


On Mar 18, 2020, at 8:35 AM, Bruce O'Neel <[hidden email]> wrote:



Now that I've said that, the About dialog is bizarre.  The fonts seem wrong, kind of Klingon like.

The easiest way to see this is in the fixed pitch fonts in the About Squeak SystemReporter, eg select the VM Stats tab.  I discussed this with Tim yesterday evening.  I expect this is to do with the ARM BitBLT assembler.  Easy to check.  We just build without the optimized assembler and see what things look like.

The other tools seem to have sensible fonts.


18 March 2020 15:26 "Bruce O'Neel" <[hidden email]> wrote:
HI,

I've built with this version:

commit 102b0fa831e2f793620a9a4cf94369d696e7920f
Author: Eliot Miranda <[hidden email]>
Date:   Tue Mar 17 19:01:16 2020 -0700

    CogVM source as per VMMaker.oscog-eem.2728
   

And it builds and runs on Arm32.  Seems ok though without a giant amount of checking.

Thanks!!!!

cheers

bruce



18 March 2020 03:58 Eliot Miranda <[hidden email]> wrote:


On Tue, Mar 17, 2020 at 7:56 PM Eliot Miranda <[hidden email]> wrote:
Hi All,

    interesting.  Indeed the simulator generates the correct code, and the image is functional:

00001cdc: ldr r0, [pc, #8] ; 0x0000000000001cec a(n) Global
00001ce0: ldr r7, [r0, #12]
00001ce4: mov r5, r7
00001ce8: mov pc, lr

So there's a Slang bug.

fixed in VMMaker.oscog-eem.2728.mcz
 

On Tue, Mar 17, 2020 at 5:34 PM Eliot Miranda <[hidden email]> wrote:
Hi All,


    apologies; this is my bug.  Having revived my Raspberry 3 build machine I've just reproduced the crash and can see that it's a code generator bug.  The very first JITted method executed answers SmalltalkImage current.  The code generated for this should be

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #8]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

but is alas

   0x4018e8: ldr r0, [pc, #8] ; 0x4018f8
   0x4018ec: ldr r7, [r0, #-0]
   0x4018f0: mov r5, r7
   0x4018f4: mov pc, lr

I have to find out why this does't fail in the simulator (or find out that it does and that my recollection of having tested 32-bit ARM recently is, in fact, a self-serving hallucination).  Hopefully normal service should be restored presently.  But it does mean releasing an updated Squeak5.3 release with a fixed VM. Again, apologies.

On Sat, Mar 7, 2020 at 10:10 PM tim Rowledge <[hidden email]> wrote:
Oh pooh.

Download the release zip; extract, cd into the directory, run ./squeak.sh; boom.

The image is fine and runs OK with a slightly older VM build (5.0-201912311458).




tim
--
Useful Latin Phrases:- Mellita, domi adsum. = Honey, I'm home.





--

_,,,^..^,,,_
best, Eliot


--

_,,,^..^,,,_
best, Eliot


--

_,,,^..^,,,_
best, Eliot
<>

<>




Reply | Threaded
Open this post in threaded view
|

Re: Squeak5.3 linux ARMv6 segfaults on startup

timrowledge
I've just built plain and debug on my Pi 3B+ and it works fine; no strange fonts or anything like that. TinyBenchmarks run from the About... tool gives the usual results.

The assembler problem I had been seeing the other day turns out to be a side-effect of some *really* strange CIFS network file system issue; I can no longer compiile from sources on my iMac read by the Pi using a CIFS connection setup that has worked for at least 5 years. Anyone actually knowledgable about that sort of thing?


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Gotta run, the cat's caught in the printer.



Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] Squeak5.3 linux ARMv6 segfaults on startup

timrowledge
In reply to this post by Bruce O'Neel-2


> On 2020-03-18, at 8:34 AM, Bruce O'Neel <[hidden email]> wrote:
>
>
> Now that I've said that, the About dialog is bizarre.  The fonts seem wrong, kind of Klingon like.
>
> The other tools seem to have sensible fonts.


 Are you still seeing this? I can't replicate at all.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Half the people you know are below average.



Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] Squeak5.3 linux ARMv6 segfaults on startup

Bruce O'Neel-2
HI,

Attached is a screen shot.  In all cases I'm working over X11.  This screenshot is from a windows system with MobaXterm.  But the XQuartz display is identical.

If you don't see this one an attached display, then I would be tempted to say go with this.  

BTW, it looks more readable shrunk down than it does on a retina display.

SQ.png
cheers

bruce



19 March 2020 00:18 tim Rowledge <[hidden email]> wrote:


> On 2020-03-18, at 8:34 AM, Bruce O'Neel wrote:
>
>
> Now that I've said that, the About dialog is bizarre. The fonts seem wrong, kind of Klingon like.
>
> The other tools seem to have sensible fonts.


Are you still seeing this? I can't replicate at all.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Half the people you know are below average.







1234