On Tue, Jan 11, 2000 at 10:35:27AM -0800, Jason Evans wrote:
> I'm working on adding alternate entry points to libc now.
Good.
> The naming
> approach I'm taking is:
>
> fwrite() <-- Alternate entry point that is used externally unless
> another library overrides it.
> _libc_fwrite() <-- `_libc_' prefix. Alternate entry point for internal
> library use.
> __fwrite() <-- `__' prefix. Actual name.
>
> The reason for a prefix of `__' instead of `_' in the actual name case is
> that using only one underscore would be ambiguous at least in the cases of
> setjmp()/_setjmp() and longjmp()/_longjmp().
FYI, the actual name with a single '_' is already defined for syscalls via
SYS.h. Aliasing '__sycall' to '_syscall' is ok, I assume. Or, are you planning
on replacing the '_syscall's? Setjmp/_setjmp are libc calls but not syscalls.
I'm under the impression that linux glibc uses both single and double underscore
symbols, but I don't recall exactly what distinction they make between the two.
> One issue I'm not sure on is whether *every* libc interface should have
> alternate entry points added. Doing so would be more consistent,
Agreed.
> but it
> probably isn't necessary, since POSIX very clearly defines the set of
> functions that may act as cancellation points. There end up being a few
> other functions that need wrapped by threads libraries as well. Of course,
> doing only the necessary ones is easier for me. =)
Agreed its not necessary. I'm under the impression that linux glibc only
does the "necessary" ones (at lease for the _libc_ prefix), but you'd have
to check the code if you want to be sure, because I'm not.
> If only adding alternate entry points for the necessary libc interfaces,
> there's a good chance I can get this done for 4.0, which will mean
> compliant thread cancellation for both libc_r and linuxthreads. A genuine
> libpthread is just a hop, skip, and a jump from there.
I'd say only do whats necessary, if thats the case. Someone really good
with sed, or some other text processor, might be able to semi-automate
the process, but I know I don't know how.
This will be a big help.
--
Richard Seaman, Jr. email: [EMAIL PROTECTED]
5182 N. Maple Lane phone: 262-367-5450
Chenequa WI 53058 fax: 262-367-5852
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message