Solaris 8 2/04 What's New Supplement

Chapter 4 What's New for Developers

This chapter highlights new features for software developers that have been added to the Solaris 8 Update releases.

Note –

For the most current man pages, use the man command. The Solaris 8 Update release man pages include new feature information not found in the Solaris 8 Reference Manual Collection.

Development Tools

Feature Description 

Release Date 

WBEM Process Indication

The WBEM event mechanism has been extended. Process indications in the Common Information Model (CIM) enable instrumentation providers to register their own event classes in addition to the intrinsic events that are predefined with any class declaration in the CIM. These classes can be used to generate events that cannot be expressed as creation, deletion, access, modification, and method invocations of classes already modeled in the CIM. This capability enhances the existing events support.

Further information is provided in the Solaris WBEM SDK Developer's Guide in the Solaris 9 Software Developer Collection. For instructions on how to access Solaris 9 documentation, see Early Access in this document.


Modifications to Alternate Libthread

The Solaris 8 2/02 release includes an improved alternative multithreading library that provides better performance, reliability, and simplicity. 

Further information is provided in the threads.3thr man page and the Multithreaded Programming Guide in the Solaris 9 Software Developer Collection. For instructions on how to access Solaris 9 documentation, see Early Access in this document.


SPARC: Application Interface to Remote Shared Memory on Clusters

If you develop applications that extend the use of a SunTM Cluster environment, you can benefit from this interface. Using the new Remote Shared Memory API, you can program your applications to lower the latency for message passing over high-speed cluster interconnects. Such cluster-aware applications can significantly reduce the time that is required to respond to events in a clustered configuration. You must have Sun Cluster 3.0 installed. Also, you need expertise to modify existing applications to exploit the new interface.

The librsm(3LIB) man pages and the section (3RSM) “Section 3: Extended Library Functions” man pages include references to RSM.


Dynamic Host Configuration Protocol (DHCP)

The Dynamic Host Configuration Protocol (DHCP) service enables host systems to receive IP addresses and network configuration information at boot time from a network server. Before this release, DHCP configuration data could only be stored in text files or NIS+. In this release, data access in the Solaris DHCP service has been redesigned to use a modular framework. Solaris DHCP provides an API that enables you to write shared objects to support any data storage facility for storing DHCP data.  

The Solaris DHCP Service Developer's Guide provides an overview of the data access framework that is used by Solaris DHCP, general guidelines for developers, and a listing of the API functions you use to write a module to support a new data store.


A Vectored Sendfile System Call: sendfilev()

A vectored sendfile system call, sendfilev() enables better performance for sending out data from application buffers or files. For example, in web performance, a web server can construct an HTTP response (header, data, and trailer as well as SSI server-side includes) in a single system call. This feature provides optimal performance with NCA, because it enables the return of multiple chunks, which might come from various files for the response.

For further information, see the man page sendfilev(2).


Verify File Conformance With the appcert Utility

The appcert utility verifies an object file's conformance to the Solaris ABI. Conforming to the Solaris ABI greatly increases an application's probability of being compatible with future releases of Solaris software.

For more information, see “Using appcert” in the Solaris 8 Software Developer Supplement.


Sun WBEM Software Developer's Toolkit (SDK)

Web-Based Enterprise Management (WBEM) includes standards for web-based management of systems, networks, and devices on multiple platforms. The Sun WBEM Software Developer's Toolkit (SDK) enables software developers to create standards-based applications that manage resources in the Solaris operating environment. Developers can also use this toolkit to write providers, programs that communicate with managed resources to access data. The Sun WBEM SDK includes Client Application Programming Interfaces (APIs) for describing and managing resources in Common Information Model (CIM), and Provider APIs for getting and setting dynamic data on the managed resource. The Sun WBEM SDK also provides CIM WorkShop, a Java application for creating and viewing the managed resources on a system, and a set of example WBEM client and provider programs.  

For more information, see the Sun WBEM SDK Developer's Guide.


SPARC: Updated Multithreaded Programming Documentation

The Multithreaded Programming Guide has been updated with bug fixes: 4308968, 4356675, 4356690.

For further information, see the Multithreaded Programming Guide.


Revisions to the Linkers and Libraries Guide

The Linkers and Libraries Guide has been updated with new features. For the 10/00 release, updates include:

  • The environment variable, LD_BREADTH, is ignored by the runtime linker. See the section, “Initialization and Termination Routines.”

  • The runtime linker and its debugger interface have been extended for better runtime and core file analysis. This update is identified by a new version number. See the section, “Agent Manipulation.” This update expands the rl_flags, rl_bend, and rl_dynamic fields of the rd_loadobj_t structure. See the section, “Scanning Loadable Objects.”

  • The validation of displacement-relocated data in regard to its use, or possible use, with copy relocations is now provided. See the section, “Displacement Relocations.”

  • 64-bit filters can be built solely from a mapfile by using the link-editors -64 option. See the section, “Generating a Standard Filter.”

  • Some explanatory notes are provided on why $ORIGIN dynamic string token expansion is restricted within secure applications. See the section, “Security.”

  • By using dlinfo(3DL), you can inspect the search paths that are used to locate the dependencies of dynamic objects.

  • dlsym(3DL) and dlinfo(3DL) look-up semantics have been expanded with a new handle, RTLD_SELF.

  • The runtime symbol look-up mechanism that is used to relocate dynamic objects can be significantly reduced by establishing direct binding information within each dynamic object. See the sections, “External Bindings” or “Direct Binding.”


