develooper Front page | perl.perl5.porters | Postings from May 2008

Compiling 5.10 with g++ 4.3.0

Thread Next
From:
Bram
Date:
May 17, 2008 10:47
Subject:
Compiling 5.10 with g++ 4.3.0
Message ID:
20080517194627.6xk08fzkoc4g88wo@horde.wizbit.be
Tried to compile perl 5.10 with g++ 4.3.0

When running make:

CCCMD = /opt/gcc/bin_ccache/g++430 -DPERL_CORE -c -fno-strict-aliasing  
-pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  
-O2 -Wall -ansi -W -Wextra -Wendif-labels -Wno-unused-variable  
-Wno-unused-parameter
pp_sys.c: In function 'OP* Perl_pp_getpriority()':
pp_sys.c:4321: error: invalid conversion from 'const int' to  
'__priority_which_t'
pp_sys.c:4321: error: initializing argument 1 of 'int  
getpriority(__priority_which_t, id_t)'


pp_sys.c: In function 'OP* Perl_pp_setpriority()':
pp_sys.c:4336: error: invalid conversion from 'const int' to  
'__priority_which_t'
pp_sys.c:4336: error: initializing argument 1 of 'int  
setpriority(__priority_which_t, id_t, int)'
make: *** [pp_sys.o] Error 1


Removing the lines:

SETi( getpriority(which, who) );
(in PP(pp_getpriority))

And

SETi( setpriority(which, who, niceval) >= 0 );
(in PP(pp_setpriority))


makes it compile pp_sys.c.


Then it fails on:
pp_hot.o: In function `Perl_pp_aassign':
pp_hot.o(.text+0x68b9): undefined reference to `setresuid(unsigned  
int, unsigned int, unsigned int)'
pp_hot.o(.text+0x690b): undefined reference to `setresgid(unsigned  
int, unsigned int, unsigned int)'
collect2: ld returned 1 exit status
make: *** [miniperl] Error 1


Removing the lines

(void)setresuid((PL_delaymagic & DM_RUID) ? PL_uid : (Uid_t)-1,
(PL_delaymagic & DM_EUID) ? PL_euid : (Uid_t)-1,
(Uid_t)-1);

and

(void)setresgid((PL_delaymagic & DM_RGID) ? PL_gid : (Gid_t)-1,
(PL_delaymagic & DM_EGID) ? PL_egid : (Gid_t)-1,
(Gid_t)-1)


Makes it compile



./perl -Ilib -V:.*prior
d_getprior='define';
d_setprior='define';

./perl -Ilib -V:.*[ug]id
d_dosuid='undef';
d_getpgid='define';
d_setegid='define';
d_seteuid='define';
d_setpgid='define';
d_setregid='define';
d_setresgid='define';
d_setresuid='define';
d_setreuid='define';
d_setrgid='undef';
d_setruid='undef';




Compiling it with gcc 4.3.0 gives no errors.

./perl -Ilib -V:.*prior
d_getprior='define';
d_setprior='define';

./perl -Ilib -V:.*[ug]id
d_dosuid='undef';
d_getpgid='define';
d_setegid='define';
d_seteuid='define';
d_setpgid='define';
d_setregid='define';
d_setresgid='define';
d_setresuid='define';
d_setreuid='define';
d_setrgid='undef';
d_setruid='undef';



Any ideas?

Kind regards,

Bram




Thread Next


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