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

t/porting/libperl.t: Test failure on Darwin #13978

Closed
p5pRT opened this issue Jul 10, 2014 · 17 comments
Closed

t/porting/libperl.t: Test failure on Darwin #13978

p5pRT opened this issue Jul 10, 2014 · 17 comments

Comments

@p5pRT
Copy link

p5pRT commented Jul 10, 2014

Migrated from rt.perl.org#122267 (status was 'resolved')

Searchable as RT122267$

@p5pRT
Copy link
Author

p5pRT commented Jul 10, 2014

From @jkeenan

[Originally filed on p5p newsgroup; transferring to RT]

I successfully built and tested Perl 5.20.0 on Darwin/PPC when it was released two months ago. I built and tested blead today for the first time since then. I was surprised to get a test failure in t/porting/libperl.c.

When I re-directed the test's STDOUT and STDERR to a file, I got a tremendous amount of "# Unexpected nm output" lines. For the full output, see the tarball attached.

Here is the short version of the output.
#####
$ cd t;./perl harness -v porting/libperl.t ; cd -# Failed test 2 - has text Perl_peep at porting/libperl.t line 196
# Failed test 3 - has text Perl_pp_uc in pp.o at porting/libperl.t line 197
# Failed test 4 - has data const symbols at porting/libperl.t line 198
# Failed test 5 - has PL_no_mem at porting/libperl.t line 199
# Failed test 6 - has PL_hash_seed at porting/libperl.t line 325
# Failed test 7 - has PL_ppaddr at porting/libperl.t line 326

ok 1 - has object pp.o
not ok 2 - has text Perl_peep
not ok 3 - has text Perl_pp_uc in pp.o
not ok 4 - has data const symbols
not ok 5 - has PL_no_mem
not ok 6 - has PL_hash_seed
not ok 7 - has PL_ppaddr
ok 8 - has no PL_VarsPtr
ok 9 - has no PL_Vars
ok 10 - has no Perl_GetVars
Failed 6/10 subtests

Test Summary Report


porting/libperl.t (Wstat​: 0 Tests​: 10 Failed​: 6)
  Failed tests​: 2-7
Files=1, Tests=10, 3 wallclock secs ( 1.87 usr 0.12 sys + 0.22 cusr 0.07 csys = 2.28 CPU)
Result​: FAIL
/Users/jimk/gitwork/perl
#####

I am not getting this failure on Linux x86_64. I have not yet tried this on Darwin x86_64.

Has anything happened lately that would have an impact on this?

Thank you very much.
Jim Keenan

P.S.​: See attachment for 'perl -V' for the machine that had the failure.

@p5pRT
Copy link
Author

p5pRT commented Jul 10, 2014

@p5pRT
Copy link
Author

p5pRT commented Jul 10, 2014

From @jkeenan

Summary of my perl5 (revision 5 version 21 subversion 2) configuration​:
  Commit id​: a7fa505
  Platform​:
  osname=darwin, osvers=8.11.0, archname=darwin-2level
  uname='darwin macintosh-9.local 8.11.0 darwin kernel version 8.11.0​: wed oct 10 18​:26​:00 pdt 2007; root​:xnu-792.24.17~1release_ppc power macintosh powerpc '
  config_args='-des -Dusedevel'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=undef, usemultiplicity=undef
  use64bitint=undef, use64bitall=undef, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include -D_FORTIFY_SOURCE=2',
  optimize='-O3',
  cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include'
  ccversion='', gccversion='4.0.1 (Apple Computer, Inc. build 5250)', gccosandvers=''
  intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
  ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
  alignbytes=8, prototype=define
  Linker and Libraries​:
  ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -L/usr/local/lib -L/opt/local/lib'
  libpth=/usr/local/lib /usr/lib /opt/local/lib
  libs=-ldbm -ldl -lm -lc
  perllibs=-ldl -lm -lc
  libc=, so=dylib, useshrplib=false, libperl=libperl.a
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
  cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib'

