![Jörg Krause](/assets/img/avatar_default.png)
Commit302563539d
fixes link with libm for all targets linking against libyajl{,_s}. This makes patch "0001-cmake-uClibc-Fix -missing-libm-for-tests" obsolete so it is safe to remove it. Instead of renumbering all remaining patches the patch defined in YAJL_PATCH is fetched and put intto the packages directory. Having all the patches in one places makes the number and order of the patches applied to the package more clear. Align patch "0003-Link-with-shared-libyajl-in-a-shared-build" with commit302563539d
and remove linking with libm from test/api/CMakeLists.txt. Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
128 lines
4.2 KiB
Diff
128 lines
4.2 KiB
Diff
From 425b25993ef58d07aa18c5d4938876a90e22c47a Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
|
|
Date: Sat, 9 Apr 2016 23:24:27 +0200
|
|
Subject: [PATCH] Link with shared libyajl in a shared build
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Building yajl in a static context fails in a parallel build:
|
|
|
|
[ 21%] Linking C executable gen-extra-close
|
|
[ 26%] Building C object src/CMakeFiles/yajl_s.dir/yajl_buf.c.o
|
|
/home/test/autobuild/instance-3/output/host/opt/ext-toolchain/bfin-uclinux/bfin-uclinux/bin/ld.real: cannot find -lyajl
|
|
|
|
Fix this issue by linking against the shared libyail in a shared build. Apply
|
|
this fix also to all other build targets who are linking against the library.
|
|
|
|
Upstream status: Pending
|
|
https://github.com/lloyd/yajl/pull/187
|
|
|
|
[Update: align with commit 302563539dacb284576a443401cdfd061eb2e1e8 and remove
|
|
linking with libm from test/api/CMakeLists.txt]
|
|
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
|
|
---
|
|
example/CMakeLists.txt | 7 ++++++-
|
|
perf/CMakeLists.txt | 6 +++++-
|
|
reformatter/CMakeLists.txt | 6 +++++-
|
|
test/api/CMakeLists.txt | 6 +++++-
|
|
test/parsing/CMakeLists.txt | 6 +++++-
|
|
verify/CMakeLists.txt | 6 +++++-
|
|
6 files changed, 31 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
|
|
index 0a7f622..8cfcef8 100644
|
|
--- a/example/CMakeLists.txt
|
|
+++ b/example/CMakeLists.txt
|
|
@@ -20,4 +20,9 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib)
|
|
|
|
ADD_EXECUTABLE(parse_config ${SRCS})
|
|
|
|
-TARGET_LINK_LIBRARIES(parse_config yajl_s)
|
|
+IF(BUILD_SHARED_LIBS)
|
|
+ TARGET_LINK_LIBRARIES(parse_config yajl)
|
|
+ELSE()
|
|
+ TARGET_LINK_LIBRARIES(parse_config yajl_s)
|
|
+ENDIF()
|
|
+
|
|
diff --git a/perf/CMakeLists.txt b/perf/CMakeLists.txt
|
|
index b438d7a..40ba363 100644
|
|
--- a/perf/CMakeLists.txt
|
|
+++ b/perf/CMakeLists.txt
|
|
@@ -20,4 +20,8 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib)
|
|
|
|
ADD_EXECUTABLE(perftest ${SRCS})
|
|
|
|
-TARGET_LINK_LIBRARIES(perftest yajl_s)
|
|
+IF(BUILD_SHARED_LIBS)
|
|
+ TARGET_LINK_LIBRARIES(perftest yajl)
|
|
+ELSE()
|
|
+ TARGET_LINK_LIBRARIES(perftest yajl_s)
|
|
+ENDIF()
|
|
diff --git a/reformatter/CMakeLists.txt b/reformatter/CMakeLists.txt
|
|
index 52a9bee..7629094 100644
|
|
--- a/reformatter/CMakeLists.txt
|
|
+++ b/reformatter/CMakeLists.txt
|
|
@@ -26,7 +26,11 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib)
|
|
|
|
ADD_EXECUTABLE(json_reformat ${SRCS})
|
|
|
|
-TARGET_LINK_LIBRARIES(json_reformat yajl_s)
|
|
+IF(BUILD_SHARED_LIBS)
|
|
+ TARGET_LINK_LIBRARIES(json_reformat yajl)
|
|
+ELSE()
|
|
+ TARGET_LINK_LIBRARIES(json_reformat yajl_s)
|
|
+ENDIF()
|
|
|
|
# In some environments, we must explicitly link libm (like qnx,
|
|
# thanks @shahbag)
|
|
diff --git a/test/api/CMakeLists.txt b/test/api/CMakeLists.txt
|
|
index cd65a54..0c9debf 100644
|
|
--- a/test/api/CMakeLists.txt
|
|
+++ b/test/api/CMakeLists.txt
|
|
@@ -21,5 +21,9 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../../${YAJL_DIST_NAME}/lib)
|
|
FOREACH (test ${TESTS})
|
|
GET_FILENAME_COMPONENT(testProg ${test} NAME_WE)
|
|
ADD_EXECUTABLE(${testProg} ${test})
|
|
- TARGET_LINK_LIBRARIES(${testProg} yajl)
|
|
+ IF(BUILD_SHARED_LIBS)
|
|
+ TARGET_LINK_LIBRARIES(${testProg} yajl)
|
|
+ ELSE()
|
|
+ TARGET_LINK_LIBRARIES(${testProg} yajl_s)
|
|
+ ENDIF()
|
|
ENDFOREACH()
|
|
diff --git a/test/parsing/CMakeLists.txt b/test/parsing/CMakeLists.txt
|
|
index c22a388..285f048 100644
|
|
--- a/test/parsing/CMakeLists.txt
|
|
+++ b/test/parsing/CMakeLists.txt
|
|
@@ -20,4 +20,8 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../../${YAJL_DIST_NAME}/lib)
|
|
|
|
ADD_EXECUTABLE(yajl_test ${SRCS})
|
|
|
|
-TARGET_LINK_LIBRARIES(yajl_test yajl_s)
|
|
+IF(BUILD_SHARED_LIBS)
|
|
+ TARGET_LINK_LIBRARIES(yajl_test yajl)
|
|
+ELSE()
|
|
+ TARGET_LINK_LIBRARIES(yajl_test yajl_s)
|
|
+ENDIF()
|
|
diff --git a/verify/CMakeLists.txt b/verify/CMakeLists.txt
|
|
index 967fca1..06cb2dc 100644
|
|
--- a/verify/CMakeLists.txt
|
|
+++ b/verify/CMakeLists.txt
|
|
@@ -26,7 +26,11 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib)
|
|
|
|
ADD_EXECUTABLE(json_verify ${SRCS})
|
|
|
|
-TARGET_LINK_LIBRARIES(json_verify yajl_s)
|
|
+IF(BUILD_SHARED_LIBS)
|
|
+ TARGET_LINK_LIBRARIES(json_verify yajl)
|
|
+ELSE()
|
|
+ TARGET_LINK_LIBRARIES(json_verify yajl_s)
|
|
+ENDIF()
|
|
|
|
# copy in the binary
|
|
GET_TARGET_PROPERTY(binPath json_verify LOCATION)
|
|
--
|
|
2.8.0
|
|
|