README (3197aa64bfc2eb6662d48b7c4cb38cabbe816d2e) | README (7f9dc0eec05dc1280e3a494124572c5814e7aef9) |
---|---|
1# 2# CDDL HEADER START 3# 4# The contents of this file are subject to the terms of the 5# Common Development and Distribution License (the "License"). 6# You may not use this file except in compliance with the License. 7# 8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --- 166 unchanged lines hidden (view full) --- 175 function can be serialized with fork_lock_enter() instead 176 of lmutex_lock(). 177 178 * If the memory allocation by malloc() cannot be avoided and 179 the scalability of the function does matter, another 180 implementation of the function will be necessary. 181 182In a DEBUG build of libc: | 1# 2# CDDL HEADER START 3# 4# The contents of this file are subject to the terms of the 5# Common Development and Distribution License (the "License"). 6# You may not use this file except in compliance with the License. 7# 8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --- 166 unchanged lines hidden (view full) --- 175 function can be serialized with fork_lock_enter() instead 176 of lmutex_lock(). 177 178 * If the memory allocation by malloc() cannot be avoided and 179 the scalability of the function does matter, another 180 implementation of the function will be necessary. 181 182In a DEBUG build of libc: |
183 make THREAD_DEBUG=-DTHREAD_DEBUG install | 183 make THREAD_DEBUG=-DDEBUG install |
184many of these rules are enforced by ASSERT() statements scattered about 185in the libc sources. This is the default mode for building libc when 186a DEBUG nightly build is performed. 187 188# libaio/librt Implementation In libc 189 190The putback of the project: 191 6416832 libaio and librt can and should be folded into libc --- 43 unchanged lines hidden (view full) --- 235(generally, one or the other will be a weak symbol, precisely which is 236inconsistent). 237 238These synonym symbols existed such that an application which provided 239otherwise conflicting symbols could interpose on the version in libc without 240compromising libc itself, that is if libc defines fopen() which needs open() it 241would call _open() and an application defined open() would not cause fopen() 242to break. This was made transparent to code within libc via a header, | 184many of these rules are enforced by ASSERT() statements scattered about 185in the libc sources. This is the default mode for building libc when 186a DEBUG nightly build is performed. 187 188# libaio/librt Implementation In libc 189 190The putback of the project: 191 6416832 libaio and librt can and should be folded into libc --- 43 unchanged lines hidden (view full) --- 235(generally, one or the other will be a weak symbol, precisely which is 236inconsistent). 237 238These synonym symbols existed such that an application which provided 239otherwise conflicting symbols could interpose on the version in libc without 240compromising libc itself, that is if libc defines fopen() which needs open() it 241would call _open() and an application defined open() would not cause fopen() 242to break. This was made transparent to code within libc via a header, |
243synonyms.h, which would #define open _open, for all such symbols. | 243synonyms.h, which would #define open _open, for all such symbols. |
244 245Since ON now uses direct bindings extensively all symbols not explicitly 246marked "NODIRECT" are directly bound within libc anyway, and none of this is 247actually necessary. Thus synonyms.h was removed, and no new synonym symbols 248need be added. However, unfortunately, certain of the private symbols were 249inadvertently exposed to applications, and several are known to have been 250used, thus these existing synonyms must continue to exist to maintain 251compatibility. A preloadable library, /lib/c_synonyms.so.1 is provided which --- 28 unchanged lines hidden --- | 244 245Since ON now uses direct bindings extensively all symbols not explicitly 246marked "NODIRECT" are directly bound within libc anyway, and none of this is 247actually necessary. Thus synonyms.h was removed, and no new synonym symbols 248need be added. However, unfortunately, certain of the private symbols were 249inadvertently exposed to applications, and several are known to have been 250used, thus these existing synonyms must continue to exist to maintain 251compatibility. A preloadable library, /lib/c_synonyms.so.1 is provided which --- 28 unchanged lines hidden --- |