Solaris 8 7/01 What's New Supplement

Chapter 5 What's New for Developers

This chapter highlights new features for Solaris 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.

Table 5–1 Solaris 8 Update Features for Developers


Update Release  


Writing Device Drivers 


SPARC: 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” 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.



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 


Language 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 


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: This update 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 which provides correct word breaks for sentence strings in the Thai language. The Thai locale now supports correct word-boundary handling of Motif widgets.



Development Tools 


sendfilev(), a vectored sendfile system call, 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).



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.

For further information, see the Solaris DHCP Service Developer's Guide.



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.



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: Multithreaded Programming Guide has been updated with bug fixes: 4308968, 4356675, 4356690.

To view the book, see the Multithreaded Programming 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.”

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.”

For the 7/01 release, updates include:

  • Unused dependencies can be determined 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.

To view the book, see the Linker and Libraries Guide.


Updated 1/01 and 7/01 


System Interface Tools 


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

To view the book, see the System Interface Guide.



Java Releases  


The Java 2 SDK Standard Edition v. 1.3.0, also known as J2SETM 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 JavaTM 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.



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 this web site:



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



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 “Previous Java 2 Standard Edition (J2SE) Releases” in the Solaris 8 Software Developer Supplement.



32-bit: 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.



Early Access 


This release includes an Early Access (EA) directory with EA software. For more information, see the README on the Solaris Software CD 2 of 2.