Skip to content
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

64bit Perl with -Dvendorprefix cause Module::Build and similar to segfault on Solaris using Sun Studio #10905

Open
p5pRT opened this issue Dec 15, 2010 · 4 comments

Comments

@p5pRT
Copy link

p5pRT commented Dec 15, 2010

Migrated from rt.perl.org#80782 (status was 'open')

Searchable as RT80782$

@p5pRT
Copy link
Author

p5pRT commented Dec 15, 2010

From bdha@mirrorshades.net

Created by bda@mirrorshades.net

# cc -V
cc​: Sun C 5.9 SunOS_i386 2007/05/03

# uname -a
SunOS siege 5.11 snv_151a i86pc i386 i86pc

# ./Configure -Dcc=cc -Dprefix=/opt/perl -DUuselargefiles -Accflags='-m64' -Aldflags='-m64' -Dvendorprefix=/opt/perl

# make && make test
...
cpan/ExtUtils-MakeMaker/t/basic................................# Failed test 'make test'
# at t/basic.t line 108.
# 'cp lib/Big/Dummy.pm blib/lib/Big/Dummy.pm
# cp lib/Big/Liar.pm ../blib/lib/Big/Liar.pm
# cp bin/program blib/script/program
# /export/scratch/perl-5.12.2/cpan/ExtUtils-MakeMaker/../../t/perl "-I../../../../lib" "-I../../../../lib" -MExtUtils​::MY -e 'MY->fixin(shift)' -- blib/script/program
# PERL_DL_NONLAZY=1 /export/scratch/perl-5.12.2/cpan/ExtUtils-MakeMaker/../../t/perl "-I../../../../lib" "-I../../../../lib" "-MExtUtils​::Command​::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# *** Signal 11 - core dumped
# make​: Fatal error​: Command failed for target `test_dynamic'
# '
# doesn't match '(?-xism​:All tests successful)'
FAILED at test 22
...
Failed 15 tests out of 1689, 99.11% okay.
  ../cpan/ExtUtils-MakeMaker/t/basic.t
  ../cpan/Module-Build/t/basic.t
  ../cpan/Module-Build/t/compat.t
  ../cpan/Module-Build/t/perl_mb_opt.t
  ../cpan/Module-Build/t/runthrough.t
  ../cpan/Module-Build/t/test_file_exts.t
  ../cpan/Module-Build/t/test_type.t
  ../cpan/Module-Build/t/test_types.t
  ../cpan/Module-Build/t/xs.t
  ../cpan/Test-Harness/t/compat/env.t
  ../cpan/Test-Harness/t/compat/failure.t
  ../cpan/Test-Harness/t/compat/inc-propagation.t
  ../cpan/Test-Harness/t/compat/inc_taint.t
  ../cpan/Test-Harness/t/compat/regression.t
  ../cpan/Test-Harness/t/compat/test-harness-compat.t

# pstack ./cpan/Module-Build/MB-OJI4JB0a/Simple/core
core './cpan/Module-Build/MB-OJI4JB0a/Simple/core' of 6575​: /export/scratch/perl-5.12.2/cpan/Module-Build/../../t/perl Build --mak
00000000004b1e1a Perl_av_store () + 2ea
00000000004e5c49 Perl_pp_push () + 369
00000000004b3eeb Perl_runops_standard () + 3b
000000000044e160 S_run_body () + d0
000000000044e08e ???????? ()
00000000004385e5 main () + 95
00000000004383fc ???????? ()

##
## Build without vendorprefix and all is happy.
##

# ./Configure -Dcc=cc -Dprefix=/opt/perl -DUuselargefiles -Accflags='-m64' -Aldflags='-m64'
...
cpan/ExtUtils-MakeMaker/t/basic................................ok
...

All tests successful.
u=3.92 s=2.09 cu=337.01 cs=46.68 scripts=1690 tests=349750

##
##
##

Building with 32bit and vendorprefix works fine. Building 64bit with
vendorprefix using gcc is fine.

I first noticed this issue when building 64bit perl@​pkgsrc (2010q3), on Solaris
using Studio 12.1. Works the same.

rjbs@​ has reproduced this bug.

Cheers.

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl 5.12.2:

Configured by root at Tue Dec 14 20:57:31 EST 2010.

Summary of my perl5 (revision 5 version 12 subversion 2) configuration:
   
  Platform:
    osname=solaris, osvers=2.11, archname=i86pc-solaris
    uname='sunos siege 5.11 snv_151a i86pc i386 i86pc '
    config_args='-Dcc=cc -Dprefix=/opt/perl -Duselargefiles -Accflags=-m64 -Aldflags=-m64 -Accflags=-DAPPLLIB_EXP=\"/var/perl/site\"'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-m64 -DAPPLLIB_EXP="/var/perl/site" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV',
    optimize='-O',
    cppflags='-m64 -DAPPLLIB_EXP="/var/perl/site"'
    ccversion='Sun C 5.9 SunOS_i386 2007/05/03', gccversion='', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -m64 -L/usr/lib -L/usr/ccs/lib -L/opt/SUNWspro/prod/lib -L/lib -L/usr/gnu/lib '
    libpth=/usr/lib /usr/ccs/lib /opt/SUNWspro/prod/lib /lib /usr/gnu/lib
    libs=-lsocket -lnsl -ldl -lm -lc
    perllibs=-lsocket -lnsl -ldl -lm -lc
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-KPIC', lddlflags='-G -m64 -L/usr/lib -L/usr/ccs/lib -L/opt/SUNWspro/prod/lib -L/lib -L/usr/gnu/lib'

