From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!news.uzoreto.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: hreba Newsgroups: comp.lang.ada Subject: gtkada: recompile with -fPIC Date: Fri, 31 Jul 2020 12:47:57 +0200 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net 7r5BEeApTKABoFQ515tYNg2NSpqgkxtexoj/awvqIILs/koQLL Cancel-Lock: sha1:7yWC1BsVX2+MOShplXc4i7t36x8= X-Mozilla-News-Host: news://News.Individual.DE:119 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 Content-Language: en-US Xref: reader01.eternal-september.org comp.lang.ada:59611 List-Id: Hi, I am following the plugin scheme from the GNAT examples, using GTK. So I need gtkada, and for proper tasking with that, gtkada_contributions. From the Adacore site I grabbed the actual versions (2020) of (binary) GNAT and gtkada. From Dmitry's site I took the gtkada_contributions source code. The plugin scheme demands building standalone relocatable libraries (loaded at runtime). So for making (on Linux) I call from a terminal: gtkada-env.sh export GTKADA_BUILD=relocatable gprbuild -Pbase My project file base.gpr withs gtkada_contributions_lib.gpr, which is the original project file with the following additions: for Library_Name use "gtkada_contributions"; for Library_Dir use "lib"; for Library_Kind use "relocatable"; The above gprbuild command now produces: Build Libraries [gprlib] gtkada_contributions.lexch [link library] libgtkada_contributions.so /opt/GNAT/2020/bin/../libexec/gcc/x86_64-pc-linux-gnu/9.3.1/ld: /home/frank/Lib/Ada/gtkada_contributions/gdk-color-ihls.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC /opt/GNAT/2020/bin/../libexec/gcc/x86_64-pc-linux-gnu/9.3.1/ld: /home/frank/Lib/Ada/gtkada_contributions/gdk-pixbuf-image.o: relocation R_X86_64_32 against symbol `gdk__pixbuf__image__rgb_imageT' can not be used when making a shared object; recompile with -fPIC ... and a lot of other, similar lines. Adding -fPIC to gtkada_contributions_lib.gpr (compiler switches) didn't change anything, so I guess it is gtkada or even gtk which has to be recompiled. Going ahead alone probably means hours of useless work with the possible result of breaking my system. So how can I compile/link my project? Will then future projects without relocatable libraries still compile and link? -- Frank Hrebabetzky, Kronach +49 / 9261 / 950 0565