Subject: pkg/37435: sysutils/fam fails on SunOS
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <nakaji@jp.freebsd.org>
List: pkgsrc-bugs
Date: 11/26/2007 10:50:00
>Number:         37435
>Category:       pkg
>Synopsis:       sysutils/fam fails on SunOS
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Nov 26 10:50:00 +0000 2007
>Originator:     NAKAJI Hiroyuki
>Release:        SunOS 5.10 Generic_127112-03
>Organization:
>Environment:
SunOS deepsea.4407.kankyo-u.ac.jp 5.10 Generic_127112-03 i86pc i386 i86pc
>Description:
The compile of fam/lib/Client.c++ fails with these errors:

 CC -DHAVE_CONFIG_H -I. -I.. -I../include -DFAM_CONF=\"/usr/pkg/etc/fam.conf\" -xarch=amd64 -c Client.c++  -KPIC -DPIC -o .libs/Client.o
"Client.c++", line 133: Error: Use ";" to terminate declarations.
"Client.c++", line 134: Error: The "&" operator can only be applied to a variable or other l-value.
"Client.c++", line 135: Error: int is not a structure type.
"Client.c++", line 139: Error: int is not a structure type.
"Client.c++", line 139: Error: An integer constant expression is required within the array subscript operator.
"Client.c++", line 139: Warning: inbuf hides Client::inbuf.
"Client.c++", line 154: Error: int is not a structure type.
"Client.c++", line 173: Error: int is not a structure type.
"Client.c++", line 174: Error: int is not a structure type.
"Client.c++", line 186: Error: The "&" operator can only be applied to a variable or other l-value.
9 Error(s) and 1 Warning(s) detected.

Because "sun" is used as a variable's name and "sun" is defined to be "1" on SunOS, the code around line 133 is changed like this:

  struct sockaddr_un sun; -> struct sockaddr_un 1;

This happens by both Sun Studio and GNU Compiler Collection.

I think it is a bug of fam itself, but I don't want to create an account on sgi bugzilla.
>How-To-Repeat:
1. Prepare SunOS.
2. run following commands

cd /usr/pkgsrc/sysutils/fam
bmake all

>Fix:
patches/patch-ba should be updated.
see http://heimat.jp/~nakaji/NetBSD/pkgsrc/fam.diff