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

Not OK: perl v5.7.0 +DEVEL6961 on sun4-solaris-ld 2.8 (UNINSTALLED) #2538

Closed
p5pRT opened this issue Sep 1, 2000 · 10 comments
Closed

Not OK: perl v5.7.0 +DEVEL6961 on sun4-solaris-ld 2.8 (UNINSTALLED) #2538

p5pRT opened this issue Sep 1, 2000 · 10 comments

Comments

@p5pRT
Copy link

p5pRT commented Sep 1, 2000

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

Searchable as RT4095$

@p5pRT
Copy link
Author

p5pRT commented Sep 1, 2000

From @AlanBurlison

This is a build failure report for perl from Alan.Burlison@​uk.sun.com,
generated with the help of perlbug 1.32 running under perl v5.7.0.

Perl built with -Duselongdouble

base/cond............ok
base/if..............ok
base/lex.............FAILED at test 7
Failed a basic test--cannot continue.
*** Error code 29
make​: Fatal error​: Command failed for target `test'


Flags​:
  category=install
  severity=none


Site configuration information for perl v5.7.0​:

Configured by alanbur at Fri Sep 1 02​:13​:29 BST 2000.

Summary of my perl5 (revision 5.0 version 7 subversion 0) configuration​:
  Platform​:
  osname=solaris, osvers=2.8, archname=sun4-solaris-ld
  uname='sunos mower 5.8 generic_108528-02 sun4u sparc sunw,ultra-60 '
  config_args='-dsOE -Dprefix=/home1/software/perl/bldtest -Dinstallprefix=/home1/software/perl/bldtest -Dsiteprefix=/home1/software/perl/bldtest -Doptimize=-g -Duseshrplib -Uusemymalloc -Dusedevel -Ubincompat5005 -Duselongdouble -Accflags=-DDL_UNLOAD_ALL_AT_EXIT'
  hint=recommended, useposix=true, d_sigaction=define
  usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
  useperlio=undef d_sfio=undef uselargefiles=define
  use64bitint=undef use64bitall=undef uselongdouble=define usesocks=undef
  Compiler​:
  cc='cc', optimize='-g', gccversion=, gccosandvers=
  cppflags='-DDL_UNLOAD_ALL_AT_EXIT -DDEBUGGING -I/usr/local/include'
  ccflags ='-DDL_UNLOAD_ALL_AT_EXIT -DDEBUGGING -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
  stdchar='char', d_stdstdio=define, usevfork=false
  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='long double', nvsize=16, Off_t='off_t', lseeksize=8
  alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries​:
  ld='cc', ldflags =' -L/usr/local/lib -L/opt/SUNWspro/WS6/lib -L/opt/SUNWspro/lib '
  libpth=/usr/local/lib /opt/SUNWspro/WS6/lib /opt/SUNWspro/lib /lib /usr/lib /usr/ccs/lib
  libs=-lsocket -lnsl -ldl -lm -lc -lcrypt -lsec -lsunmath
  libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -R /home1/software/perl/bldtest/lib/5.7.0/sun4-solaris-ld/CORE'
  cccdlflags='-KPIC', lddlflags='-G -L/usr/local/lib -L/opt/SUNWspro/WS6/lib -L/opt/SUNWspro/lib'

Locally applied patches​:
  DEVEL6961


@​INC for perl v5.7.0​:
  /home1/software/perl/build/perl/lib
  /home1/software/perl/bldtest/lib/5.7.0/sun4-solaris-ld
  /home1/software/perl/bldtest/lib/5.7.0
  /home1/software/perl/bldtest/lib/site_perl/5.7.0/sun4-solaris-ld
  /home1/software/perl/bldtest/lib/site_perl/5.7.0
  /home1/software/perl/bldtest/lib/site_perl
  .


Environment for perl v5.7.0​:
  HOME=/homedir/rootal
  LANG (unset)
  LANGUAGE (unset)
  LD_LIBRARY_PATH=/home1/software/perl/build/perl
  LOGDIR (unset)
  PATH=/homedir/rootal/bin​:/usr/local/bin​:/bin​:/usr/bin​:/usr/sbin​:/opt/SUNWspro/bin​:/usr/ccs/bin​:/opt/gcc/bin​:/usr/ucb​:/usr/dt/bin​:/usr/openwin/bin​:/opt/SUNWisdn/bin​:/opt/SUNWisdn/tools​:.
  PERL_BADLANG (unset)
  SHELL=/bin/ksh

Additional info​: Compiler version.

@p5pRT
Copy link
Author

p5pRT commented Sep 1, 2000

From @ysth

In article <200009010836.JAA27935@​mower.uk.sun.com>,
Alan Burlison <alanbur@​mower.uk.sun.com> wrote​:

This is a build failure report for perl from Alan.Burlison@​uk.sun.com,
generated with the help of perlbug 1.32 running under perl v5.7.0.

Perl built with -Duselongdouble

base/cond............ok
base/if..............ok
base/lex.............FAILED at test 7
Failed a basic test--cannot continue.
*** Error code 29
make​: Fatal error​: Command failed for target `test'

