build failure in perfMemory_solaris.cpp?

David Holmes david.holmes at oracle.com
Fri Jan 23 04:19:45 UTC 2015


Hi Anthony,

On 23/01/2015 10:33 AM, Anthony Scarpino wrote:
> Hi,
>
> I just pulled the jdk9/dev gate today and hit a build failure on SPARC
> Solaris 11.1 when compiling perfMemory_solaris.cpp in hotspot.  I'm
> using SS12u3 compilers.  Anyone else see a similar error or know what
> might be going wrong?
>
> ...hotspot/src/os/solaris/vm/perfMemory_solaris.cpp", line 337: Error:
> dd_fd is not a member of DIR.
> ...hotspot/src/os/solaris/vm/perfMemory_solaris.cpp", line 369: Error:
> dd_fd is not a member of DIR."
> gmake[8]: *** [perfMemory_solaris.o] Error 2

This code was brought in via the recent CPU integration of bug 8050807. 
(Hi Jerry! - cc'd)

It looks like Solaris has two potential definitions of DIR:

#if defined(__USE_LEGACY_PROTOTYPES__)
/* traditional SVR4 definition */
typedef struct {
         int     dd_fd;          /* file descriptor */
         int     dd_loc;         /* offset in block */
         int     dd_size;        /* amount of valid data */
         char    *dd_buf;        /* directory block */
} DIR;                          /* stream data from opendir() */
#else
/* default definition (POSIX conformant) */
typedef struct {
         int     d_fd;           /* file descriptor */
         int     d_loc;          /* offset in block */
         int     d_size;         /* amount of valid data */
         char    *d_buf;         /* directory block */
} DIR;                          /* stream data from opendir() */
#endif  /* __USE_LEGACY_PROTOTYPES__ */

I can't see what controls __USE_LEGACY_PROTOTYPES__ but presumably 
either something in Solaris 11.1, or something in SS12u3 is causing this 
difference.

David

> thanks
>
> Tony



More information about the build-dev mailing list