Updated 1/01 and 7/01 

Revisions to the Linkers and Libraries Guide, Continued

For the 1/01 release, updates include:

  • The symbolic information available from dladdr(3DL) has been enhanced with the introduction of dladdr1().

  • You can obtain the $ORIGIN of a dynamic object from dlinfo(3DL).

  • The maintenance of runtime configuration files that were created with the crle(1) has been simplified with the display of the command-line options that were used to create the configuration file. Also available is an update capability. (See the -u option.)

  • The runtime linker and its debugger interface have been extended to detect procedure-linkage-table entry resolution. This update is identified by a new version number. See the section, “Agent Manipulation.” This update extends the rd_plt_info_t structure. See the section, “Procedure Linkage Table Skipping.”

  • An applications stack can be defined non-executable by using the new mapfile segment descriptor STACK. See the section, “Segment Declarations.”


Revisions to the Linkers and Libraries Guide, Continued

For the 7/01 release, updates include:

  • Unused dependencies can be determined by using ldd(1). (See the -u option.)

  • Various ELF ABI extensions have been added and the associated documentation revised. See “Initialization and Termination Sections,” “Initialization and Termination Routines,” Table 6, Table 9, Table 16, Table 17, “Section Groups,” Table 19, Table 24, Table 45, Table 46, and “Program Loading (Processor-Specific).”

  • Greater flexibility in the use of link-editor environment variables has been provided with the addition of _32 and _64 variants. See “Environment Variables” in the Linker and Libraries Guide.

For further information, see the Linker and Libraries Guide.


Updates to the System Interface Guide

The System Interface Guide is updated to incorporate bug fixes. This release corrects several typographical errors in text and source code examples.

For further information, see the System Interface Guide.


Language Support

Feature Description 

Release Date 

Support for the new Chinese GB18030-2000 Locale Encoding

The Solaris platform now allows for input, display, and print of the entire GB18030-2000 character set (including nearly 30,000 characters). Any application that runs on Solaris can thus benefit from a wider set of Chinese characters. These glyphs are primarily Han characters, but the encoding also includes glyphs for minority languages such as Tibetan, Wei, Yi, and Mongolian.

GB18030-2000 support in this Solaris release also includes backward compatibility to previous Chinese codesets (GBK and GB2312) as well as conversion to other codesets such as Unicode. Solaris developers do not need to change their procedures to access this new encoding support. Standard toolkits can use the new support.

For Java applications that need GB18030-2000 support, please review J2SETM at

For further information, see the International Language Environments Guide in the Solaris 9 Software Developer Collection. For instructions on how to access Solaris 9 documentation, see Early Access in this document.


Expanded Unicode Support

The File System Safe Universal Transformation Format, or UTF-8, is an encoding defined by X/Open as a multibyte representation of Unicode. UTF-8 encompasses almost all of the characters for traditional single-byte and multibyte locales for European and Asian languages for Solaris locales. For the 10/00 release, Russian and Polish and two new locales for Catalan are added. For the 4/01 release, two additional languages, Turkish UTF-8 Codeset and Russian UTF-8 Codeset, are added to a table of already existing Eastern European locales. 

For more information, see “Additional Partial Locales for European Solaris Software” in the Solaris 8 Software Developer Supplement.


Updated 4/01 

Print Filter Enhancement – the mp Program

The mp program accepts international text files of various Solaris locales and produces output that is proper for the specified locale. The output will also contain proper text layout, for instance, bidirectional text rendering and shaping, as the complex text layout (CTL) is supported in mp. Depending on each locale's system font configuration for mp, the PostScriptTM output file can contain glyph images from Solaris system-resident scalable or bitmap fonts.

For more information, see “Print Filter Enhancement mp(1)” in the Solaris 8 Software Developer Supplement.


Thai Wordbreaker

The Solaris 8 1/01 release includes a new text boundary resolution framework for Asian languages. With this framework, CDE applications and Motif libraries do the proper locale-specific text boundary resolution in all locales. The feature, including changes to the CDE/Motif library, is included in The Thai text boundary resolution module is a new feature that provides correct word breaks for sentence strings in the Thai language. The Thai locale now supports correct word-boundary handling of Motif widgets.

For further information about the Thai locale, see the International Language Environments Guide.


Writing Device Drivers

Feature Description 

Release Date 

Frame Buffer Power Management