Characteristics of this binary (from libperl)​:
  Compile-time options​: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
  PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
  PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
  PERL_USE_DEVEL USE_LARGE_FILES USE_LOCALE
  USE_LOCALE_COLLATE USE_LOCALE_CTYPE
  USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
  Built under darwin
  Compiled at Jul 9 2014 19​:34​:04
  %ENV​:
  PERLBREW_BASHRC_VERSION="0.59"
  PERLBREW_HOME="/Users/jimk/.perlbrew"
  PERLBREW_MANPATH=""
  PERLBREW_PATH="/Users/jimk/perl5/perlbrew/bin"
  PERLBREW_ROOT="/Users/jimk/perl5/perlbrew"
  PERLBREW_VERSION="0.59"
  PERL_WORKDIR="gitwork/perl"
  @​INC​:
  lib
  /usr/local/lib/perl5/site_perl/5.21.2/darwin-2level
  /usr/local/lib/perl5/site_perl/5.21.2
  /usr/local/lib/perl5/5.21.2/darwin-2level
  /usr/local/lib/perl5/5.21.2
  /usr/local/lib/perl5/site_perl
  .

@p5pRT
Copy link
Author

p5pRT commented Jul 11, 2014

From @jkeenan

On Thu Jul 10 16​:24​:33 2014, jkeenan wrote​:

[Originally filed on p5p newsgroup; transferring to RT]

I successfully built and tested Perl 5.20.0 on Darwin/PPC when it was
released two months ago. I built and tested blead today for the first
time since then. I was surprised to get a test failure in
t/porting/libperl.c.

[snip]

Has anything happened lately that would have an impact on this?

#####

commit d92f47a
Author​: Jarkko Hietaniemi <jhi@​iki.fi>
AuthorDate​: Mon Jun 23 20​:11​:50 2014
Commit​: Jarkko Hietaniemi <jhi@​iki.fi>
CommitDate​: Wed Jun 25 12​:43​:01 2014

  Add t/porting/libperl.t
 
  For sanity checking libperl.a on those platforms that have one,
  and extra checking for the rare configurations of -DPERL_GLOBAL_STRUCT
  and -DPERL_GLOBAL_STRUCT_PRIVATE which restructure the symbol exports.

#####

So this is not only a new failure in t/porting/libperl.t; it is also the very *first* failure reported in this file, as it was only added by Jarkko on June 25.

Jarkko has communicated to me that this is probably something trivial in the 'nm' output on PPC. He is travelling for a couple of weeks and will look at this upon his return.

Not that that should prevent anyone else from looking at this problem!

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented Jul 11, 2014

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

@p5pRT
Copy link
Author

p5pRT commented Jul 11, 2014

From @jkeenan

On Thu Jul 10 17​:43​:43 2014, jkeenan wrote​:

On Thu Jul 10 16​:24​:33 2014, jkeenan wrote​:
[snip]

So this is not only a new failure in t/porting/libperl.t; it is also
the very *first* failure reported in this file, as it was only added
by Jarkko on June 25.

Jarkko has communicated to me that this is probably something trivial
in the 'nm' output on PPC. He is travelling for a couple of weeks and
will look at this upon his return.

Not that that should prevent anyone else from looking at this problem!

This failure probably has an OS aspect and a platform aspect. Attached please find two files with the output of t/porting/libperl.t on Darwin x86_64. The file has failures on x86_64, albeit fewer than on the older PPC.

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented Jul 11, 2014

From @jkeenan

# Failed test 5 - has PL_no_mem at porting/libperl.t line 199
porting/libperl.t ..
# libperl = ../libperl.a
# nm = /usr/bin/nm
# nm_style = darwin
# nm_opt = -m
ok 1 - has object pp.o
ok 2 - has text Perl_peep
ok 3 - has text Perl_pp_uc in pp.o
ok 4 - has data const symbols
not ok 5 - has PL_no_mem
# GS = 0
# GSP = 0
# neither -DPERL_GLOBAL_STRUCT nor -DPERL_GLOBAL_STRUCT_PRIVATE
ok 6 - has PL_hash_seed
ok 7 - has PL_ppaddr
ok 8 - has no PL_VarsPtr
ok 9 - has no PL_Vars
ok 10 - has no Perl_GetVars
# darwin ignoring /usr/bin/nm output​: /usr/bin/nm​: no name list
1..10
Failed 1/10 subtests

Test Summary Report


porting/libperl.t (Wstat​: 0 Tests​: 10 Failed​: 1)
  Failed test​: 5
Files=1, Tests=10, 0 wallclock secs ( 0.01 usr 0.00 sys + 0.06 cusr 0.01 csys = 0.08 CPU)
Result​: FAIL

@p5pRT
Copy link
Author

p5pRT commented Jul 11, 2014

From @jkeenan

$ cd t; ./perl harness -v porting/libperl.t; cd -
# Failed test 5 - has PL_no_mem at porting/libperl.t line 199

