Home: Perl Programming Help: Intermediate:
Choice of gcc compiler for module with .xs (c-language) component


Oct 30, 2013, 11:44 AM

Views: 4155
Choice of gcc compiler for module with .xs (c-language) component


I am trying to "make" module Math::Complex_C in my Cygwin (32-bit) environment. The first step:

perl Makefile.PL

works just fine. But the make step goes south. Most notable:

gcc-4 -c -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g -fno-strict-aliasing -pipe -fstack-protector -DUSEIMPORTLIB -O3    -DVERSION=\"0.08\" DXS_VERSION=\"0.08\"  "-I/usr/lib/perl5/5.14/i686-cygwin-threads-64int/CORE" -DNEWPERL Long.c 
/bin/sh: gcc-4: command not found

I have been unable to locate a compiler named gcc-4 within the cygwin setup so I decided to do something more drastic: I edited the Makefile. There are two mentions of gcc-4. The first is

CC = gcc-4

early in Makefile. I edited that to read:

CC = gcc

The next is the compile command you see above. Its first line was:

gcc-4 -E -c $(PASTHRU_INC) $(INC) \

(Why it didn't use the $(CC) is a mystery.) In any case I edited it to use the $(CC) and still, it generates the gcc-4 command instead of the intended gcc. I even went as far as to explicitly replace gcc-4 with gcc in that line and I still get the gcc-4 command! Mad

OK, I give up! Crazy Where is it pulling the gcc-4 string from and how can I stop that?

It just occurred to me that I could create a new symbolic link gcc-4 -> gcc but that strikes me as dangerous, should a new update actually install a true gcc-4 and destroy the original gcc.

Thanks much for a true pointers
-- Rasputin Paskudniak (In perpetual pursuit of undomesticated, semi-aquatic avians)