Solaris 9 9/05 Release Notes

Compiling UNIX 98 or UNIX 03 Applications That Include the dflcn.h Header File Fails (6295971)

The dflcn.h header file displays symbols in /usr/include/sys/auxv.h that are not permitted in UNIX(R) 98 or UNIX 03. If you compile UNIX 98 or UNIX 03 applications that include this header file, the compiler generates syntax errors. Consquently, the compilation is not completed.

You can avoid the errors by using compilers other than c89 or c99 compiler utilities. However, the compiled applications will not be compliant with UNIX 98 or UNIX 03. Furthermore, even if you use the cc compiler utility, compilation also fails if the -D_XOPEN_SOURCE flag is defined.

For example, if you compile an application that uses the -D_XOPEN_SOURCE=600 compiler flag, the following error message is displayed:


"/usr/include/sys/auxv.h", line 45: syntax error before 
or at: "a_type unprotected"
"/usr/include/sys/auxv.h", line 45: warning: syntax requires ";" 
after last struct/union member
"/usr/include/sys/auxv.h", line 54: zero-sized struct/union
"/usr/include/sys/auxv.h", line 54: warning: syntax error: 
empty declaration
"/usr/include/sys/auxv.h", line 55: warning: old-style declaration 
or incorrect type for: auxv_t

Workaround: Apply either of the following patches: