Opened 15 years ago

Last modified 15 years ago

#21088 closed defect

sysutils/ifstat compiles but do not work on snow leopard — at Version 1

Reported by: mpapamanz@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.8.0
Keywords: Cc:
Port: ifstat

Description (last modified by nerdling (Jeremy Lavergne))

When compiled on snow leopard there are just two warning:

gcc -I. -g -O2 -DHAVE_CONFIG_H  -DNETSNMP_ENABLE_IPV6 -g -Os -pipe -DBUILD=127 -DMACOSX_DEPLOYMENT_TARGET=10.6 -F/System/Library/PrivateFrameworks/ -F/System/Library/Frameworks/ -Udarwin10 -Ddarwin10=darwin10 -I/usr/local/include -c drivers.c -o drivers.o
drivers.c: In function ‘get_ifcount’:
drivers.c:599: warning: passing argument 4 of ‘sysctl’ from incompatible pointer type
drivers.c: In function ‘get_ifdata’:
drivers.c:612: warning: passing argument 4 of ‘sysctl’ from incompatible pointer type

but, once installed, the program gives the following error

$ ./ifstat 
ifstat: sysctl(net.link.generic.ifmib.ifcount): Bad address
ifstat: no interfaces to monitor!

The issue seems related to a wrong use of sysctl syscall: they pass an integer instead of a size_t, with 32 bit gcc the two types have the same size, but with 64 bit gcc the size_t variables are 64bit long (instead of 32bit).

Change History (3)

Changed 15 years ago by mpapamanz@…

Attachment: ifstat-size_t.diff added

Changed 15 years ago by mpapamanz@…

Attachment: Portfile added

comment:1 Changed 15 years ago by nerdling (Jeremy Lavergne)

Description: modified (diff)
Port: ifstat added
Note: See TracTickets for help on using tickets.