gollvm: update cmake rules for go 1.17 Updates to cmake rules to bring libgo into sync with Go 1.17 changes in gofrontend. Change-Id: I90608f08647427af581898f0f27a1e1bd5b079f5 Reviewed-on: https://go-review.googlesource.com/c/gollvm/+/349551 Trust: Than McIntosh <thanm@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
diff --git a/cmake/modules/AutoGenGo.cmake b/cmake/modules/AutoGenGo.cmake index 3e3ab83..5872d79 100644 --- a/cmake/modules/AutoGenGo.cmake +++ b/cmake/modules/AutoGenGo.cmake
@@ -24,15 +24,6 @@ # not currently supported -- the install prefix has to be set properly # as part of the original build. - # Compiler version - file(STRINGS "${srcroot}/../VERSION" rawver) - string(STRIP ${rawver} ver) - # Default GOROOT var initialization. - file(APPEND ${outfile} "func init() { DefaultGoroot = \"${CMAKE_INSTALL_PREFIX}\" }\n") - file(APPEND ${outfile} "const TheVersion = ") - emitversionstring(${outfile} ${srcroot}) - file(APPEND ${outfile} "\n") - # FIXME: # GccgoToolDir is set to the gccgo installation directory that contains # (among other things) "go1", "cgo", "cc1", and other auxiliary @@ -41,6 +32,8 @@ # 'DefaultGoRoot' above. file(APPEND ${outfile} "const GccgoToolDir = \"${CMAKE_INSTALL_PREFIX}/tools\"\n") + file(APPEND ${outfile} "const StackGuardMultiplierDefault = 1\n") + # FIXME: add a real switch base on configuration params here. if( ${goarch} STREQUAL "amd64") @@ -69,7 +62,6 @@ file(APPEND ${outfile} "const GOARCH = \"${goarch}\"\n") file(APPEND ${outfile} "const GOOS = \"${goos}\"\n") file(APPEND ${outfile} "\n") - file(APPEND ${outfile} "type ArchFamilyType int\n\n") file(APPEND ${outfile} "const (\n") file(APPEND ${outfile} "\tUNKNOWN ArchFamilyType = iota\n") @@ -88,7 +80,7 @@ endforeach() file(APPEND ${outfile} "\n") - set(constants "ArchFamily:family" "BigEndian:bigendian" "CacheLineSize:cachelinesize" "PhysPageSize:defaultphyspagesize" "PCQuantum:pcquantum" "Int64Align:int64align" "MinFrameSize:minframesize") + set(constants "ArchFamily:family" "BigEndian:bigendian" "DefaultPhysPageSize:defaultphyspagesize" "PCQuantum:pcquantum" "Int64Align:int64align" "MinFrameSize:minframesize" "StackAlign:stackalign") file(APPEND ${outfile} "const (\n") foreach(item ${constants}) @@ -106,7 +98,7 @@ ERROR_VARIABLE errmsg RESULT_VARIABLE exitstatus) if(${exitstatus} MATCHES 0) - file(APPEND ${outfile} "\t${constname} = ${result}") + file(APPEND ${outfile} "\t_${constname} = ${result}") else() message(FATAL_ERROR "goarch.sh invocation failed: ${errmsg}") endif() @@ -125,7 +117,6 @@ endforeach() file(APPEND ${outfile} "\n") - file(APPEND ${outfile} "type Uintreg uintptr\n") endfunction() #---------------------------------------------------------------------- @@ -258,6 +249,42 @@ endfunction() #---------------------------------------------------------------------- +# Emit 'buildcfg.go', containing default settings for various GO* vars. +# +# Unnamed parameters: +# +# * output file to target +# * libgo cmake binary directory +# * libgo source code root directory +# +function(mkbuildcfg outfile binroot srcroot) + + file(REMOVE ${outfile}) + file(WRITE ${outfile} "package buildcfg\n\n") + file(APPEND ${outfile} "import \"runtime\"\n") + + # Compiler version + file(STRINGS "${srcroot}/../VERSION" rawver) + string(STRIP ${rawver} ver) + file(APPEND ${outfile} "const version = ") + emitversionstring(${outfile} ${srcroot}) + file(APPEND ${outfile} "\n") + + file(APPEND ${outfile} "func defaultGOROOTValue() string { return \"${GOLLVM_INSTALL_DIR}\" }\n") + file(APPEND ${outfile} "const defaultGO386 = `sse2`\n") + file(APPEND ${outfile} "const defaultGOARM = `5`\n") + file(APPEND ${outfile} "const defaultGOMIPS = `hardfloat`\n") + file(APPEND ${outfile} "const defaultGOMIPS64 = `hardfloat`\n") + file(APPEND ${outfile} "const defaultGOOS = runtime.GOOS\n") + file(APPEND ${outfile} "const defaultGOPPC64 = `power8`\n") + file(APPEND ${outfile} "const defaultGOARCH = runtime.GOARCH\n") + file(APPEND ${outfile} "const defaultGO_EXTLINK_ENABLED = ``\n") + file(APPEND ${outfile} "const defaultGO_LDSO = ``\n") + file(APPEND ${outfile} "const defaultGOEXPERIMENT = `fieldtrack`\n") +endfunction() + + +#---------------------------------------------------------------------- # Emit 'objabi.go', containing default settings for various GO* vars. # # Unnamed parameters: @@ -270,24 +297,8 @@ file(REMOVE ${outfile}) file(WRITE ${outfile} "package objabi\n\n") - file(APPEND ${outfile} "import \"runtime\"\n") - file(APPEND ${outfile} "func defaultGOROOTValue() string { return \"${GOLLVM_INSTALL_DIR}\" }\n") - - file(APPEND ${outfile} "const defaultGO386 = `sse2`\n") - file(APPEND ${outfile} "const defaultGOARM = `5`\n") - file(APPEND ${outfile} "const defaultGOMIPS = `hardfloat`\n") - file(APPEND ${outfile} "const defaultGOMIPS64 = `hardfloat`\n") - file(APPEND ${outfile} "const defaultGOOS = runtime.GOOS\n") - file(APPEND ${outfile} "const defaultGOPPC64 = `power8`\n") - file(APPEND ${outfile} "const defaultGOARCH = runtime.GOARCH\n") - file(APPEND ${outfile} "const defaultGO_EXTLINK_ENABLED = ``\n") - file(APPEND ${outfile} "const defaultGO_LDSO = ``\n") - file(APPEND ${outfile} "const version = ") - emitversionstring(${outfile} ${srcroot}) - file(APPEND ${outfile} "\n") file(APPEND ${outfile} "const stackGuardMultiplierDefault = 1\n") - file(APPEND ${outfile} "const goexperiment = ``\n") endfunction() #---------------------------------------------------------------------- @@ -310,7 +321,6 @@ endif() endforeach() file(APPEND ${outfile} "\"unsafe\": true,\n") - file(APPEND ${outfile} "\"runtime/cgo\": true,\n") file(APPEND ${outfile} "}\n") endfunction()
diff --git a/libgo/CMakeLists.txt b/libgo/CMakeLists.txt index 26e32b6..b86b1f8 100644 --- a/libgo/CMakeLists.txt +++ b/libgo/CMakeLists.txt
@@ -102,6 +102,7 @@ # that <pkg>_extra_go_files holds the additional sources for <pkg>. set(runtime_extra_go_files "runtime_linknames.go" "runtime_sysinfo.go" "sigtab.go") set(cmd_internal_objabi_extra_go_files "objabi.go") +set(internal_buildcfg_extra_go_files "buildcfg.go") set(internal_goroot_extra_go_files "zstdpkglist.go") set(internal_cpu_extra_go_files "cpugen.go") set(golang_org_x_sys_cpu_extra_go_files "gcpugen.go") @@ -228,6 +229,12 @@ mkobjabi(${objabitmp} ${libgo_binroot} ${libgo_gosrcroot}) copy_if_different(${objabitmp} ${objabidotgo}) +# Rules for buildcfg.go +set(buildcfgdotgo "${libgo_binroot}/buildcfg.go") +set(buildcfgtmp "${libgo_binroot}/buildcfg.go.tmp") +mkbuildcfg(${buildcfgtmp} ${libgo_binroot} ${libgo_gosrcroot}) +copy_if_different(${buildcfgtmp} ${buildcfgdotgo}) + # Rules for zstdpkglist.go set(zstdpkglistdotgo "${libgo_binroot}/zstdpkglist.go") set(zstdpkglisttmp "${libgo_binroot}/zstdpkglist.go.tmp")