Glenn Fowler wrote:
> > It seems there is no real way to extract the list of exported symbols
> > (functions and variables, the current script only catches the function
> > names (without prototype information)) by a simple filter script from
> > the includes so I am now looking for a better solution.
> 
> ast external symbols are bracketed in the headers by something like:
> 
> #if _BLD_foo && defined(__EXPORT__)
>   #define __MANGLE__ ...
>     or
>   #define extern ...
> #endif
> 
>   ...
> 
> #undef __MANGLE__
>   or
> #undef extern
> 
> we also have the proto(1) command that may be able to produce the list

I wish it would come with a manual page...

> do you need the complete prototypes or just the names?

Unfortunately we need the full prototypes. For the current "ast.spec"
file I just listed the function names as the whole API is currently
labelled as "Sun private" anyway (and I hope that noone from ARC asks
for the full prototypes for the first putback... ;-( ) ...
But once the API is made "public" (at a later point) then we need the
full prototypes to be listed in the matching ARC case and "ast.spec".

> also, there may be some _* symbols shared between ast library
> functions but not exported in .so's/.dll's -- are those needed?

If they are not needed by external consumers (e.g. libshell, libcmd
etc.) then they are not needed.

> > previous solution but still time-/work-intensive and we completely loose
> > the ability to distinguish between internal functions and those who are
> > marked in the libast includes as __EXTERN__
> 
> __EXTERN__ is used for data symbols in src implementations
> are you referring to __EXPORT__ (and/or __IMPORT__) ?

AFAIK we only need those symbols marked by __EXPORT__.

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 7950090
 (;O/ \/ \O;)

Reply via email to