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;)