ok 1 - has object pp.o
ok 2 - has text Perl_peep
ok 3 - has text Perl_pp_uc in pp.o
ok 4 - has data const symbols
not ok 5 - has PL_no_mem
ok 6 - has PL_hash_seed
ok 7 - has PL_ppaddr
ok 8 - has no PL_VarsPtr
ok 9 - has no PL_Vars
ok 10 - has no Perl_GetVars
Failed 1/10 subtests

Test Summary Report


porting/libperl.t (Wstat​: 0 Tests​: 10 Failed​: 1)
  Failed test​: 5
Files=1, Tests=10, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.08 cusr 0.01 csys = 0.11 CPU)
Result​: FAIL
/Users/jkeenan/gitwork/perl

$ ./perl -Ilib -V
Summary of my perl5 (revision 5 version 21 subversion 2) configuration​:
  Commit id​: 98b630b
  Platform​:
  osname=darwin, osvers=11.4.2, archname=darwin-2level
  uname='darwin 11.4.2 darwin kernel version 11.4.2​: thu aug 23 16​:25​:48 pdt 2012; root​:xnu-1699.32.7~1release_x86_64 x86_64 '
  config_args='-des -Dusedevel'
  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 ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
  optimize='-O3',
  cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
  ccversion='', gccversion='4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)', 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='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib'
  libpth=/usr/local/lib /usr/lib
  libs=-ldbm -ldl -lm -lutil -lc
  perllibs=-ldl -lm -lutil -lc
  libc=, so=dylib, useshrplib=false, libperl=libperl.a
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
  cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector'

Characteristics of this binary (from libperl)​:
  Compile-time options​: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
  PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
  PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
  PERL_USE_DEVEL USE_64_BIT_ALL USE_64_BIT_INT
  USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
  USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
  USE_PERL_ATOF
  Built under darwin
  Compiled at Jul 10 2014 16​:45​:21
  %ENV​:
  PERL5DIR="/Users/jkeenan/gitwork/perl"
  PERLBREW_BASHRC_VERSION="0.46"
  PERLBREW_HOME="/Users/jkeenan/.perlbrew"
  PERLBREW_MANPATH="/Users/jkeenan/perl5/perlbrew/perls/perl-5.16.2/man"
  PERLBREW_PATH="/Users/jkeenan/perl5/perlbrew/bin​:/Users/jkeenan/perl5/perlbrew/perls/perl-5.16.2/bin"
  PERLBREW_PERL="perl-5.16.2"
  PERLBREW_ROOT="/Users/jkeenan/perl5/perlbrew"
  PERLBREW_VERSION="0.46"
  PERL_WORKDIR="gitwork/perl"
  @​INC​:
  lib
  /usr/local/lib/perl5/site_perl/5.21.2/darwin-2level
  /usr/local/lib/perl5/site_perl/5.21.2
  /usr/local/lib/perl5/5.21.2/darwin-2level
  /usr/local/lib/perl5/5.21.2
  .

@p5pRT
Copy link
Author

p5pRT commented Jul 12, 2014

From @rjbs

Jim asked about marking this skipped on this platform until a fix is in. I think that's fine.

--
rjbs

@p5pRT
Copy link
Author

p5pRT commented Jul 12, 2014

From @karenetheridge

On Sat, Jul 12, 2014 at 02​:23​:36PM -0700, Ricardo SIGNES via RT wrote​:

Jim asked about marking this skipped on this platform until a fix is in. I think that's fine.

s/skipped/TODO/, for greater visibility?

@p5pRT
Copy link
Author

p5pRT commented Jul 12, 2014

From @rjbs

* Karen Etheridge <perl@​froods.org> [2014-07-12T17​:28​:02]

On Sat, Jul 12, 2014 at 02​:23​:36PM -0700, Ricardo SIGNES via RT wrote​:

Jim asked about marking this skipped on this platform until a fix is in. I
think that's fine.

s/skipped/TODO/, for greater visibility?

On most platforms, that would show up as "unexpected TODO pass," which is the
wrong kind of visibility. If the TODO is platform-specific, I'm not sure this
is really going to add any kind of visibility, is it?

--
rjbs

@p5pRT
Copy link
Author

p5pRT commented Jul 13, 2014

From @jkeenan

On Sat Jul 12 14​:23​:35 2014, rjbs wrote​:

