www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From TOKI...@aol.com
Subject Re: os-solaris/6948: i have errror craeting binaries in function ap_signal.c
Date Thu, 07 Dec 2000 22:35:30 GMT

Hi Donald...

> You wrote...
> Received:(qmail 56543 invoked by uid 501); 7 Dec 2000 20:27:28 -0000
> Message-Id:<20001207202727.56520.qmail@locus.apache.org>
> Date:7 Dec 2000 20:27:27 -0000
> From: donald carranza <dcarra@cegro.inegi.gob.mx>
> Reply-To: dcarra@cegro.inegi.gob.mx
> To: submit@bugz.apache.org
> X-Send-Pr-Version:3.110
> Subject: os-solaris/6948: i have errror craeting binaries in function 
> hola, my name is donald carranza sanchez i am a network administrator
> of (inegi) in chiplancingo, guerrero mexico
> inegi is the  institut of geography an informatic.
> thanks for for your valious atention, i installed
> apache_1.3.9 IN A SPARC SERVER 1000 from binaries succesfull but
> i would like install it personalized with php and perl, but i have some
> prblems to do it, i am usin a compiler downloaded from internet
> gcc_2.7.2_sparc.pkg.tar. i will aprecite yor help.
> ap_signal.c: In function `ap_signal':
> ap_signal.c:68: storage size of `act' isn't known
> ap_signal.c:68: storage size of `oact' isn't known
> make[3]: *** [ap_signal.o] Error 1

Are you missing sigaction.h file on your system?

'act' and 'oact' are both 'sigaction' structures.

The definition of 'sigaction' structure itself 
is OS specific and part of the GCC package.

The actual 'definition' of 'sigaction' structure
is usually found in compiler dir ../include/bits/sigaction.h

Apache chooses to use 'sigaction' if NO_USE_SIGACTION
compile flag is NOT defined.

Here is the actual includesequence starting with

>From ../src/ap/ap_signal.h...

 * Replace standard signal() with the more reliable sigaction equivalent
 * from W. Richard Stevens' "Advanced Programming in the UNIX Environment"
 * (the version that does not automatically restart system calls).
Sigfunc *signal(int signo, Sigfunc * func)
    struct sigaction act, oact;

    act.sa_handler = func;
    act.sa_flags = 0;
#ifdef  SA_INTERRUPT        /* SunOS */
    act.sa_flags |= SA_INTERRUPT;
    if (sigaction(signo, &act, &oact) < 0)
    return SIG_ERR;
    return oact.sa_handler;
/* need some function in this file, otherwise the linker on NeXT bitches */
void ap_signal_is_not_here(void) {}

>From /usr/include/signal.h...

/* Get the system-specific definitions of `struct sigaction'
   and the `SA_*' and `SIG_*'. constants.  */
# include <bits/sigaction.h>                                    

>From /usr/include/bits/sigaction.h...

/* Structure describing the action to be taken when a signal arrives.  */
struct sigaction
    /* Signal handler.  */
#ifdef __USE_POSIX199309
        /* Used if SA_SIGINFO is not set.  */
        __sighandler_t sa_handler;
        /* Used if SA_SIGINFO is set.  */
        void (*sa_sigaction) __PMT ((int, siginfo_t *, void *));
# define sa_handler     __sigaction_handler.sa_handler
# define sa_sigaction   __sigaction_handler.sa_sigaction
    __sighandler_t sa_handler;

    /* Additional set of signals to be blocked.  */
    __sigset_t sa_mask;

    /* Special flags.  */
    int sa_flags;

    /* Restore handler.  */
    void (*sa_restorer) __PMT ((void));

Kevin Kiley
CTO, Remote Communications, Inc.

View raw message