Some devices, such as certain tape drives and frame buffers, should not lose power when their drivers are detached. A new interface, ddi_removing_power(9F), checks if a device may lose power as a result of a suspend operation. A new property, no-involuntary-power-cycles, can be specified to ensure that the device is not powered down unintentionally.

For further information about power management issues, see the ddi_removing_power(9F) and no-involuntary-power-cycles(9P) man pages.


SPARC: Driver Hardening Test Harness

The driver hardening test harness is a Solaris device driver development tool. The test harness injects a wide range of simulated hardware faults when the driver under development accesses its hardware. This fault-injection test harness tests the resilience of a SPARC based device driver. 

For more information, see “Driver Hardening Test Harness” in the Solaris 8 Software Developer Supplement.


High-Availability Drivers Documentation

“High-Availability Drivers” provides a detailed description of how to design drivers to support high availability through driver hardening and ensuring serviceability. This material extends information provided in the Solaris 8 Writing Device Drivers.

For more information, see “High-Availability Drivers” in the Solaris 8 Software Developer Supplement.


Generic LAN Driver (GLD)

You can use the Generic LAN driver (GLD) to implement much of the STREAMS and Data Link Provider Interface (DLPI) functionality for a Solaris network driver. Until the Solaris 8 10/00 release, the GLD module was available only for Solaris Intel Platform Edition network drivers. Now GLD is available for Solaris SPARC Platform Edition network drivers as well.

For the 4/01 release, GLD is updated with bug fixes. 

For more information, see “Drivers for Network Devices” in the Solaris 8 Software Developer Supplement.


Updated 4/01 

Java Releases

Feature Description 

Release Date 

Java 2 SDK, Standard Edition v. 1.2.2_10

The JavaTM 2 SDK 1.2.2_10 has the latest bug fixes integrated since the last release. For further information about Java 2 SDK 1.2, see the Web site at


Java 2 SDK, Standard Edition v. 1.3.1

The Java 2 SDK Standard Edition (J2SETM) version 1.3.1 is a maintenance release that contains fixes for bugs that were identified in J2SE 1.3.0. For a list of significant bug fixes that are included in J2SE 1.3.1, see the Web site at


Java 2 SDK, Standard Edition v. 1.3.0

The Java 2 SDK Standard Edition v. 1.3.0, also known as J2SE 1.3.0, is an upgrade release for Java 2 SDK. The J2SE release includes the following new features and enhancements. 

  • Performance Improvements

    Java HotSpotTM technology and performance-tuned runtime libraries make J2SE 1.3.0 the fastest Java platform to date.

  • Easier Web Deployment

    New features, such as applet caching and automatic installation of optional packages by J2SE 1.3.0's JavaTM Plug-in component, enhance the speed and flexibility with which you can deploy programs on the web.

  • Enterprise Interoperability

    The addition of RMI/IIOP and the Java Naming and Directory InterfaceTM in J2SE 1.3.0 enhance the interoperability of the Java 2 Platform.

  • Security Advances

    New support for RSA electronic signing, dynamic trust management, X.509 certificates, and verification of Netscape-signed files mean more ways for developers to protect their electronic data.

  • Java Sound

    J2SE 1.3.0 includes a powerful new sound API. Previous releases of the platform limited audio support to basic playback of audio clips. With this release, the Java 2 Platform defines a set of standard classes and interfaces for low-level audio support.

  • Enhanced APIs and Improved Ease of Development

    In response to requests from the development community, J2SE 1.3.0 adds new features to various areas of the Java 2 Platform. These features expand the functionality of the platform to enable development of more powerful applications. In addition, many of the new features make the development process itself faster and more efficient.

For more J2SE improvements, see “Java 2 SDK, Standard Edition, version 1.3.0” in the Solaris 8 Software Developer Supplement.


Java 2 SDK, Standard Edition v. 1.2.2_07a

The J2SE 1.2.2_07a contains fixes for bugs that were identified in previous releases in the J2SE 1.2.2 series. An important bug fix is a fix for a performance regression that was introduced in J2SE 1.2.2_05. For more information about bug fixes in J2SE 1.2.2_07a, see the web site at


Java 2 SDK 1.2.2_06 and JDK 1.1.8_12

The Java 2 SDK 1.2.2_06 and JDK 1.1.8_12 are improved with bug fixes since the last release. 


Java 2 SDK 1.2.2_05a

The Java 2 SDK 1.2.2_05a includes the following new features.

  • Scalability improvements to over 20 CPUs

  • Improved just-in time (JIT) compiler optimizations

  • Text-rendering performance improvements

  • poller class demo package

  • Swing improvements

For more information, see “Java 2 SDK, Standard Edition, version 1.2.2_07a and Previous Releases” in the Solaris 8 Software Developer Supplement.


32–bit: Java Servlets Support


With the addition of the mod_jserv module and related files, the Apache web server now supports Java servlets.

For more information, see “Java Servlet Support in Apache Web Server” in the Solaris 8 Software Developer Supplement.