The VM built by travis (201805090836, 64-bit Squeak Cog Spur) segfaults when creating an SSL connection. Here is a stack trace from gdb:
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000000000000 in ?? ()
> (gdb) bt
> #0 0x0000000000000000 in ?? ()
> #1 0x00007ffff296132a in sqVerifyNameInner (ssl=ssl@entry=0x89b3e0, cert=cert@entry=0x8abdb0, serverName=0x89bad0, serverNameLength=serverNameLength@entry=13, matchType=matchType@entry=2)
> at /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc:106
> #2 0x00007ffff29614ab in sqVerifyDNS (ssl=ssl@entry=0x89b3e0, cert=cert@entry=0x8abdb0, serverName=<optimized out>, serverNameLength=serverNameLength@entry=13)
> at /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc:94
> #3 0x00007ffff2961e3f in sqConnectSSL (handle=handle@entry=1, srcBuf=srcBuf@entry=0x1025330 "\026\003\003", srcLen=srcLen@entry=279, dstBuf=dstBuf@entry=0x1020b88 "\026\003\003", dstLen=<optimized out>)
> at /home/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.inc:454
> #4 0x00007ffff295de2f in primitiveConnect () at /home/travis/build/OpenSmalltalk/opensmalltalk-vm/src/plugins/SqueakSSL/SqueakSSL.c:217
This happens on Ubuntu 14.04 (libssl1.0.0). I presume travis had a newer version of openssl, and the different value of OPENSSL_VERSION_NUMBER during compilation time was enough to make some functions, like _sqo_sk_GENERAL_NAME_num_ be linked to null. It's not exactly clear how the overlay works, so I just tried a few functions and got the following results:
> (gdb) print sqo_X509_get_ext_d2i
> $3 = (void *(*)(X509 *, int, int *, int *)) 0x7ffff2440a90 <X509_get_ext_d2i>
> (gdb) print sqo_sk_GENERAL_NAME_num
> No symbol "sqo_sk_GENERAL_NAME_num" in current context.
> (gdb) print sqo_sk_GENERAL_NAME_value
> No symbol "sqo_sk_GENERAL_NAME_value" in current context.
> (gdb) print sqVerifySAN
> $6 = {sqInt (sqSSL *, const GENERAL_NAME *, const void *, const size_t, const int)} 0x7ffff29610f0 <sqVerifySAN>
> (gdb) print sk_GENERAL_NAME_num
> No symbol "sk_GENERAL_NAME_num" in current context.
> (gdb) print sqo_SKM_sk_num
> No symbol "sqo_SKM_sk_num" in current context.
> (gdb) print sqo_sk_num
> $7 = (int (*)(const _STACK *)) 0x0
> (gdb) print sk_num
> $8 = {<text variable, no debug info>} 0x7ffff24064c0 <sk_num>
If you need any further information, let me know.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/260
Hello,
I am trying to compile my first vm, so I read the README and HowToBuild
on OpenSmalltalk git repository.
I tried to build the build.win32x86/pharo.cog.spur flavour on Windows 7
after installing cygwin with this command:
setup-x86.exe -dgnqNO -R "E:\cygwin" -s
"http://cygwin.mirror.constant.com" -l "E:\cygwin\var\cache\setup" -P
mingw64-i686-gcc-core,mingw64-i686-gcc-g++,mingw64-i686-headers,mingw64-i686-runtime,zip,mingw64-i686-clang,mingw64-i686-openssl,libiconv-devel,libglib2.0-devel,perl,mingw64-i686-zlib,make,cmake,wget,mingw64-i686-win-iconv
The build fail with this error:
config.status: creating config.h.win32
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: cache variable lt_cv_path_LD contains a newline
make[2]: Entering directory
'/cygdrive/e/cog/oscogvm/build.win32x86/pharo.cog.spur/builddbg/third-party/pkg-config-0.29.1'
Makefile:311: *** missing separator. Stop.
make[2]: Leaving directory
'/cygdrive/e/cog/oscogvm/build.win32x86/pharo.cog.spur/builddbg/third-party/pkg-config-0.29.1'
make[1]: *** [../third-party/Makefile.pkgconfig:26:
/cygdrive/e/cog/oscogvm/.thirdparty-cache/windows/i386/bin/pkg-config.exe]
Error 2
make[1]: Leaving directory
'/cygdrive/e/cog/oscogvm/build.win32x86/pharo.cog.spur'
make: *** [../common/Makefile:157: debug] Error 2
I have to say that I have really few experience with everything around
the vm and maybe this is a problem easy to solve. But not with my
knowledge.
Does anyone has an idea of what might be the problem?
Also, I'm not sure it is the right place for this kind of questions
since it's vm-dev and this is a vm usage question. So, is it the right
ML or is there another one?
--
Cyril Ferlicot
https://ferlicot.fr
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 76814ae7e53f96787a8079f41a1144c95098ea97
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/76814ae7e53f96787a…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2018-05-31 (Thu, 31 May 2018)
Changed paths:
M spursista64src/vm/cogit.h
M spursista64src/vm/cointerp.c
M spursista64src/vm/cointerp.h
M spursista64src/vm/gcc3x-cointerp.c
M spursistasrc/vm/cogit.h
M spursistasrc/vm/cointerp.c
M spursistasrc/vm/cointerp.h
M spursistasrc/vm/gcc3x-cointerp.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.2400
Fix Sista build failing due to the lack of an export of objectBytesForSlots:.
**NOTE:** This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/
Functionality will be removed from GitHub.com on January 31st, 2019.
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2400.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2400
Author: eem
Time: 31 May 2018, 11:01:06.49964 am
UUID: 1ba9bd98-23e8-4045-9b36-21c45003b2c4
Ancestors: VMMaker.oscog-eem.2399
Fix Sista build which is failing due to the lack of an export of objectBytesForSlots:.
=============== Diff against VMMaker.oscog-eem.2399 ===============
Item was added:
+ ----- Method: Spur32BitCoMemoryManager>>objectBytesForSlots: (in category 'object enumeration') -----
+ objectBytesForSlots: numSlots
+ "Answer the total number of bytes in an object with the given
+ number of slots, including header and possible overflow size header."
+ <api>
+ <option: #SistaVM>
+ ^super objectBytesForSlots: numSlots!
Item was added:
+ ----- Method: Spur64BitCoMemoryManager>>objectBytesForSlots: (in category 'object enumeration') -----
+ objectBytesForSlots: numSlots
+ "Answer the total number of bytes in an object with the given
+ number of slots, including header and possible overflow size header."
+ <api>
+ <option: #SistaVM>
+ ^super objectBytesForSlots: numSlots!
Hello all,
I have previously written an incremental GC in C++ and will be writing a GC
to handle multiple threads in C that could then be ported to Slang.
I will be benchmarking various generational schemes, concurrent, and
multithreaded garbage collection algorithms and writing a report on my
findings.
I am wondering if there are any platform agnostic datasets I could use to
benchmark different algorithms and schemes, such as:
Alternatively any set of ideal multi-threaded algorithms or pieces of code
that can be used. I want to try out all of these algorithms in C and then
port it to Slang.
I will be testing out various tradeoffs and completely new schemes for GC.
I will check out the benchmarks in CogVM when I get back home. I'm pretty
sure it wouldn't be difficult for me to create a dataset from one of those
benchmarking algorithms by simply logging changes while using a simple
tracing GC.
I am also sending out this message to get the ball rolling and conversation
started.
Regards,
Keldon
--
Sent from: http://forum.world.st/Squeak-VM-f104410.html