[squeak-dev] Squeak5.3 linux ARMv6 segfaults on startup

Levente Uzonyi leves at caesar.elte.hu
Mon Mar 16 16:01:12 UTC 2020


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 <leves at caesar.elte.hu>
> 
> 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 <code at fniephaus.com>
> 
> 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 <tim at rowledge.org> 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; tim at rowledge.org; http://www.rowledge.org/tim
> Oxymorons: Act naturally
> 
> 
> 
> 
> 
> 
>


More information about the Squeak-dev mailing list