diff options
Diffstat (limited to 'package/openpowerlink/0004-FIX-use-contrib-getopt-only-on-Windows.patch')
-rw-r--r-- | package/openpowerlink/0004-FIX-use-contrib-getopt-only-on-Windows.patch | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/package/openpowerlink/0004-FIX-use-contrib-getopt-only-on-Windows.patch b/package/openpowerlink/0004-FIX-use-contrib-getopt-only-on-Windows.patch new file mode 100644 index 0000000000..2edf9f236d --- /dev/null +++ b/package/openpowerlink/0004-FIX-use-contrib-getopt-only-on-Windows.patch @@ -0,0 +1,102 @@ +From d05273e65657d82e44fb7bd91a8fba0ba990ff2c Mon Sep 17 00:00:00 2001 +From: Romain Naour <romain.naour@gmail.com> +Date: Sat, 27 May 2017 23:51:41 +0200 +Subject: [PATCH] [FIX] use contrib getopt() only on Windows + +Otherwise, contrib getopt will clash with the one from the libc when +building statically. + +lib64/libc.a(getopt.os):(.data+0x8): multiple definition of `optind' +CMakeFiles/demo_mn_console.dir/__/__/contrib/getopt/getopt.c.o:(.data+0x8): first defined here +lib64/libc.a(getopt.os):(.data+0x4): multiple definition of `opterr' +CMakeFiles/demo_mn_console.dir/__/__/contrib/getopt/getopt.c.o:(.data+0xc): first defined here +/lib64/libc.a(getopt.os): In function `__GI_getopt': +getopt.c:(.text+0x76e): multiple definition of `getopt' + +Signed-off-by: Romain Naour <romain.naour@gmail.com> +--- + apps/demo_cn_console/CMakeLists.txt | 2 +- + apps/demo_cn_console/src/main.c | 6 ++++++ + apps/demo_mn_console/CMakeLists.txt | 2 +- + apps/demo_mn_console/src/main.c | 6 ++++++ + 4 files changed, 14 insertions(+), 2 deletions(-) + +diff --git a/apps/demo_cn_console/CMakeLists.txt b/apps/demo_cn_console/CMakeLists.txt +index a3a80bb..5733213 100644 +--- a/apps/demo_cn_console/CMakeLists.txt ++++ b/apps/demo_cn_console/CMakeLists.txt +@@ -61,7 +61,6 @@ SET(DEMO_SOURCES + ${COMMON_SOURCE_DIR}/eventlog/eventlog.c + ${COMMON_SOURCE_DIR}/eventlog/eventlogstring.c + ${CONTRIB_SOURCE_DIR}/console/printlog.c +- ${CONTRIB_SOURCE_DIR}/getopt/getopt.c + ) + + INCLUDE_DIRECTORIES( +@@ -114,6 +113,7 @@ ENDIF (CFG_KERNEL_STACK_DIRECTLINK) + IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") + include(linux.cmake) + ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Windows") ++ SET(DEMO_SOURCES ${DEMO_SOURCES} ${CONTRIB_SOURCE_DIR}/getopt/getopt.c) + include (windows.cmake) + ELSE() + MESSAGE(FATAL_ERROR "System ${CMAKE_SYSTEM_NAME} is not supported!") +diff --git a/apps/demo_cn_console/src/main.c b/apps/demo_cn_console/src/main.c +index c630586..9406473 100644 +--- a/apps/demo_cn_console/src/main.c ++++ b/apps/demo_cn_console/src/main.c +@@ -50,7 +50,13 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + #include <system/system.h> + #include <obdcreate/obdcreate.h> ++ ++#if (TARGET_SYSTEM == _WIN32_) + #include <getopt/getopt.h> ++#else ++#include <unistd.h> ++#endif ++ + #include <console/console.h> + #include <eventlog/eventlog.h> + +diff --git a/apps/demo_mn_console/CMakeLists.txt b/apps/demo_mn_console/CMakeLists.txt +index 9c3378c..a81c4b3 100644 +--- a/apps/demo_mn_console/CMakeLists.txt ++++ b/apps/demo_mn_console/CMakeLists.txt +@@ -67,7 +67,6 @@ SET(DEMO_SOURCES + ${COMMON_SOURCE_DIR}/eventlog/eventlog.c + ${COMMON_SOURCE_DIR}/eventlog/eventlogstring.c + ${CONTRIB_SOURCE_DIR}/console/printlog.c +- ${CONTRIB_SOURCE_DIR}/getopt/getopt.c + ) + + INCLUDE_DIRECTORIES( +@@ -129,6 +128,7 @@ ENDIF() + IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") + include(linux.cmake) + ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Windows") ++ SET(DEMO_SOURCES ${DEMO_SOURCES} ${CONTRIB_SOURCE_DIR}/getopt/getopt.c) + include (windows.cmake) + ELSE() + MESSAGE(FATAL_ERROR "System ${CMAKE_SYSTEM_NAME} is not supported!") +diff --git a/apps/demo_mn_console/src/main.c b/apps/demo_mn_console/src/main.c +index 12d9be0..194e446 100644 +--- a/apps/demo_mn_console/src/main.c ++++ b/apps/demo_mn_console/src/main.c +@@ -50,7 +50,13 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + #include <system/system.h> + #include <obdcreate/obdcreate.h> ++ ++#if (TARGET_SYSTEM == _WIN32_) + #include <getopt/getopt.h> ++#else ++#include <unistd.h> ++#endif ++ + #include <console/console.h> + #include <eventlog/eventlog.h> + +-- +2.9.4 + |