kumquat-buildroot/package/yajl/0003-Link-with-shared-libyajl-in-a-shared-build.patch
Jörg Krause 86abdd895e yajl: remove obsolete patch
Commit 302563539d 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 commit
302563539d 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>
2016-04-27 22:49:55 +02:00

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