gpsd-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gpsd-dev] scons quirks


From: Mike Frysinger
Subject: Re: [gpsd-dev] scons quirks
Date: Thu, 21 Nov 2013 13:18:03 -0500
User-agent: KMail/1.13.7 (Linux/3.12.0; KDE/4.6.5; x86_64; ; )

On Monday 18 November 2013 12:50:43 Hal Murray wrote:
> I think the problem I was hitting is that DESTDIR gets wired into the
> executables.  Things don't get relinked if I run scons install without a
> DESTDIR or specify a DESTDIR on the "scons" step that does the initial
> build and then scons install with that same DESTDIR.

this is because the SConstruct is wrong.  this section:
# Honor the specified installation prefix in link paths.
if not env["sysroot"]:
    env.Prepend(LIBPATH=[installdir('libdir')])
else:
    env.Prepend(LIBPATH=[env["sysroot"] + installdir('libdir')])

first, the paths where libs are going to be installed should not be used to
automatically construct -L paths.  it breaks cross-compile like setting libdir
to /usr/lib and then packaging it up for deployment on another system, and
it's pointless in the non-cross-compile case -- the toolchain already knows
how to finds its libs.

second, it's using installdir which means it prepends DESTDIR which will be
different between compile & install time.  and again, is pointless as we don't
want to relink things between the build and install times as it makes no sense
at all.

i imagine this will fix it (i use a similar patch in Gentoo, but i gut more
code to completely disable chrpath):

--- a/SConstruct
+++ b/SConstruct
@@ -285,10 +285,8 @@ def installdir(dir, add_destdir=True):
     return wrapped
 
 # Honor the specified installation prefix in link paths.
-if not env["sysroot"]:
-    env.Prepend(LIBPATH=[installdir('libdir')])
-else:
-    env.Prepend(LIBPATH=[env["sysroot"] + installdir('libdir')])
+if env["sysroot"]:
+    env.Prepend(LIBPATH=[env["sysroot"] + installdir('libdir', 
add_destdir=False)])
 if env["shared"]:
     env.Prepend(RPATH=[installdir('libdir')])
 

-mike

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]