What does this show?​:

fgrep -e d_atolf -e d_strtold -e d_SCNfldbl -e sSCNfldbl -e d_qgcvt -e d_PRIgldbl -e sPRIgldbl -e d_Gconvert config.sh

@p5pRT
Copy link
Author

p5pRT commented Sep 1, 2000

From @ysth

In article <zy+r5gzkgqrT092yn@​efn.org>,
sthoenna@​efn.org (Yitzchak Scott-Thoennes) wrote​:

In article <200009010836.JAA27935@​mower.uk.sun.com>,
Alan Burlison <alanbur@​mower.uk.sun.com> wrote​:

This is a build failure report for perl from Alan.Burlison@​uk.sun.com,
generated with the help of perlbug 1.32 running under perl v5.7.0.

Perl built with -Duselongdouble

base/cond............ok
base/if..............ok
base/lex.............FAILED at test 7
Failed a basic test--cannot continue.
*** Error code 29
make​: Fatal error​: Command failed for target `test'

What does this show?​:

fgrep -e d_atolf -e d_strtold -e d_SCNfldbl -e sSCNfldbl -e d_qgcvt -e d_PRIgldbl -e sPRIgldbl -e d_Gconvert config.sh

And does adding -DOVR_LDBL_DIG=DBL_DIG to ccflags fix it? I'd assume
maybe not if the test is still coming up with the way-off number from
your first report of the problem
(6.51640284802064171838674783921303e+145 for $foo from​:

eval '$foo = 123+123.4+123e4+123.4E5+123.4e+5+.12;';
$foo = int($foo * 100 + .5);

).

@p5pRT
Copy link
Author

p5pRT commented Sep 1, 2000

From @AlanBurlison

Yitzchak Scott-Thoennes wrote​:

What does this show?​:

fgrep -e d_atolf -e d_strtold -e d_SCNfldbl -e sSCNfldbl -e d_qgcvt -e d_PRIgldbl -e sPRIgldbl -e d_Gconvert config.sh

d_Gconvert='qgcvt((x),(n),(b))'

Alan Burlison

@p5pRT
Copy link
Author

p5pRT commented Sep 1, 2000

From @AlanBurlison

Yitzchak Scott-Thoennes wrote​:

And does adding -DOVR_LDBL_DIG=DBL_DIG to ccflags fix it? I'd assume
maybe not if the test is still coming up with the way-off number from
your first report of the problem
(6.51640284802064171838674783921303e+145 for $foo from​:

No. Same result. I can't see long double support being a goer for
5.7.0. AFAIK at the moment on Solaris only scanf can be used to read in
long doubles. I'm going to see about getting atolf and strtold added to
libc, but don't hold your breath.

@p5pRT
Copy link
Author

p5pRT commented Sep 1, 2000

From @ysth

Alan Burlison <Alan.Burlison@​uk.sun.com> wrote​:

Yitzchak Scott-Thoennes wrote​:

What does this show?​:

fgrep -e d_atolf -e d_strtold -e d_SCNfldbl -e sSCNfldbl -e d_qgcvt -e d_PRIgldbl -e sPRIgldbl -e d_Gconvert config.sh

d_Gconvert='qgcvt((x),(n),(b))'

Alan Burlison

And the others? Is there sSCNfldbl? I'm guessing that perhaps sscanf
is storing a double into the long double *? Or perhaps double -> NV
casting is broken for your compiler? This seems the likeliest since I
think the problem appeared before the sscanf stuff was in.

@p5pRT
Copy link
Author

p5pRT commented Sep 1, 2000

From @AlanBurlison

Yitzchak Scott-Thoennes wrote​:

And the others? Is there sSCNfldbl? I'm guessing that perhaps sscanf
is storing a double into the long double *? Or perhaps double -> NV
casting is broken for your compiler? This seems the likeliest since I
think the problem appeared before the sscanf stuff was in.

Oh please - two different versions of the compiler on two different
architectures and across two versions of the OS - all broken. I think
not.

#include <stdio.h>
#include <float.h>
int main()
{
long double ld;
char buf[1024];
sscanf("123.456", "%Lf", &ld);
qgcvt(ld, LDBL_DIG, buf);
printf("%s\n", buf);
}

prints
123.456

Which looks fine to me.

It is perl that is broke. However I dont think there is much chance of
getting this sorted by the witching hour. I'm more interested in
getting perl to compile - this whole long double mess should be left
until 5.7.0 is out.

Alan Burlison

@p5pRT
Copy link
Author

p5pRT commented Sep 1, 2000

From @jhi

It is perl that is broke. However I dont think there is much chance of

Now, now. We are broken together, how about that. Perl doesn't know
the dialect of long double speak Solaris does, and vice versa.

getting this sorted by the witching hour. I'm more interested in
getting perl to compile - this whole long double mess should be left
until 5.7.0 is out.

Agreed.

Alan Burlison

@p5pRT
Copy link
Author

p5pRT commented Sep 2, 2000

From @ysth

In article <39B023F1.5F936D12@​uk.sun.com>,
Alan Burlison <Alan.Burlison@​uk.sun.com> wrote​:

Yitzchak Scott-Thoennes wrote​:

And the others? Is there sSCNfldbl? I'm guessing that perhaps sscanf
is storing a double into the long double *? Or perhaps double -> NV
casting is broken for your compiler? This seems the likeliest since I
think the problem appeared before the sscanf stuff was in.

Oh please - two different versions of the compiler on two different
architectures and across two versions of the OS - all broken. I think
not.

Put that way, I agree. Sorry, I didn't realize that the problem
was in more than one situation. I also remembered your original
report saying you were getting​:

cc -c -DDL_UNLOAD_ALL_AT_EXIT -DDEBUGGING -I/usr/local/include -D_LARGEFILE_SOU
RCE -D_FILE_OFFSET_BITS=64 -g -DVERSION=\"0.0400000000000000008326672684688
674\" -DXS_VERSION=\"0.0400000000000000008326672684688674\" -KPIC -I../.. byte
run.c

and this was leading me to grasp at straws to make it just a string to
nv/nv to string conversion problem. But obviously there is more than
just that problem here. BTW, is the above fixed now with the sscanf
stuff in?

#include <stdio.h>
#include <float.h>
int main()
{
long double ld;
char buf[1024];
sscanf("123.456", "%Lf", &ld);
qgcvt(ld, LDBL_DIG, buf);
printf("%s\n", buf);
}

prints
123.456

Which looks fine to me.

It is perl that is broke. However I dont think there is much chance of
getting this sorted by the witching hour. I'm more interested in
getting perl to compile - this whole long double mess should be left
until 5.7.0 is out.

I was assuming that, yes. Now that 5.7.0 is out, can you try the following​:
(in the perl build dir after Configure'ing)

#include "EXTERN.h"
#include "perl.h"
#include <stdio.h>
#define countof(x) (sizeof(x)/sizeof(x)[0])
int main(int argc, char **argv) {
  int i;
  NV nv, sum=0;
  char *addends[] = {"123","123.4","123e4","123.4E5","123.4e+5",".12"};
  char buf[1024];

  for (i = 0; i < countof(addends); ++i) {
  nv = 0;
  Perl_atof2(addends[i], nv);
  sum += nv;
  buf[0] = 0;
  Gconvert(nv, NV_DIG, 0, buf);
  printf("%s -> %s\n", addends[i], buf);
  }
  buf[0] = 0;
  Gconvert(sum, NV_DIG, 0, buf);
  printf("sum is %s (expected 25910246.52)\n", buf);
  return 0;
}

and see if a string conversion problem can be ruled in or out here.

@p5pRT
Copy link
Author

p5pRT commented Sep 3, 2000

From @AlanBurlison

Yitzchak Scott-Thoennes wrote​:

I was assuming that, yes. Now that 5.7.0 is out, can you try the following​:
(in the perl build dir after Configure'ing)

$ ./z
123 -> 123
123.4 -> 123.4
123e4 -> 1230000
123.4E5 -> 12340000
123.4e+5 -> 12340000
.12 -> 0.12
sum is 25910246.52 (expected 25910246.52)

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