In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/c796e3db23c597b99f07485542338844e61a6a69?hp=944d48f78fffdf92a1710164726d48604225142c>
- Log ----------------------------------------------------------------- commit c796e3db23c597b99f07485542338844e61a6a69 Author: H.Merijn Brand <h.m.br...@xs4all.nl> Date: Mon Mar 29 10:16:44 2010 +0200 Probe for prctl () and check id PR_SET_NAME is supported M Configure M Porting/Glossary M config_h.SH M handy.h commit 1bb125e2afe6197deaf55852a3f8a9c52736bfdc Author: H.Merijn Brand <h.m.br...@xs4all.nl> Date: Wed Mar 24 08:58:29 2010 +0100 Note how to deal with broken dbm.h on OpenSUSE M INSTALL commit 064b70ffe2beced36b4693cdd2a8e2cbd2139b47 Author: H.Merijn Brand <h.m.br...@xs4all.nl> Date: Mon Mar 15 16:33:22 2010 +0100 Allow -Duse64bitint without promoting to use64bitall on HP-UX Fix for http://rt.perl.org/rt3/Public/Bug/Display.html?id=17736 M hints/hpux.sh ----------------------------------------------------------------------- Summary of changes: Configure | 31 ++++++++++++++++++++++++++++++- INSTALL | 20 ++++++++++++++++++++ Porting/Glossary | 8 ++++++++ config_h.SH | 51 +++++++++++++++++++++++++++++++-------------------- handy.h | 3 ++- hints/hpux.sh | 10 +++++++--- 6 files changed, 98 insertions(+), 25 deletions(-) diff --git a/Configure b/Configure index 576b88d..f4d9cfb 100755 --- a/Configure +++ b/Configure @@ -30,7 +30,7 @@ # $Id: Head.U 6 2006-08-25 22:21:46Z rmanfredi $ # -# Generated on Sat Feb 13 19:05:42 CET 2010 [metaconfig 3.5 PL0] +# Generated on Mon Mar 29 10:12:43 CEST 2010 [metaconfig 3.5 PL0] # (with additional metaconfig patches by perl...@perl.org) cat >c1$$ <<EOF @@ -628,6 +628,8 @@ d_pause='' d_pipe='' d_poll='' d_portable='' +d_prctl='' +d_prctl_set_name='' d_procselfexe='' procselfexe='' d_old_pthread_create_joinable='' @@ -16049,6 +16051,31 @@ eval $inlibc set poll d_poll eval $inlibc +: see if prctl exists +set prctl d_prctl +eval $inlibc + +: see if prctl supports PR_SET_NAME +d_prctl_set_name=$undef +case $d_prctl in + $define) + $cat >try.c <<EOM +#include <sys/prctl.h> + +int main (int argc, char *argv[]) +{ + return (prctl (PR_SET_NAME, "Test")); + } /* main */ +EOM + set try + if eval $compile_ok && $run ./try; then + echo "Your prctl (PR_SET_NAME, ...) works" + d_prctl_set_name=$define + fi + $rm_try + ;; + esac + : see if readlink exists set readlink d_readlink eval $inlibc @@ -22615,6 +22642,8 @@ d_phostname='$d_phostname' d_pipe='$d_pipe' d_poll='$d_poll' d_portable='$d_portable' +d_prctl='$d_prctl' +d_prctl_set_name='$d_prctl_set_name' d_printf_format_null='$d_printf_format_null' d_procselfexe='$d_procselfexe' d_pseudofork='$d_pseudofork' diff --git a/INSTALL b/INSTALL index 4a0e567..eb7cc07 100644 --- a/INSTALL +++ b/INSTALL @@ -1561,6 +1561,26 @@ specific rule. SCO prior to 3.2.4 may be missing dbmclose(). An upgrade to 3.2.4 that includes libdbm.nfs (which includes dbmclose()) may be available. +=item error: too few arguments to function 'dbmclose' + +Building ODBM_File on some (Open)SUSE distributions might run into this +error, as the header file is broken. There are two ways to deal with this + + 1. Disable the use of ODBM_FILE + + Configure ... -Dnoextensions=ODBM_File + + 2. Fix the header file, somewhat like this: + + --- a/usr/include/dbm.h 2010-03-24 08:54:59.000000000 +0100 + +++ b/usr/include/dbm.h 2010-03-24 08:55:15.000000000 +0100 + @@ -59,4 +59,4 @@ extern datum firstkey __P((void)); + + extern datum nextkey __P((datum key)); + + -extern int dbmclose __P((DBM *)); + +extern int dbmclose __P((void)); + =item Note (probably harmless): No library found for -lsomething If you see such a message during the building of an extension, but diff --git a/Porting/Glossary b/Porting/Glossary index e43fa89..b503e2b 100644 --- a/Porting/Glossary +++ b/Porting/Glossary @@ -1617,6 +1617,14 @@ d_portable (d_portable.U): indicates to the C program that it should not assume that it is running on the machine it was compiled on. +d_prctl (d_prctl.U): + This variable conditionally defines the HAS_PRCTL symbol, which + indicates to the C program that the prctl() routine is available. + +d_prctl_set_name (d_prctl.U): + This variable conditionally defines the HAS_PRCTL symbol, which + indicates to the C program that the prctl() routine is available. + d_PRId64 (quadfio.U): This variable conditionally defines the PERL_PRId64 symbol, which indiciates that stdio has a symbol to print 64-bit decimal numbers. diff --git a/config_h.SH b/config_h.SH index 8392c60..eedc734 100755 --- a/config_h.SH +++ b/config_h.SH @@ -1185,6 +1185,26 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$d_ctime_r HAS_CTIME_R /**/ #define CTIME_R_PROTO $ctime_r_proto /**/ +/* SETUID_SCRIPTS_ARE_SECURE_NOW: + * This symbol, if defined, indicates that the bug that prevents + * setuid scripts from being secure is not present in this kernel. + */ +/* DOSUID: + * This symbol, if defined, indicates that the C program should + * check the script that it is executing for setuid/setgid bits, and + * attempt to emulate setuid/setgid on systems that have disabled + * setuid #! scripts because the kernel can't do it securely. + * It is up to the package designer to make sure that this emulation + * is done securely. Among other things, it should do an fstat on + * the script it just opened to make sure it really is a setuid/setgid + * script, it should make sure the arguments passed correspond exactly + * to the argument on the #! line, and it should not trust any + * subprocesses to which it must pass the filename rather than the + * file descriptor of the script to be executed. + */ +#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW /**/ +#$d_dosuid DOSUID /**/ + /* HAS_DRAND48_R: * This symbol, if defined, indicates that the drand48_r routine * is available to drand48 re-entrantly. @@ -3309,26 +3329,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$ebcdic EBCDIC /**/ -/* SETUID_SCRIPTS_ARE_SECURE_NOW: - * This symbol, if defined, indicates that the bug that prevents - * setuid scripts from being secure is not present in this kernel. - */ -/* DOSUID: - * This symbol, if defined, indicates that the C program should - * check the script that it is executing for setuid/setgid bits, and - * attempt to emulate setuid/setgid on systems that have disabled - * setuid #! scripts because the kernel can't do it securely. - * It is up to the package designer to make sure that this emulation - * is done securely. Among other things, it should do an fstat on - * the script it just opened to make sure it really is a setuid/setgid - * script, it should make sure the arguments passed correspond exactly - * to the argument on the #! line, and it should not trust any - * subprocesses to which it must pass the filename rather than the - * file descriptor of the script to be executed. - */ -#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW /**/ -#$d_dosuid DOSUID /**/ - /* PERL_USE_DEVEL: * This symbol, if defined, indicates that Perl was configured with * -Dusedevel, to enable development features. This should not be @@ -3807,6 +3807,17 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_off64_t HAS_OFF64_T /**/ +/* HAS_PRCTL: + * This symbol, if defined, indicates that the prctl routine is + * available to set process title. + */ +/* HAS_PRCTL_SET_NAME: + * This symbol, if defined, indicates that the prctl routine is + * available to set process title and supports PR_SET_NAME. + */ +#$d_prctl HAS_PRCTL /**/ +#$d_prctl_set_name HAS_PRCTL_SET_NAME /**/ + /* HAS_PROCSELFEXE: * This symbol is defined if PROCSELFEXE_PATH is a symlink * to the absolute pathname of the executing program. diff --git a/handy.h b/handy.h index d12972d..81bf1e2 100644 --- a/handy.h +++ b/handy.h @@ -208,7 +208,8 @@ typedef U64TYPE U64; * GMTIME_MAX GMTIME_MIN LOCALTIME_MAX LOCALTIME_MIN * HAS_CTIME64 HAS_LOCALTIME64 HAS_GMTIME64 HAS_DIFFTIME64 * HAS_MKTIME64 HAS_ASCTIME64 HAS_GETADDRINFO HAS_GETNAMEINFO - * HAS_INETNTOP HAS_INETPTON CHARBITS + * HAS_INETNTOP HAS_INETPTON CHARBITS HAS_PRCTL_SET_NAME + * HAS_PRCTL * Not (yet) used at top level, but mention them for metaconfig */ diff --git a/hints/hpux.sh b/hints/hpux.sh index bdfbec1..8d0aaf7 100644 --- a/hints/hpux.sh +++ b/hints/hpux.sh @@ -279,14 +279,18 @@ EOM ldflags="$ldflags -mlp64" ;; esac - ;; + ;; esac ;; esac ;; *) - ccflags="$ccflags +DD64" - ldflags="$ldflags +DD64" + case "$use64bitall" in + $define|true|[yY]*) + ccflags="$ccflags +DD64" + ldflags="$ldflags +DD64" + ;; + esac ;; esac -- Perl5 Master Repository