gollvm: pass sysroot to C compiler
There are a few places where the C compiler is invoked
"manually", not by CMake. In those places, if CMAKE_SYSROOT is
set, pass it to the C compiler.
Change-Id: I3384419138cc012eccf2bc724bf2e9322c412802
Reviewed-on: https://go-review.googlesource.com/118321
Reviewed-by: Than McIntosh <thanm@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c826f59..487b6a0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,7 +21,10 @@
set(EXTINSTALLDIR ${CMAKE_CURRENT_BINARY_DIR}/external/install)
set(EXTLIBDIR "${EXTINSTALLDIR}/lib")
set(EXTINCLUDEDIR "${EXTINSTALLDIR}/include")
-set(EXTCPPFLAGS "CFLAGS=-I${EXTINCLUDEDIR}")
+set(EXTCPPFLAGS "CFLAGS=-I${EXTINCLUDEDIR} --sysroot=${CMAKE_SYSROOT}")
+if(NOT "${CMAKE_SYSROOT}" STREQUAL "")
+ string(APPEND EXTCPPFLAGS " --sysroot=${CMAKE_SYSROOT}")
+endif()
set(EXTLDFLAGS "LDFLAGS=-L${EXTLIBDIR}")
set(EXTCC "CC=${CMAKE_C_COMPILER}" "CXX=${CMAKE_CXX_COMPILER}")
diff --git a/cmake/modules/AutoGenGo.cmake b/cmake/modules/AutoGenGo.cmake
index a93df0f..c5f40b3 100644
--- a/cmake/modules/AutoGenGo.cmake
+++ b/cmake/modules/AutoGenGo.cmake
@@ -414,6 +414,10 @@
CMAKE_PARSE_ARGUMENTS(ARG "" "" "DEPS;CFLAGS" ${ARGN})
set(ccomp ${CMAKE_C_COMPILER})
+ set(cflags ${ARG_CFLAGS})
+ if(NOT "${CMAKE_SYSROOT}" STREQUAL "")
+ set(cflags ${cflags} "--sysroot=${CMAKE_SYSROOT}")
+ endif()
# Run the host C compiler to generate the object. NB: clang will
# accept -fno-eliminate-unused-debug-types but does not actually
@@ -421,7 +425,7 @@
add_custom_command(
OUTPUT ${objfile}
COMMAND ${ccomp} "-g3" "-c" "-fno-eliminate-unused-debug-types"
- ${sysinfoc} -o ${objfile} ${ARG_CFLAGS}
+ ${sysinfoc} -o ${objfile} ${cflags}
DEPENDS ${sysinfoc} ${ARG_DEPS}
COMMENT "Building sysinfo.o "
VERBATIM)
@@ -430,7 +434,7 @@
add_custom_command(
OUTPUT ${macrofile}
COMMAND ${ccomp} "-E" "-dM"
- ${sysinfoc} -o ${macrofile} ${ARG_CFLAGS}
+ ${sysinfoc} -o ${macrofile} ${cflags}
DEPENDS ${sysinfoc} ${ARG_DEPS}
COMMENT "Building sysinfo.c macro temp file"
VERBATIM)
diff --git a/libgo/CMakeLists.txt b/libgo/CMakeLists.txt
index 890cb51..6a9b8cb 100644
--- a/libgo/CMakeLists.txt
+++ b/libgo/CMakeLists.txt
@@ -277,9 +277,13 @@
set(errnoi "${libgo_binroot}/errno.i")
set(errnoitmp "${libgo_binroot}/tmp-errno.i")
set(mkerrnoish "${CMAKE_CURRENT_SOURCE_DIR}/mkerrnoi.sh")
+set(cflags ${CMAKE_C_FLAGS})
+if(NOT "${CMAKE_SYSROOT}" STREQUAL "")
+ set(cflags "--sysroot=${CMAKE_SYSROOT}")
+endif()
generate_go_from_script(${errnoi} ${mkerrnoish} ${goos} ${goarch}
${libgo_binroot} SCRIPTARGS "${CMAKE_C_COMPILER}"
- ${errnoitmp} ${CMAKE_C_FLAGS})
+ ${errnoitmp} ${cflags})
# Generated file sysinfo.go
set(sysinfodotgo "${libgo_binroot}/sysinfo.go")