Locally applied patches:
    


@INC for perl 5.12.2:
    lib
    /var/perl/site
    /opt/perl/lib/site_perl/5.12.2/i86pc-solaris
    /opt/perl/lib/site_perl/5.12.2
    /opt/perl/lib/5.12.2/i86pc-solaris
    /opt/perl/lib/5.12.2
    .


Environment for perl 5.12.2:
    HOME=/root
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/opt/perl/bin:/rpool/build/perl/base/bin:/usr/pkg/lib/perl5/site_perl/bin:/usr/pkg/lib/perl5/bin:/usr/pkg/lib/perl5/vendor_perl/bin:/usr/pkg/lib/perl5/bin:/usr/pkg/bin:/usr/pkg/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/sfw/sbin:/sw/bin:/sw/sbin:/opt/SUNWspro/bin
    PERL_BADLANG (unset)
    SHELL=/bin/bash
-- 
bdha
cyberpunk is dead. long live cyberpunk.

@p5pRT
Copy link
Author

p5pRT commented Mar 24, 2012

From @jkeenan

On Tue Dec 14 19​:07​:13 2010, bdha@​mirrorshades.net wrote​:

This is a bug report for perl from bda@​mirrorshades.net,
generated with the help of perlbug 1.39 running under perl 5.12.2.

# cc -V
cc​: Sun C 5.9 SunOS_i386 2007/05/03

# uname -a
SunOS siege 5.11 snv_151a i86pc i386 i86pc

# ./Configure -Dcc=cc -Dprefix=/opt/perl -DUuselargefiles
-Accflags='-m64' -Aldflags='-m64' -Dvendorprefix=/opt/perl

# make && make test
...
cpan/ExtUtils-MakeMaker/t/basic................................#
Failed test 'make test'
# at t/basic.t line 108.
# 'cp lib/Big/Dummy.pm blib/lib/Big/Dummy.pm
# cp lib/Big/Liar.pm ../blib/lib/Big/Liar.pm
# cp bin/program blib/script/program
# /export/scratch/perl-5.12.2/cpan/ExtUtils-MakeMaker/../../t/perl "-
I../../../../lib" "-I../../../../lib" -MExtUtils​::MY -e 'MY-

fixin(shift)' -- blib/script/program
# PERL_DL_NONLAZY=1 /export/scratch/perl-5.12.2/cpan/ExtUtils-
MakeMaker/../../t/perl "-I../../../../lib" "-I../../../../lib" "-
MExtUtils​::Command​::MM" "-e" "test_harness(0, 'blib/lib',
'blib/arch')" t/*.t
# *** Signal 11 - core dumped
# make​: Fatal error​: Command failed for target `test_dynamic'
# '
# doesn't match '(?-xism​:All tests successful)'
FAILED at test 22
...
Failed 15 tests out of 1689, 99.11% okay.
../cpan/ExtUtils-MakeMaker/t/basic.t
../cpan/Module-Build/t/basic.t
../cpan/Module-Build/t/compat.t
../cpan/Module-Build/t/perl_mb_opt.t
../cpan/Module-Build/t/runthrough.t
../cpan/Module-Build/t/test_file_exts.t
../cpan/Module-Build/t/test_type.t
../cpan/Module-Build/t/test_types.t
../cpan/Module-Build/t/xs.t
../cpan/Test-Harness/t/compat/env.t
../cpan/Test-Harness/t/compat/failure.t
../cpan/Test-Harness/t/compat/inc-propagation.t
../cpan/Test-Harness/t/compat/inc_taint.t
../cpan/Test-Harness/t/compat/regression.t
../cpan/Test-Harness/t/compat/test-harness-compat.t

# pstack ./cpan/Module-Build/MB-OJI4JB0a/Simple/core
core './cpan/Module-Build/MB-OJI4JB0a/Simple/core' of 6575​:
/export/scratch/perl-5.12.2/cpan/Module-Build/../../t/perl Build
--mak
00000000004b1e1a Perl_av_store () + 2ea
00000000004e5c49 Perl_pp_push () + 369
00000000004b3eeb Perl_runops_standard () + 3b
000000000044e160 S_run_body () + d0
000000000044e08e ???????? ()
00000000004385e5 main () + 95
00000000004383fc ???????? ()

##
## Build without vendorprefix and all is happy.
##

# ./Configure -Dcc=cc -Dprefix=/opt/perl -DUuselargefiles
-Accflags='-m64' -Aldflags='-m64'
...
cpan/ExtUtils-MakeMaker/t/basic................................ok
...

All tests successful.
u=3.92 s=2.09 cu=337.01 cs=46.68 scripts=1690 tests=349750

##
##
##

Building with 32bit and vendorprefix works fine. Building 64bit with
vendorprefix using gcc is fine.

I first noticed this issue when building 64bit perl@​pkgsrc (2010q3),
on Solaris
using Studio 12.1. Works the same.

rjbs@​ has reproduced this bug.

rjbs​: Is this specific to 64bit Solaris/Studio 12.1? Or have you
reproduced it on other platforms?

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented Mar 24, 2012

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Apr 5, 2012

From @rjbs

I believe this was boiled down to a bug in sun's cc's optimizer. I will try to find our records.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants