kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #04600
Re: Re: libstdc++
-
To:
kicad-devel@xxxxxxxxxxxxxxx
-
From:
Dick Hollenbeck <dick@...>
-
Date:
Wed, 24 Mar 2010 14:56:21 -0500
-
In-reply-to:
<4BAA6939.3030908@...>
-
Scanners:
none
-
User-agent:
Thunderbird 2.0.0.24 (X11/20100317)
jean-pierre.charras@... wrote:
Dick Hollenbeck a écrit :
But I insist that my two options are still valid, and wonder if
statically linking in libstdc++ will add 2 MB, since this is a "link
only what's needed" form of link.
libstdc++ (and libsupc++ that is sometimes needed) was for me *always*
a nightmare since I build Kicad distributions.
Depending on linux versions and/or gcc versions, statically linking
works or not (many times, a lot of undefined symbols are found).
My opinion is libstdc++ (and libsupc++) static versions are often broken.
I'll work on that next days.
In fact, I planned to build a Kicad version under Cento4.8 (and
perhaps a Debian version)
I am using these Linux distributions at work.
At home, I use only the Ubuntu 9.10 version.
But I had the hands full with bug fixing (Some not critical but
annoying bugs where found in final release).
This is because a lot of guys (as you know!) do not try to test the RC
versions and just where waiting for the stable version.
So I'll make a bug fix release soon, and after I hope I can build
these (final?) versions.
I do not want do the same work twice.
$ readelf -a kicad
gives:
:
Dynamic section at offset 0xc9d90 contains 32 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library:
[libwx_gtk2u_gl-2.8.so.0]
0x0000000000000001 (NEEDED) Shared library:
[libwx_gtk2u_aui-2.8.so.0]
0x0000000000000001 (NEEDED) Shared library:
[libwx_gtk2u_adv-2.8.so.0]
0x0000000000000001 (NEEDED) Shared library:
[libwx_gtk2u_html-2.8.so.0]
0x0000000000000001 (NEEDED) Shared library:
[libwx_gtk2u_core-2.8.so.0]
0x0000000000000001 (NEEDED) Shared library:
[libwx_baseu_net-2.8.so.0]
0x0000000000000001 (NEEDED) Shared library:
[libwx_baseu-2.8.so.0]
0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
:
So on my Ubuntu system, we can see that libstdc++.so.6 is needed, and is
presumed to be the problem dso, for customers of your Ubuntu binaries.
Just distributing the libstdc++.so from your Ubuntu, placing it in a
fixed directory (such as where you place the binaries), and making the
CMake install command put a LD_LIBRARY_PATH statement in there, pointing
to this directory, (e.g. /usr/local/bin ) should fix the problem for 95%
of all contemporary 32 bit distros.
The invocation command line would then look like this:
$ LD_LIBRARY_PATH=/usr/local/bin kicad
Thereafter, I believe and child processes, pcbnew, eeschema, etc, will
inherit the same environment as their parent (kicad program), and get
the LD_LIBRARY_PATH setting.
If you can simply set this environment variable in the desktop
shortcuts, then I cannot think of an easier solution. Otherwise, there
may need to be an intermediate invoking shell script that does the same
thing, such as a shell script that has that single line in it. The
shortcuts could then call than launching script.
Take the path of least resistance if you can, most of nature does the
same thing: electrons, water, and me.
Dick
--
Jean-Pierre CHARRAS
Maître de conférences
Directeur d'études 2ieme année.
Génie Electrique et Informatique Industrielle 2
Institut Universitaire de Technologie 1 de Grenoble
BP 67, 38402 St Martin d'Heres Cedex
Recherche :
GIPSA-LAB - INPG
Rue de la Houille Blanche
38400 Saint Martin d'Heres
Follow ups
References