Re: gcc for building Perl on WinXP

[email protected] ("Sisyphus")
Newsgroups perl.win32.vanilla
Message-ID <B978BAAF686F47D6B01E315207C1EDB0@desktop2>
----- Original Message ----- 
From: "kmx"

> Apart from:
> http://strawberryperl.com/package/kmx/p5.14.2.1-RC/strawberry-perl-5.14.2.1-portable-32bit-beta-1.zip
>
> http://strawberryperl.com/package/kmx/32_libs/5.14-extras/32bit_pthreads-2.9.0-bin_20111101.zip
>
>
> We have also prepared other PDL handy stuff - like:
> http://strawberryperl.com/package/kmx/32_gcctoolchain/mingw64-w32-gfortran4.4.7-pre_20111101.zip
>
> http://strawberryperl.com/package/kmx/32_libs/5.14-extras/32bit_gsl-1.15-bin_20111104.zip
>
> http://strawberryperl.com/package/kmx/32_libs/5.14-extras/32bit_fftw-2.1.5-bin_20110506.zip
>
>
> It is only about decision how fat should strawberry perl be.

Yes - and making those additional drop-in zips available is probably a fair 
compromise.
I don't think I've ever seen anyone other than me raise this matter, so 
demand for this support can't be all that high :-)

I'll grab and install those additional bits and try them out next time I 
build PDL with Strawberry. (I'm sure they're fine - there's absolutely no 
reason to expect otherwise.)

>> On threaded perls, that TLS capability can be handy for Math::MPFR.
>
> Thanks for this notice, I will try to use --enable-TLS by the next
> mpfr-3.1+ rebuild (according ./configure --help it seems not to be
> available in 3.0.1).

With 3.1+ TLS should be built in without any need for being requested. If it 
doesn't happen, it means that the compiler has been found to *not* support 
TLS - but both my mingw64.sf 4.7.0 cross-compiler and mingw.org 4.5.2 
compiler do provide the necessary bits. Mingw.org's 3.4.5 compiler 
apparently did not.
So, I'm guessing (and it is only a guess) that the Strawberry compilers will 
provide TLS as well. If it gives you trouble you can, of course, 
still --disable-TLS.
I *think* the 3.1.0 release notes implied that the --enable-TLS option was 
valid for the 3.0* versions of the mpfr library, but I never tried it out 
and I could be wrong.
I wasn't even expecting 3.1.0 to build with TLS support, and was pleasantly 
surprised when it did :-)

>> I noticed, too, that the mpc library that ships with Strawberry hasn't
>> been built to accommodate the complex.h types (double _Complex and
>> long double _Complex).

> To enable this should I pass some extra option to mpc configure/make?

No - the problem is a bug in mpc.h. The expectation is that if a there's a 
suitable complex.h available, then the symbol _COMPLEX_H will be defined, 
but this is wrong since many complex.h versions (including mingw) don't 
define that symbol. I hacked my compiler's complex.h to define that symbol, 
and that worked fine - but many would consider that to be the *wrong* hack.

Here's the offending piece of code in mpc.h:

/* Check if complex.h is included */
#if defined (_COMPLEX_H)
# define _MPC_H_HAVE_COMPLEX 1
#endif

I guess you might prefer to change *it* instead of altering your compiler's 
complex.h. The fix on the svn repo has mpc.h check that _Complex_I is 
defined, so changing the first line of the above code to

#if defined(_Complex_I)

should work for you.
In any case, there should be no such issue with the next release of mpc.

Cheers,
Rob
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.