Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Configuring perl such that HAS_STRTOD is not defined

by syphilis (Chancellor)
on Jul 11, 2018 at 00:43 UTC ( #1218265=perlquestion: print w/replies, xml ) Need Help??
syphilis has asked for the wisdom of the Perl Monks concerning the following question:

Hi,

Whenever I build a modern perl on Linux, the symbol HAS_STRTOD (in the C source) is defined, as also is $Config{d_strtod}.
Is there a command line option that I can provide to "sh Configure" that will set HAS_STRTOD (and therefore also $Config{d_strtod}) to undef ?

Cheers,
Rob

Replies are listed 'Best First'.
Re: Configuring perl such that HAS_STRTOD is not defined
by haukex (Abbot) on Jul 11, 2018 at 09:45 UTC

    This worked for me:

    $ git checkout v5.28.0 $ git clean -dxf $ sh Configure -des -U d_strtod $ grep -E '^d_strtod\b' config.sh d_strtod='undef' $ grep -E '#define.+HAS_STRTOD\b' config.h /*#define HAS_STRTOD / **/ $ make $ ./perl -Ilib -MConfig -le 'print $Config{d_strtod}//"undef"' undef

    Another method is to patch config.sh (I've assumed you don't want d_strtod_l either):

    $ sh Configure -des $ perl -i.bak -pe "s/^d_strtod(?:_l)?=\K.*$/'undef'/" config.sh $ sh Configure -S $ make # etc.
      sh Configure -des -U d_strtod

      Thanks - that works for me, too!! I removed the space after the "-U" and ran it as sh Configure -des -Ud_strtod
      With or without that space apparently makes no difference. Odd that it hadn't worked for choroba when he tried it.

      Cheers,
      Rob
        Probably because of the missing -Ilib *headdesk*

        It works now on a different machine, let me try again on the original one once I get to it.

        ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
Re: Configuring perl such that HAS_STRTOD is not defined
by choroba (Bishop) on Jul 11, 2018 at 01:09 UTC
    I have no idea. Tried with
    -UHAS_STRTOD -Ud_strtod -A undef:HAS_STRTOD -A undef:d_strtod
    but it still gives
    ./perl -MConfig -wE 'say $Config{d_strtod}' define
    ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
      -UHAS_STRTOD -Ud_strtod -A undef:HAS_STRTOD -A undef:d_strtod

      I tried the first of those shortly after posting. I figured it was a punt worth trying - which it would have been, had it worked ;-)
      Thanks for trying out those other arguments, too.

      I'm thinking it might require an alteration to Config_h.SH, which is a generated file that ships with the source. However, I don't know how to correctly implement the required changes.
      Anyway, my main interest is in ascertaining whether it can be achieved by providing appropriate args to "sh Configure".
      I'll ask about it on the perl porters mailing list if nothing turns up here.

      Cheers,
      Rob

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1218265]
Approved by choroba
Front-paged by Corion
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2018-07-16 05:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?















    Results (332 votes). Check out past polls.

    Notices?