加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何使用DEBUG_LEAKING_SCALARS编译perl?

发布时间:2020-12-15 21:33:42 所属栏目:大数据 来源:网络整理
导读:我正在尝试使用-DDEBUG_LEAKING_SCALARS安装perl perlbrew install perl-5.24.1 -DDEBUGGING -DDEBUG_LEAKING_SCALARS --as perl-debug-5.24.1 但没有成功: $perl -V | perl -MData::Dumper -e 'local $/; $_ = ; $h{$1} = $2 while /(-(?:DDEBUGGING|DDEBU
我正在尝试使用-DDEBUG_LEAKING_SCALARS安装perl
perlbrew install perl-5.24.1 -DDEBUGGING -DDEBUG_LEAKING_SCALARS --as perl-debug-5.24.1

但没有成功:

$perl -V | perl -MData::Dumper -e 'local $/; $_ = <>; $h{$1} = $2 while /(-(?:DDEBUGGING|DDEBUG_LEAKING_SCALARS))(?:=(.*?))?(?=s|$)/g; print Dumper %h'
$VAR1 = {
          '-DDEBUGGING' => undef,'-DDEBUG_LEAKING_SCALARS' => undef
        };
kes@work ~/work/projects/github-forks/perl5 $perl -V
Summary of my perl5 (revision 5 version 24 subversion 1) configuration:

  Platform:
    osname=linux,osvers=4.4.0-57-generic,archname=x86_64-linux
    uname='linux work 4.4.0-57-generic #78-ubuntu smp fri dec 9 23:50:32 utc 2016 x86_64 x86_64 x86_64 gnulinux '
    config_args='-de -Dprefix=/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1 -DDEBUGGING -DDEBUG_LEAKING_SCALARS -Aeval:scriptdir=/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/bin'
    hint=recommended,useposix=true,d_sigaction=define
    useithreads=undef,usemultiplicity=undef
    use64bitint=define,use64bitall=define,uselongdouble=undef
    usemymalloc=n,bincompat5005=undef
  Compiler:
    cc='cc',ccflags ='-fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',optimize='-O2 -g',cppflags='-fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion='',gccversion='5.4.0 20160609',gccosandvers=''
    intsize=4,longsize=8,ptrsize=8,doublesize=8,byteorder=12345678,doublekind=3
    d_longlong=define,longlongsize=8,d_longdbl=define,longdblsize=16,longdblkind=3
    ivtype='long',ivsize=8,nvtype='double',nvsize=8,Off_t='off_t',lseeksize=8
    alignbytes=8,prototype=define
  Linker and Libraries:
    ld='cc',ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /lib64 /usr/lib64
    libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.23.so,so=so,useshrplib=false,libperl=libperl.a
    gnulibc_version='2.23'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs,dlext=so,d_dlsymun=undef,ccdlflags='-Wl,-E'
    cccdlflags='-fPIC',lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options: DEBUGGING HAS_TIMES PERLIO_LAYERS PERL_COPY_ON_WRITE
                        PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_64_BIT_INT
                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME
                        USE_PERLIO USE_PERL_ATOF
  Locally applied patches:
    Devel::PatchPerl 1.38
  Built under linux
  Compiled at Mar  9 2017 15:21:39
  %ENV:
    PERL5LIB="/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug/lib/perl5"
    PERLBREW="command perlbrew"
    PERLBREW_BASHRC_VERSION="0.76"
    PERLBREW_HOME="/home/kes/.perlbrew"
    PERLBREW_LIB="debug"
    PERLBREW_MANPATH="/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug/man:/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/man"
    PERLBREW_PATH="/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug/bin:/home/kes/perl5/perlbrew/bin:/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/bin"
    PERLBREW_PERL="perl-debug-5.24.1"
    PERLBREW_ROOT="/home/kes/perl5/perlbrew"
    PERLBREW_VERSION="0.76"
    PERL_LOCAL_LIB_ROOT="/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug"
    PERL_MB_OPT="--install_base /home/kes/.perlbrew/libs/perl-debug-5.24.1@debug"
    PERL_MM_OPT="INSTALL_BASE=/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug"
  @INC:
    /home/kes/.perlbrew/libs/perl-debug-5.24.1@debug/lib/perl5/x86_64-linux
    /home/kes/.perlbrew/libs/perl-debug-5.24.1@debug/lib/perl5
    /home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/site_perl/5.24.1/x86_64-linux
    /home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/site_perl/5.24.1
    /home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/5.24.1/x86_64-linux
    /home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/5.24.1
    .

此外,这表明perl没有编译需要的选项:

