Let's go on with mailing list.
On Fri, 24 Sep 2004 14:13:48 -0700
"Sreenivasan, Rohit G" <rohit.g.sreenivasan@...> wrote:
> I am seeing same issue even after reinstalling the package. Do you
> think, it is something to do with the compiler?
Yes, I guess so. Preprocessor directives cannot be (re)defined by
user source code.
Your /usr/include/sys/stat.h looks sane? When I installed Solaris/x86
from NFS-mounted install server few years ago, I met similar problem
as you; content of header file was corrupted and 2 characters were
swapped in it. Real cause was faulty NIC.
> -----Original Message-----
> From: SAWADA Keiji [mailto:card_captor@...]
> Sent: Friday, September 24, 2004 11:21 AM
> To: Sreenivasan, Rohit G
> Cc: smartmontools-support@...
> Subject: Re: [smartmontools-support]Compiling smartmontools-5.32 on
> Solaris 8
> On Fri, 24 Sep 2004 10:36:13 -0700
> "Sreenivasan, Rohit G" <rohit.g.sreenivasan@...> wrote:
> > List,
> > When I am doing a make for smartmontools-5.32 on a Solaris 8 machine,
> > am getting the following errors. Please help!
> > if gcc -DHAVE_CONFIG_H -I. -I. -I.
> > -g -O2 -Wall -MT smartd.o -MD -MP -MF ".deps/smartd.Tpo" \
> > -c -o smartd.o `test -f 'smartd.c' || echo './'`smartd.c; \
> > In file included from smartd.c:27:
> > /usr/include/sys/stat.h:258:9: invalid preprocessing directive
> > #blksize_t
> > /usr/include/sys/stat.h:262:2: invalid preprocessing directive #}
> As you know, there is no such preprocessor directive like
> '#blksize_t' or '#}'. Presumely, header file has corrupted. Here is
> a correct portion of /usr/include/sys/stat.h in Solaris 8 (SPARC
> edition). Would you verify with this?
> 256 _timestruc_t st_ctim;
> 257 #endif
> 258 blksize_t st_blksize;
> 259 blkcnt_t st_blocks;
> 260 char st_fstype[_ST_FSTYPSZ];
> 261 long st_pad4; /* expansion area */
> 262 };
> 264 #endif /* _LP64 */
> If stat.h is broken, try re-installing SUNWhea package from install
> ksw / SAWADA Keiji
ksw / SAWADA Keiji
examining the C-preprocessor output may help to figure out what is going
make 'CFLAGS=-E' smartd.o
should produce the CPP output (in smartd.o).
If this does not work try
gcc -E smartd.c >smartd.i
Examine the code near the "struct stat" declaration.