Kevin Brown writes: [Trouble linking statically] > For what it's worth, here's one iteration of the linker package > definition that I've tried to use: > > package Linker is > for Default_Switches ("Ada") use > ("-g", > "-static", > "/usr/lib/libgnatprj.a", > "/usr/lib/libgnatvsn.a", > "/usr/lib/libtemplates_parser.a", > "/usr/lib/libgtkada2.a", > "/usr/lib/gcc/x86_64-linux-gnu/4.1.2/adalib/libgnarl.a", > "/usr/lib/gcc/x86_64-linux-gnu/4.1.2/adalib/libgnat.a", > GtkAda2.Linker_Switches, > Gnatprj.Linker_Switches, > Gnatvsn.Linker_Switches, > Templates_Parser.Linker_Switches, > -- Some C libraries which we build from debian/rules: > "obj/libgps.a", "obj/libdb.a", > -- The python shared library from python-dev comes > -- last, because libgps.a needs it. > "-L/usr/lib/python2.4/config", > "-lpython2.4"); > end Linker;
The problems are: - You must pass -static to the *binder*, not the *linker*. As per the GAT documentation, you do not need to pass libgnata or libgnarl.a explicitly; the binder's job is to figure out these things for you. - Like I said, you should be linking statically with all Ada libraries. Consequently, you should have removed the *.Linker_Switches, since they're the ones bringing in the shared libraries. - libgps.a is not an Ada library, and it does not require any shared library, so it is not the cause for your problem. Same with libdb.a. Here is a correct project file snippet: package Binder is for Default_Switches ("Ada") use ("-static"); end Binder; package Linker is for Default_Switches ("Ada") use ("/usr/lib/libgnatprj.a", "/usr/lib/libgnatvsn.a", "/usr/lib/libtemplates_parser.a", "/usr/lib/libgtkada2.a", "-lgtk-x11-2.0", -- Some C libraries which we build from debian/rules: "obj/libgps.a", "obj/libdb.a", -- The python shared library from python-dev comes -- last, because libgps.a needs it. "-lpython2.4"); end Linker; And the output of ldd for the resulting gnat-gps: $ ldd gnat-gps libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x00002ae6438ae000) libpython2.4.so.1.0 => /usr/lib/libpython2.4.so.1.0 (0x00002ae643cd7000) libpthread.so.0 => /lib/libpthread.so.0 (0x00002ae643f16000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ae64402b000) libc.so.6 => /lib/libc.so.6 (0x00002ae644138000) libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00002ae644376000) libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x00002ae64448e000) libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00002ae644622000) libX11.so.6 => /usr/lib/libX11.so.6 (0x00002ae644764000) libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00002ae64496d000) libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00002ae644aae000) libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00002ae644bb2000) libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00002ae644d4f000) libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00002ae644e58000) libdl.so.2 => /lib/libdl.so.2 (0x00002ae644f79000) libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00002ae64507c000) libm.so.6 => /lib/libm.so.6 (0x00002ae6451e5000) libutil.so.1 => /lib/libutil.so.1 (0x00002ae645368000) /lib64/ld-linux-x86-64.so.2 (0x00002ae643796000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00002ae64546b000) libXext.so.6 => /usr/lib/libXext.so.6 (0x00002ae64559e000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00002ae6456b0000) libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00002ae6457b9000) libXi.so.6 => /usr/lib/libXi.so.6 (0x00002ae6458bb000) libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00002ae6459c4000) libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00002ae645ac7000) libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00002ae645bd1000) libXau.so.6 => /usr/lib/libXau.so.6 (0x00002ae645cd7000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00002ae645dd9000) librt.so.1 => /lib/librt.so.1 (0x00002ae645ede000) libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00002ae645fe8000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00002ae646116000) libz.so.1 => /usr/lib/libz.so.1 (0x00002ae64628e000) libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00002ae6463a5000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00002ae6464c8000) -- Ludovic Brenta. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]