Jim asked about marking this skipped on this platform until a fix is
in. I think that's fine.

commit ed0e322
Author​: James E Keenan <jkeenan@​cpan.org>
Date​: Sat Jul 12 22​:16​:23 2014 -0400

skip_all on darwin until nm peculiarities can be straighted out.

Assigning to jhi.

@p5pRT
Copy link
Author

p5pRT commented Jul 14, 2014

From @greerga

On Fri, 11 Jul 2014, James E Keenan via RT wrote​:

On Thu Jul 10 17​:43​:43 2014, jkeenan wrote​:

On Thu Jul 10 16​:24​:33 2014, jkeenan wrote​:
[snip]

So this is not only a new failure in t/porting/libperl.t; it is also
the very *first* failure reported in this file, as it was only added
by Jarkko on June 25.

Jarkko has communicated to me that this is probably something trivial
in the 'nm' output on PPC. He is travelling for a couple of weeks and
will look at this upon his return.

Not that that should prevent anyone else from looking at this problem!

This failure probably has an OS aspect and a platform aspect. Attached please find two files with the output of t/porting/libperl.t on Darwin x86_64. The file has failures on x86_64, albeit fewer than on the older PPC.

Curiously it doesn't fail for me on Mavericks with Intel​:

Darwin localhost 13.3.0 Darwin Kernel Version 13.3.0​: Tue Jun 3 21​:27​:35
PDT 2014; root​:xnu-2422.110.17~1/RELEASE_X86_64 x86_64

$ ./perl -I lib t/porting/libperl.t
# libperl = ../libperl.a
# nm = /usr/bin/nm
# nm_style = darwin
# nm_opt = -m
ok 1 - has object pp.o
ok 2 - has text Perl_peep
ok 3 - has text Perl_pp_uc in pp.o
ok 4 - has data const symbols
ok 5 - has PL_no_mem
# GS = 0
# GSP = 0
# neither -DPERL_GLOBAL_STRUCT nor -DPERL_GLOBAL_STRUCT_PRIVATE
ok 6 - has PL_hash_seed
ok 7 - has PL_ppaddr
ok 8 - has no PL_VarsPtr
ok 9 - has no PL_Vars
ok 10 - has no Perl_GetVars

Looks like your PPC is 10.4 Tiger and your x86_64 is 10.7 Lion?

What's your "/usr/bin/nm -m ../libperl.a" output? Mine (that passes
tests) is attached.

--
George Greer

@p5pRT
Copy link
Author

p5pRT commented Jul 14, 2014

From @greerga

libperl-nm.txt.gz

@p5pRT
Copy link
Author

p5pRT commented Jul 20, 2014

From @jkeenan

On Sat Jul 12 19​:25​:59 2014, jkeenan wrote​:

On Sat Jul 12 14​:23​:35 2014, rjbs wrote​:

Jim asked about marking this skipped on this platform until a fix is
in. I think that's fine.

commit ed0e322
Author​: James E Keenan <jkeenan@​cpan.org>
Date​: Sat Jul 12 22​:16​:23 2014 -0400

skip_all on darwin until nm peculiarities can be straighted out.

Assigning to jhi.

jhi put in a lot of time on this. I can now report that t/porting/libperl.t now PASSes on Darwin/PPC on blead​:

#####
[perl] 513 $ ./perl -v |head -2 | tail -1
This is perl 5, version 21, subversion 2 (v5.21.2 (v5.21.1-191-g41a81de)) built for darwin-2level
[perl] 514 $ cd t;./perl harness porting/libperl.t; cd -
porting/libperl.t .. ok
All tests successful.
Files=1, Tests=31, 0 wallclock secs ( 0.07 usr 0.02 sys + 0.31 cusr 0.06 csys = 0.46 CPU)
Result​: PASS
#####

There's probably nothing more to be done on this ticket. I'll double check on my Darwin/x86_64 machine on Monday, then close the ticket if there are no further problems.

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented Jul 22, 2014

From @jkeenan

On Sat Jul 19 19​:35​:58 2014, jkeenan wrote​:

There's probably nothing more to be done on this ticket. I'll double
check on my Darwin/x86_64 machine on Monday, then close the ticket if
there are no further problems.

t/porting/libperl.t PASS on Darwin/x86_64 (Mac OS X 10.6 or so) today.

Marking ticket resolved.

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented Jul 22, 2014

@jkeenan - Status changed from 'open' to 'resolved'

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

1 participant