New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add unexec #176

Open
rurban opened this Issue Jul 4, 2016 · 5 comments

Comments

2 participants
@rurban
Member

rurban commented Jul 4, 2016

sources from emacs, and re-enable -u and dump.
with support for elf, coff, darwin, cygwin, win32/64, hpux, aix, sunos/solaris, dos.

TODO:

See feature/gh176-unexec

@rurban rurban added the enhancement label Jul 4, 2016

@rurban rurban self-assigned this Jul 4, 2016

rurban pushed a commit that referenced this issue Jul 4, 2016

Reini Urban
unexec: enable unexmacosx
dumps fine. fails in starting at Perl_set_caret_X(),
empty gv_fetchpvs() $^X symbol.

See #176
@rurban

This comment has been minimized.

Show comment
Hide comment
@rurban

rurban Jul 4, 2016

Member

With 7d2f258 I can successfully dump a binary cperl executable from any script, even -e. (darwin so far, the others need to be tested).
Just the initialization order is wrong, gv_fetch fails to retrieve the dynamic $^X, which is still empty.

Member

rurban commented Jul 4, 2016

With 7d2f258 I can successfully dump a binary cperl executable from any script, even -e. (darwin so far, the others need to be tested).
Just the initialization order is wrong, gv_fetch fails to retrieve the dynamic $^X, which is still empty.

rurban pushed a commit that referenced this issue Jul 4, 2016

Reini Urban
unexec: enable unexmacosx
dumps fine. fails in starting at Perl_set_caret_X(),
empty gv_fetchpvs() $^X symbol. we need to change the init order,
as $^X and some others need to be initialized dynamically,
similar to dynaloaded modules.

See #176

rurban pushed a commit that referenced this issue Jul 4, 2016

Reini Urban
unexec: enable unexmacosx
dumps fine.
fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris.

See #176

rurban pushed a commit that referenced this issue Jul 4, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.

See #176

rurban pushed a commit that referenced this issue Jul 4, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.

See #176

rurban pushed a commit that referenced this issue Jul 4, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 6, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176
@bulk88

This comment has been minimized.

Show comment
Hide comment
@bulk88

bulk88 Jul 6, 2016

Member

the emacs undump code for win32 is unusable by perl. emacs uses a custom malloc that allows storing and restoring the custom heap from a disk file. I also cant figure out how the emacs code is going to recreate and make valid again all the FDs from the frozen proc. XS DLLs and 3rd party DLLs need to be frozen and unfrozen too. Win32 unexec code pretty much would have to use https://msdn.microsoft.com/en-us/library/windows/desktop/ms680360%28v=vs.85%29.aspx to make a memory dump file, then reinflate it, and tweak the PEB and TEB structs to register all the Win32 heaps to the master linked list of heaps. There might also be drama in having to defeat ASLR/C stack buffer overflow sentinal patterns.

Member

bulk88 commented Jul 6, 2016

the emacs undump code for win32 is unusable by perl. emacs uses a custom malloc that allows storing and restoring the custom heap from a disk file. I also cant figure out how the emacs code is going to recreate and make valid again all the FDs from the frozen proc. XS DLLs and 3rd party DLLs need to be frozen and unfrozen too. Win32 unexec code pretty much would have to use https://msdn.microsoft.com/en-us/library/windows/desktop/ms680360%28v=vs.85%29.aspx to make a memory dump file, then reinflate it, and tweak the PEB and TEB structs to register all the Win32 heaps to the master linked list of heaps. There might also be drama in having to defeat ASLR/C stack buffer overflow sentinal patterns.

@rurban

This comment has been minimized.

Show comment
Hide comment
@rurban

rurban Jul 6, 2016

Member

unexec has its own malloc, yes, to be able to access old dumped memory.

Parallel to perlcc IO in BEGIN blocks or before the dump opcode may not be replayed. This is a known limitation, and already known from perlcc. open/chdir being the worst.
I might think of adding hacks to reopen FD's, which would be easier than with B::C.

Dynamic modules are correctly loaded with unexec. The corresponding section handles this, e.g. LC_LOAD_DYLIB on darwin.
ASLR is also handled correctly by rebasing the dumped sections.

Member

rurban commented Jul 6, 2016

unexec has its own malloc, yes, to be able to access old dumped memory.

Parallel to perlcc IO in BEGIN blocks or before the dump opcode may not be replayed. This is a known limitation, and already known from perlcc. open/chdir being the worst.
I might think of adding hacks to reopen FD's, which would be easier than with B::C.

Dynamic modules are correctly loaded with unexec. The corresponding section handles this, e.g. LC_LOAD_DYLIB on darwin.
ASLR is also handled correctly by rebasing the dumped sections.

rurban pushed a commit that referenced this issue Jul 11, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 11, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 11, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 13, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 13, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 14, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 14, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176
@rurban

This comment has been minimized.

Show comment
Hide comment
@rurban

rurban Jul 14, 2016

Member

solaris

works for simple scripts, because it's trivial there.

$ ./miniperl -Ilib -u -e'print "ok\n"'
$ ./a.exe
ok

