develooper Front page | perl.perl5.porters | Postings from October 2016

[perl #129766] [PATCH] Internal cleanup in numeric.c, no functionalchanges

Thread Previous
From:
James E Keenan via RT
Date:
October 1, 2016 13:20
Subject:
[perl #129766] [PATCH] Internal cleanup in numeric.c, no functionalchanges
Message ID:
rt-4.0.24-31003-1475328014-1259.129766-15-0@perl.org
On Fri Sep 30 12:50:17 2016, jkeenan wrote:
> On Fri Sep 30 10:20:48 2016, petdance wrote:
> > This is a bug report for perl from andy@petdance.com,
> > generated with the help of perlbug 1.40 running under perl 5.24.0.
> > 
> > 
> > -----------------------------------------------------------------
> > [Please describe your issue here]
> > 
> > 
> > Minor internal cleanups in numeric.c
> > 
> > * Simplified some variable instantiation in Perl_my_atof, including
> >     removing some unnecessary initialization.
> > * Removed some unnecessary casting in Perl_my_atof2.
> > * Added consts to three other internal vars.
> > 
> 
> Now available for smoke-testing in branch:
> 
> smoke-me/jkeenan/petdance/129766-numeric-c

The patch is failing to compile when you configure with '-Dcc=g++'.

See smoke reports at http://perl.develop-help.com/?b=smoke-me%2Fjkeenan%2Fpetdance%2F129766-numeric-c

I have locally reproduced the same type of failures as reported by George's g++ smoke runs at the above link.  When I call 'make', I very quickly start to get warnings like these:

#####
In file included from perl.c:37:0:
perl.h:6950:19: warning: anonymous type with no linkage used to declare variable ‘c
onst<anonymous union> PL_inf’ with linkage
 INFNAN_NV_U8_DECL PL_inf;
                   ^
perl.h:6951:19: warning: anonymous type with no linkage used to declare variable ‘c
onst<anonymous union> PL_nan’ with linkage
 INFNAN_NV_U8_DECL PL_nan;
                   ^
#####

Eventually, 'make' collapses with output like this:

#####
$ tail -30 petdance-numeric-c-gpp.transcript |cat
 INFNAN_NV_U8_DECL PL_nan;
                   ^
rm -f ../../lib/auto/POSIX/POSIX.so
g++  -shared -O2 -L/usr/local/lib -fstack-protector-strong POSIX.o  -o ../../lib/auto/POSIX/POSIX.so  \
   -lm   \
  
/usr/bin/ld: POSIX.o: relocation R_X86_64_PC32 against undefined symbol `PL_nan' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Makefile:478: recipe for target '../../lib/auto/POSIX/POSIX.so' failed
make[1]: *** [../../lib/auto/POSIX/POSIX.so] Error 1
make[1]: Leaving directory '/home/jkeenan/gitwork/perl/ext/POSIX'
make[1]: Entering directory '/home/jkeenan/gitwork/perl/ext/POSIX'
/home/jkeenan/gitwork/perl/ext/POSIX/../../miniperl "-I../../lib" -MExtUtils::Command::MM -e 'cp_nonempty' -- POSIX.bs ../../lib/auto/POSIX/POSIX.bs 644
rm -f ../../lib/auto/POSIX/POSIX.so
g++  -shared -O2 -L/usr/local/lib -fstack-protector-strong POSIX.o  -o ../../lib/auto/POSIX/POSIX.so  \
   -lm   \
  
/usr/bin/ld: POSIX.o: relocation R_X86_64_PC32 against undefined symbol `PL_nan' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Makefile:478: recipe for target '../../lib/auto/POSIX/POSIX.so' failed
make[1]: *** [../../lib/auto/POSIX/POSIX.so] Error 1
make[1]: Leaving directory '/home/jkeenan/gitwork/perl/ext/POSIX'
Unsuccessful make(ext/POSIX): code=512 at make_ext.pl line 569.
makefile:600: recipe for target 'lib/auto/POSIX/POSIX.so' failed
make: *** [lib/auto/POSIX/POSIX.so] Error 25
#####

Transcripts available upon request, but these are easily reproducible.

OTOH, on FreeBSD-10.3, where clang is the default cc, 'make' and 'make test_harness' completed successfully.

-- 
James E Keenan (jkeenan@cpan.org)

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=129766

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About