compiler used to build perl for XS extensions not found on cfarm211

Patrice Dumas pertusus at free.fr
Wed Jan 24 01:27:22 CET 2024


On Tue, Jan 23, 2024 at 08:48:38PM +0100, Dagobert Michelsen wrote:
> Hi Patrice,
> 
> > relevant for porting issues, and it is the same perl used by the
> > opencsw buildbot, but being able to test with the perl in the PATH could
> > be nice too.
> > 
> > Would you have any advice for me/for the Cfarm admins on that issue?
> 
> Well, the Sun Studio 12 and 12u1 compilers have install scripts that unfortunately
> don’t run on Solaris 11. For now I copied over the respective pathes from the
> Solaris 10 cfarm210 machine and it seems to work. Please give it a go but be
> advised that some stuff of the compiler may still be missing. If this happens
> please let mw know and I’ll investigate what we can do.

Things went much better this time, I was able to install CPAN modules
with XS and test Texinfo XS with everything working ok, though
after quite a bit of tweaking and finding/installing the right commands.
For perl the right command is /opt/csw/bin/perl, which is used by cpan
automatically and works ok to build XS modules.



The perl in the path has issues that I report here.  I actually prefer
to test with perl 5.10.1, but others may want to use the perl in the
path.

As I said above, when I install with cpan, perl is perl 5.10
  /opt/csw/bin/perl
and the modules are installed in
  /export/home/pertusus/perl5/lib/perl5/sun4-solaris-thread-multi/

When I try to find them with the perl on the path, they are not found:
$ perl -e 'use Data::Compare;'
Can't locate Clone.pm in @INC (@INC contains: /export/home/pertusus/perl5/lib/perl5/5.12.5/sun4-solaris-64int /export/home/pertusus/perl5/lib/perl5/5.12.5 /export/home/pertusus/perl5/lib/perl5/sun4-solaris-64int /export/home/pertusus/perl5/lib/perl5 ...

It seems that sun4-solaris-thread-multi is sun4-solaris-64int for perl
5.12.5 on the path.  It is possible that even if found, the modules do
not work actually, as they have been compiled with another compiler
and against another perl.


Compiling XS with the perl on the path also does not work, cc is the
compiler supposed to be used as shown by perl -V, but it is not found:

$ /usr/bin/perl -V gives, among other informations
    cc='cc', ccflags ='-I/usr/gnu/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV',
    optimize='-xO3 ',
    cppflags='-I/usr/gnu/include'
...
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='  -R /usr/perl5/5.12/lib/sun4-solaris-64int/CORE'
    cccdlflags='-KPIC', lddlflags='-G -L/usr/lib -L/usr/ccs/lib   -L/lib -L/usr/gnu/lib'

...

What we use in Texinfo to test for working XS is
cc  -I/usr/gnu/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -xO3  -KPIC    -R /usr/perl5/5.12/lib/sun4-solaris-64int/CORE conftest-t.c

It does not work, as cc does not exist on the path.
-bash: cc: command not found



-- 
Pat


More information about the buildfarm mailing list