You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2016/07/06 15:39:12 UTC

[2/2] lucy-charmonizer git commit: Support for rpath linker flag

Support for rpath linker flag


Project: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/commit/6ea06d33
Tree: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/tree/6ea06d33
Diff: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/diff/6ea06d33

Branch: refs/heads/master
Commit: 6ea06d3395ee7fde85b934da5015b6aee06a9987
Parents: 78d051f
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Wed Jul 6 15:49:21 2016 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Wed Jul 6 17:02:50 2016 +0200

----------------------------------------------------------------------
 src/Charmonizer/Core/CFlags.c | 21 +++++++++++++++++++++
 src/Charmonizer/Core/CFlags.h |  3 +++
 2 files changed, 24 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/blob/6ea06d33/src/Charmonizer/Core/CFlags.c
----------------------------------------------------------------------
diff --git a/src/Charmonizer/Core/CFlags.c b/src/Charmonizer/Core/CFlags.c
index a1f4684..ea07dc1 100644
--- a/src/Charmonizer/Core/CFlags.c
+++ b/src/Charmonizer/Core/CFlags.c
@@ -349,6 +349,27 @@ chaz_CFlags_add_external_lib(chaz_CFlags *flags, const char *library) {
 }
 
 void
+chaz_CFlags_add_rpath(chaz_CFlags *flags, const char *path) {
+    char *string;
+
+    if (chaz_CC_binary_format() != CHAZ_CC_BINFMT_ELF) { return; }
+
+    if (flags->style == CHAZ_CFLAGS_STYLE_GNU) {
+        string = chaz_Util_join("", "-Wl,-rpath,", path, NULL);
+    }
+    else if (flags->style == CHAZ_CFLAGS_STYLE_SUN_C) {
+        string = chaz_Util_join(" ", "-R", path, NULL);
+    }
+    else {
+        chaz_Util_die("Don't know how to set rpath with '%s'",
+                      chaz_CC_get_cc());
+    }
+
+    chaz_CFlags_append(flags, string);
+    free(string);
+}
+
+void
 chaz_CFlags_enable_code_coverage(chaz_CFlags *flags) {
     if (flags->style == CHAZ_CFLAGS_STYLE_GNU) {
         chaz_CFlags_append(flags, "--coverage");

http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/blob/6ea06d33/src/Charmonizer/Core/CFlags.h
----------------------------------------------------------------------
diff --git a/src/Charmonizer/Core/CFlags.h b/src/Charmonizer/Core/CFlags.h
index ec699df..d88abbf 100644
--- a/src/Charmonizer/Core/CFlags.h
+++ b/src/Charmonizer/Core/CFlags.h
@@ -93,6 +93,9 @@ void
 chaz_CFlags_add_external_lib(chaz_CFlags *flags, const char *library);
 
 void
+chaz_CFlags_add_rpath(chaz_CFlags *flags, const char *path);
+
+void
 chaz_CFlags_enable_code_coverage(chaz_CFlags *flags);
 
 #ifdef __cplusplus