File: ReadMe.sgi

package info (click to toggle)
powstatd 1.5.1-5.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 252 kB
  • ctags: 85
  • sloc: ansic: 951; sh: 256; makefile: 142
file content (48 lines) | stat: -rw-r--r-- 1,642 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Thanks to Nicolas Simonds (nic@bridge.com) for this information.

Irix:

* First, you'll need to define the type for the length arguments in
socket calls in powstatd.c:

  #ifdef SGI
  typdef int socklen_t;
  #endif

* You'll also need to redefine inet_ntoa() for GCC. Apparently, the
native inet_ntoa() always returns 0xFFFFFFFF regardless of the input
address. This alternate won't work for IPv6 or on 64-bit machines, but
is fine for Irix. Here's an alternative version (unremoursefully
copied from "Dave" whoever that is):

  #ifdef SGI
  char *inet_ntoa (struct in_addr rcvd_addr) 
  {
    unsigned int i, quad[4];
    char *ipaddress;

    ipaddress = (char *) malloc(16);

    for ( i=0; i<4; i++ )
      quad[i] = (rcvd_addr.s_addr << (i*8)) >> 24;
    sprintf(ipaddress, "%d.%d.%d.%d", quad[0], quad[1], quad[2], quad[3]);
    return ipaddress;
  }
  #endif

* Don't forget to pass the -DSGI flag to the compiler in the Makefile;
assuming you are adding a new target "sgi" it would look something
like this:

  sgi: $(SRC) $(INC) $(ACRYPT) Makefile libdave.o
	  $(CC) $(CFLGS) -DSGI -DSTATFILE=$(STATUS) -DCONFIG="\"$(CFGDIR)/$(CFG)\"" $(SRC) $(ACRYPT) -o $(BIN) $(LIB) 

* Use GNU make: SGI make is too stupid to cope with the Makefile.

* GCC builds without complaint, MIPSPro CC not tested.

* Irix init issues only powerfail or powerwait on receipt of
SIGPWR. Since you can only associate a single script to this signal,
you'll need a "smarter" script that blends elements of powstatd.fail,
powstatd.ok and powstatd.low into a single script. Check powstatd.dumb
(its the init process that's dumb, not the script) for an example.