$perl -MConfig::Perl::V -MDDP -E 'p %{ Config::Perl::V::myconfig() }'
{
    build         {
        options   {
            DEBUGGING                           1,DEBUG_LEAKING_SCALARS               0,DEBUG_LEAKING_SCALARS_FORK_DUMP     0,DECCRTL_SOCKETS                     0,FAKE_THREADS                        0,FCRYPT                              0,HAS_TIMES                           1,HAVE_INTERP_INTERN                  0,MULTIPLICITY                        0,MYMALLOC                            0,NO_HASH_SEED                        0,NO_MATHOMS                          0,NO_TAINT_SUPPORT                    0,PERL_BOOL_AS_CHAR                   0,PERL_COPY_ON_WRITE                  1,PERL_DEBUG_READONLY_COW             0,PERL_DEBUG_READONLY_OPS             0,PERL_DISABLE_PMC                    0,PERL_DONT_CREATE_GVSV               1,PERL_EXTERNAL_GLOB                  0,PERL_GLOBAL_STRUCT                  0,PERL_GLOBAL_STRUCT_PRIVATE          0,PERL_HASH_FUNC_DJB2                 0,PERL_HASH_FUNC_MURMUR3              0,PERL_HASH_FUNC_ONE_AT_A_TIME        0,PERL_HASH_FUNC_ONE_AT_A_TIME_HARD   1,PERL_HASH_FUNC_ONE_AT_A_TIME_OLD    0,PERL_HASH_FUNC_SDBM                 0,PERL_HASH_FUNC_SIPHASH              0,PERL_HASH_FUNC_SUPERFAST            0,PERL_IMPLICIT_CONTEXT               0,PERL_IMPLICIT_SYS                   0,PERLIO_LAYERS                       1,PERL_IS_MINIPERL                    0,PERL_MAD                            0,PERL_MALLOC_WRAP                    1,PERL_MEM_LOG                        0,PERL_MEM_LOG_ENV                    0,PERL_MEM_LOG_ENV_FD                 0,PERL_MEM_LOG_NOIMPL                 0,PERL_MEM_LOG_STDERR                 0,PERL_MEM_LOG_TIMESTAMP              0,PERL_MICRO                          0,PERL_NEED_APPCTX                    0,PERL_NEED_TIMESBASE                 0,PERL_NEW_COPY_ON_WRITE              0,PERL_OLD_COPY_ON_WRITE              0,PERL_PERTURB_KEYS_DETERMINISTIC     0,PERL_PERTURB_KEYS_DISABLED          0,PERL_PERTURB_KEYS_RANDOM            0,PERL_POISON                         0,PERL_PRESERVE_IVUV                  1,PERL_RELOCATABLE_INCPUSH            0,PERL_SAWAMPERSAND                   0,PERL_TRACK_MEMPOOL                  0,PERL_USE_DEVEL                      0,PERL_USE_SAFE_PUTENV                0,PERL_USES_PL_PIDSTATUS              0,PL_OP_SLAB_ALLOC                    0,THREADS_HAVE_PIDS                   0,UNLINK_ALL_VERSIONS                 0,USE_ATTRIBUTES_FOR_PERLIO           0,USE_FAST_STDIO                      0,USE_HASH_SEED_EXPLICIT              0,USE_IEEE                            0,USE_ITHREADS                        0,USE_LARGE_FILES                     1,USE_LOCALE                          1,USE_LOCALE_COLLATE                  1,USE_LOCALE_CTYPE                    1,USE_LOCALE_NUMERIC                  1,USE_LOCALE_TIME                     1,USE_LONG_DOUBLE                     0,USE_NO_REGISTRY                     0,USE_PERL_ATOF                       1,USE_PERLIO                          1,USE_QUADMATH                        0,USE_REENTRANT_API                   0,USE_SFIO                            0,USE_SITECUSTOMIZE                   0,USE_SOCKS                           0,USE_64_BIT_ALL                      1,USE_64_BIT_INT                      1,VMS_DO_SOCKETS                      0,VMS_SHORTEN_LONG_SYMBOLS            0,VMS_SYMBOL_CASE_AS_IS               0
        },osname    "linux",patches   [
            [0] "Devel::PatchPerl 1.38"
        ],stamp     "Mar  9 2017 15:21:39"
    },config        {
        alignbytes                  8,api_subversion              0,api_version                 24,api_versionstring           "5.24.0",archlibexp                  "/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/5.24.1/x86_64-linux",archname                    "x86_64-linux",bincompat5005               undef,byteorder                   12345678,cc                          "cc",cccdlflags                  "-fPIC",ccdlflags                   "-Wl,-E",ccflags                     "-fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64",ccversion                   "",config_args                 "-de -Dprefix=/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1 -DDEBUGGING -DDEBUG_LEAKING_SCALARS -Aeval:scriptdir=/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/bin",cppflags                    "-fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include",d_dlsymun                   undef,dlext                       "so",d_longdbl                   "define",d_longlong                  "define",dlsrc                       "dl_dlopen.xs",dont_use_nlink              undef,doublesize                  8,d_readlink                  "define",d_sfio                      undef,d_sigaction                 "define",d_symlink                   "define",exe_ext                     "",gccosandvers                "",gccversion                  "5.4.0 20160609",git_branch                  "",git_commit_id               "",git_commit_id_title         "",git_describe                "",git_snapshot_date           undef,git_uncommitted_changes     "",gnulibc_version             2.23,hint                        "recommended",inc_version_list            " ",intsize                     4,ivsize                      8,ivtype                      "long",ld                          "cc",lddlflags                   "-shared -O2 -g -L/usr/local/lib -fstack-protector-strong",ldflags                     " -fstack-protector-strong -L/usr/local/lib",ldlibpthname                "LD_LIBRARY_PATH",libc                        "libc-2.23.so",libperl                     "libperl.a",libpth                      "/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /lib64 /usr/lib64",libs                        "-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc",longdblsize                 16,longlongsize                8,longsize                    8,lseeksize                   8,lseektype                   "off_t",myuname                     "linux work 4.4.0-57-generic #78-ubuntu smp fri dec 9 23:50:32 utc 2016 x86_64 x86_64 x86_64 gnulinux ",nvsize                      8,nvtype                      "double",optimize                    "-O2 -g",osname                      "linux",osvers                      "4.4.0-57-generic",package                     "perl5",patchlevel                  24,path_sep                    ":",perllibs                    "-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc",perl_patchlevel             "",privlibexp                  "/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/5.24.1",prototype                   "define",ptrsize                     8,revision                    5,scriptdir                   "/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/bin",sitearchexp                 "/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/site_perl/5.24.1/x86_64-linux",sitelibexp                  "/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/site_perl/5.24.1",so                          "so",subversion                  1,useithreads                 undef,uselargefiles               "define",uselongdouble               undef,usemultiplicity             undef,usemymalloc                 "n",useperlio                   "define",useposix                    "true",useshrplib                  "false",usesocks                    undef,usevendorprefix             undef,use64bitall                 "define",use64bitint                 "define",version                     "5.24.1",version_patchlevel_string   "version 24 subversion 1"
    },derived       {
        Off_t   "off_t",patch   "",uname   "linux work 4.4.0-57-generic #78-ubuntu smp fri dec 9 23:50:32 utc 2016 x86_64 x86_64 x86_64 gnulinux "
    },environment   {
        PERLBREW                  "command perlbrew",PERLBREW_BASHRC_VERSION   0.76,PERLBREW_HOME             "/home/kes/.perlbrew",PERLBREW_LIB              "debug",PERLBREW_MANPATH          "/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug/man:/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/man",PERLBREW_PATH             "/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug/bin:/home/kes/perl5/perlbrew/bin:/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/bin",PERLBREW_PERL             "perl-debug-5.24.1",PERLBREW_ROOT             "/home/kes/perl5/perlbrew",PERLBREW_VERSION          0.76,PERL_LOCAL_LIB_ROOT       "/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug",PERL_MB_OPT               "--install_base /home/kes/.perlbrew/libs/perl-debug-5.24.1@debug",PERL_MM_OPT               "INSTALL_BASE=/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug",PERL5LIB                  "/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug/lib/perl5"
    },inc           [
        [0] "/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug/lib/perl5/x86_64-linux",[1] "/home/kes/.perlbrew/libs/perl-debug-5.24.1@debug/lib/perl5",[2] "/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/site_perl/5.24.1/x86_64-linux",[3] "/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/site_perl/5.24.1",[4] "/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/5.24.1/x86_64-linux",[5] "/home/kes/perl5/perlbrew/perls/perl-debug-5.24.1/lib/5.24.1",[6] "."
    ]
}

如何使用DEBUG_LEAKING_SCALARS编译perl?

解决方法

doc has error.要使用此选项编译perl,您应该使用下一个命令:
perlbrew install perl-5.24.1 -DDEBUGGING -Accflags=-DDEBUG_LEAKING_SCALARS -j9 --as perl-debug-5.24.1

我从this commit发现了这个信息

UPDDOC由David Mitchell在commit#b49862865修复.谢谢

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读