103 lines
3.5 KiB
Diff
103 lines
3.5 KiB
Diff
|
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
|
||
|
|