[fpc-pascal]Dynamic Symbol Information For Functions and Procedures in Linux ELF

Ecmel ERCAN ecmel at ercansoy.com
Fri Jun 1 04:19:59 CEST 2001


Hi,

I am new to Linux and Free Pascal so please forgive me If I am asking
a silly question :)

I have converted libglade headers to free pascal but I need
to know how to include the dynamic symbol information for
gtk event handler functions in the final ELF file.

For example; I compile the following C program:

#include <gtk/gtk.h>
#include <glade/glade.h>

void on_window1_destroy(GtkWidget *widget, gpointer user_data) {
  /* do something useful here */
  gtk_main_quit();
}

int main(int argc, char *argv[]) {
    GladeXML *xml;

    gtk_init(&argc, &argv);
    glade_gnome_init();

    /* load the interface */
    xml = glade_xml_new("test.glade", NULL);
    /* connect the signals in the interface */
    glade_xml_signal_autoconnect(xml);
    /* start the event loop */
    gtk_main();
    return 0;
}



Now if I use objdump -T on the generated ELF file, I can see the
on_window1_destroy function is in the list.

But when I compile the pascal version it does not get into the
dynamic symbol info table:

program test;

uses glib, gdk, gtk, glade;

var
   TestXML	 : PGladeXML;

procedure on_window1_destroy (widget : PGtkWidget; data: Pgpointer); cdecl;
begin
   gtk_main_quit();
end;

begin
   gtk_init(@argc, @argv);
   glade_init;
   TestXML := glade_xml_new('test.glade', nil);
   glade_xml_signal_autoconnect(TestXML);
   gtk_main();
end.


Because of this, glade_xml_signal_autoconnect function does not work
properly in the pascal version.

Please help :)

Thanks in advance for the replies.

Ecmel Ercan

PS: I can manually attach the event handlers and Glade works great with
FPC.  If only I can auto-magically connect the event handlers, everything
will be much more easy and clean.




More information about the fpc-pascal mailing list