mcontext_t et al

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

mcontext_t et al

ken.dickey
Greetings,

I am grepping around to find the source of

 ..In function sqUnixMain.c: In function 'sigsegv':
include_ucontext.h:48:37: error 'mcontext_t'
  has no member 'arm_pc'

I note in
 /usr/include/aarch64_linux_gnu/asm/sigcontext.h member 'pc' but not 'arm_pc'

I am guessing this is from the include_ucontext.h line
  #elif __linux__ && __arm__

Where do I set/override __arm__ with (__aarch64__ or __armv8-a__ or __arm64__) ?

What is the preferred __*__ to use?

Any way to debug this cr*p?  Trace flag?  Dump defines (here)?

Thanks much,
-KenD
_______________________________________________
VM-beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
Reply | Threaded
Open this post in threaded view
|

Re: mcontext_t et al

Eliot Miranda-2
Hi Ken,

On Fri, Dec 7, 2018 at 1:23 PM Ken.Dickey <[hidden email]> wrote:
Greetings,

I am grepping around to find the source of

 ..In function sqUnixMain.c: In function 'sigsegv':
include_ucontext.h:48:37: error 'mcontext_t'
  has no member 'arm_pc'

I note in
 /usr/include/aarch64_linux_gnu/asm/sigcontext.h member 'pc' but not 'arm_pc'

I am guessing this is from the include_ucontext.h line
  #elif __linux__ && __arm__

Where do I set/override __arm__ with (__aarch64__ or __armv8-a__ or __arm64__) ?

What is the preferred __*__ to use?

Use all those that commonly apply. For example look at spur64src/vm/cogit.c which attempts to include either cogitX64SysV.c or cogitX64WIN64.c depending on whether the system, is an x86_64 and whether this is SysV or _WIN64.  These use the following defines to see if the platform is x86_64:

defined(x86_64) || defined(__amd64) || defined(__x86_64) || defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64)


Any way to debug this cr*p?  Trace flag?  Dump defines (here)?

There are two ways.  One is dumping the predefined macros, see e.g. https://stackoverflow.com/questions/2224334/gcc-dump-preprocessor-defines. For gcc (and clang) this is

$ gcc -dM -E - </dev/null

The other essential debugging technique is to use -E or -P on the command-line.  -E dumps the preprocessed output to stdout.  -P dumps it to foo.i if preprocessing foo.c

Thanks much,

It's a bit like diving into icy cold water.  Horrible when you first enter but fortifying in the long run, providing it doesn't give you a heart attack then and there.
 
-KenD
_______________________________________________
VM-beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
 
_,,,^..^,,,_
best, Eliot

_______________________________________________
VM-beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
Reply | Threaded
Open this post in threaded view
|

Re: mcontext_t et al

Eliot Miranda-2
In reply to this post by ken.dickey
Oops, missed one...

On Fri, Dec 7, 2018 at 1:23 PM Ken.Dickey <[hidden email]> wrote:
Greetings,

I am grepping around to find the source of

 ..In function sqUnixMain.c: In function 'sigsegv':
include_ucontext.h:48:37: error 'mcontext_t'
  has no member 'arm_pc'

I note in
 /usr/include/aarch64_linux_gnu/asm/sigcontext.h member 'pc' but not 'arm_pc'

I am guessing this is from the include_ucontext.h line
  #elif __linux__ && __arm__

Simply discard this line and replace it with

#elif __linux__ && ... the plausible 32-bit ARM defines ...
...
#elif __linux__ && ... the plausible 64-bit ARM defines ... 


Where do I set/override __arm__ with (__aarch64__ or __armv8-a__ or __arm64__) ?

What is the preferred __*__ to use?

Any way to debug this cr*p?  Trace flag?  Dump defines (here)?

Thanks much,
-KenD
_______________________________________________
VM-beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners


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

_______________________________________________
VM-beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners