delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2005/01/01/05:59:32

X-Authentication-Warning: delorie.com: mail set sender to djgpp-workers-bounces using -f
Date: Sat, 01 Jan 2005 12:57:25 +0200
From: "Eli Zaretskii" <eliz AT gnu DOT org>
Sender: halo1 AT zahav DOT net DOT il
To: djgpp-workers AT delorie DOT com
Message-ID: <01c4eff0$Blat.v2.2.2$d6643f20@zahav.net.il>
X-Mailer: emacs 21.3.50 (via feedmail 8 I) and Blat ver 2.2.2
In-reply-to: <m4ect01p964inq4g0pb0dtk3u90p4e3mn2@4ax.com> (message from Brian
Inglis on Fri, 31 Dec 2004 23:01:02 -0700)
Subject: Re: More complaints from tests/libclink/check
References: <b24ct0djfmkn9sq8tjr2df792rfhdf4d0e AT 4ax DOT com>
<200501010313 DOT j013Do4F018246 AT speedy DOT ludd DOT ltu DOT se> <m4ect01p964inq4g0pb0dtk3u90p4e3mn2 AT 4ax DOT com>
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> Date: Fri, 31 Dec 2004 23:01:02 -0700
> From: Brian Inglis <Brian DOT Inglis AT SystematicSw DOT ab DOT ca>
> 
> >You just define your (POSIX) functions that does the real work, adding
> >them as stubs to <libc/stubs.h> and letting the C (89 or 99) call them
> >as necessary.
> 
> I am not sure what you mean by stubs here? 

See src/libc/stubs/mkstubs.c.  This program is invoked during the
library build; it scans the libc/stubs.h header and for each stub
there produces a stubNN.S file that defines a function which simply
jmp's to its alias.  Thus, e.g., localtime_r will simply jmp to
localtime.  The resulting stubNN.S files are then assembled and linked
into libc.a.

> If the POSIX functions are not declared by including the appropriate
> header, or by calling them with a local declaration in scope, or if
> compiler options specify -ansi, we should not pollute the ISO Standard
> C namespace. 

The stub method solves this problem, as you only get localtime_r
linked in if you reference it in your program.

The question is, as I wrote elsewhere in this thread, do we want the
*_r functions as simple aliases for the non-*_r functions, or do we
really want reentrancy.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019