[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] sqUnixEvent.c missing from platforms/unix/vm (#555)

David T. Lewis lewis at mail.msen.com
Wed Mar 24 19:58:11 UTC 2021


On Wed, Mar 24, 2021 at 11:54:55AM -0700, Eliot Miranda wrote:
>  
> Hi David,
> 
> On Mon, Mar 22, 2021 at 4:14 PM David T. Lewis <lewis at mail.msen.com> wrote:
> 
> >
> > On Mon, Mar 22, 2021 at 11:46:27AM +0100, Bruce O'Neel wrote:
> > >
> > >
> > > Hi,
> > >
> > > That fixed one problem I was tripping over on the ARMv8 build.
> > >
> > > There still seems to be a problem with the x86-64 build.????
> > >
> > > Thanks.
> > >
> > > bruce
> >
> > I see the same issue on my Linux x86-64 PC. I cannot spot the exact cause
> > of
> > the problem, but it seems to have been introduced in this commit:
> >
> > commit 6d74c4b652c7780110fe327f97e98aaef5242fbc
> > Author: Eliot Miranda <eliot.miranda at gmail.com>
> > Date:   Wed Feb 10 21:41:31 2021 -0800
> >
> >     Revisions to core include files to get EXPORT defined correctly at the
> > relevant points.
> >     Essentially move the default EXPORT definitions from sq.h to
> > sqMemoryAccess.h.
> >     Include fbdev support in build.linux32ARMv6 builds and add -m32 to
> > their CFLAGS
> >     to attempt to get the 32-bit VMs to be compilable on 64-bit ARM. [ci
> > skip]
> >     cuz new cogit files will arrive soon.
> >
> >
> > The changes seem straightforward, but for some reason the header files must
> > not be getting included properly.
> >
> > Dave
> >
> > >
> > /home/edoneel/tmp/opensmalltalk-vm/platforms/unix/vm/sqUnixMain.c:926:35:
> > error: use of undeclared identifier 'REG_RBP'
> >
> 
> If you have a look at the code here the file is trying to
> - find out what platform it is on
> - pull in the relevant version of ucontext.h containing the relevant
> defines for extracting register values from an interrupt context
> - print out the registers for a crash report
> So please look to
> - find out if platforms/unix/vm/include_ucontext.h is working correctly on
> this platform
> - find out what are the platform defines (-E -dM is your friend here)
> - find out how ucontext.h defines the registers in a ucontext
> 

Hi Eliot,

I think that platforms/unix/vm/include_ucontext.h is working correctly.
Using -E -dM, I can confirm:

  #define __linux__ 1
  #define __x86_64 1

Also, include_ucontext.h was not modified in commit 924a24bb54870a621c5283f23631261d5a792000
which is where I think the issue originates(?).

So there is something else going wrong with the includes for Linux, but
I am blind and cannot spot it.

Dave



More information about the Vm-dev mailing list