[moved to devel]

|
| With regards to gnu linux:
| How about the Elf format?
| Is it possible to export code from an elf? (i.e. export functions)
|


Okay, I researched the topic. Of course, yes, you can export functions from an 
executable
on linux. But freepascal doesn't seem to like it just yet.  It must be done 
supposedly
with the -E option to the linker (ld) or -export-dynamic
(gcc is -rdynamic)

This of course, was after modifying the compiler to parse the
exports keyword properly
[psub.pas]

   else if islibrary or
      (target_info.system in [system_i386_linux,system {<<<inserted 
this}<SNIP>]) then
    read_exports

So after getting the parsing of the exports keyword set up to work, I tried 
passing the -E
option in freepascal compiler (the -k option as also seen in the lazarus linker 
options
tab)

After compiling a program, with an export it didn't seem to work properly. It 
compiles
okay, but when I run it two writeln('test')'s appear instead of one, and the 
program quits
without an error.

 So now the next thing to figure out, is why exports from an executable on 
linux won't
work
even when you pass the -E or export-dynamic option to LD.

I'm guessing the symbols aren't being placed in the object files correctly for 
the linker
to use, or they aren't being placed there at all. If you guys have any tips let 
me know..
I'll be looking into the compiler sources more, probably the sections that 
write the
object files now.






_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to