hi,
i've been developing a modification to FPC so that under linux any generated binaries link against the BASE versions of glibc symbols. this is done by adding code into the procedure pd_external (contained in the file pdecsub.pas) that intercepts references to known glibc symbols (there are around 2500 of them) and using a lookup-table substitutes the BASE version for said symbols. for instance dlopen is converted to dlopen@GLIBC_2.2.5.
this works for all bar one symbol - fnmatch. it appears that FPC internally does something mightily weird with fnmatch for reasons that are not entirely clear. are any of the FPC developers able to explain:
1. why is whatever is being done with fnmatch done?
2. what exactly is being done with fnmatch?
3. from within pd_external how can i differentiate the 'internal' fnmatch so that i can leave it well alone?
unfortunately i've not been able to discover the structure of tabstractprocdef/tprocdef which packages up the data passed into pd_external. is anyone able to:
4. show me where tabstractprocdef/tprocdef is defined and explain (some of) the fields?
cheers,
rob :-)