From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00, DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 MIME-Version: 1.0 In-Reply-To: <20100324182459.GJ8193@altlinux.org> References: <20100321153442.GA21854@wo.int.altlinux.org> <20100321191834.GE30094@altlinux.org> <201003221023.34323.serpiph@nikiet.ru> <20100322082301.GB12770@altlinux.org> <20100324180448.GH21538@wo.int.altlinux.org> <20100324182459.GJ8193@altlinux.org> Date: Wed, 24 Mar 2010 21:01:51 +0200 Message-ID: From: "Kirill A. Shutemov" To: ALT Linux Team development discussions Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [devel] Q: --no-copy-dt-needed-entries X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Mar 2010 19:02:08 -0000 Archived-At: List-Archive: List-Post: 2010/3/24 Alexey Tourbin : > On Wed, Mar 24, 2010 at 09:04:48PM +0300, Dmitry V. Levin wrote: >> On Mon, Mar 22, 2010 at 11:23:01AM +0300, Alexey Tourbin wrote: >> > On Mon, Mar 22, 2010 at 09:28:11AM +0200, Kirill A. Shutemov wrote: >> > > =D0=AF =D0=B0=D0=BD=D0=BE=D0=BD=D1=81=D0=B8=D1=80=D1=83=D1=8E, =D0= =BA=D0=BE=D0=B3=D0=B4=D0=B0 =D0=B2=D1=81=D1=91 =D0=B1=D1=83=D0=B4=D0=B5=D1= =82 =D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BE. =D0=9D=D1=83=D0=B6=D0=BD=D0=BE = =D1=80=D0=B5=D1=88=D0=B8=D1=82=D1=8C =D0=BD=D0=B5=D1=81=D0=BA=D0=BE=D0=BB= =D1=8C=D0=BA=D0=BE =D0=BF=D1=80=D0=BE=D0=B1=D0=BB=D0=B5=D0=BC =D0=BD=D0=B0 >> > > ARM =D1=81=D0=BF=D0=B5=D1=80=D0=B2=D0=B0. >> > >> > Just don't do it - in conjunction with --as-needed, --copy-dt-needed-e= ntries >> > is good by default. >> >> Current --as-needed + --copy-dt-needed-entries combination works pretty >> well, so let's delay changing this default until we face a real bug. > > Not only does it work pretty well, it also tries to do "the right > thing". =C2=A0In a previous message, I tried to describe two distinct ld > modes: dumb mode and smart mode. =C2=A0Dumb mode would just do what is > specified on the command line. =C2=A0By contrast, smart mode could do > something more about shared library dependencies based on how symbols > are resolved. > > Now, a smart mode, what could that be? =C2=A0It's about either extra > dependencies which are unused (--as-needed), or missing/implicit > dependencies which can be obtained automatically (--copy-dt-needed-entrie= s). > So, if there's anything like a smart mode, these two options togehter > are pretty smart. Ok, for example, we have package libfoo with library libfoo.so.0 which links with libm. Program bar uses symbols from both libfoo and libm, but it links only with libfoo.so.0. Everything works fine. Then libfoo changes a bit. It doesn't link with libm any more, but soname hasn't changed. Everything still works fine, but building of program bar is broken. Cause of breakage is not clean in this situation. Do we care about situations like this? Currently, we have a good chance to fix buggy software. --no-copy-dt-needed-enties provides rather informative error message on underlinking.