new syscall stub support for ia64 libc

David Mosberger davidm@napali.hpl.hp.com
Thu Nov 13 03:53:00 GMT 2003


>>>>> On Wed, 12 Nov 2003 19:38:38 -0800, Ulrich Drepper <drepper@redhat.com> said:

  >> Next stupid question: what's the purpose of librt?  I'm asking since
  >> sysdep.h now says:

  Uli> It's just another POSIX-defined library.  It needs some special
  Uli> treatment since it also can contain system calls.

Ah, thanks.

  >> #if defined USE_DL_SYSINFO \
  >> && (!defined NOT_IN_libc || defined IS_IN_libpthread)
  >> # define IA64_USE_NEW_STUB
  >> #else
  >> # undef IA64_USE_NEW_STUB
  >> #endif

  >> and in <sysdep-cancel.h>, it says:

  >> #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt

  >> # undef PSEUDO
  >> # define PSEUDO(name, syscall_name, args)				      \
  >> :
  >> <code that uses the IA64_USE_NEW_STUB convention>
  >> :

  >> That is, anything in librt that uses the PSEUDO() macro from
  >> sysdep-cancel.h will try to uses the new stub, but nothing else will.

  Uli> I don't understand.  The code you quotes shows that the new stub is used
  Uli> for libc and libpthread so far.

My example wasn't very clear: the new definition of PSEUDO() uses open
code for using the new-stub convention, so I can get a better
schedule.

  Uli> The cancellation handling is in addition also used for librt.
  Uli> The two are independent, but you should add || defined
  Uli> IS_IN_librt to the code in the ia64 header.

OK, if I can turn on IA64_USE_NEW_STUB for IS_IN_librt in sysdep.h
then all is fine.

Thanks,

	--david



More information about the Libc-hacker mailing list