accessing argv/argc fails on the empty PL_argvgv symbol while dumping. init_argv_symbols/init_postdump_symbols is uninitialized for -u.

    /* init_postdump_symbols not currently designed to be called */
    /* more than once (ENV isn't cleared first, for example)     */
    /* But running with -u leaves %ENV & @ARGV undefined!    XXX */
    if (!PL_do_undump)
    init_postdump_symbols(argc,argv,env);

darwin

  • needs -Duseshrplib
  • uses unexec_malloc, which uses malloc_zone, before -u. After -u, running the dumped code it uses malloc().
  • fails with Bad address when dumping __bss DATA segments. With a static libperl.a also with __data and __common.
  • with a static libperl.a my_edata is not in .DATA, but in __common. nm disagrees with run-time.
  • works under the debugger

elf (linux)

  • dumps works fine, but run-time fails when freeing a dumped SV: parser->linestr (char*)
    via safesysfree, which should be freed with free instead. (easy to fix by only using malloc)
#3  0x00007ffff6d3d966 in malloc_printerr (action=3,
    str=0x7ffff6e2c442 "corrupted double-linked list", ptr=<optimized out>, ar_ptr=<optimized out>)
    at malloc.c:5007
#4  0x00007ffff6d3e936 in _int_free (av=0x7ffff7064b20 <main_arena>, p=<optimized out>,
    have_lock=0) at malloc.c:4006
#5  0x000000000054f011 in Perl_safesysfree (where=0xad0290) at util.c:390```

Member

rurban commented Jul 14, 2016

solaris

works for simple scripts, because it's trivial there.

$ ./miniperl -Ilib -u -e'print "ok\n"'
$ ./a.exe
ok

accessing argv/argc fails on the empty PL_argvgv symbol while dumping. init_argv_symbols/init_postdump_symbols is uninitialized for -u.

    /* init_postdump_symbols not currently designed to be called */
    /* more than once (ENV isn't cleared first, for example)     */
    /* But running with -u leaves %ENV & @ARGV undefined!    XXX */
    if (!PL_do_undump)
    init_postdump_symbols(argc,argv,env);

darwin

  • needs -Duseshrplib
  • uses unexec_malloc, which uses malloc_zone, before -u. After -u, running the dumped code it uses malloc().
  • fails with Bad address when dumping __bss DATA segments. With a static libperl.a also with __data and __common.
  • with a static libperl.a my_edata is not in .DATA, but in __common. nm disagrees with run-time.
  • works under the debugger

elf (linux)

  • dumps works fine, but run-time fails when freeing a dumped SV: parser->linestr (char*)
    via safesysfree, which should be freed with free instead. (easy to fix by only using malloc)
#3  0x00007ffff6d3d966 in malloc_printerr (action=3,
    str=0x7ffff6e2c442 "corrupted double-linked list", ptr=<optimized out>, ar_ptr=<optimized out>)
    at malloc.c:5007
#4  0x00007ffff6d3e936 in _int_free (av=0x7ffff7064b20 <main_arena>, p=<optimized out>,
    have_lock=0) at malloc.c:4006
#5  0x000000000054f011 in Perl_safesysfree (where=0xad0290) at util.c:390```

@rurban

This comment has been minimized.

Show comment
Hide comment
@rurban

rurban Jul 14, 2016

Member

Run init_postdump_symbols 2x with -u:
We need the %ENV & @argv symbols during BEGIN, and we need to re-initialize in dumped binaries.

    /* init_postdump_symbols not currently designed to be called */
    /* more than once (ENV isn't cleared first, for example)     */
    /* But running with -u leaves %ENV & @ARGV undefined!    XXX */
    init_postdump_symbols(argc,argv,env);
Member

rurban commented Jul 14, 2016

Run init_postdump_symbols 2x with -u:
We need the %ENV & @argv symbols during BEGIN, and we need to re-initialize in dumped binaries.

    /* init_postdump_symbols not currently designed to be called */
    /* more than once (ENV isn't cleared first, for example)     */
    /* But running with -u leaves %ENV & @ARGV undefined!    XXX */
    init_postdump_symbols(argc,argv,env);

@rurban rurban added this to the v5.26.0 milestone Jul 14, 2016

rurban pushed a commit that referenced this issue Jul 19, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 25, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 26, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 27, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 28, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 28, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 31, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban pushed a commit that referenced this issue Jul 31, 2016

Reini Urban
unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Dec 23, 2017

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Dec 23, 2017

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Dec 24, 2017

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Dec 26, 2017

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Dec 26, 2017

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Dec 27, 2017

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Jan 6, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Jan 9, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Jan 16, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Feb 4, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Aug 28, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Aug 28, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 1, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 1, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 2, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 6, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 13, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 14, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 14, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 14, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 16, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 18, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Sep 25, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Oct 4, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Oct 4, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Oct 6, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Oct 7, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Oct 8, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Oct 12, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176

rurban added a commit that referenced this issue Oct 20, 2018

unexec: enable unexmacosx
dumps and starts fine, even if we don't record the regions yet.

fails in starting at Perl_set_caret_X(), empty gv_fetchpvs() $^X symbol.
we need to change the init order, as $^X and some others need to be initialized
dynamically, similar to dynaloaded modules.

prepared the other sources also, but untested.
esp. win32 and solaris. macosx and win32 seem to be the most trickiest.
harmonize error message, esp. when failing to create the file, most likely
due to a BEGIN { chdir .. }, changed pwd.

See #176
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment