* [PATCH] build: fix order of rpath
@ 2014-05-12 2:22 Felipe Contreras
2014-05-12 18:02 ` Tomi Ollila
2014-05-28 12:59 ` David Bremner
0 siblings, 2 replies; 3+ messages in thread
From: Felipe Contreras @ 2014-05-12 2:22 UTC (permalink / raw)
To: notmuch; +Cc: Moritz Wilhelmy
In my system `pkg-config --libs talloc` returns
'Wl,-rpath,/usr/lib -ltalloc' (probably wrongly) which causes the final
LDFLAGS to be something like '-Wl,-rpath,/usr/lib
-Wl,-rpath,/opt/notmuch/lib', which causes the RUNPATH to be
'/usr/lib:/opt/notmuch/lib', so basically defeating the whole purpose of
RUNPATH.
I noticed this when my /opt/notmuch/bin/notmuch (0.17) started updating
the database after I updated the system (which updated the system's
notmuch). This shouldn't happen.
Let's move the RUNPATH flags before other external flags have a chance of
screwing the build.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
Makefile.local | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/Makefile.local b/Makefile.local
index fa07d81..af79b5c 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -46,15 +46,16 @@ PV_FILE=bindings/python/notmuch/version.py
# Smash together user's values with our extra values
FINAL_CFLAGS = -DNOTMUCH_VERSION=$(VERSION) $(CPPFLAGS) $(CFLAGS) $(WARN_CFLAGS) $(extra_cflags) $(CONFIGURE_CFLAGS)
FINAL_CXXFLAGS = $(CPPFLAGS) $(CXXFLAGS) $(WARN_CXXFLAGS) $(extra_cflags) $(extra_cxxflags) $(CONFIGURE_CXXFLAGS)
-FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Lutil -lutil -Llib -lnotmuch $(AS_NEEDED_LDFLAGS) $(GMIME_LDFLAGS) $(TALLOC_LDFLAGS) $(ZLIB_LDFLAGS)
+FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Lutil -lutil -Llib -lnotmuch
+ifeq ($(LIBDIR_IN_LDCONFIG),0)
+FINAL_NOTMUCH_LDFLAGS += $(RPATH_LDFLAGS)
+endif
+FINAL_NOTMUCH_LDFLAGS += $(AS_NEEDED_LDFLAGS) $(GMIME_LDFLAGS) $(TALLOC_LDFLAGS) $(ZLIB_LDFLAGS)
FINAL_NOTMUCH_LINKER = CC
ifneq ($(LINKER_RESOLVES_LIBRARY_DEPENDENCIES),1)
FINAL_NOTMUCH_LDFLAGS += $(CONFIGURE_LDFLAGS)
FINAL_NOTMUCH_LINKER = CXX
endif
-ifeq ($(LIBDIR_IN_LDCONFIG),0)
-FINAL_NOTMUCH_LDFLAGS += $(RPATH_LDFLAGS)
-endif
FINAL_LIBNOTMUCH_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(CONFIGURE_LDFLAGS)
.PHONY: all
--
1.9.2+fc1~45~g3953d93
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] build: fix order of rpath
2014-05-12 2:22 [PATCH] build: fix order of rpath Felipe Contreras
@ 2014-05-12 18:02 ` Tomi Ollila
2014-05-28 12:59 ` David Bremner
1 sibling, 0 replies; 3+ messages in thread
From: Tomi Ollila @ 2014-05-12 18:02 UTC (permalink / raw)
To: Felipe Contreras, notmuch; +Cc: Moritz Wilhelmy
On Mon, May 12 2014, Felipe Contreras <felipe.contreras@gmail.com> wrote:
> In my system `pkg-config --libs talloc` returns
> 'Wl,-rpath,/usr/lib -ltalloc' (probably wrongly) which causes the final
> LDFLAGS to be something like '-Wl,-rpath,/usr/lib
> -Wl,-rpath,/opt/notmuch/lib', which causes the RUNPATH to be
> '/usr/lib:/opt/notmuch/lib', so basically defeating the whole purpose of
> RUNPATH.
>
> I noticed this when my /opt/notmuch/bin/notmuch (0.17) started updating
> the database after I updated the system (which updated the system's
> notmuch). This shouldn't happen.
>
> Let's move the RUNPATH flags before other external flags have a chance of
> screwing the build.
>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
LGTM. Works for me (i.e. did not break my RPATH setting for notmuch-shared binary.
Tomi
> Makefile.local | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/Makefile.local b/Makefile.local
> index fa07d81..af79b5c 100644
> --- a/Makefile.local
> +++ b/Makefile.local
> @@ -46,15 +46,16 @@ PV_FILE=bindings/python/notmuch/version.py
> # Smash together user's values with our extra values
> FINAL_CFLAGS = -DNOTMUCH_VERSION=$(VERSION) $(CPPFLAGS) $(CFLAGS) $(WARN_CFLAGS) $(extra_cflags) $(CONFIGURE_CFLAGS)
> FINAL_CXXFLAGS = $(CPPFLAGS) $(CXXFLAGS) $(WARN_CXXFLAGS) $(extra_cflags) $(extra_cxxflags) $(CONFIGURE_CXXFLAGS)
> -FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Lutil -lutil -Llib -lnotmuch $(AS_NEEDED_LDFLAGS) $(GMIME_LDFLAGS) $(TALLOC_LDFLAGS) $(ZLIB_LDFLAGS)
> +FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Lutil -lutil -Llib -lnotmuch
> +ifeq ($(LIBDIR_IN_LDCONFIG),0)
> +FINAL_NOTMUCH_LDFLAGS += $(RPATH_LDFLAGS)
> +endif
> +FINAL_NOTMUCH_LDFLAGS += $(AS_NEEDED_LDFLAGS) $(GMIME_LDFLAGS) $(TALLOC_LDFLAGS) $(ZLIB_LDFLAGS)
> FINAL_NOTMUCH_LINKER = CC
> ifneq ($(LINKER_RESOLVES_LIBRARY_DEPENDENCIES),1)
> FINAL_NOTMUCH_LDFLAGS += $(CONFIGURE_LDFLAGS)
> FINAL_NOTMUCH_LINKER = CXX
> endif
> -ifeq ($(LIBDIR_IN_LDCONFIG),0)
> -FINAL_NOTMUCH_LDFLAGS += $(RPATH_LDFLAGS)
> -endif
> FINAL_LIBNOTMUCH_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(CONFIGURE_LDFLAGS)
>
> .PHONY: all
> --
> 1.9.2+fc1~45~g3953d93
>
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] build: fix order of rpath
2014-05-12 2:22 [PATCH] build: fix order of rpath Felipe Contreras
2014-05-12 18:02 ` Tomi Ollila
@ 2014-05-28 12:59 ` David Bremner
1 sibling, 0 replies; 3+ messages in thread
From: David Bremner @ 2014-05-28 12:59 UTC (permalink / raw)
To: Felipe Contreras, notmuch; +Cc: Moritz Wilhelmy
Felipe Contreras <felipe.contreras@gmail.com> writes:
> In my system `pkg-config --libs talloc` returns
> 'Wl,-rpath,/usr/lib -ltalloc' (probably wrongly) which causes the final
> LDFLAGS to be something like '-Wl,-rpath,/usr/lib
> -Wl,-rpath,/opt/notmuch/lib', which causes the RUNPATH to be
> '/usr/lib:/opt/notmuch/lib', so basically defeating the whole purpose of
> RUNPATH.
pushed to release and master.
d
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-05-28 13:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-12 2:22 [PATCH] build: fix order of rpath Felipe Contreras
2014-05-12 18:02 ` Tomi Ollila
2014-05-28 12:59 ` David Bremner
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).