in reply to Re^3: "versioned" builds of Win32 perl
in thread "versioned" builds of Win32 perl

Does the directory exist? I think its because it doesn't exist. I'm testing now.

Replies are listed 'Best First'.
Re^5: "versioned" builds of Win32 perl
by Anonymous Monk on Aug 14, 2009 at 00:15 UTC
    I've tested, it is because this
    #ifdef PERL_INC_VERSION_LIST const U8 addoldvers = (U8)flags & INCPUSH_ADD_OLD_VERS; #endif
    is never true.
      #ifdef PERL_INC_VERSION_LIST *is* true if it's set to something like "5.10.10",0 in Config.h - and that happens when the changes to config_H.gc and config.gc (mentioned above) are made. Without those changes, however, PERL_INC_VERSION_LIST will *not* be defined in Config.h.

      Also, the directory /perl/site/5.10.0/lib does exist for me ... there must be other hacks required ...

      Cheers,
      Rob
        No, addoldvers is never true. S_init_perllib has many calls to incpush like
        #ifdef PERL_VENDORLIB_EXP # if defined(WIN32) /* this picks up vendorarch as well */ s = win32_get_vendorlib(PERL_FS_VERSION, &len); if (s) incpush_use_sep(s, len, INCPUSH_ADD_SUB_DIRS|INCPUSH_CAN_RELOC +ATE); # else S_incpush_use_sep(aTHX_ STR_WITH_LEN(PERL_VENDORLIB_EXP), INCPUSH_CAN_RELOCATE); # endif #endif
        For some reason addoldvers is never true.

        update: This is my latest try, it didn't work

        perl -pi.orig -e " s!^d_inc_version_list=.*$!d_inc_version_list='defin +e'! " win32/config.gc perl -pi.orig -e " s!^inc_version_list=.*$!inc_version_list='5.10.1 5. +10.0'! " win32/config.gc perl -pi.orig -e " s!^inc_version_list_init=.*$!inc_version_list_init= +'\x225.10.1\x22, \x225.10.0\x22, 0'! " win32/config.gc perl -pi.orig -e " s!^.*#define PERL_INC_VERSION_LIST.*$!#define PERL_ +INC_VERSION_LIST \x225.10.1\x22, \x225.10.0\x22, 0! " win32/config_H. +gc perl -pi.orig -e " s!^#INST_VER!INST_VER! " win32/makefile.mk perl -pi.orig -e " s!^#INST_ARCH!INST_ARCH! " win32/makefile.mk perl -pi.orig -e " s!^#USE_SITECUST!USE_SITECUST! " win32/makefile.mk perl -pi.orig -e " s!^(LIBC\s+=\s+-lmsvcrt)!#$1! " win32/makefile.mk @rem @echo for 5.11.x perl -pi.orig -e " !/#define/ and !/INCPUSH_ADD_OLD_VERS/ and s!INCPUS +H_CAN_RELOCATE!INCPUSH_CAN_RELOCATE|INCPUSH_ADD_OLD_VERS ! " perl.c @rem @echo for 5.10.x perl -pi.orig -e " !/#define/ and s!incpush\(\s*(\w+)\s*,\s*(TRUE|FALS +E)\s*,\s*(TRUE|FALSE)\s*,\s*(TRUE|FALSE)\s*,\s*(TRUE|FALSE)\s*\);!inc +push($1,$2,$3,TRUE,$4);! " perl.c del *.orig del win32\*.orig cd win32 dmake -f makefile.mk install